NJsonSchema.CodeGeneration 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.CodeGeneration.

Packages Downloads
NJsonSchema.CodeGeneration.TypeScript
JSON Schema reader, generator and validator for .NET
59
NJsonSchema.CodeGeneration.TypeScript
JSON Schema draft v4 reader, generator and validator for .NET
59
NSwag.Commands
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
57
NSwag.Commands
NSwag: The Swagger API toolchain for .NET and TypeScript
56
NJsonSchema.CodeGeneration.TypeScript
JSON Schema draft v4 reader, generator and validator for .NET
56
NJsonSchema.CodeGeneration.TypeScript
JSON Schema reader, generator and validator for .NET
56
NSwag.Commands
NSwag: The Swagger API toolchain for .NET and TypeScript
54
NSwag.CodeGeneration.CSharp
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
54
NSwag.CodeGeneration.TypeScript
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
54
NSwag.Commands
NSwag: The Swagger API toolchain for .NET and TypeScript
53
NSwag.Commands
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
53
NJsonSchema.CodeGeneration.TypeScript
JSON Schema reader, generator and validator for .NET
53
NJsonSchema.CodeGeneration.TypeScript
JSON Schema draft v4 reader, generator and validator for .NET
53
NSwag.CodeGeneration
NSwag: The Swagger API toolchain for .NET and TypeScript
52
NJsonSchema.CodeGeneration.TypeScript
JSON Schema reader, generator and validator for .NET
52

.NET Framework 4.6.2

.NET 8.0

.NET Standard 2.0

Version Downloads Last updated
11.6.1 48 04/21/2026
11.6.0 26 04/08/2026
11.5.2 34 12/21/2025
11.5.1 34 12/21/2025
11.5.0 34 12/21/2025
11.4.0 43 12/21/2025
11.3.2 31 12/23/2025
11.3.1 37 12/20/2025
11.3.0 43 12/23/2025
11.2.0 24 12/21/2025
11.1.0 44 12/22/2025
11.0.2 38 01/01/2026
11.0.1 36 01/01/2026
11.0.0 33 12/18/2025
11.0.0-preview008 39 12/13/2025
11.0.0-preview007 44 12/21/2025
11.0.0-preview006 42 12/21/2025
11.0.0-preview005 28 12/21/2025
11.0.0-preview004 33 12/13/2025
11.0.0-preview003 34 12/13/2025
11.0.0-preview002 7 09/28/2026
11.0.0-preview001 4 09/28/2026
10.9.0 4 10/16/2026
10.8.0 33 12/14/2025
10.7.2 27 12/22/2025
10.7.1 29 12/21/2025
10.7.0 30 01/08/2026
10.6.10 36 12/21/2025
10.6.9 32 12/20/2025
10.6.8 2 10/19/2026
10.6.7 3 09/28/2026
10.6.6 4 09/28/2026
10.6.5 5 09/30/2026
10.6.4 1 10/25/2026
10.6.3 6 09/29/2026
10.6.2 0 10/22/2026
10.6.1 6 10/05/2026
10.6.0 42 01/03/2026
10.5.2 36 12/21/2025
10.5.1 27 12/23/2025
10.5.0 40 12/24/2025
10.4.6 4 10/27/2026
10.4.5 35 12/13/2025
10.4.4 36 01/11/2026
10.4.3 27 12/23/2025
10.4.2 37 01/01/2026
10.4.1 43 12/13/2025
10.4.0 34 12/16/2025
10.3.11 28 12/13/2025
10.3.10 5 09/28/2026
10.3.9 25 12/12/2025
10.3.8 24 12/31/2025
10.3.7 2 10/24/2026
10.3.6 29 12/11/2025
10.3.5 1 10/27/2026
10.3.4 5 09/28/2026
10.3.3 37 12/15/2025
10.3.2 39 12/22/2025
10.3.1 30 12/22/2025
10.3.0 34 12/23/2025
10.2.2 36 12/23/2025
10.2.1 3 10/21/2026
10.2.0 24 12/15/2025
10.1.26 44 12/13/2025
10.1.25 23 12/22/2025
10.1.24 3 10/01/2026
10.1.23 31 12/19/2025
10.1.22 11 10/20/2026
10.1.21 6 10/15/2026
10.1.20 30 12/21/2025
10.1.19 41 12/15/2025
10.1.18 35 12/21/2025
10.1.17 44 12/21/2025
10.1.16 4 10/20/2026
10.1.15 30 12/13/2025
10.1.14 8 09/28/2026
10.1.13 37 12/21/2025
10.1.12 34 12/21/2025
10.1.11 6 10/02/2026
10.1.10 27 12/21/2025
10.1.9 44 12/15/2025
10.1.8 24 12/20/2025
10.1.7 34 01/01/2026
10.1.6 25 12/23/2025
10.1.5 3 09/30/2026
10.1.4 36 01/11/2026
10.1.3 37 12/23/2025
10.1.2 30 12/22/2025
10.1.1 33 12/15/2025
10.1.0 24 12/22/2025
10.0.28 38 12/21/2025
10.0.27 31 12/21/2025
10.0.26 32 12/21/2025
10.0.25 2 10/22/2026
10.0.24 27 12/21/2025
10.0.23 28 12/12/2025
10.0.22 26 12/21/2025
10.0.21 33 12/21/2025
10.0.20 39 12/17/2025
10.0.19 7 10/21/2026
10.0.18 28 12/13/2025
10.0.17 7 10/14/2026
10.0.16 7 09/28/2026
10.0.15 5 10/15/2026
10.0.14 39 12/16/2025
10.0.13 34 12/21/2025
10.0.12 34 12/16/2025
10.0.11 24 12/21/2025
10.0.10 3 09/28/2026
10.0.9 1 10/28/2026
10.0.8 36 01/01/2026
10.0.7 39 12/23/2025
10.0.6 0 05/26/2019
10.0.5 21 12/22/2025
10.0.4 34 01/11/2026
10.0.3 27 12/23/2025
10.0.1 36 12/23/2025
10.0.0 26 12/13/2025
9.14.1 6 09/28/2026
9.14.0 7 10/04/2026
9.13.37 36 12/21/2025
9.13.36 25 12/21/2025
9.13.35 29 12/15/2025
9.13.34 32 12/21/2025
9.13.33 30 12/21/2025
9.13.32 0 04/18/2019
9.13.31 3 10/20/2026
9.13.30 46 12/21/2025
9.13.29 41 12/21/2025
9.13.28 32 12/21/2025
9.13.27 2 10/17/2026
9.13.26 6 10/22/2026
9.13.25 5 09/28/2026
9.13.24 3 09/29/2026
9.13.23 39 12/21/2025
9.13.22 2 09/30/2026
9.13.19 36 12/21/2025
9.13.18 23 12/21/2025
9.13.17 35 12/15/2025
9.13.16 5 10/22/2026
9.13.15 37 12/21/2025
9.13.14 2 10/25/2026
9.13.13 40 12/14/2025
9.13.12 39 12/11/2025
9.13.11 35 12/21/2025
9.13.10 24 12/21/2025
9.13.9 24 01/11/2026
9.13.8 25 12/22/2025
9.13.7 35 12/11/2025
9.13.5 7 10/22/2026
9.13.4 30 12/30/2025
9.13.3 34 12/21/2025
9.13.2 45 12/16/2025
9.13.1 30 12/21/2025
9.13.0 30 12/15/2025
9.12.7 26 12/24/2025
9.12.6 25 01/02/2026
9.12.5 38 12/29/2025
9.12.4 5 10/09/2026
9.12.3 28 12/13/2025
9.12.2 28 12/24/2025
9.12.1 34 12/13/2025
9.12.0 29 12/23/2025
9.11.1 25 12/22/2025
9.11.0 35 12/22/2025
9.10.75 2 10/21/2026
9.10.74 27 12/21/2025
9.10.73 23 12/15/2025
9.10.72 4 09/28/2026
9.10.71 42 12/14/2025
9.10.70 41 12/15/2025
9.10.69 21 12/21/2025
9.10.68 1 10/03/2026
9.10.67 22 12/21/2025
9.10.66 44 12/13/2025
9.10.65 8 10/09/2026
9.10.64 31 12/15/2025
9.10.63 37 12/11/2025
9.10.62 8 10/21/2026
9.10.61 42 12/21/2025
9.10.60 1 10/22/2026
9.10.59 32 12/21/2025
9.10.58 22 12/21/2025
9.10.57 34 12/15/2025
9.10.56 33 12/21/2025
9.10.55 6 10/02/2026
9.10.54 39 12/16/2025
9.10.53 27 12/21/2025
9.10.52 8 09/28/2026
9.10.51 41 12/21/2025
9.10.50 42 12/21/2025
9.10.49 37 12/21/2025
9.10.48 28 12/21/2025
9.10.47 25 12/15/2025
9.10.46 4 10/24/2026
9.10.45 32 12/21/2025
9.10.44 26 12/15/2025
9.10.43 2 09/28/2026
9.10.42 26 12/21/2025
9.10.41 6 10/21/2026
9.10.40 1 09/28/2026
9.10.39 35 12/21/2025
9.10.38 3 10/19/2026
9.10.37 2 10/12/2026
9.10.36 27 12/15/2025
9.10.35 2 10/20/2026
9.10.34 10 10/02/2026
9.10.33 5 10/01/2026
9.10.32 37 12/21/2025
9.10.31 36 12/21/2025
9.10.30 6 10/03/2026
9.10.29 30 12/21/2025
9.10.28 24 12/16/2025
9.10.27 28 12/21/2025
9.10.26 24 12/21/2025
9.10.25 45 12/21/2025
9.10.24 40 12/21/2025
9.10.23 44 12/21/2025
9.10.22 24 12/21/2025
9.10.21 46 12/21/2025
9.10.20 38 12/21/2025
9.10.19 34 12/21/2025
9.10.18 30 12/15/2025
9.10.17 38 12/20/2025
9.10.16 1 10/27/2026
9.10.15 7 10/21/2026
9.10.14 26 12/21/2025
9.10.13 1 10/20/2026
9.10.12 28 12/21/2025
9.10.11 43 12/21/2025
9.10.10 3 10/15/2026
9.10.9 29 12/21/2025
9.10.8 2 10/21/2026
9.10.7 4 10/01/2026
9.10.6 38 01/02/2026
9.10.5 29 12/15/2025
9.10.4 23 12/15/2025
9.10.3 42 12/23/2025
9.10.2 40 12/13/2025
9.10.1 25 12/22/2025
9.10.0 43 12/15/2025
9.9.17 40 12/15/2025
9.9.16 34 12/15/2025
9.9.15 23 12/23/2025
9.9.14 39 12/16/2025
9.9.13 35 12/13/2025
9.9.12 22 12/23/2025
9.9.11 38 12/30/2025
9.9.10 36 12/15/2025
9.9.9 6 10/21/2026
9.9.8 39 12/11/2025
9.9.7 32 01/01/2026
9.9.6 21 01/01/2026
9.9.5 1 10/26/2026
9.9.4 37 12/23/2025
9.9.3 23 12/21/2025
9.9.2 28 12/22/2025
9.9.1 29 12/23/2025
9.9.0 37 12/13/2025
9.8.3 2 10/22/2026
9.8.2 38 12/20/2025
9.8.1 2 10/05/2026
9.8.0 35 12/17/2025
9.7.7 33 12/13/2025
9.7.6 40 01/02/2026
9.7.5 36 12/21/2025
9.7.3 37 12/22/2025
9.7.2 37 12/22/2025
9.7.1 41 12/22/2025
9.7.0 6 10/16/2026
9.6.5 0 09/24/2017
9.6.4 26 12/24/2025
9.6.3 44 12/22/2025
9.6.2 1 10/21/2026
9.6.1 37 12/29/2025
9.6.0 3 10/22/2026
9.5.4 39 01/09/2026
9.5.3 31 12/15/2025
9.5.2 6 09/28/2026
9.5.1 32 12/20/2025
9.5.0 35 12/22/2025
9.4.10 40 01/11/2026
9.4.9 37 12/20/2025
9.4.8 25 12/20/2025
9.4.7 27 01/11/2026
9.4.6 7 09/29/2026
9.4.5 27 12/22/2025
9.4.4 42 12/23/2025
9.4.3 26 12/23/2025
9.4.2 24 12/23/2025
9.4.1 34 01/11/2026
9.4.0 0 07/15/2017
9.3.2 38 12/23/2025
9.3.1 29 12/22/2025
9.3.0 39 12/16/2025
9.2.5 1 10/18/2026
9.2.4 29 01/01/2026
9.2.3 27 12/13/2025
9.2.2 3 09/28/2026
9.2.1 2 10/03/2026
9.2.0 33 12/24/2025
9.1.13 5 10/24/2026
9.1.12 6 09/30/2026
9.1.11 22 12/15/2025
9.1.10 33 12/23/2025
9.1.9 24 12/28/2025
9.1.8 27 12/22/2025
9.1.7 23 12/21/2025
9.1.6 23 01/02/2026
9.1.5 39 12/23/2025
9.1.4 41 12/18/2025
9.1.3 36 12/24/2025
9.1.2 39 12/22/2025
9.1.1 35 12/13/2025
9.1.0 39 12/11/2025
9.0.0 28 12/15/2025
8.34.6331.29195 44 12/15/2025
8.33.6323.36234 27 12/30/2025
8.32.6319.16954 4 10/20/2026
8.31.6318.20496 22 12/21/2025
8.30.6304.31907 26 12/21/2025
8.29.6304.29598 29 12/21/2025
8.28.6304.29323 3 10/21/2026
8.27.6302.16061 25 12/11/2025
8.26.6300.23803 35 12/21/2025
8.25.6298.25745 41 12/14/2025
8.24.6298.12188 28 12/13/2025
8.23.6298.10833 27 12/21/2025
8.22.6296.25118 6 10/02/2026
8.21.6296.23976 33 12/14/2025
8.20.6296.23156 24 12/21/2025
8.19.6295.40488 42 12/21/2025
8.18.6295.39662 30 12/20/2025
8.17.6295.16512 35 12/18/2025
8.16.6295.13544 5 10/20/2026
8.15.6294.28833 26 12/21/2025
8.14.6289.34376 5 10/06/2026
8.13.6288.31202 6 09/28/2026
8.12.6288.29376 67 12/21/2025
8.11.6284.26878 70 12/13/2025
8.10.6282.29590 91 12/21/2025
8.9.6275.22314 23 12/21/2025
8.8.6270.12850 30 12/21/2025
8.7.6267.38146 7 10/21/2026
8.6.6263.34639 8 09/28/2026
8.5.6255.20272 42 12/15/2025
8.4.6254.24670 4 10/27/2026
8.3.6252.27823 2 10/26/2026
8.2.6249.40706 29 12/21/2025
8.1.6249.15650 2 09/28/2026
8.0.6242.20256 78 12/11/2025
7.10.6235.25418 32 12/18/2025
7.9.6234.40183 0 01/25/2017
7.8.6234.39161 68 12/13/2025
7.7.6231.35505 86 12/13/2025
7.6.6221.22554 3 09/29/2026
7.5.6218.39592 81 12/15/2025
7.4.6218.34187 86 12/21/2025
7.3.6214.21001 83 12/21/2025
7.2.6206.27052 4 10/24/2026
7.1.6203.28289 2 10/15/2026
7.0.6201.32794 42 12/16/2025
6.8.6197.43076 33 12/21/2025
6.7.6197.28472 39 12/21/2025
6.6.6192.39836 7 09/30/2026
6.5.6190.16910 40 12/11/2025
6.4.6189.32876 25 12/14/2025
6.3.6185.19861 85 12/21/2025
6.2.6179.20107 74 12/14/2025
6.1.6179.17509 78 12/21/2025
6.0.6178.42031 8 10/03/2026
5.20.6175.31167 3 10/13/2026
5.19.6171.28316 32 12/21/2025
5.18.6170.22063 27 12/19/2025
5.17.6169.42629 3 10/10/2026
5.16.6156.29215 31 12/21/2025
5.15.6154.34583 1 10/02/2026
5.14.6153.20988 2 09/28/2026
5.13.6150.21323 72 12/21/2025
5.12.6149.950 11 09/28/2026
5.11.6148.42451 73 12/15/2025
5.10.6148.26189 38 12/14/2025
5.9.6144.17990 33 12/21/2025
5.8.6143.37542 48 12/21/2025
5.7.6142.39228 1 09/28/2026
5.6.6142.18206 3 10/15/2026
5.5.6138.25615 35 12/13/2025
5.5.6138.25231 38 12/21/2025
5.4.6138.25088 31 12/21/2025
5.4.6138.24413 6 10/21/2026
5.3.6137.40406 27 12/21/2025
5.2.6135.25892 34 12/16/2025
5.1.6130.30070 30 12/13/2025
5.0.6130.17623 10 10/21/2026
4.28.6128.27589 25 12/21/2025
4.27.6128.21479 5 10/03/2026
4.26.6123.28533 40 12/21/2025
4.25.6122.24179 29 12/21/2025
4.24.6122.15984 3 10/20/2026
4.23.6120.19206 3 10/03/2026
4.22.6120.18408 1 10/26/2026
4.21.6119.18329 38 12/21/2025
4.20.6119.18035 25 12/13/2025
4.19.6118.22551 45 12/21/2025
4.18.6117.31903 2 10/04/2026
4.17.6115.27875 11 10/05/2026
4.16.6115.26710 30 12/21/2025
4.15.6113.36675 27 12/21/2025
4.14.6108.28116 37 12/21/2025
4.13.6107.31016 27 12/13/2025
4.12.6103.41722 37 12/16/2025
4.11.6103.32936 25 12/14/2025
4.10.6103.22761 28 12/21/2025
4.9.6102.40549 6 10/21/2026
4.8.6094.34028 6 10/06/2026
4.7.6093.32380 39 12/14/2025
4.6.6093.13919 8 09/29/2026
4.5.6091.37159 39 12/16/2025
4.4.6091.25565 22 12/21/2025
4.3.6089.14049 2 10/26/2026
4.2.6085.38782 3 10/11/2026
4.1.6075.30950 8 10/15/2026
4.0.6074.30968 39 12/21/2025
3.4.6065.33501 0 08/09/2016
3.3.6061.16591 27 12/17/2025
3.2.6060.41151 43 01/01/2026
3.1.6058.33392 32 12/21/2025
3.0.6058.19298 2 10/13/2026
2.65.6055.39156 40 12/21/2025
2.64.6055.38772 31 12/21/2025
2.62.6049.40363 35 12/21/2025
2.61.6047.40645 37 12/21/2025
2.60.6043.38308 30 12/21/2025
2.59.6040.32733 36 12/21/2025
2.58.6038.30301 38 12/21/2025
2.57.6037.28395 4 10/21/2026
2.56.6036.39821 27 12/21/2025
2.55.6036.31334 28 12/14/2025
2.54.6032.25764 36 12/21/2025
2.53.6030.34287 13 09/28/2026
2.52.6030.13791 35 12/13/2025
2.51.6022.22788 1 10/23/2026
2.50.6019.27728 46 12/11/2025
2.49.6019.25465 32 12/21/2025
2.48.6012.40850 1 10/22/2026
2.47.6012.36610 34 12/18/2025
2.46.6012.18625 27 12/19/2025
2.45.6011.39986 36 12/17/2025
2.44.6011.37468 28 12/21/2025
2.43.6010.35601 10 10/15/2026
2.41.6006.20162 11 09/28/2026
2.40.6005.16497 37 12/15/2025
2.39.6004.37510 9 09/29/2026
2.38.6002.31139 5 10/20/2026
2.37.6002.13678 32 12/21/2025
2.36.6001.31067 7 10/03/2026
2.35.6000.32416 3 10/21/2026
2.34.6000.31960 37 12/21/2025
2.33.6000.30328 25 12/21/2025
2.32.6000.24909 3 10/04/2026
2.31.5998.34797 32 12/15/2025
2.30.5998.28513 36 12/15/2025
2.29.5997.39529 4 10/04/2026
2.28.5997.37673 4 09/28/2026
2.27.5995.31646 2 10/02/2026
2.26.5992.40824 46 12/21/2025
2.25.5989.40404 26 12/21/2025
2.24.5988.28093 34 12/21/2025
2.23.5984.32961 4 09/28/2026
2.22.5984.16718 29 12/21/2025
2.21.5981.35959 31 12/21/2025
2.20.5981.32983 42 12/21/2025
2.19.5978.21535 23 12/21/2025
2.18.5976.28451 39 12/21/2025
2.17.5976.27664 6 10/21/2026
2.16.5975.38442 22 12/21/2025
2.15.5970.28126 41 12/20/2025
2.14.5967.31320 6 09/30/2026
2.13.5966.35760 7 09/28/2026
2.12.5965.33915 25 01/11/2026
2.11.5963.475 9 10/08/2026
2.10.5958.25557 38 12/21/2025
2.9.5956.34079 1 10/04/2026
2.8.5956.13681 3 09/28/2026
2.7.5954.13236 36 12/21/2025
2.6.5946.13963 27 12/21/2025
2.5.5941.14559 2 09/28/2026
2.4.5940.38663 33 12/18/2025
2.3.5940.24970 35 12/21/2025
2.2.5940.22488 23 12/16/2025
2.1.5940.20330 27 12/21/2025
2.0.5928.2915 39 12/11/2025
1.39.5923.31344 5 10/20/2026
1.38.5920.30380 23 12/19/2025
1.37.5912.16400 40 12/15/2025
1.36.5908.3839 1 10/25/2026
1.35.5908.510 29 12/22/2025
1.34.5905.41330 0 03/02/2016
1.32.5904.40564 27 12/21/2025
1.31.5892.26482 5 10/06/2026
1.30.5878.31385 43 12/14/2025
1.29.5875.38536 7 09/28/2026
1.29.5875.38249 1 10/01/2026
1.29.5875.36303 35 12/13/2025
1.28.5872.19133 1 10/03/2026
1.27.5865.35297 26 12/16/2025
1.26.5864.35161 8 10/21/2026
1.25.5861.38103 23 12/21/2025
1.24.5858.29181 29 12/19/2025
1.23.5856.30578 0 01/13/2016
1.22.5836.1198 40 12/21/2025
1.21.5834.30412 27 12/21/2025
1.21.5831.34291 46 12/21/2025
1.21.5830.29525 29 12/21/2025
1.20.5829.20855 5 09/30/2026
1.20.5829.15819 35 12/13/2025
1.19.5828.20064 27 12/21/2025
1.19.5827.22433 1 10/24/2026
1.19.5824.3256 27 12/21/2025
1.18.5822.14857 40 12/15/2025
1.18.5821.36807 23 12/21/2025
1.17.5820.28488 37 12/14/2025
1.16.5820.27109 32 12/18/2025
1.15.5812.25746 7 09/29/2026
1.14.5811.24408 41 12/21/2025
1.13.5811.23634 4 10/20/2026
1.12.5801.29459 40 12/13/2025
1.11.5799.31778 26 12/16/2025
1.10.5779.31943 0 10/28/2015
1.9.5778.39698 36 12/21/2025
1.9.5778.38906 41 12/21/2025
1.9.5778.31079 29 12/21/2025
1.8.5777.37129 40 12/21/2025
1.8.5775.25810 34 12/21/2025
1.7.5770.30723 37 12/12/2025
1.6.5769.33302 26 12/21/2025
1.6.5765.33542 0 10/14/2015
1.6.5763.16697 4 10/03/2026
1.6.5760.32685 1 10/22/2026
1.6.5759.33134 27 12/21/2025
1.6.5758.30931 2 10/12/2026
1.6.5757.40238 24 12/21/2025
1.6.5751.15394 1 10/28/2026
1.5.5750.33915 38 12/17/2025
1.5.5750.33435 9 09/28/2026
1.4.5737.33581 43 12/19/2025
1.4.5732.34143 30 12/14/2025
1.4.5731.36730 2 10/02/2026
1.3.5731.34877 24 12/21/2025
1.2.5730.33570 20 12/21/2025
1.1.5729.33708 38 12/13/2025
1.0.5725.35303 25 12/16/2025
0.2.5707.34168 42 12/21/2025
0.2.5707.33650 36 12/20/2025
0.1.5585.25898 37 12/21/2025
0.1.5582.28800 3 09/28/2026