NJsonSchema 11.6.1

NJsonSchema for .NET

NSwag | NJsonSchema | Apimundo | Namotion.Reflection

Azure DevOps Nuget Discord StackOverflow Wiki Apimundo

NJsonSchema is a .NET library to read, generate and validate JSON Schema draft v4+ schemas. The library can read a schema from a file or string and validate JSON data against it. A schema can also be generated from an existing .NET class. With the code generation APIs you can generate C# and TypeScript classes or interfaces from a schema.

The library uses Json.NET to read and write JSON data and Namotion.Reflection for additional .NET reflection APIs.

NuGet packages:

Preview NuGet Feed: https://www.myget.org/F/njsonschema/api/v3/index.json

Features:

NJsonSchema is heavily used in NSwag, a Swagger API toolchain for .NET which generates client code for Web API services. NSwag also provides command line tools to use the NJsonSchema's JSON Schema generator (command types2swagger).

The project is developed and maintained by Rico Suter and other contributors.

Some code generators can directly be used via the Apimundo service.

NJsonSchema usage

The JsonSchema class can be used as follows:

var schema = JsonSchema.FromType<Person>();
var schemaData = schema.ToJson();
var errors = schema.Validate("{...}");

foreach (var error in errors)
    Console.WriteLine(error.Path + ": " + error.Kind);

schema = await JsonSchema.FromJsonAsync(schemaData);

The Person class:

public class Person
{
    [Required]
    public string FirstName { get; set; }

    public string MiddleName { get; set; }

    [Required]
    public string LastName { get; set; }

    public Gender Gender { get; set; }

    [Range(2, 5)]
    public int NumberWithRange { get; set; }

    public DateTime Birthday { get; set; }

    public Company Company { get; set; }

    public Collection<Car> Cars { get; set; }
}

public enum Gender
{
    Male,
    Female
}

public class Car
{
    public string Name { get; set; }

    public Company Manufacturer { get; set; }
}

public class Company
{
    public string Name { get; set; }
}

The generated JSON schema data stored in the schemaData variable:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Person",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "FirstName",
    "LastName"
  ],
  "properties": {
    "FirstName": {
      "type": "string",
      "minLength": 1
    },
    "MiddleName": {
      "type": [
        "null",
        "string"
      ]
    },
    "LastName": {
      "type": "string",
      "minLength": 1
    },
    "Gender": {
      "$ref": "#/definitions/Gender"
    },
    "NumberWithRange": {
      "type": "integer",
      "format": "int32",
      "maximum": 5.0,
      "minimum": 2.0
    },
    "Birthday": {
      "type": "string",
      "format": "date-time"
    },
    "Company": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "$ref": "#/definitions/Company"
        }
      ]
    },
    "Cars": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/Car"
      }
    }
  },
  "definitions": {
    "Gender": {
      "type": "integer",
      "description": "",
      "x-enumNames": [
        "Male",
        "Female"
      ],
      "enum": [
        0,
        1
      ]
    },
    "Company": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": [
            "null",
            "string"
          ]
        }
      }
    },
    "Car": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": [
            "null",
            "string"
          ]
        },
        "Manufacturer": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "$ref": "#/definitions/Company"
            }
          ]
        }
      }
    }
  }
}

NJsonSchema.CodeGeneration usage

The NJsonSchema.CodeGeneration can be used to generate C# or TypeScript code from a JSON schema:

var generator = new CSharpGenerator(schema);
var file = generator.GenerateFile();

The file variable now contains the C# code for all the classes defined in the JSON schema.

TypeScript

The previously generated JSON Schema would generate the following TypeScript interfaces.

Settings:

new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Interface, TypeScriptVersion = 4.3m }

Output:

export enum Gender {
    Male = 0, 
    Female = 1, 
}

export interface Company {
    Name: string | undefined;
}

export interface Car {
    Name: string | undefined;
    Manufacturer: Company | undefined;
}

export interface Person {
    FirstName: string;
    MiddleName: string | undefined;
    LastName: string;
    Gender: Gender;
    NumberWithRange: number;
    Birthday: Date;
    Company: Company | undefined;
    Cars: Car[] | undefined;
}

... and the following TypeScript classes.

Settings:

new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, TypeScriptVersion = 4.3m }

Output:

export enum Gender {
    Male = 0, 
    Female = 1, 
}

export class Company implements ICompany {
    name: string | undefined;

    constructor(data?: ICompany) {
        if (data) {
            for (var property in data) {
                if (data.hasOwnProperty(property))
                    (<any>this)[property] = (<any>data)[property];
            }
        }
    }

    init(data?: any) {
        if (data) {
            this.name = data["Name"];
        }
    }

    static fromJS(data: any): Company {
        let result = new Company();
        result.init(data);
        return result;
    }

    toJSON(data?: any) {
        data = typeof data === 'object' ? data : {};
        data["Name"] = this.name;
        return data; 
    }
}

export interface ICompany {
    name: string | undefined;
}

export class Car implements ICar {
    name: string | undefined;
    manufacturer: Company | undefined;

    constructor(data?: ICar) {
        if (data) {
            for (var property in data) {
                if (data.hasOwnProperty(property))
                    (<any>this)[property] = (<any>data)[property];
            }
        }
    }

    init(data?: any) {
        if (data) {
            this.name = data["Name"];
            this.manufacturer = data["Manufacturer"] ? Company.fromJS(data["Manufacturer"]) : <any>undefined;
        }
    }

    static fromJS(data: any): Car {
        let result = new Car();
        result.init(data);
        return result;
    }

    toJSON(data?: any) {
        data = typeof data === 'object' ? data : {};
        data["Name"] = this.name;
        data["Manufacturer"] = this.manufacturer ? this.manufacturer.toJSON() : <any>undefined;
        return data; 
    }
}

export interface ICar {
    name: string | undefined;
    manufacturer: Company | undefined;
}

export class Person implements IPerson {
    firstName: string;
    middleName: string | undefined;
    lastName: string;
    gender: Gender;
    numberWithRange: number;
    birthday: Date;
    company: Company | undefined;
    cars: Car[] | undefined;

    constructor(data?: IPerson) {
        if (data) {
            for (var property in data) {
                if (data.hasOwnProperty(property))
                    (<any>this)[property] = (<any>data)[property];
            }
        }
    }

    init(data?: any) {
        if (data) {
            this.firstName = data["FirstName"];
            this.middleName = data["MiddleName"];
            this.lastName = data["LastName"];
            this.gender = data["Gender"];
            this.numberWithRange = data["NumberWithRange"];
            this.birthday = data["Birthday"] ? new Date(data["Birthday"].toString()) : <any>undefined;
            this.company = data["Company"] ? Company.fromJS(data["Company"]) : <any>undefined;
            if (data["Cars"] && data["Cars"].constructor === Array) {
                this.cars = [];
                for (let item of data["Cars"])
                    this.cars.push(Car.fromJS(item));
            }
        }
    }

    static fromJS(data: any): Person {
        let result = new Person();
        result.init(data);
        return result;
    }

    toJSON(data?: any) {
        data = typeof data === 'object' ? data : {};
        data["FirstName"] = this.firstName;
        data["MiddleName"] = this.middleName;
        data["LastName"] = this.lastName;
        data["Gender"] = this.gender;
        data["NumberWithRange"] = this.numberWithRange;
        data["Birthday"] = this.birthday ? this.birthday.toISOString() : <any>undefined;
        data["Company"] = this.company ? this.company.toJSON() : <any>undefined;
        if (this.cars && this.cars.constructor === Array) {
            data["Cars"] = [];
            for (let item of this.cars)
                data["Cars"].push(item.toJSON());
        }
        return data; 
    }
}

export interface IPerson {
    firstName: string;
    middleName: string | undefined;
    lastName: string;
    gender: Gender;
    numberWithRange: number;
    birthday: Date;
    company: Company | undefined;
    cars: Car[] | undefined;
}

NJsonSchema.SampleJsonSchemaGenerator usage

The NJsonSchema.SampleJsonSchemaGenerator can be used to generate a JSON Schema from sample JSON data:

JSON Schema Specification

By default, the NJsonSchema.SampleJsonSchemaGenerator generates a JSON Schema based on the JSON Schema specification. See: JSON Schema Specification

var generator = new SampleJsonSchemaGenerator(new SampleJsonSchemaGeneratorSettings());

var schema = generator.Generate("{...}");

Input:

{
  "int": 1,
  "float": 340282346638528859811704183484516925440.0,
  "str": "abc",
  "bool": true,
  "date": "2012-07-19",
  "datetime": "2012-07-19 10:11:11",
  "timespan": "10:11:11"
}

Output:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "int": {
      "type": "integer"
    },
    "float": {
      "type": "number"
    },
    "str": {
      "type": "string"
    },
    "bool": {
      "type": "boolean"
    },
    "date": {
      "type": "string",
      "format": "date"
    },
    "datetime": {
      "type": "string",
      "format": "date-time"
    },
    "timespan": {
      "type": "string",
      "format": "duration"
    }
  }
}

OpenApi Specification

To generate a JSON Schema for OpenApi, provide the SchemaType.OpenApi3 in the settings. See: OpenApi Specification

var generator = new SampleJsonSchemaGenerator(new SampleJsonSchemaGeneratorSettings { SchemaType = SchemaType.OpenApi3 });

var schema = generator.Generate("{...}");

Input:

{
  "int": 12345,
  "long": 1736347656630,
  "float": 340282346638528859811704183484516925440.0,
  "double": 340282346638528859811704183484516925440123456.0,
}

Output:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "int": {
      "type": "integer",
      "format": "int32"
    },
    "long": {
      "type": "integer",
      "format": "int64"
    },
    "float": {
      "type": "number",
      "format": "float"
    },
    "double": {
      "type": "number",
      "format": "double"
    }
  }
}

Final notes

Applications which use the library:

Showing the top 20 packages that depend on NJsonSchema.

Packages Downloads
NJsonSchema.Yaml
JSON Schema reader, generator and validator for .NET
15
NJsonSchema.Yaml
JSON Schema reader, generator and validator for .NET
14

.NET Framework 4.6.2

.NET 8.0

.NET Standard 2.0

Version Downloads Last updated
11.6.1 4 04/24/2026
11.6.0 4 04/12/2026
11.5.2 6 12/10/2025
11.5.1 8 11/03/2025
11.5.0 9 09/16/2025
11.4.0 10 08/14/2025
11.3.2 12 05/22/2025
11.3.1 12 05/23/2025
11.3.0 13 05/23/2025
11.2.0 12 05/23/2025
11.1.0 15 01/22/2025
11.0.2 14 02/20/2025
11.0.1 14 02/20/2025
11.0.0 13 02/20/2025
11.0.0-preview008 14 02/20/2025
11.0.0-preview007 14 02/20/2025
11.0.0-preview006 14 02/20/2025
11.0.0-preview005 14 02/20/2025
11.0.0-preview004 14 02/20/2025
11.0.0-preview003 14 02/20/2025
11.0.0-preview002 15 02/20/2025
11.0.0-preview001 14 02/20/2025
10.9.0 12 02/20/2025
10.8.0 14 02/20/2025
10.7.2 14 02/20/2025
10.7.1 14 02/20/2025
10.7.0 13 02/20/2025
10.6.10 14 02/20/2025
10.6.9 14 02/20/2025
10.6.8 12 02/20/2025
10.6.7 13 02/20/2025
10.6.6 14 02/20/2025
10.6.5 13 02/20/2025
10.6.4 14 02/20/2025
10.6.3 13 02/20/2025
10.6.2 14 02/20/2025
10.6.1 14 02/20/2025
10.6.0 14 02/20/2025
10.5.2 14 02/20/2025
10.5.1 14 02/20/2025
10.5.0 14 02/20/2025
10.4.6 14 02/20/2025
10.4.5 14 02/20/2025
10.4.4 14 02/20/2025
10.4.3 14 02/20/2025
10.4.2 14 02/20/2025
10.4.1 14 02/20/2025
10.4.0 14 02/20/2025
10.3.11 14 02/20/2025
10.3.10 15 02/20/2025
10.3.9 14 02/20/2025
10.3.8 14 02/20/2025
10.3.7 14 02/20/2025
10.3.6 14 02/20/2025
10.3.5 13 02/20/2025
10.3.4 13 02/20/2025
10.3.3 14 02/20/2025
10.3.2 14 02/20/2025
10.3.1 14 02/20/2025
10.3.0 14 02/20/2025
10.2.2 13 02/20/2025
10.2.1 15 02/20/2025
10.2.0 14 02/20/2025
10.1.26 14 02/20/2025
10.1.25 13 02/20/2025
10.1.24 14 02/20/2025
10.1.23 14 02/20/2025
10.1.22 14 02/20/2025
10.1.21 13 02/20/2025
10.1.20 15 02/20/2025
10.1.19 14 02/20/2025
10.1.18 14 02/20/2025
10.1.17 14 02/20/2025
10.1.16 13 02/20/2025
10.1.15 14 02/20/2025
10.1.14 14 02/20/2025
10.1.13 14 02/20/2025
10.1.12 14 02/20/2025
10.1.11 14 02/20/2025
10.1.10 14 02/20/2025
10.1.9 14 02/20/2025
10.1.8 13 02/20/2025
10.1.7 13 02/20/2025
10.1.6 14 02/20/2025
10.1.5 13 02/20/2025
10.1.4 14 02/20/2025
10.1.3 13 02/20/2025
10.1.2 14 02/20/2025
10.1.1 14 02/20/2025
10.1.0 14 02/20/2025
10.0.28 14 02/20/2025
10.0.27 14 02/20/2025
10.0.26 14 02/20/2025
10.0.25 14 02/20/2025
10.0.24 14 02/20/2025
10.0.23 14 02/20/2025
10.0.22 14 02/20/2025
10.0.21 14 02/20/2025
10.0.20 14 02/20/2025
10.0.19 14 02/20/2025
10.0.18 14 02/20/2025
10.0.17 13 02/20/2025
10.0.16 14 02/20/2025
10.0.15 14 02/20/2025
10.0.14 14 02/20/2025
10.0.13 15 02/20/2025
10.0.12 14 02/20/2025
10.0.11 14 02/20/2025
10.0.10 14 02/20/2025
10.0.9 14 02/20/2025
10.0.8 14 02/20/2025
10.0.7 14 02/20/2025
10.0.6 14 02/20/2025
10.0.5 14 02/20/2025
10.0.4 14 02/20/2025
10.0.3 14 02/20/2025
10.0.1 14 02/20/2025
10.0.0 14 02/20/2025
9.14.1 14 02/20/2025
9.14.0 14 02/20/2025
9.13.37 14 02/20/2025
9.13.36 14 02/20/2025
9.13.35 14 02/20/2025
9.13.34 13 02/20/2025
9.13.33 13 02/20/2025
9.13.32 13 02/20/2025
9.13.31 13 02/20/2025
9.13.30 13 02/20/2025
9.13.29 14 02/20/2025
9.13.28 13 02/20/2025
9.13.27 13 02/20/2025
9.13.26 14 02/20/2025
9.13.25 13 02/20/2025
9.13.24 14 02/20/2025
9.13.23 14 02/20/2025
9.13.22 14 02/20/2025
9.13.19 14 02/20/2025
9.13.18 14 02/20/2025
9.13.17 14 02/20/2025
9.13.16 14 02/20/2025
9.13.15 14 02/20/2025
9.13.14 14 02/20/2025
9.13.13 15 02/20/2025
9.13.12 14 02/20/2025
9.13.11 14 02/20/2025
9.13.10 14 02/20/2025
9.13.9 15 02/20/2025
9.13.8 14 02/20/2025
9.13.7 13 02/20/2025
9.13.5 14 02/20/2025
9.13.4 14 02/20/2025
9.13.3 14 02/20/2025
9.13.2 14 02/20/2025
9.13.1 14 02/20/2025
9.13.0 14 02/20/2025
9.12.7 14 02/20/2025
9.12.6 14 02/20/2025
9.12.5 14 02/20/2025
9.12.4 14 02/20/2025
9.12.3 14 02/20/2025
9.12.2 14 02/20/2025
9.12.1 14 02/20/2025
9.12.0 14 02/20/2025
9.11.1 14 02/20/2025
9.11.0 14 02/20/2025
9.10.75 14 02/20/2025
9.10.74 13 02/20/2025
9.10.73 13 02/20/2025
9.10.72 14 02/20/2025
9.10.71 13 02/20/2025
9.10.70 14 02/20/2025
9.10.69 13 02/20/2025
9.10.68 14 02/20/2025
9.10.67 14 02/20/2025
9.10.66 13 02/20/2025
9.10.65 13 02/20/2025
9.10.64 14 02/20/2025
9.10.63 13 02/20/2025
9.10.62 14 02/20/2025
9.10.61 13 02/20/2025
9.10.60 13 02/20/2025
9.10.59 13 02/20/2025
9.10.58 13 02/20/2025
9.10.57 13 02/20/2025
9.10.56 14 02/20/2025
9.10.55 14 02/20/2025
9.10.54 13 02/20/2025
9.10.53 13 02/20/2025
9.10.52 14 02/20/2025
9.10.51 14 02/20/2025
9.10.50 13 02/20/2025
9.10.49 15 02/20/2025
9.10.48 13 02/20/2025
9.10.47 13 02/20/2025
9.10.46 14 02/20/2025
9.10.45 14 02/20/2025
9.10.44 14 02/20/2025
9.10.43 14 02/20/2025
9.10.42 14 02/20/2025
9.10.41 13 02/20/2025
9.10.40 13 02/20/2025
9.10.39 13 02/20/2025
9.10.38 13 02/20/2025
9.10.37 14 02/20/2025
9.10.36 13 02/20/2025
9.10.35 14 02/20/2025
9.10.34 14 02/20/2025
9.10.33 13 02/20/2025
9.10.32 13 02/20/2025
9.10.31 13 02/20/2025
9.10.30 13 02/20/2025
9.10.29 14 02/20/2025
9.10.28 13 02/20/2025
9.10.27 13 02/20/2025
9.10.26 14 02/20/2025
9.10.25 13 02/20/2025
9.10.24 14 02/20/2025
9.10.23 14 02/20/2025
9.10.22 13 02/20/2025
9.10.21 14 02/20/2025
9.10.20 14 02/20/2025
9.10.19 14 02/20/2025
9.10.18 14 02/20/2025
9.10.17 14 02/20/2025
9.10.16 14 02/20/2025
9.10.15 13 02/20/2025
9.10.14 14 02/20/2025
9.10.13 14 02/20/2025
9.10.12 14 02/20/2025
9.10.11 14 02/20/2025
9.10.10 14 02/20/2025
9.10.9 14 02/20/2025
9.10.8 14 02/20/2025
9.10.7 14 02/20/2025
9.10.6 13 02/20/2025
9.10.5 15 02/20/2025
9.10.4 13 02/20/2025
9.10.3 14 02/20/2025
9.10.2 14 02/20/2025
9.10.1 14 02/20/2025
9.10.0 14 02/20/2025
9.9.17 13 02/20/2025
9.9.16 13 02/20/2025
9.9.15 13 02/20/2025
9.9.14 14 02/20/2025
9.9.13 13 02/20/2025
9.9.12 13 02/20/2025
9.9.11 14 02/20/2025
9.9.10 14 02/20/2025
9.9.9 14 02/20/2025
9.9.8 14 02/20/2025
9.9.7 14 02/20/2025
9.9.6 14 02/20/2025
9.9.5 14 02/20/2025
9.9.4 14 02/20/2025
9.9.3 14 02/20/2025
9.9.2 14 02/20/2025
9.9.1 14 02/20/2025
9.9.0 14 02/20/2025
9.8.3 14 02/20/2025
9.8.2 14 02/20/2025
9.8.1 14 02/20/2025
9.8.0 14 02/20/2025
9.7.7 14 02/20/2025
9.7.6 14 02/20/2025
9.7.5 14 02/20/2025
9.7.3 14 02/20/2025
9.7.2 14 02/20/2025
9.7.1 14 02/20/2025
9.7.0 14 02/20/2025
9.6.5 14 02/20/2025
9.6.4 14 02/20/2025
9.6.3 14 02/20/2025
9.6.2 13 02/20/2025
9.6.1 14 02/20/2025
9.6.0 14 02/20/2025
9.5.4 14 02/20/2025
9.5.3 14 02/20/2025
9.5.2 14 02/20/2025
9.5.1 14 02/20/2025
9.5.0 14 02/20/2025
9.4.10 14 02/20/2025
9.4.9 14 02/20/2025
9.4.8 14 02/20/2025
9.4.7 14 02/20/2025
9.4.6 13 02/20/2025
9.4.5 14 02/20/2025
9.4.4 13 02/20/2025
9.4.3 14 02/20/2025
9.4.2 14 02/20/2025
9.4.1 14 02/20/2025
9.4.0 14 02/20/2025
9.3.2 14 02/20/2025
9.3.1 14 02/20/2025
9.3.0 14 02/20/2025
9.2.5 14 02/20/2025
9.2.4 14 02/20/2025
9.2.3 14 02/20/2025
9.2.2 14 02/20/2025
9.2.1 14 02/20/2025
9.2.0 14 02/20/2025
9.1.13 14 02/20/2025
9.1.12 14 02/20/2025
9.1.11 14 02/20/2025
9.1.10 14 02/20/2025
9.1.9 14 02/20/2025
9.1.8 14 02/20/2025
9.1.7 14 02/20/2025
9.1.6 14 02/20/2025
9.1.5 14 02/20/2025
9.1.4 14 02/20/2025
9.1.3 14 02/20/2025
9.1.2 13 02/20/2025
9.1.1 14 02/20/2025
9.1.0 15 02/20/2025
9.0.0 14 02/20/2025
8.34.6331.29178 13 02/20/2025
8.33.6323.36213 13 02/20/2025
8.32.6319.16936 13 02/20/2025
8.31.6318.20479 13 02/20/2025
8.30.6304.31883 13 02/20/2025
8.29.6304.29574 15 02/20/2025
8.28.6304.29303 13 02/20/2025
8.27.6302.16041 13 02/20/2025
8.26.6300.23786 13 02/20/2025
8.25.6298.25721 13 02/20/2025
8.24.6298.12169 14 02/20/2025
8.23.6298.10815 13 02/20/2025
8.22.6296.25100 13 02/20/2025
8.21.6296.23959 13 02/20/2025
8.20.6296.23138 13 02/20/2025
8.19.6295.40470 13 02/20/2025
8.18.6295.39644 13 02/20/2025
8.17.6295.16496 13 02/20/2025
8.16.6295.13527 13 02/20/2025
8.15.6294.28815 13 02/20/2025
8.14.6289.34345 14 02/20/2025
8.13.6288.31182 13 02/20/2025
8.12.6288.29353 14 02/20/2025
8.11.6284.26855 13 02/20/2025
8.10.6282.29572 13 02/20/2025
8.9.6275.22295 12 02/20/2025
8.8.6270.12833 13 02/20/2025
8.7.6267.38130 13 02/20/2025
8.6.6263.34621 13 02/20/2025
8.5.6255.20253 14 02/20/2025
8.4.6254.24648 13 02/20/2025
8.3.6252.27806 13 02/20/2025
8.2.6249.40688 13 02/20/2025
8.1.6249.15627 13 02/20/2025
8.0.6242.20238 13 02/20/2025
7.10.6235.25398 13 02/20/2025
7.9.6234.40167 13 02/20/2025
7.8.6234.39143 13 02/20/2025
7.7.6231.35489 13 02/20/2025
7.6.6221.22528 14 02/20/2025
7.5.6218.39574 13 02/20/2025
7.4.6218.34172 13 02/20/2025
7.3.6214.20986 13 02/20/2025
7.2.6206.27034 14 02/20/2025
7.1.6203.28289 13 02/20/2025
7.0.6201.32793 13 02/20/2025
6.8.6197.43075 13 02/20/2025
6.7.6197.28471 13 02/20/2025
6.6.6192.39835 13 02/20/2025
6.5.6190.16910 14 02/20/2025
6.4.6189.32875 14 02/20/2025
6.3.6185.19861 13 02/20/2025
6.2.6179.20107 14 02/20/2025
6.1.6179.17509 13 02/20/2025
6.0.6178.42031 13 02/20/2025
5.20.6175.31167 14 02/20/2025
5.19.6171.28316 13 02/20/2025
5.18.6170.22062 13 02/20/2025
5.17.6169.42629 13 02/20/2025
5.16.6156.29215 13 02/20/2025
5.15.6154.34583 13 02/20/2025
5.14.6153.20987 13 02/20/2025
5.13.6150.21322 14 02/20/2025
5.12.6149.949 12 02/20/2025
5.11.6148.42451 13 02/20/2025
5.10.6148.26188 13 02/20/2025
5.9.6144.17989 14 02/20/2025
5.8.6143.37541 14 02/20/2025
5.7.6142.39228 14 02/20/2025
5.6.6142.18206 13 02/20/2025
5.5.6138.25614 14 02/20/2025
5.5.6138.25231 13 02/20/2025
5.4.6138.25088 14 02/20/2025
5.4.6138.24413 15 02/20/2025
5.3.6137.40406 13 02/20/2025
5.2.6135.25892 13 02/20/2025
5.1.6130.30069 13 02/20/2025
5.0.6130.17623 13 02/20/2025
4.28.6128.27588 13 02/20/2025
4.27.6128.21479 13 02/20/2025
4.26.6123.28532 13 02/20/2025
4.25.6122.24179 13 02/20/2025
4.24.6122.15983 14 02/20/2025
4.23.6120.19206 13 02/20/2025
4.22.6120.18407 13 02/20/2025
4.21.6119.18328 13 02/20/2025
4.20.6119.18035 13 02/20/2025
4.19.6118.22551 13 02/20/2025
4.18.6117.31903 13 02/20/2025
4.17.6115.27875 13 02/20/2025
4.16.6115.26709 13 02/20/2025
4.15.6113.36675 14 02/20/2025
4.14.6108.28115 14 02/20/2025
4.13.6107.31015 13 02/20/2025
4.12.6103.41721 14 02/20/2025
4.11.6103.32935 13 02/20/2025
4.10.6103.22760 13 02/20/2025
4.9.6102.40549 13 02/20/2025
4.8.6094.34027 13 02/20/2025
4.7.6093.32380 13 02/20/2025
4.6.6093.13919 13 02/20/2025
4.5.6091.37159 13 02/20/2025
4.4.6091.25564 13 02/20/2025
4.3.6089.14049 13 02/20/2025
4.2.6085.38782 13 02/20/2025
4.1.6075.30950 13 02/20/2025
4.0.6074.30968 13 02/20/2025
3.4.6065.33501 13 02/20/2025
3.3.6061.16591 13 02/20/2025
3.2.6060.41150 13 02/20/2025
3.1.6058.33392 12 02/20/2025
3.0.6058.19297 13 02/20/2025
2.65.6055.39156 13 02/20/2025
2.64.6055.38772 13 02/20/2025
2.62.6049.40362 14 02/20/2025
2.61.6047.40644 13 02/20/2025
2.60.6043.38307 13 02/20/2025
2.59.6040.32732 13 02/20/2025
2.58.6038.30299 13 02/20/2025
2.57.6037.28393 13 02/20/2025
2.56.6036.39820 13 02/20/2025
2.55.6036.31332 13 02/20/2025
2.54.6032.25763 13 02/20/2025
2.53.6030.34284 13 02/20/2025
2.52.6030.13790 13 02/20/2025
2.51.6022.22786 13 02/20/2025
2.50.6019.27727 13 02/20/2025
2.49.6019.25463 13 02/20/2025
2.48.6012.40848 13 02/20/2025
2.47.6012.36609 13 02/20/2025
2.46.6012.18623 13 02/20/2025
2.45.6011.39984 13 02/20/2025
2.44.6011.37467 13 02/20/2025
2.43.6010.35600 13 02/20/2025
2.41.6006.20160 13 02/20/2025
2.40.6005.16496 13 02/20/2025
2.39.6004.37509 13 02/20/2025
2.38.6002.31137 13 02/20/2025
2.37.6002.13677 14 02/20/2025
2.36.6001.31066 13 02/20/2025
2.35.6000.32415 13 02/20/2025
2.34.6000.31959 13 02/20/2025
2.33.6000.30327 12 02/20/2025
2.32.6000.24907 13 02/20/2025
2.31.5998.34796 14 02/20/2025
2.30.5998.28512 13 02/20/2025
2.29.5997.39527 13 02/20/2025
2.28.5997.37671 13 02/20/2025
2.27.5995.31644 13 02/20/2025
2.26.5992.40823 13 02/20/2025
2.25.5989.40403 13 02/20/2025
2.24.5988.28092 13 02/20/2025
2.23.5984.32960 13 02/20/2025
2.22.5984.16716 13 02/20/2025
2.21.5981.35957 13 02/20/2025
2.20.5981.32981 12 02/20/2025
2.19.5978.21534 13 02/20/2025
2.18.5976.28450 13 02/20/2025
2.17.5976.27663 14 02/20/2025
2.16.5975.38441 13 02/20/2025
2.15.5970.28125 13 02/20/2025
2.14.5967.31319 13 02/20/2025
2.13.5966.35759 13 02/20/2025
2.12.5965.33914 13 02/20/2025
2.11.5963.474 13 02/20/2025
2.10.5958.25556 13 02/20/2025
2.9.5956.34078 13 02/20/2025
2.8.5956.13680 13 02/20/2025
2.7.5954.13235 14 02/20/2025
2.6.5946.13963 13 02/20/2025
2.5.5941.14558 14 02/20/2025
2.4.5940.38662 13 02/20/2025
2.3.5940.24969 13 02/20/2025
2.2.5940.22487 13 02/20/2025
2.1.5940.20329 13 02/20/2025
2.0.5928.2914 12 02/20/2025
1.39.5923.31343 13 02/20/2025
1.38.5920.30379 13 02/20/2025
1.37.5912.16399 13 02/20/2025
1.36.5908.3838 13 02/20/2025
1.35.5908.509 12 02/20/2025
1.34.5905.41329 13 02/20/2025
1.32.5904.40563 13 02/20/2025
1.31.5892.26482 13 02/20/2025
1.30.5878.31384 13 02/20/2025
1.29.5875.38535 13 02/20/2025
1.29.5875.38248 13 02/20/2025
1.29.5875.36302 13 02/20/2025
1.28.5872.19133 13 02/20/2025
1.27.5865.35296 13 02/20/2025
1.26.5864.35160 14 02/20/2025
1.25.5861.38102 13 02/20/2025
1.24.5858.29180 13 02/20/2025
1.23.5856.30577 13 02/20/2025
1.22.5836.1197 13 02/20/2025
1.21.5834.30412 13 02/20/2025
1.21.5831.34290 13 02/20/2025
1.21.5830.29524 13 02/20/2025
1.20.5829.20854 13 02/20/2025
1.20.5829.15818 13 02/20/2025
1.19.5828.20063 13 02/20/2025
1.19.5827.22433 13 02/20/2025
1.19.5824.3255 13 02/20/2025
1.18.5822.14857 13 02/20/2025
1.18.5821.36806 13 02/20/2025
1.17.5820.28487 13 02/20/2025
1.16.5820.27108 13 02/20/2025
1.15.5812.25745 13 02/20/2025
1.14.5811.24407 14 02/20/2025
1.13.5811.23634 13 02/20/2025
1.12.5801.29458 13 02/20/2025
1.11.5799.31777 12 02/20/2025
1.10.5779.31942 13 02/20/2025
1.9.5778.39697 13 02/20/2025
1.9.5778.38903 13 02/20/2025
1.9.5778.31077 13 02/20/2025
1.8.5777.37128 13 02/20/2025
1.8.5775.25809 13 02/20/2025
1.7.5770.30722 14 02/20/2025
1.6.5769.33301 12 02/20/2025
1.6.5765.33542 13 02/20/2025
1.6.5763.16697 13 02/20/2025
1.6.5760.32685 13 02/20/2025
1.6.5759.33134 13 02/20/2025
1.6.5758.30931 13 02/20/2025
1.6.5757.40238 13 02/20/2025
1.6.5751.15394 13 02/20/2025
1.5.5750.33915 13 02/20/2025
1.5.5750.33435 13 02/20/2025
1.4.5737.33581 13 02/20/2025
1.4.5732.34143 13 02/20/2025
1.4.5731.36729 13 02/20/2025
1.3.5731.34877 13 02/20/2025
1.2.5730.33570 13 02/20/2025
1.1.5729.33707 13 02/20/2025
1.0.5725.35303 13 02/20/2025
0.2.5707.34168 13 02/20/2025
0.2.5707.33649 13 02/20/2025
0.1.5585.25897 13 02/20/2025
0.1.5582.28800 14 02/20/2025
0.1.5524.6071 13 02/20/2025
0.1.5504.31964 13 02/20/2025
0.1.5494.16128 13 02/20/2025
0.1.5492.33014 13 02/20/2025
0.1.5479.38772 13 02/20/2025
0.1.5477.39622 13 02/20/2025
0.1.5477.36883 13 02/20/2025
0.1.5471.22558 13 02/20/2025
0.1.5470.42846 13 02/20/2025
0.1.5470.35375 13 02/20/2025
0.1.5470.35079 13 02/20/2025