public UniRx.IObservable <bool> DumpAutoLogin(string filename)
            {
                return(Observable.Range(0, 1)
                       .Select(_ => {
                    if (context.accept_equip == null)
                    {
                        throw new System.MissingFieldException("context", "accept_equip");
                    }

                    var body = new AutoLoginFile();
                    body.token = context.token;

                    using (var rsa = new System.Security.Cryptography.RSACryptoServiceProvider()) {
                        rsa.FromXmlString(context.public_key);
                        var encrypted = rsa.Encrypt(context.token_time.ToString());
                        body.password = Convert.ToBase64String(encrypted);
                    }
                    var json = Newtonsoft.Json.JsonConvert.SerializeObject(body);
                    var pbkdf = new Rfc2898DeriveBytes(json, SecureHelper.APP_SALT.GetByte(Convert.FromBase64String), 3483);
                    body.signature = Convert.ToBase64String(pbkdf.GetBytes(256));
                    JsonDB db = new JsonDB("account");
                    var obj = JToken.FromObject(body);
                    db.Put(filename, obj);
                    return true;
                }));
            }
            UniRx.IObservable <Net.HTTPResult> LoginAsAuto(AccountLoginParam argc)
            {
                return(Observable.Range(0, 1)
                       .SelectMany(_ => {
                    JsonDB db = new JsonDB("account");
                    var obj = db.Get(argc.extension);
                    if (obj.Type == JTokenType.Null)
                    {
                        throw new Sas.Exception(Sas.ERRNO.LOCAL_HOST_NOT_FIND_EXIST.ToErrCode());
                    }

                    AutoLoginFile body = obj.ToObject <AutoLoginFile> ();
                    ;
                    var hashed = body.signature;
                    body.signature = null;

                    var json = Newtonsoft.Json.JsonConvert.SerializeObject(body);
                    var pbkdf = new Rfc2898DeriveBytes(json, SecureHelper.APP_SALT.GetByte(Convert.FromBase64String), 3483);
                    var signature = Convert.ToBase64String(pbkdf.GetBytes(256));
                    if (!string.Equals(signature, hashed))
                    {
                        throw new Sas.Exception(Sas.ERRNO.LOCAL_HOST_SIGNATURE_ERR.ToErrCode());
                    }

                    var param = new AccountLoginReqParam();
                    param.sns = SNS.AUTO.GetHashCode();
                    param.token = Convert.FromBase64String(body.password);
                    var inst = context.requester.Post(context.server + "/Account/LoginAuto");
                    inst.mReq.Headers.Add("sas-accesstoken", body.token);
                    return inst.Invoke(JObject.FromObject(param));
                }));
            }