NJsonSchema 11.6.0

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
148
NJsonSchema.Yaml
JSON Schema reader, generator and validator for .NET
183
NSwag.AspNetCore
NSwag: The Swagger API toolchain for .NET and TypeScript
138
NSwag.AspNetCore
NSwag: The Swagger API toolchain for .NET and TypeScript
154
NSwag.AssemblyLoader
NSwag: The Swagger API toolchain for .NET and TypeScript
137
NSwag.Core
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
137
NSwag.Core
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
149
NSwag.Core
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
188
NSwag.Core
NSwag: The Swagger API toolchain for .NET and TypeScript
141
NSwag.Generation
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
140
NSwag.Generation
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
182
NSwag.Generation.AspNetCore
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
138
NSwag.Generation.AspNetCore
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
148
NSwag.SwaggerGeneration
NSwag: The Swagger API toolchain for .NET and TypeScript
141
NSwag.SwaggerGeneration.AspNetCore
NSwag: The Swagger API toolchain for .NET and TypeScript
137
NSwag.SwaggerGeneration.AspNetCore
NSwag: The Swagger API toolchain for .NET and TypeScript
138
NSwag.SwaggerGeneration.AspNetCore
NSwag: The Swagger API toolchain for .NET and TypeScript
147
NSwag.SwaggerGeneration.WebApi
NSwag: The Swagger API toolchain for .NET and TypeScript
143
NSwag.SwaggerGeneration.WebApi
NSwag: The Swagger API toolchain for .NET and TypeScript
149

.NET Framework 4.6.2

.NET 8.0

.NET Standard 2.0

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