<!doctypehtml><html dir=ltr xmlns=http://www.w3.org/1999/xhtml><head lang=en><meta http-equiv=X-UA-Compatible content="IE=edge"><meta content="text/html; charset=utf-8"http-equiv=Content-Type><meta name=viewport content="user-scalable=1,initial-scale=1,minimum-scale=1,maximum-scale=1"><meta name=apple-mobile-web-app-capable content=yes><meta name=format-detection content="telephone=no"><meta name=robots content=noindex,nofollow><link rel=manifest href={{{domainurl}}}manifest.json><link rel="shortcut icon"type=image/x-icon href={{{domainurl}}}favicon.ico><link keeplink=1 type=text/css href=styles/style.css media=screen rel=stylesheet title=CSS><link rel=apple-touch-icon href=/favicon-303x303.png><script src=scripts/common-0.0.1{{min}}.js></script><script keeplink=1 src=scripts/u2f-api{{min}}.js></script><title>{{{title}}} - Login</title><body id=body onload='"undefined"!=typeof startup&&startup()'class="arg_hide login"><div id=container><div id=masthead><div style=float:left>{{{titlehtml}}}</div><div class=title>{{{title1}}}</div><div class=title2>{{{title2}}}</div></div><div id=topbar class="noselect style3"style=height:24px><div id=uiMenuButton title=ユーザーインターフェイスの選択 onclick=showUserInterfaceSelectMenu()>♦<div id=uiMenu style=display:none><div id=uiViewButton1 class=uiSelector onclick=userInterfaceSelectMenu(1) title=左バーインターフェイス><div class=uiSelector1></div></div><div id=uiViewButton2 class=uiSelector onclick=userInterfaceSelectMenu(2) title=トップバーインターフェース><div class=uiSelector2></div></div><div id=uiViewButton3 class=uiSelector onclick=userInterfaceSelectMenu(3) title=固定幅インターフェイス><div class=uiSelector3></div></div><div id=uiViewButton4 class=uiSelector onclick=toggleNightMode() title=ナイトモードを切り替える><div class=uiSelector4></div></div></div></div></div><div id=column_l><h1>ようこそ</h1><div id=welcomeText style=display:none>リアルタイムのオープンソースのリモート監視および管理WebサイトであるMeshCentralを使用して、世界中のどこからでも自宅またはオフィスのデバイスに接続します。コンピューターに管理エージェントをダウンロードしてインストールする必要があります。インストールすると、コンピューターはこのWebサイトの[デバイス]セクションに表示され、コンピューターを監視して制御できるようになります。</div><table id=centralTable><tr><td id=welcomeimage><picture><img alt=""src=welcome.jpg style=border-radius:20px></picture><td id=logincell><div id=loginpanel style=display:none><form method=post><input type=hidden name=action value=login><div id=message1></div><div id=loginuserpassdiv style=display:none><div><b>ログイン</b></div><table><tr><td id=loginusername align=right width=100>ユーザー名：<td><input id=username {{{autocomplete}}}=username maxlength=64 name=username required onchange=validateLogin(1) onkeyup=validateLogin(1,event)><tr><td align=right>パスワード：<td><input id=password {{{autocomplete}}}=current-password type=password maxlength=256 name=password required onchange=validateLogin(2) onkeyup=validateLogin(2,event)><tr><td><div id=showPassHintLink style=display:none><a onclick="return showPassHint(event)"href=# style=cursor:pointer>ヒントを見せて</a></div><td align=right><input id=loginButton type=submit value=ログイン></table><div id=hrAccountDiv style=display:none><hr></div><div id=resetAccountDiv style=display:none;padding:2px><span id=resetAccountSpan>ユーザー名/パスワードを忘れましたか？</span> <a onclick="return xgo(3,event)"href=# style=cursor:pointer>アカウントをリセット</a>。</div><div id=newAccountDiv style=display:none;padding:2px>アカウントを持っていないのですか？ <a onclick="return xgo(2,event)"href=# style=cursor:pointer>一つ作る</a>。</div></div><input id=loginformargs name=urlargs type=hidden><div id=authStrategies style=display:none><hr id=loginuserpasshr style=display:none><div style=margin-bottom:8px>既存のアカウントを使用してログインする</div><a id=auth-twitter href=auth-twitter style=display:none><img src=images/login/twitter32.png srcset="images/login/twitter64.png 2x"loading=lazy width=32 height=32 style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px #000;cursor:pointer"title=Twitterを使用したサインイン></a><a id=auth-google href=auth-google style=display:none><img src=images/login/google32.png srcset="images/login/google64.png 2x"loading=lazy width=32 height=32 style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px #000;cursor:pointer"title=Googleを使用してサインインする></a><a id=auth-github href=auth-github style=display:none><img src=images/login/github32.png srcset="images/login/github64.png 2x"loading=lazy width=32 height=32 style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px #000;cursor:pointer"title=GitHubを使用したサインイン></a><a id=auth-azure href=auth-azure style=display:none><img src=images/login/azure32.png srcset="images/login/azure64.png 2x"loading=lazy width=32 height=32 style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px #000;cursor:pointer"title=Azureを使用してサインインする></a><a id=auth-oidc href=auth-oidc style=display:none><img src=images/login/oidc32.png srcset="images/login/oidc64.png 2x"loading=lazy width=32 height=32 style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px #000;cursor:pointer"title="OpenID Connect를 사용하여 로그인"></a><a id=auth-oidc-azure href=auth-oidc style=display:none><img src=images/login/azure32.png srcset="images/login/azure64.png 2x"loading=lazy width=32 height=32 style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px #000;cursor:pointer"title="Sign-in with Azure using OpenID Connect"></a><a id=auth-oidc-google href=auth-oidc style=display:none><img src=images/login/google32.png srcset="images/login/google64.png 2x"loading=lazy width=32 height=32 style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px #000;cursor:pointer"title="Sign-in with Google using OpenID Connect"></a><a id=auth-jumpcloud href=auth-jumpcloud style=display:none><img src=images/login/jumpcloud32.png srcset="images/login/jumpcloud64.png 2x"loading=lazy width=32 height=32 style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px #000;cursor:pointer"title=JumpCloudを使用したサインイン></a><a id=auth-intel href=auth-intel style=display:none><img src=images/login/intel32.png srcset="images/login/intel64.png 2x"loading=lazy width=32 height=32 style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px #000;cursor:pointer"title=Intelを使用したサインイン></a><a id=auth-saml href=auth-saml style=display:none><img src=images/login/generic32.png srcset="images/login/generic64.png 2x"loading=lazy width=32 height=32 style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px #000;cursor:pointer"title=シングルサインイン></a></div></form></div><div id=createpanel style=display:none;position:relative><form method=post><input type=hidden name=action value=createaccount><div id=message2></div><div><b>アカウント作成</b></div><div id=passwordPolicyCallout style=display:none></div><table><tr id=nuUserRow><td id=nuUser align=right width=100>ユーザー名：<td><input id=ausername {{{autocomplete}}}=username name=username onchange=validateCreate(1) maxlength=64 onkeydown=haltReturn(event) onkeyup=validateCreate(1,event)><tr><td id=nuEmail align=right width=100>Eメール：<td><input id=aemail {{{autocomplete}}}=email inputmode=email name=email onchange=validateCreate(2) maxlength=256 onkeydown=haltReturn(event) onkeyup=validateCreate(2,event)><tr><td id=nuPass1 align=right>パスワード：<td><input id=apassword1 type=password name=password1 {{{autocomplete}}}=new-password maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(3,event) onkeyup=validateCreate(3,event)><tr><td id=nuPass2 align=right>パスワード：<td><input id=apassword2 type=password name=password2 {{{autocomplete}}}=new-password maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(4,event) onkeyup=validateCreate(4,event)><tr id=createPanelHint style=display:none><td id=nuHint align=right>パスワードのヒント：<td><input id=apasswordhint name=apasswordhint {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(5,event) onkeyup=validateCreate(5,event)><tr id=newAccountPass title=アカウント作成トークンを入力してください><td id=nuToken align=right>作成トークン：<td><input id=anewaccountpass type=password name=anewaccountpass {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(6,event) onkeyup=validateCreate(6,event)><tr id=newAccountCaptchaImg title="CAPTCHA image"><td><td colspan=2><img src={{{newAccountCaptchaImage}}} loading=lazy><tr id=newAccountCaptcha title="Security check"><td id=nuCaptcha align=right>Security Check:<td><input id=anewaccountcaptcha name=anewaccountcaptcha {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validateCreate(7,event) onkeyup=validateCreate(7,event)><tr><td colspan=2><div style=float:right><input id=createButton type=submit value=アカウントを作成する disabled></div><div id=passWarning style=padding-top:6px></div></table><hr><a onclick="return xgo(1,event)"href=# style=cursor:pointer>ログインに戻る</a> <input id=createformargs name=urlargs type=hidden> <input id=createformcaptcha name=captchaargs type=hidden value={{{newAccountCaptcha}}}></form></div><div id=resetpanel style=display:none><form method=post><input type=hidden name=action value=resetaccount><div id=message3></div><div><b>アカウントのリセット</b></div><table><tr><td align=right width=100>Eメール：<td><input id=remail inputmode=email name=email maxlength=256 onchange=validateReset() onkeyup=validateReset(event)><tr><td colspan=2><div style=float:right><input id=eresetButton type=submit value=アカウントをリセット disabled></div><div id=passWarning style=padding-top:6px></div></table><hr><a onclick="return xgo(1,event)"href=# style=cursor:pointer>ログインに戻る</a> <input id=resetformargs name=urlargs type=hidden></form></div><div id=tokenpanel style=display:none><form method=post {{{autocomplete}}}=off><input type=hidden name=action value=tokenlogin> <input type=hidden name=hwstate value={{{hwstate}}}><div id=message4></div><table><tr><td align=right width=100>ログイントークン：<td><input id=tokenInput {{{autocomplete}}}=one-time-code inputmode=numeric name=token maxlength=50 onchange=checkToken(event) onpaste=checkToken(event) onkeyup=checkToken(event) onkeydown=checkToken(event)><br><input id=hwtokenInput name=hwtoken style=display:none><tr><td colspan=2 style=align-content:center><label id=tokenInputRememberLabel><input id=tokenInputRemember name=remembertoken type=checkbox><span id=tokenInputRememberSpan></span></label><tr><td colspan=2><div style=float:right><input id=tokenOkButton type=submit value=ログイン disabled></div><div style=float:right><input style=display:none;float:right id=securityKeyButton type=button value=セキュリティキーを使用 onclick=useSecurityKey(1)> <input style=display:none;float:right id=emailKeyButton type=button value=Eメール onclick=useEmailToken(1)> <input style=display:none;float:right id=smsKeyButton type=button value=SMS onclick=useSMSToken(1)> <input style=display:none;float:right id=msgKeyButton type=button value=Messaging onclick=useMsgToken(1)> <input style=display:none;float:right id=duoKeyButton type=button value=Duo onclick=useDuoToken(1)></div></table><hr><a onclick="return xgo(1,event)"href=# style=cursor:pointer>ログインに戻る</a> <input id=tokenformargs name=urlargs type=hidden></form></div><div id=resettokenpanel style=display:none><form method=post><input type=hidden name=action value=resetaccount><div id=message5></div><table><tr><td align=right width=100>ログイントークン：<td><input id=resetTokenInput name=token maxlength=50 onchange=resetCheckToken(event) onkeyup=resetCheckToken(event) onkeydown=resetCheckToken(event)> <input id=resetHwtokenInput name=hwtoken style=display:none><tr><td colspan=2><div style=float:right><input id=resetTokenOkButton type=submit value=ログイン disabled></div><div style=float:right><input style=display:none;float:right id=securityKeyButton2 type=button value=セキュリティキーを使用 onclick=useSecurityKey(2)> <input style=display:none;float:right id=emailKeyButton2 type=button value=Eメール onclick=useEmailToken(2)> <input style=display:none;float:right id=smsKeyButton2 type=button value=SMS onclick=useSMSToken(2)> <input style=display:none;float:right id=msgKeyButton2 type=button value=Messaging onclick=useMsgToken(2)> <input style=display:none;float:right id=duoKeyButton2 type=button value=Duo onclick=useDuoToken(2)></div></table><hr><a onclick="return xgo(1,event)"href=# style=cursor:pointer>ログインに戻る</a> <input id=resettokenformargs name=urlargs type=hidden></form></div><div id=resetpasswordpanel style=display:none;position:relative><form method=post><input type=hidden name=action value=resetpassword><div id=message6></div><div id=rpasswordPolicyCallout style=display:none></div><table><tr><td id=rnuPass1 width=100 align=right>パスワード：<td><input id=rapassword1 type=password name=rpassword1 {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(3,event) onkeyup=validatePassReset(3,event)><tr><td id=rnuPass2 align=right>パスワード：<td><input id=rapassword2 type=password name=rpassword2 {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(4,event) onkeyup=validatePassReset(4,event)><tr id=resetpasswordpanelHint style=display:none><td id=rnuHint align=right>パスワードのヒント：<td><input id=rapasswordhint name=rpasswordhint {{{autocomplete}}}=off maxlength=256 onkeydown=haltReturn(event) onchange=validatePassReset(5,event) onkeyup=validatePassReset(5,event)><tr><td colspan=2><div style=float:right><input id=resetPassButton type=submit value=パスワードを再設定する disabled></div><div id=rpassWarning style=padding-top:6px></div></table><hr><a onclick="return xgo(1,event)"href=# style=cursor:pointer>ログインに戻る</a> <input id=resetpasswordformargs name=urlargs type=hidden></form></div><div id=checkemailpanel style=display:none;position:relative><form method=post><input type=hidden name=action value=checkemail><div id=message7></div><table id=checkCheckOperations style=width:100%;display:none><tr><td><div id=unconfirmedEmail></div><br><tr><td><div><input id=changeEmailButton type=button value=メールアドレスを変更する onclick=changeEmailAddress()> <input id=checkEmailButton2 type=button value=確認メールを再送信 onclick=resentEmailConfirmation()> <input id=checkEmailButton type=submit style=display:none> <input id=checkEmailVal name=email type=hidden></div></table><hr><a onclick="return xgo(1,event)"href=# style=cursor:pointer>ログインに戻る</a> <input id=checkemailformargs name=urlargs type=hidden></form></div></table><br></div><div id=footer><div class=footer1>{{{footer}}}</div><div class=footer2>{{{rootCertLink}}} &nbsp;<a id=termsLinkFooter href=terms>利用規約とプライバシー</a></div></div></div><div id=dialog style=display:none><div id=dialogHeader><div id=id_dialogclose style=float:right;padding:5px;cursor:pointer onclick=setDialogMode()><b>バツ</b></div><div id=id_dialogtitle style=padding:5px></div><div style=width:100%;margin:6px></div></div><div id=dialogBody><div id=dialog1><div id=id_dialogMessage></div></div><div id=dialog2><div id=id_dialogOptions></div></div></div><div id=idx_dlgButtonBar><input id=idx_dlgCancelButton type=button value=キャンセル onclick=dialogclose(0)> <input id=idx_dlgOkButton type=button value=OK onclick=dialogclose(1)></div></div><script>var xxdialogMode,xxdialogFunc,xxdialogButtons,xxdialogTag,random="{{{randomlength}}}",passlogin="{{{passlogin}}}",passhint="{{{passhint}}}",loginMode="{{{loginmode}}}",newAccount="{{{newAccount}}}",newAccountPass=parseInt("{{{newAccountPass}}}"),newAccountCaptcha="{{{newAccountCaptcha}}}",emailCheck="{{{emailcheck}}}",passRequirements="{{{passRequirements}}}",hardwareKeyChallenge=decodeURIComponent("{{{hkey}}}"),passRequirementsEx=null!=(passRequirements=""!=passRequirements?JSON.parse(decodeURIComponent(passRequirements)):{}).min||null!=passRequirements.max||null!=passRequirements.upper||null!=passRequirements.lower||null!=passRequirements.numeric||null!=passRequirements.nonalpha,features=parseInt("{{{features}}}"),welcomeText=decodeURIComponent("{{{welcometext}}}"),currentpanel=0,uiMode=parseInt(getstore("uiMode","1")),webPageFullScreen=!0,nightMode="1"==getstore("_nightMode","0"),publicKeyCredentialRequestOptions=null,otpduo="true"===decodeURIComponent("{{{otpduo}}}"),otpemail="true"===decodeURIComponent("{{{otpemail}}}"),otpsms="true"===decodeURIComponent("{{{otpsms}}}"),otpmsg="true"===decodeURIComponent("{{{otpmsg}}}"),autofido="true"===decodeURIComponent("{{{autofido}}}"),twoFactorCookieDays=parseInt("{{{twoFactorCookieDays}}}"),authStrategies="{{{authStrategies}}}".split(","),tokenTimeout=parseInt("{{{tokenTimeout}}}");function startup(){var e=parseInt("{{{messageid}}}"),t=["","有効な場合、送信されたメールをリセットします。","メールを送信しました。","メールの確認が必要です。メールボックスを確認し、確認リンクをクリックしてください。","SMSを送信しました。","通知を送信しています...","Message sent."],n=["アカウントを作成できません。","アカウントの上限に達しました。","このメールアドレスを持つ既存のアカウント。","アカウント作成トークンが無効です。","ユーザー名は既に存在します。","パスワードが拒否されました。別のパスワードを使用してください。","無効なメール。","アカウントが見つかりませんでした。","トークンが無効です。もう一度お試しください。","メールを送信できません。","アカウントがロックされました。","アクセスが拒否されました。","ログインに失敗しました。ユーザー名とパスワードを確認してください。","パスワードの変更が要求されました。","IPアドレスがブロックされています。しばらくしてからもう一度お試しください。","メンテナンス中のサーバー。","デバイス通知を送信できません。","Invalid security check."];if(0<e){var a="";if(e<100&&e<t.length?a=t[e]:100<=e&&e-100<n.length&&(a=n[e-100]),""!=a)for(a=100<=e?'<span class="msg error"><b style=color:#8C001A>'+a+"<b></span><br /><br />":'<span class="msg success"><b>'+a+"</b></span><br /><br />",s=1;s<8;s++)QH("message"+s,a)}var o=JSON.parse("{{{flashErrors}}}");if(o&&0<o.length){for(var a="",s=0;s<o.length;s++)o[s]&&(a+='<span class="msg error"><b style=color:#8C001A>'+o[s]+"<b></span><br /><br />");QH("message1",a),QV("message1",!0)}t=parseUriArgs();if(t.key&&(Q("termsLinkFooter").href+="?key="+t.key),passlogin="true"==passlogin,1===t.passlogin&&(passlogin=!0),0===t.passlogin&&(passlogin=!1),QV("loginuserpassdiv",passlogin),QV("loginuserpasshr",passlogin),0<twoFactorCookieDays?(QV("tokenInputRememberLabel",!0),QH("tokenInputRememberSpan",format("このデバイスを{0}日間覚えてください。",twoFactorCookieDays))):QV("tokenInputRememberLabel",!1),0<window.location.href.indexOf("?")&&(n=window.location.href.substring(window.location.href.indexOf("?")),Q("loginformargs").value=n,Q("createformargs").value=n,Q("resetformargs").value=n,Q("tokenformargs").value=n,Q("resettokenformargs").value=n,Q("resetpasswordformargs").value=n,Q("checkemailformargs").value=n),0==(32&features)){t=null;try{t=top.location.toString().toLowerCase()}catch(e){}if(top!=self&&(null==t||0==top.active))return void(top.location=self.location)}if(2097152&features&&(QH("loginusername","Eメール："),QH("resetAccountSpan","パスワードをお忘れですか？"),QV("nuUserRow",!1)),nightMode&&QC("body").add("night"),QV("createPanelHint",!0===passRequirements.hint),QV("resetpasswordpanelHint",!0===passRequirements.hint),""!=authStrategies&&(QV("authStrategies",!0),0<=authStrategies.indexOf("twitter")&&QV("auth-twitter",!0),0<=authStrategies.indexOf("google")&&QV("auth-google",!0),0<=authStrategies.indexOf("github")&&QV("auth-github",!0),0<=authStrategies.indexOf("azure")&&QV("auth-azure",!0),0<=authStrategies.indexOf("oidc")&&QV("auth-oidc",!0),0<=authStrategies.indexOf("oidc-azure")&&QV("auth-oidc-azure",!0),0<=authStrategies.indexOf("oidc-google")&&QV("auth-oidc-google",!0),0<=authStrategies.indexOf("jumpcloud")&&QV("auth-jumpcloud",!0),0<=authStrategies.indexOf("intel")&&QV("auth-intel",!0),0<=authStrategies.indexOf("saml"))&&QV("auth-saml",!0),welcomeText?QH("welcomeText",welcomeText):QH("welcomeText",addTextLink("MeshCentral",Q("welcomeText").innerHTML,"http://www.meshcommander.com/meshcentral2")),QV("welcomeText",!0),(window.onresize=center)(),validateCreate(),0!=loginMode.length?go(parseInt(loginMode)):go(1),QV("newAccountDiv","1"===newAccount||"true"===newAccount),null!=passhint&&0<passhint.length&&QV("showPassHintLink",!0),QV("newAccountPass",1==newAccountPass),QV("newAccountCaptcha",""!=newAccountCaptcha),QV("newAccountCaptchaImg",""!=newAccountCaptcha),QV("resetAccountDiv","true"==emailCheck),QV("hrAccountDiv","true"==emailCheck||1==newAccountPass),"4"==loginMode){0<tokenTimeout&&setTimeout(function(){Q("hwtokenInput").value="**timeout**",QE("tokenOkButton",!0),Q("tokenOkButton").click()},tokenTimeout);try{hardwareKeyChallenge=0<hardwareKeyChallenge.length?JSON.parse(hardwareKeyChallenge):null}catch(e){hardwareKeyChallenge=null}var r=null!=hardwareKeyChallenge&&"webAuthn"==hardwareKeyChallenge.type;QV("securityKeyButton",r),QV("emailKeyButton",otpemail&&2!=e&&4!=e&&6!=e),QV("smsKeyButton",otpsms&&2!=e&&4!=e&&6!=e),QV("msgKeyButton",otpmsg&&2!=e&&4!=e&&6!=e),QV("duoKeyButton",otpduo&&2!=e&&4!=e&&6!=e),autofido&&r&&setTimeout(function(){useSecurityKey(1)},300)}if("5"==loginMode){0<tokenTimeout&&setTimeout(function(){Q("hwtokenInput").value="**timeout**",QE("tokenOkButton",!0),Q("tokenOkButton").click()},tokenTimeout);try{hardwareKeyChallenge=0<hardwareKeyChallenge.length?JSON.parse(hardwareKeyChallenge):null}catch(e){hardwareKeyChallenge=null}r=null!=hardwareKeyChallenge&&"webAuthn"==hardwareKeyChallenge.type;QV("securityKeyButton2",r),QV("emailKeyButton2",otpemail&&2!=e&&4!=e&&6!=e),QV("smsKeyButton2",otpsms&&2!=e&&4!=e&&6!=e),QV("msgKeyButton2",otpmsg&&2!=e&&4!=e&&6!=e),QV("duoKeyButton2",otpduo&&2!=e&&4!=e&&6!=e),autofido&&r&&setTimeout(function(){useSecurityKey(2)},300)}userInterfaceSelectMenu()}function useSecurityKey(t){if(null!=hardwareKeyChallenge&&"webAuthn"==hardwareKeyChallenge.type){"string"==typeof hardwareKeyChallenge.challenge&&(hardwareKeyChallenge.challenge=Uint8Array.from(atob(hardwareKeyChallenge.challenge),function(e){return e.charCodeAt(0)}).buffer),publicKeyCredentialRequestOptions={challenge:hardwareKeyChallenge.challenge,allowCredentials:[],timeout:hardwareKeyChallenge.timeout};for(var e=0;e<hardwareKeyChallenge.keyIds.length;e++)publicKeyCredentialRequestOptions.allowCredentials.push({id:Uint8Array.from(atob(hardwareKeyChallenge.keyIds[e]),function(e){return e.charCodeAt(0)}),type:"public-key",transports:["usb","ble","nfc","internal"]});navigator.credentials.get({publicKey:publicKeyCredentialRequestOptions}).then(function(e){e={id:btoa(String.fromCharCode.apply(null,new Uint8Array(e.rawId))),clientDataJSON:btoa(String.fromCharCode.apply(null,new Uint8Array(e.response.clientDataJSON))),userHandle:btoa(String.fromCharCode.apply(null,new Uint8Array(e.response.userHandle))),signature:btoa(String.fromCharCode.apply(null,new Uint8Array(e.response.signature))),authenticatorData:btoa(String.fromCharCode.apply(null,new Uint8Array(e.response.authenticatorData)))};1==t?(Q("hwtokenInput").value=JSON.stringify(e),QE("tokenOkButton",!0),Q("tokenOkButton").click()):2==t&&(Q("resetHwtokenInput").value=JSON.stringify(e),QE("resetTokenOkButton",!0),Q("resetTokenOkButton").click())},function(e){console.log("credentials-get error",e)})}}function useEmailToken(e){1==otpemail&&setDialogMode(1,"安全なログイン",3,useEmailKeyEx,"登録済みのメールアドレスにトークンを送信しますか？",e)}function useEmailKeyEx(e,t){1==t?(Q("hwtokenInput").value="**email**",QE("tokenOkButton",!0),Q("tokenOkButton").click()):2==t&&(Q("resetHwtokenInput").value="**email**",QE("resetTokenOkButton",!0),Q("resetTokenOkButton").click())}function useSMSToken(e){1==otpsms&&setDialogMode(1,"安全なログイン",3,useSMSTokenEx,"登録した電話番号にトークンを送信しますか？",e)}function useSMSTokenEx(e,t){1==t?(Q("hwtokenInput").value="**sms**",QE("tokenOkButton",!0),Q("tokenOkButton").click()):2==t&&(Q("resetHwtokenInput").value="**sms**",QE("resetTokenOkButton",!0),Q("resetTokenOkButton").click())}function useMsgToken(e){1==otpmsg&&setDialogMode(1,"安全なログイン",3,useMsgTokenEx,"Send token to messaging application?",e)}function useMsgTokenEx(e,t){1==t?(Q("hwtokenInput").value="**msg**",QE("tokenOkButton",!0),Q("tokenOkButton").click()):2==t&&(Q("resetHwtokenInput").value="**msg**",QE("resetTokenOkButton",!0),Q("resetTokenOkButton").click())}function useDuoToken(e){1==e?(Q("hwtokenInput").value="**duo**",QE("tokenOkButton",!0),Q("tokenOkButton").click()):2==e&&(Q("resetHwtokenInput").value="**duo**",QE("resetTokenOkButton",!0),Q("resetTokenOkButton").click())}function showPassHint(e){return messagebox("パスワードのヒント",passhint),haltEvent(e),!1}function xgo(e,t){return QV("message1",!1),QV("message2",!1),QV("message3",!1),QV("message4",!1),QV("message5",!1),QV("message6",!1),QV("message7",!1),go(e),haltEvent(t),!1}function go(e){currentpanel=e,setDialogMode(0),QV("showPassHintLink",!1),QV("loginpanel",1==e),QV("createpanel",2==e),QV("resetpanel",3==e),QV("tokenpanel",4==e),QV("resettokenpanel",5==e),QV("resetpasswordpanel",6==e),QV("checkemailpanel",7==e),1==e&&Q("username").focus(),2==e&&(2097152&features?Q("aemail"):Q("ausername")).focus(),3==e&&Q("remail").focus(),4==e&&Q("tokenInput").focus(),5==e&&Q("resetTokenInput").focus(),6==e&&Q("rapassword1").focus(),7==e&&(QH("unconfirmedEmail",passhint),QV("checkCheckOperations",""!=Q("unconfirmedEmail").innerHTML),QH("checkEmailVal",passhint))}function validateLogin(e,t){setTimeout(function(){setDialogMode(0),null!=t&&13==t.keyCode&&(1==e&&""!=Q("username").value?Q("password").focus():2==e&&""!=Q("password").value&&Q("loginButton").click()),null!=t&&haltEvent(t)},100)}function validateCreate(e,t){setDialogMode(0);var n=!1,n=!!(2097152&features)||0<Q("ausername").value.length&&-1==Q("ausername").value.indexOf(" ")&&-1==Q("ausername").value.indexOf('"')&&-1==Q("ausername").value.indexOf(","),a=1==validateEmail(Q("aemail").value),o=0<Q("apassword1").value.length,s=0<Q("apassword2").value.length&&Q("apassword2").value==Q("apassword1").value,r=0==newAccountPass||0<Q("anewaccountpass").value.length,l=""==newAccountCaptcha||0<Q("anewaccountcaptcha").value.length,u=n&&a&&o&&s&&r;QS("nuUser").color=n?"black":"#7b241c",QS("nuEmail").color=a?"black":"#7b241c",QS("nuPass1").color=o?"black":"#7b241c",QS("nuPass2").color=s?"black":"#7b241c",QS("nuToken").color=r?"black":"#7b241c",QS("nuCaptcha").color=l?"black":"#7b241c",""==Q("apassword1").value?(QH("passWarning",""),QV("passwordPolicyCallout",!1)):passRequirementsEx?0==checkPasswordRequirements(Q("apassword1").value,passRequirements)?(u=!1,QS("nuPass1").color="#7b241c",QS("nuPass2").color="#7b241c",QH("passWarning","<div style=color:red;cursor:pointer onclick=showPasswordPolicy()><b>パスワードポリシー</b><div>"),QV("passwordPolicyCallout",!0),QH("passwordPolicyCallout",passwordPolicyText(Q("apassword1").value))):(QH("passWarning",""),QV("passwordPolicyCallout",!1)):80<=(r=checkPasswordStrength(Q("apassword1").value))?QH("passWarning","<span style=color:green><b>強力なパスワード</b><span>"):60<=r?QH("passWarning","<span style=color:blue><b>良いパスワード</b><span>"):QH("passWarning","<span style=color:red><b>弱いパスワード</b><span>"),null!=t&&13==t.keyCode&&(1==e&&n&&Q("aemail").focus(),2==e&&a&&Q("apassword1").focus(),3==e&&o&&Q("apassword2").focus(),4==e&&s&&(!0===passRequirements.hint?Q("apasswordhint").focus():e=5),5==e&&(1==newAccountPass?Q("anewaccountpass").focus():e=6),6==e&&(""!=newAccountCaptcha?Q("anewaccountcaptcha").focus():e=7),7==e)&&Q("createButton").click(),null!=t&&haltEvent(t),QE("createButton",u)}function validatePassReset(e,t){setDialogMode(0);var n=0<Q("rapassword1").value.length,a=0<Q("rapassword2").value.length&&Q("rapassword2").value==Q("rapassword1").value,o=n&&a;QS("rnuPass1").color=n?"black":"#7b241c",QS("rnuPass2").color=a?"black":"#7b241c",""==Q("rapassword1").value?(QH("rpassWarning",""),QV("rpasswordPolicyCallout",!1)):passRequirementsEx?0==checkPasswordRequirements(Q("rapassword1").value,passRequirements)?(o=!1,QS("rnuPass1").color="#7b241c",QS("rnuPass2").color="#7b241c",QH("rpassWarning","<div style=color:red;cursor:pointer onclick=showPasswordPolicy()><b>パスワードポリシー</b><div>"),QV("rpasswordPolicyCallout",!0),QH("rpasswordPolicyCallout",passwordPolicyText(Q("rapassword1").value))):(QH("rpassWarning",""),QV("rpasswordPolicyCallout",!1)):80<=(n=checkPasswordStrength(Q("rapassword1").value))?QH("rpassWarning","<span style=color:green><b>強力なパスワード</b><span>"):60<=n?QH("rpassWarning","<span style=color:blue><b>良いパスワード</b><span>"):QH("rpassWarning","<span style=color:red><b>弱いパスワード</b><span>"),null!=t&&13==t.keyCode&&(2==e&&Q("rapassword1").focus(),3==e&&Q("rapassword2").focus(),4==e&&Q("rapasswordhint").focus(),6==e)&&Q("resetPassButton").click(),null!=t&&haltEvent(t),QE("resetPassButton",o)}function passwordPolicyText(e){var t="<div style=text-align:left>",n=strCount(e);return passRequirements.min&&(null==e||e.length<passRequirements.min)&&(t+=format("最小長{0}",passRequirements.min)+"<br />"),passRequirements.max&&(null==e||e.length>passRequirements.max)&&(t+=format("{0}の最大長",passRequirements.max)+"<br />"),passRequirements.upper&&(null==e||n.upper<passRequirements.upper)&&(t+=format("{0}大文字",passRequirements.upper)+"<br />"),passRequirements.lower&&(null==e||n.lower<passRequirements.lower)&&(t+=format("{0}小文字",passRequirements.lower)+"<br />"),passRequirements.numeric&&(null==e||n.numeric<passRequirements.numeric)&&(t+=format("{0}数値",passRequirements.numeric)+"<br />"),passRequirements.nonalpha&&(null==e||n.nonalpha<passRequirements.nonalpha)&&(t+=format("{0}英数字以外",passRequirements.nonalpha)+"<br />"),t+="</div>"}function showPasswordPolicy(){messagebox("パスワードポリシー",passwordPolicyText())}function validateReset(e){setDialogMode(0);var t=validateEmail(Q("remail").value);QE("eresetButton",t),null!=e&&13==e.keyCode&&1==t&&Q("eresetButton").click(),null!=e&&haltEvent(e)}function checkPasswordStrength(e){var t=0,n={},a=0,o={digits:/\d/.test(e),lower:/[a-z]/.test(e),upper:/[A-Z]/.test(e),nonWords:/\W/.test(e)};if(!e)return 0;for(var s,r=0;r<e.length;r++)n[e[r]]=(n[e[r]]||0)+1,t+=5/n[e[r]];for(s in o)a+=1==o[s]?1:0;return parseInt(t+10*(a-1))}function checkPasswordRequirements(e,t){return null==t||""==t||"object"!=typeof t||!(t.min&&e.length<t.min||t.max&&e.length>t.max||(e=strCount(e),t.numeric&&e.numeric<t.numeric)||t.lower&&e.lower<t.lower||t.upper&&e.upper<t.upper||t.nonalpha&&e.nonalpha<t.nonalpha)}function strCount(e){var t={numeric:0,lower:0,upper:0,nonalpha:0};if("string"==typeof e)for(var n=0;n<e.length;n++)/\d/.test(e[n])&&t.numeric++,/[a-z]/.test(e[n])&&t.lower++,/[A-Z]/.test(e[n])&&t.upper++,/\W/.test(e[n])&&t.nonalpha++;return t}function checkToken(){var e=Q("tokenInput").value,t=e.split(" ").join("");e!=t&&(Q("tokenInput").value=t),QE("tokenOkButton",6==Q("tokenInput").value.length||8==Q("tokenInput").value.length||44==Q("tokenInput").value.length)}function resetCheckToken(){var e=Q("resetTokenInput").value,t=e.split(" ").join("");e!=t&&(Q("resetTokenInput").value=t),QE("resetTokenOkButton",6==Q("resetTokenInput").value.length||8==Q("resetTokenInput").value.length||44==Q("resetTokenInput").value.length)}function changeEmailAddress(){setDialogMode(1,"メール確認",3,changeEmailAddressEx,addHtmlValue("Eメール",'<input id=dp1email style=width:230px maxlength=256 value="'+Q("unconfirmedEmail").innerHTML+'" {{{autocomplete}}}=off onchange=validateEmailAddress() onkeyup=validateEmailAddress() />')),validateEmailAddress()}function validateEmailAddress(){QE("idx_dlgOkButton",1==validateEmail(Q("dp1email").value))}function changeEmailAddressEx(){Q("checkEmailVal").value=Q("dp1email").value,QH("unconfirmedEmail",Q("dp1email").value),Q("checkEmailButton").click()}function resentEmailConfirmation(){Q("checkEmailVal").value=Q("unconfirmedEmail").innerHTML,Q("checkEmailButton").click()}var xxcurrentView=0;function setDialogMode(e,t,n,a,o,s){xxdialogMode=e,xxdialogFunc=a,xxdialogButtons=n,xxdialogTag=s,QE("idx_dlgOkButton",!0),QV("idx_dlgOkButton",1&n),QV("idx_dlgCancelButton",2&n),QV("id_dialogclose",2&n||8&n),QV("idx_dlgButtonBar",7&n),t&&QH("id_dialogtitle",t);for(var r=1;r<24;r++)QV("dialog"+r,r==e);QV("dialog",e),o&&(2==e?QH("id_dialogOptions",o):QH("id_dialogMessage",o))}function dialogclose(e){var t=xxdialogFunc,n=xxdialogButtons,a=xxdialogTag;setDialogMode(),(8&n||e)&&t&&t(e,a)}function toggleFullScreen(e){0==webPageFullScreen?QC("body").remove("fullscreen"):QC("body").add("fullscreen"),QV("body",!0),center()}function showUserInterfaceSelectMenu(){Q("uiViewButton1").classList.remove("uiSelectorSel"),Q("uiViewButton2").classList.remove("uiSelectorSel"),Q("uiViewButton3").classList.remove("uiSelectorSel");try{Q("uiViewButton"+uiMode).classList.add("uiSelectorSel")}catch(e){}QV("uiMenu","none"==QS("uiMenu").display),nightMode&&Q("uiViewButton4").classList.add("uiSelectorSel")}function userInterfaceSelectMenu(e){e&&putstore("uiMode",uiMode=e),webPageFullScreen=uiMode<3,toggleFullScreen(0)}function toggleNightMode(){(nightMode=!nightMode)?QC("body").add("night"):QC("body").remove("night"),putstore("_nightMode",nightMode?"1":"0")}function center(){var e;0==webPageFullScreen?QS("centralTable")["margin-top"]="":((e=Q("column_l").clientHeight/2-220)<0&&(e=0),QS("centralTable")["margin-top"]=e+"px")}function messagebox(e,t){QH("id_dialogMessage",t),setDialogMode(1,e,1)}function statusbox(e,t){QH("id_dialogMessage",t),setDialogMode(1,e)}function getDocWidth(){return window.innerWidth||(document.documentElement&&document.documentElement.clientWidth&&0!=document.documentElement.clientWidth?document.documentElement:document.getElementsByTagName("body")[0]).clientWidth}function haltEvent(e){return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1}function haltReturn(e){13==e.keyCode&&haltEvent(e)}function validateEmail(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}function putstore(e,t){try{"undefined"!=typeof localStorage&&localStorage.setItem(e,t)}catch(e){}}function getstore(e,t){try{var n;return"undefined"==typeof localStorage?t:null==(n=localStorage.getItem(e))?t:n}catch(e){return t}}function format(e){var n=Array.prototype.slice.call(arguments,1);return e.replace(/{(\d+)}/g,function(e,t){return void 0!==n[t]?n[t]:e})}function addTextLink(e,t,n){var a=t.toLowerCase().indexOf(e.toLowerCase());return-1==a?t:t.substring(0,a)+'<a href="'+n+'">'+e+"</a>"+t.substring(a+e.length)}function addHtmlValue(e,t){return"<table><td style=width:120px;text-align:left>"+e+"<td><b>"+t+"</b></table>"}</script>