anchor.diff:      Class Function MinimumTarget(protocol_version : Integer): Cardinal;
       Class Function ResetTarget(current_target : Cardinal; protocol_version : Integer): Cardinal;
       Class Function GetRewardForNewLine(line_index: Cardinal): UInt64;
  +    Class Function CalcTotalBalance(ABlockCount : Cardinal): Int64;
       Class Function TargetToCompact(target: TRawBytes; protocol_version : Integer): Cardinal;
       Class Function TargetFromCompact(encoded: Cardinal; protocol_version : Integer): TRawBytes;
       Class Function GetNewTarget(vteorical, vreal: Cardinal; protocol_version : Integer; isSlowMovement : Boolean; Const actualTarget: TRawBytes): TRawBytes;
  
positive.code:     FWorkSum := LOpBl.accumulatedWork;
    end else FCurrentProtocol := CT_PROTOCOL_1;
    FSafeBoxHash := CalcSafeBoxHash;
  end;
  
  procedure TPCSafeBox.SaveCheckpointing(ACheckpointingSafeboxFileName : String);
  
negative.code:   end;
  end;
  
  class function TPascalCoinProtocol.CalcTotalBalance(ABlockCount: Cardinal): Int64;
  var LCurrReward : Int64;
    LNextBlock : Integer;
  begin
    LCurrReward := CT_FirstReward;
    LNextBlock := CT_NewLineRewardDecrease;
    Result := 0;
    while (LNextBlock < ABlockCount) do begin
      inc(Result, Int64(CT_NewLineRewardDecrease * LCurrReward));
      LCurrReward := LCurrReward DIV 2;
      inc(LNextBlock,CT_NewLineRewardDecrease);
    end;
    inc(Result, Int64(Int64(ABlockCount MOD CT_NewLineRewardDecrease) * LCurrReward));
  end;
  
  class function TPascalCoinProtocol.AllowUseHardcodedRandomHashTable(
    const AHardcodedFileName: String;
    const AHardcodedSha256Value: TRawBytes): Boolean;
  