code: func (inst *Instagram) Login() error {
  	err := inst.readMsisdnHeader()
  	if err != nil {
  		return err
  	}
  
  	err = inst.syncFeatures()
  	if err != nil {
  		return err
  	}
  
  	err = inst.zrToken()
  	if err != nil {
  		return err
  	}
  
  	err = inst.sendAdID()
  	if err != nil {
  		return err
  	}
  
  	err = inst.contactPrefill()
  	if err != nil {
  		return err
  	}
  
  	result, err := json.Marshal(
  		map[string]interface{}{
  			"guid":                inst.uuid,
  			"login_attempt_count": 0,
  			"_csrftoken":          inst.token,
  			"device_id":           inst.dID,
  			"adid":                inst.adid,
  			"phone_id":            inst.pid,
  			"username":            inst.user,
  			"password":            inst.pass,
  			"google_tokens":       "[]",
  		},
  	)
  	if err != nil {
  		return err
  	}
  	body, err := inst.sendRequest(
  		&reqOptions{
  			Endpoint: urlLogin,
  			Query:    generateSignature(b2s(result)),
  			IsPost:   true,
  			Login:    true,
  		},
  	)
  	if err != nil {
  		return err
  	}
  	inst.pass = ""
  
  	// getting account data
  	res := accountResp{}
  	err = json.Unmarshal(body, &res)
  	if err != nil {
  		return err
  	}
  
  	inst.Account = &res.Account
  	inst.Account.inst = inst
  	inst.rankToken = strconv.FormatInt(inst.Account.ID, 10) + "_" + inst.uuid
  	inst.zrToken()
  
  	return err
  }
docs: // Login performs instagram login.
  //
  // Password will be deleted after login