anchor.diff:  begin
     FFormData := AFormData;
     POST(ABeforeExecute, AAfterExecute, AOnException);
  +end;
  +
  +procedure TMARSClientResourceFormData.PUT(const AFormData: TArray<TFormParam>;
  +  const ABeforeExecute: TProc<TMemoryStream>;
  +  const AAfterExecute: TMARSClientResponseProc;
  +  const AOnException: TMARSClientExecptionProc);
  +begin
  +  FFormData := AFormData;
  +  PUT(ABeforeExecute, AAfterExecute, AOnException);
  +end;
  +
  +procedure TMARSClientResourceFormData.PUT(
  +  const ABeforeExecute: TProc<TMemoryStream>;
  +  const AAfterExecute: TMARSClientResponseProc;
  +  const AOnException: TMARSClientExecptionProc);
  +var
  +  LResponseStream: TMemoryStream;
  +begin
  +  // inherited (!)
  +
  +  try
  +    BeforePUT(nil);
  +
  +    if Assigned(ABeforeExecute) then
  +      ABeforeExecute(nil);
  +
  +    LResponseStream := TMemoryStream.Create;
  +    try
  +      Client.Put(URL, FFormData, LResponseStream, AuthToken, Accept, ContentType);
  +
  +      AfterPUT(LResponseStream);
  +
  +      if Assigned(AAfterExecute) then
  +        AAfterExecute(LResponseStream);
  +    finally
  +      LResponseStream.Free;
  +    end;
  +  except
  +    on E:Exception do
  +    begin
  +      if Assigned(AOnException) then
  +        AOnException(E)
  +      else
  +        DoError(E, TMARSHttpVerb.Put, AAfterExecute);
  +    end;
  +  end;
   end;
   
   procedure TMARSClientResourceFormData.POST(
  
positive.code:       const ABeforeExecute: TProc<TMemoryStream>{$ifdef DelphiXE2_UP} = nil{$endif};
        const AAfterExecute: TMARSClientResponseProc{$ifdef DelphiXE2_UP} = nil{$endif};
        const AOnException: TMARSClientExecptionProc{$ifdef DelphiXE2_UP} = nil{$endif}); overload; virtual;
    published
      property FormData: TArray<TFormParam> read FFormData;
      property Response: TMemoryStream read FResponse;
      property ResponseAsString: string read GetResponseAsString;
    end;
  
negative.code:   FResponse.CopyFrom(AContent, 0);
  end;
  
  procedure TMARSClientResourceFormData.AfterPUT(const AContent: TStream);
  begin
    inherited;
    AContent.Position := 0;
    FResponse.Size := 0; // clear
    FResponse.CopyFrom(AContent, 0);
  end;
  
  constructor TMARSClientResourceFormData.Create(AOwner: TComponent);
  begin
    inherited;
  