[chore]: Bump github.com/go-playground/validator/v10 (#1724)

Bumps [github.com/go-playground/validator/v10](https://github.com/go-playground/validator) from 10.12.0 to 10.13.0.
- [Release notes](https://github.com/go-playground/validator/releases)
- [Commits](https://github.com/go-playground/validator/compare/v10.12.0...v10.13.0)

---
updated-dependencies:
- dependency-name: github.com/go-playground/validator/v10
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
dependabot[bot] 2023-05-01 11:02:44 +02:00 committed by GitHub
parent ab7f518f57
commit e9de7bec15
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 1036 additions and 1002 deletions

4
go.mod
View file

@ -26,7 +26,7 @@ require (
github.com/gin-gonic/gin v1.9.0 github.com/gin-gonic/gin v1.9.0
github.com/go-fed/httpsig v1.1.0 github.com/go-fed/httpsig v1.1.0
github.com/go-playground/form/v4 v4.2.0 github.com/go-playground/form/v4 v4.2.0
github.com/go-playground/validator/v10 v10.12.0 github.com/go-playground/validator/v10 v10.13.0
github.com/google/uuid v1.3.0 github.com/google/uuid v1.3.0
github.com/gorilla/feeds v1.1.1 github.com/gorilla/feeds v1.1.1
github.com/gorilla/websocket v1.5.0 github.com/gorilla/websocket v1.5.0
@ -120,7 +120,7 @@ require (
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
github.com/klauspost/compress v1.16.3 // indirect github.com/klauspost/compress v1.16.3 // indirect
github.com/klauspost/cpuid/v2 v2.2.4 // indirect github.com/klauspost/cpuid/v2 v2.2.4 // indirect
github.com/leodido/go-urn v1.2.2 // indirect github.com/leodido/go-urn v1.2.3 // indirect
github.com/magiconair/properties v1.8.7 // indirect github.com/magiconair/properties v1.8.7 // indirect
github.com/mattn/go-isatty v0.0.17 // indirect github.com/mattn/go-isatty v0.0.17 // indirect
github.com/minio/md5-simd v1.1.2 // indirect github.com/minio/md5-simd v1.1.2 // indirect

9
go.sum
View file

@ -216,8 +216,8 @@ github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos=
github.com/go-playground/validator/v10 v10.12.0 h1:E4gtWgxWxp8YSxExrQFv5BpCahla0PVF2oTTEYaWQGI= github.com/go-playground/validator/v10 v10.13.0 h1:cFRQdfaSMCOSfGCCLB20MHvuoHb/s5G8L5pu2ppK5AQ=
github.com/go-playground/validator/v10 v10.12.0/go.mod h1:hCAPuzYvKdP33pxWa+2+6AIKXEKqjIUyqsNCtbsSJrA= github.com/go-playground/validator/v10 v10.13.0/go.mod h1:dwu7+CG8/CtBiJFZDz4e+5Upb6OLw04gtBYw0mcG/z4=
github.com/go-session/session v3.1.2+incompatible/go.mod h1:8B3iivBQjrz/JtC68Np2T1yBBLxTan3mn/3OM0CyRt0= github.com/go-session/session v3.1.2+incompatible/go.mod h1:8B3iivBQjrz/JtC68Np2T1yBBLxTan3mn/3OM0CyRt0=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM= github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM=
@ -416,8 +416,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
github.com/leodido/go-urn v1.2.2 h1:7z68G0FCGvDk646jz1AelTYNYWrTNm0bEcFAo147wt4= github.com/leodido/go-urn v1.2.3 h1:6BE2vPT0lqoz3fmOesHZiaiFh7889ssCo2GMvLCfiuA=
github.com/leodido/go-urn v1.2.2/go.mod h1:kUaIbLZWttglzwNuG0pgsh5vuV6u2YcGBYz1hIPjtOQ= github.com/leodido/go-urn v1.2.3/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
@ -495,7 +495,6 @@ github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/rwtodd/Go.Sed v0.0.0-20210816025313-55464686f9ef/go.mod h1:8AEUvGVi2uQ5b24BIhcr0GCcpd/RNAFWaN2CJFrWIIQ=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw=
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=

View file

@ -1,7 +1,7 @@
Package validator Package validator
================= =================
<img align="right" src="https://raw.githubusercontent.com/go-playground/validator/v10/logo.png">[![Join the chat at https://gitter.im/go-playground/validator](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/go-playground/validator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) <img align="right" src="https://raw.githubusercontent.com/go-playground/validator/v10/logo.png">[![Join the chat at https://gitter.im/go-playground/validator](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/go-playground/validator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
![Project status](https://img.shields.io/badge/version-10.12.0-green.svg) ![Project status](https://img.shields.io/badge/version-10.13.0-green.svg)
[![Build Status](https://travis-ci.org/go-playground/validator.svg?branch=master)](https://travis-ci.org/go-playground/validator) [![Build Status](https://travis-ci.org/go-playground/validator.svg?branch=master)](https://travis-ci.org/go-playground/validator)
[![Coverage Status](https://coveralls.io/repos/go-playground/validator/badge.svg?branch=master&service=github)](https://coveralls.io/github/go-playground/validator?branch=master) [![Coverage Status](https://coveralls.io/repos/go-playground/validator/badge.svg?branch=master&service=github)](https://coveralls.io/github/go-playground/validator?branch=master)
[![Go Report Card](https://goreportcard.com/badge/github.com/go-playground/validator)](https://goreportcard.com/report/github.com/go-playground/validator) [![Go Report Card](https://goreportcard.com/badge/github.com/go-playground/validator)](https://goreportcard.com/report/github.com/go-playground/validator)

View file

@ -33,7 +33,7 @@ type Func func(fl FieldLevel) bool
// validation needs. The return value should be true when validation succeeds. // validation needs. The return value should be true when validation succeeds.
type FuncCtx func(ctx context.Context, fl FieldLevel) bool type FuncCtx func(ctx context.Context, fl FieldLevel) bool
// wrapFunc wraps noramal Func makes it compatible with FuncCtx // wrapFunc wraps normal Func makes it compatible with FuncCtx
func wrapFunc(fn Func) FuncCtx { func wrapFunc(fn Func) FuncCtx {
if fn == nil { if fn == nil {
return nil // be sure not to wrap a bad function. return nil // be sure not to wrap a bad function.
@ -73,6 +73,7 @@ var (
"required": hasValue, "required": hasValue,
"required_if": requiredIf, "required_if": requiredIf,
"required_unless": requiredUnless, "required_unless": requiredUnless,
"skip_unless": skipUnless,
"required_with": requiredWith, "required_with": requiredWith,
"required_with_all": requiredWithAll, "required_with_all": requiredWithAll,
"required_without": requiredWithout, "required_without": requiredWithout,
@ -928,7 +929,7 @@ func isNe(fl FieldLevel) bool {
return !isEq(fl) return !isEq(fl)
} }
// isNe is the validation function for validating that the field's string value does not equal the // isNeIgnoreCase is the validation function for validating that the field's string value does not equal the
// provided param value. The comparison is case-insensitive // provided param value. The comparison is case-insensitive
func isNeIgnoreCase(fl FieldLevel) bool { func isNeIgnoreCase(fl FieldLevel) bool {
return !isEqIgnoreCase(fl) return !isEqIgnoreCase(fl)
@ -1648,7 +1649,7 @@ func hasValue(fl FieldLevel) bool {
} }
} }
// requireCheckField is a func for check field kind // requireCheckFieldKind is a func for check field kind
func requireCheckFieldKind(fl FieldLevel, param string, defaultNotFoundValue bool) bool { func requireCheckFieldKind(fl FieldLevel, param string, defaultNotFoundValue bool) bool {
field := fl.Field() field := fl.Field()
kind := field.Kind() kind := field.Kind()
@ -1728,11 +1729,11 @@ func excludedIf(fl FieldLevel) bool {
for i := 0; i < len(params); i += 2 { for i := 0; i < len(params); i += 2 {
if !requireCheckFieldValue(fl, params[i], params[i+1], false) { if !requireCheckFieldValue(fl, params[i], params[i+1], false) {
return false
}
}
return true return true
} }
}
return !hasValue(fl)
}
// requiredUnless is the validation function // requiredUnless is the validation function
// The field under validation must be present and not empty only unless all the other specified fields are equal to the value following with the specified field. // The field under validation must be present and not empty only unless all the other specified fields are equal to the value following with the specified field.
@ -1750,6 +1751,21 @@ func requiredUnless(fl FieldLevel) bool {
return hasValue(fl) return hasValue(fl)
} }
// skipUnless is the validation function
// The field under validation must be present and not empty only unless all the other specified fields are equal to the value following with the specified field.
func skipUnless(fl FieldLevel) bool {
params := parseOneOfParam2(fl.Param())
if len(params)%2 != 0 {
panic(fmt.Sprintf("Bad param number for skip_unless %s", fl.FieldName()))
}
for i := 0; i < len(params); i += 2 {
if !requireCheckFieldValue(fl, params[i], params[i+1], false) {
return true
}
}
return hasValue(fl)
}
// excludedUnless is the validation function // excludedUnless is the validation function
// The field under validation must not be present or is empty unless all the other specified fields are equal to the value following with the specified field. // The field under validation must not be present or is empty unless all the other specified fields are equal to the value following with the specified field.
func excludedUnless(fl FieldLevel) bool { func excludedUnless(fl FieldLevel) bool {
@ -2593,13 +2609,13 @@ func isIso3166Alpha2(fl FieldLevel) bool {
return iso3166_1_alpha2[val] return iso3166_1_alpha2[val]
} }
// isIso3166Alpha2 is the validation function for validating if the current field's value is a valid iso3166-1 alpha-3 country code. // isIso3166Alpha3 is the validation function for validating if the current field's value is a valid iso3166-1 alpha-3 country code.
func isIso3166Alpha3(fl FieldLevel) bool { func isIso3166Alpha3(fl FieldLevel) bool {
val := fl.Field().String() val := fl.Field().String()
return iso3166_1_alpha3[val] return iso3166_1_alpha3[val]
} }
// isIso3166Alpha2 is the validation function for validating if the current field's value is a valid iso3166-1 alpha-numeric country code. // isIso3166AlphaNumeric is the validation function for validating if the current field's value is a valid iso3166-1 alpha-numeric country code.
func isIso3166AlphaNumeric(fl FieldLevel) bool { func isIso3166AlphaNumeric(fl FieldLevel) bool {
field := fl.Field() field := fl.Field()

View file

@ -189,7 +189,7 @@ var iso3166_2 = map[string]bool{
"AO-CNN": true, "AO-CNO": true, "AO-CUS": true, "AO-HUA": true, "AO-HUI": true, "AO-CNN": true, "AO-CNO": true, "AO-CUS": true, "AO-HUA": true, "AO-HUI": true,
"AO-LNO": true, "AO-LSU": true, "AO-LUA": true, "AO-MAL": true, "AO-MOX": true, "AO-LNO": true, "AO-LSU": true, "AO-LUA": true, "AO-MAL": true, "AO-MOX": true,
"AO-NAM": true, "AO-UIG": true, "AO-ZAI": true, "AR-A": true, "AR-B": true, "AO-NAM": true, "AO-UIG": true, "AO-ZAI": true, "AR-A": true, "AR-B": true,
"AR-C" : true, "AR-D" : true, "AR-E" : true, "AR-G" : true, "AR-H" : true, "AR-C": true, "AR-D": true, "AR-E": true, "AR-F": true, "AR-G": true, "AR-H": true,
"AR-J": true, "AR-K": true, "AR-L": true, "AR-M": true, "AR-N": true, "AR-J": true, "AR-K": true, "AR-L": true, "AR-M": true, "AR-N": true,
"AR-P": true, "AR-Q": true, "AR-R": true, "AR-S": true, "AR-T": true, "AR-P": true, "AR-Q": true, "AR-R": true, "AR-S": true, "AR-T": true,
"AR-U": true, "AR-V": true, "AR-W": true, "AR-X": true, "AR-Y": true, "AR-U": true, "AR-V": true, "AR-W": true, "AR-X": true, "AR-Y": true,
@ -254,7 +254,7 @@ var iso3166_2 = map[string]bool{
"BH-13": true, "BH-14": true, "BH-15": true, "BH-16": true, "BH-17": true, "BH-13": true, "BH-14": true, "BH-15": true, "BH-16": true, "BH-17": true,
"BI-BB": true, "BI-BL": true, "BI-BM": true, "BI-BR": true, "BI-CA": true, "BI-BB": true, "BI-BL": true, "BI-BM": true, "BI-BR": true, "BI-CA": true,
"BI-CI": true, "BI-GI": true, "BI-KI": true, "BI-KR": true, "BI-KY": true, "BI-CI": true, "BI-GI": true, "BI-KI": true, "BI-KR": true, "BI-KY": true,
"BI-MA" : true, "BI-MU" : true, "BI-MW" : true, "BI-NG" : true, "BI-RT" : true, "BI-MA": true, "BI-MU": true, "BI-MW": true, "BI-NG": true, "BI-RM": true, "BI-RT": true,
"BI-RY": true, "BJ-AK": true, "BJ-AL": true, "BJ-AQ": true, "BJ-BO": true, "BI-RY": true, "BJ-AK": true, "BJ-AL": true, "BJ-AQ": true, "BJ-BO": true,
"BJ-CO": true, "BJ-DO": true, "BJ-KO": true, "BJ-LI": true, "BJ-MO": true, "BJ-CO": true, "BJ-DO": true, "BJ-KO": true, "BJ-LI": true, "BJ-MO": true,
"BJ-OU": true, "BJ-PL": true, "BJ-ZO": true, "BN-BE": true, "BN-BM": true, "BJ-OU": true, "BJ-PL": true, "BJ-ZO": true, "BN-BE": true, "BN-BM": true,
@ -270,13 +270,13 @@ var iso3166_2 = map[string]bool{
"BS-BY": true, "BS-CE": true, "BS-CI": true, "BS-CK": true, "BS-CO": true, "BS-BY": true, "BS-CE": true, "BS-CI": true, "BS-CK": true, "BS-CO": true,
"BS-CS": true, "BS-EG": true, "BS-EX": true, "BS-FP": true, "BS-GC": true, "BS-CS": true, "BS-EG": true, "BS-EX": true, "BS-FP": true, "BS-GC": true,
"BS-HI": true, "BS-HT": true, "BS-IN": true, "BS-LI": true, "BS-MC": true, "BS-HI": true, "BS-HT": true, "BS-IN": true, "BS-LI": true, "BS-MC": true,
"BS-MG" : true, "BS-MI" : true, "BS-NE" : true, "BS-NO" : true, "BS-NS" : true, "BS-MG": true, "BS-MI": true, "BS-NE": true, "BS-NO": true, "BS-NP": true, "BS-NS": true,
"BS-RC": true, "BS-RI": true, "BS-SA": true, "BS-SE": true, "BS-SO": true, "BS-RC": true, "BS-RI": true, "BS-SA": true, "BS-SE": true, "BS-SO": true,
"BS-SS": true, "BS-SW": true, "BS-WG": true, "BT-11": true, "BT-12": true, "BS-SS": true, "BS-SW": true, "BS-WG": true, "BT-11": true, "BT-12": true,
"BT-13": true, "BT-14": true, "BT-15": true, "BT-21": true, "BT-22": true, "BT-13": true, "BT-14": true, "BT-15": true, "BT-21": true, "BT-22": true,
"BT-23": true, "BT-24": true, "BT-31": true, "BT-32": true, "BT-33": true, "BT-23": true, "BT-24": true, "BT-31": true, "BT-32": true, "BT-33": true,
"BT-34": true, "BT-41": true, "BT-42": true, "BT-43": true, "BT-44": true, "BT-34": true, "BT-41": true, "BT-42": true, "BT-43": true, "BT-44": true,
"BT-45" : true, "BT-GA" : true, "BT-TY" : true, "BW-CE" : true, "BW-GH" : true, "BT-45": true, "BT-GA": true, "BT-TY": true, "BW-CE": true, "BW-CH": true, "BW-GH": true,
"BW-KG": true, "BW-KL": true, "BW-KW": true, "BW-NE": true, "BW-NW": true, "BW-KG": true, "BW-KL": true, "BW-KW": true, "BW-NE": true, "BW-NW": true,
"BW-SE": true, "BW-SO": true, "BY-BR": true, "BY-HM": true, "BY-HO": true, "BW-SE": true, "BW-SO": true, "BY-BR": true, "BY-HM": true, "BY-HO": true,
"BY-HR": true, "BY-MA": true, "BY-MI": true, "BY-VI": true, "BZ-BZ": true, "BY-HR": true, "BY-MA": true, "BY-MI": true, "BY-VI": true, "BZ-BZ": true,
@ -284,35 +284,33 @@ var iso3166_2 = map[string]bool{
"CA-AB": true, "CA-BC": true, "CA-MB": true, "CA-NB": true, "CA-NL": true, "CA-AB": true, "CA-BC": true, "CA-MB": true, "CA-NB": true, "CA-NL": true,
"CA-NS": true, "CA-NT": true, "CA-NU": true, "CA-ON": true, "CA-PE": true, "CA-NS": true, "CA-NT": true, "CA-NU": true, "CA-ON": true, "CA-PE": true,
"CA-QC": true, "CA-SK": true, "CA-YT": true, "CD-BC": true, "CD-BN": true, "CA-QC": true, "CA-SK": true, "CA-YT": true, "CD-BC": true, "CD-BN": true,
"CD-EQ" : true, "CD-KA" : true, "CD-KE" : true, "CD-KN" : true, "CD-KW" : true, "CD-EQ": true, "CD-HK": true, "CD-IT": true, "CD-KA": true, "CD-KC": true, "CD-KE": true, "CD-KG": true, "CD-KN": true,
"CD-MA" : true, "CD-NK" : true, "CD-OR" : true, "CD-SK" : true, "CF-AC" : true, "CD-KW": true, "CD-KS": true, "CD-LU": true, "CD-MA": true, "CD-NK": true, "CD-OR": true, "CD-SA": true, "CD-SK": true,
"CF-BB" : true, "CF-BGF" : true, "CF-BK" : true, "CF-HK" : true, "CF-HM" : true, "CD-TA": true, "CD-TO": true, "CF-AC": true, "CF-BB": true, "CF-BGF": true, "CF-BK": true, "CF-HK": true, "CF-HM": true,
"CF-HS": true, "CF-KB": true, "CF-KG": true, "CF-LB": true, "CF-MB": true, "CF-HS": true, "CF-KB": true, "CF-KG": true, "CF-LB": true, "CF-MB": true,
"CF-MP": true, "CF-NM": true, "CF-OP": true, "CF-SE": true, "CF-UK": true, "CF-MP": true, "CF-NM": true, "CF-OP": true, "CF-SE": true, "CF-UK": true,
"CF-VK": true, "CG-11": true, "CG-12": true, "CG-13": true, "CG-14": true, "CF-VK": true, "CG-11": true, "CG-12": true, "CG-13": true, "CG-14": true,
"CG-15" : true, "CG-2" : true, "CG-5" : true, "CG-7" : true, "CG-8" : true, "CG-15": true, "CG-16": true, "CG-2": true, "CG-5": true, "CG-7": true, "CG-8": true,
"CG-9": true, "CG-BZV": true, "CH-AG": true, "CH-AI": true, "CH-AR": true, "CG-9": true, "CG-BZV": true, "CH-AG": true, "CH-AI": true, "CH-AR": true,
"CH-BE": true, "CH-BL": true, "CH-BS": true, "CH-FR": true, "CH-GE": true, "CH-BE": true, "CH-BL": true, "CH-BS": true, "CH-FR": true, "CH-GE": true,
"CH-GL": true, "CH-GR": true, "CH-JU": true, "CH-LU": true, "CH-NE": true, "CH-GL": true, "CH-GR": true, "CH-JU": true, "CH-LU": true, "CH-NE": true,
"CH-NW": true, "CH-OW": true, "CH-SG": true, "CH-SH": true, "CH-SO": true, "CH-NW": true, "CH-OW": true, "CH-SG": true, "CH-SH": true, "CH-SO": true,
"CH-SZ": true, "CH-TG": true, "CH-TI": true, "CH-UR": true, "CH-VD": true, "CH-SZ": true, "CH-TG": true, "CH-TI": true, "CH-UR": true, "CH-VD": true,
"CH-VS" : true, "CH-ZG" : true, "CH-ZH" : true, "CI-01" : true, "CI-02" : true, "CH-VS": true, "CH-ZG": true, "CH-ZH": true, "CI-AB": true, "CI-BS": true,
"CI-03" : true, "CI-04" : true, "CI-05" : true, "CI-06" : true, "CI-07" : true, "CI-CM": true, "CI-DN": true, "CI-GD": true, "CI-LC": true, "CI-LG": true,
"CI-08" : true, "CI-09" : true, "CI-10" : true, "CI-11" : true, "CI-12" : true, "CI-MG": true, "CI-SM": true, "CI-SV": true, "CI-VB": true, "CI-WR": true,
"CI-13" : true, "CI-14" : true, "CI-15" : true, "CI-16" : true, "CI-17" : true, "CI-YM": true, "CI-ZZ": true, "CL-AI": true, "CL-AN": true, "CL-AP": true,
"CI-18" : true, "CI-19" : true, "CL-AI" : true, "CL-AN" : true, "CL-AP" : true,
"CL-AR": true, "CL-AT": true, "CL-BI": true, "CL-CO": true, "CL-LI": true, "CL-AR": true, "CL-AT": true, "CL-BI": true, "CL-CO": true, "CL-LI": true,
"CL-LL" : true, "CL-LR" : true, "CL-MA" : true, "CL-ML" : true, "CL-RM" : true, "CL-LL": true, "CL-LR": true, "CL-MA": true, "CL-ML": true, "CL-NB": true, "CL-RM": true,
"CL-TA": true, "CL-VS": true, "CM-AD": true, "CM-CE": true, "CM-EN": true, "CL-TA": true, "CL-VS": true, "CM-AD": true, "CM-CE": true, "CM-EN": true,
"CM-ES": true, "CM-LT": true, "CM-NO": true, "CM-NW": true, "CM-OU": true, "CM-ES": true, "CM-LT": true, "CM-NO": true, "CM-NW": true, "CM-OU": true,
"CM-SU" : true, "CM-SW" : true, "CN-11" : true, "CN-12" : true, "CN-13" : true, "CM-SU": true, "CM-SW": true, "CN-AH": true, "CN-BJ": true, "CN-CQ": true,
"CN-14" : true, "CN-15" : true, "CN-21" : true, "CN-22" : true, "CN-23" : true, "CN-FJ": true, "CN-GS": true, "CN-GD": true, "CN-GX": true, "CN-GZ": true,
"CN-31" : true, "CN-32" : true, "CN-33" : true, "CN-34" : true, "CN-35" : true, "CN-HI": true, "CN-HE": true, "CN-HL": true, "CN-HA": true, "CN-HB": true,
"CN-36" : true, "CN-37" : true, "CN-41" : true, "CN-42" : true, "CN-43" : true, "CN-HN": true, "CN-JS": true, "CN-JX": true, "CN-JL": true, "CN-LN": true,
"CN-44" : true, "CN-45" : true, "CN-46" : true, "CN-50" : true, "CN-51" : true, "CN-NM": true, "CN-NX": true, "CN-QH": true, "CN-SN": true, "CN-SD": true, "CN-SH": true,
"CN-52" : true, "CN-53" : true, "CN-54" : true, "CN-61" : true, "CN-62" : true, "CN-SX": true, "CN-SC": true, "CN-TJ": true, "CN-XJ": true, "CN-XZ": true, "CN-YN": true,
"CN-63" : true, "CN-64" : true, "CN-65" : true, "CN-71" : true, "CN-91" : true, "CN-ZJ": true, "CO-AMA": true, "CO-ANT": true, "CO-ARA": true, "CO-ATL": true,
"CN-92" : true, "CO-AMA" : true, "CO-ANT" : true, "CO-ARA" : true, "CO-ATL" : true,
"CO-BOL": true, "CO-BOY": true, "CO-CAL": true, "CO-CAQ": true, "CO-CAS": true, "CO-BOL": true, "CO-BOY": true, "CO-CAL": true, "CO-CAQ": true, "CO-CAS": true,
"CO-CAU": true, "CO-CES": true, "CO-CHO": true, "CO-COR": true, "CO-CUN": true, "CO-CAU": true, "CO-CES": true, "CO-CHO": true, "CO-COR": true, "CO-CUN": true,
"CO-DC": true, "CO-GUA": true, "CO-GUV": true, "CO-HUI": true, "CO-LAG": true, "CO-DC": true, "CO-GUA": true, "CO-GUV": true, "CO-HUI": true, "CO-LAG": true,
@ -322,8 +320,8 @@ var iso3166_2 = map[string]bool{
"CR-C": true, "CR-G": true, "CR-H": true, "CR-L": true, "CR-P": true, "CR-C": true, "CR-G": true, "CR-H": true, "CR-L": true, "CR-P": true,
"CR-SJ": true, "CU-01": true, "CU-02": true, "CU-03": true, "CU-04": true, "CR-SJ": true, "CU-01": true, "CU-02": true, "CU-03": true, "CU-04": true,
"CU-05": true, "CU-06": true, "CU-07": true, "CU-08": true, "CU-09": true, "CU-05": true, "CU-06": true, "CU-07": true, "CU-08": true, "CU-09": true,
"CU-10" : true, "CU-11" : true, "CU-12" : true, "CU-13" : true, "CU-14" : true, "CU-10": true, "CU-11": true, "CU-12": true, "CU-13": true, "CU-14": true, "CU-15": true,
"CU-99" : true, "CV-B" : true, "CV-BR" : true, "CV-BV" : true, "CV-CA" : true, "CU-16": true, "CU-99": true, "CV-B": true, "CV-BR": true, "CV-BV": true, "CV-CA": true,
"CV-CF": true, "CV-CR": true, "CV-MA": true, "CV-MO": true, "CV-PA": true, "CV-CF": true, "CV-CR": true, "CV-MA": true, "CV-MO": true, "CV-PA": true,
"CV-PN": true, "CV-PR": true, "CV-RB": true, "CV-RG": true, "CV-RS": true, "CV-PN": true, "CV-PR": true, "CV-RB": true, "CV-RG": true, "CV-RS": true,
"CV-S": true, "CV-SD": true, "CV-SF": true, "CV-SL": true, "CV-SM": true, "CV-S": true, "CV-SD": true, "CV-SF": true, "CV-SL": true, "CV-SM": true,
@ -364,7 +362,7 @@ var iso3166_2 = map[string]bool{
"DO-11": true, "DO-12": true, "DO-13": true, "DO-14": true, "DO-15": true, "DO-11": true, "DO-12": true, "DO-13": true, "DO-14": true, "DO-15": true,
"DO-16": true, "DO-17": true, "DO-18": true, "DO-19": true, "DO-20": true, "DO-16": true, "DO-17": true, "DO-18": true, "DO-19": true, "DO-20": true,
"DO-21": true, "DO-22": true, "DO-23": true, "DO-24": true, "DO-25": true, "DO-21": true, "DO-22": true, "DO-23": true, "DO-24": true, "DO-25": true,
"DO-26" : true, "DO-27" : true, "DO-28" : true, "DO-29" : true, "DO-30" : true, "DO-26": true, "DO-27": true, "DO-28": true, "DO-29": true, "DO-30": true, "DO-31": true,
"DZ-01": true, "DZ-02": true, "DZ-03": true, "DZ-04": true, "DZ-05": true, "DZ-01": true, "DZ-02": true, "DZ-03": true, "DZ-04": true, "DZ-05": true,
"DZ-06": true, "DZ-07": true, "DZ-08": true, "DZ-09": true, "DZ-10": true, "DZ-06": true, "DZ-07": true, "DZ-08": true, "DZ-09": true, "DZ-10": true,
"DZ-11": true, "DZ-12": true, "DZ-13": true, "DZ-14": true, "DZ-15": true, "DZ-11": true, "DZ-12": true, "DZ-13": true, "DZ-14": true, "DZ-15": true,
@ -374,19 +372,21 @@ var iso3166_2 = map[string]bool{
"DZ-31": true, "DZ-32": true, "DZ-33": true, "DZ-34": true, "DZ-35": true, "DZ-31": true, "DZ-32": true, "DZ-33": true, "DZ-34": true, "DZ-35": true,
"DZ-36": true, "DZ-37": true, "DZ-38": true, "DZ-39": true, "DZ-40": true, "DZ-36": true, "DZ-37": true, "DZ-38": true, "DZ-39": true, "DZ-40": true,
"DZ-41": true, "DZ-42": true, "DZ-43": true, "DZ-44": true, "DZ-45": true, "DZ-41": true, "DZ-42": true, "DZ-43": true, "DZ-44": true, "DZ-45": true,
"DZ-46" : true, "DZ-47" : true, "DZ-48" : true, "EC-A" : true, "EC-B" : true, "DZ-46": true, "DZ-47": true, "DZ-48": true, "DZ-49": true, "DZ-51": true,
"DZ-53": true, "DZ-55": true, "DZ-56": true, "DZ-57": true, "EC-A": true, "EC-B": true,
"EC-C": true, "EC-D": true, "EC-E": true, "EC-F": true, "EC-G": true, "EC-C": true, "EC-D": true, "EC-E": true, "EC-F": true, "EC-G": true,
"EC-H": true, "EC-I": true, "EC-L": true, "EC-M": true, "EC-N": true, "EC-H": true, "EC-I": true, "EC-L": true, "EC-M": true, "EC-N": true,
"EC-O": true, "EC-P": true, "EC-R": true, "EC-S": true, "EC-SD": true, "EC-O": true, "EC-P": true, "EC-R": true, "EC-S": true, "EC-SD": true,
"EC-SE": true, "EC-T": true, "EC-U": true, "EC-W": true, "EC-X": true, "EC-SE": true, "EC-T": true, "EC-U": true, "EC-W": true, "EC-X": true,
"EC-Y" : true, "EC-Z" : true, "EE-37" : true, "EE-39" : true, "EE-44" : true, "EC-Y": true, "EC-Z": true, "EE-37": true, "EE-39": true, "EE-44": true, "EE-45": true,
"EE-49" : true, "EE-51" : true, "EE-57" : true, "EE-59" : true, "EE-65" : true, "EE-49": true, "EE-50": true, "EE-51": true, "EE-52": true, "EE-56": true, "EE-57": true,
"EE-67" : true, "EE-70" : true, "EE-74" : true, "EE-78" : true, "EE-82" : true, "EE-59": true, "EE-60": true, "EE-64": true, "EE-65": true, "EE-67": true, "EE-68": true,
"EE-84" : true, "EE-86" : true, "EG-ALX" : true, "EG-ASN" : true, "EG-AST" : true, "EE-70": true, "EE-71": true, "EE-74": true, "EE-78": true, "EE-79": true, "EE-81": true, "EE-82": true,
"EE-84": true, "EE-86": true, "EE-87": true, "EG-ALX": true, "EG-ASN": true, "EG-AST": true,
"EG-BA": true, "EG-BH": true, "EG-BNS": true, "EG-C": true, "EG-DK": true, "EG-BA": true, "EG-BH": true, "EG-BNS": true, "EG-C": true, "EG-DK": true,
"EG-DT": true, "EG-FYM": true, "EG-GH": true, "EG-GZ": true, "EG-HU": true, "EG-DT": true, "EG-FYM": true, "EG-GH": true, "EG-GZ": true, "EG-HU": true,
"EG-IS": true, "EG-JS": true, "EG-KB": true, "EG-KFS": true, "EG-KN": true, "EG-IS": true, "EG-JS": true, "EG-KB": true, "EG-KFS": true, "EG-KN": true,
"EG-MN" : true, "EG-MNF" : true, "EG-MT" : true, "EG-PTS" : true, "EG-SHG" : true, "EG-LX": true, "EG-MN": true, "EG-MNF": true, "EG-MT": true, "EG-PTS": true, "EG-SHG": true,
"EG-SHR": true, "EG-SIN": true, "EG-SU": true, "EG-SUZ": true, "EG-WAD": true, "EG-SHR": true, "EG-SIN": true, "EG-SU": true, "EG-SUZ": true, "EG-WAD": true,
"ER-AN": true, "ER-DK": true, "ER-DU": true, "ER-GB": true, "ER-MA": true, "ER-AN": true, "ER-DK": true, "ER-DU": true, "ER-GB": true, "ER-MA": true,
"ER-SK": true, "ES-A": true, "ES-AB": true, "ES-AL": true, "ES-AN": true, "ER-SK": true, "ES-A": true, "ES-AB": true, "ES-AL": true, "ES-AN": true,
@ -414,7 +414,7 @@ var iso3166_2 = map[string]bool{
"FR-02": true, "FR-03": true, "FR-04": true, "FR-05": true, "FR-06": true, "FR-02": true, "FR-03": true, "FR-04": true, "FR-05": true, "FR-06": true,
"FR-07": true, "FR-08": true, "FR-09": true, "FR-10": true, "FR-11": true, "FR-07": true, "FR-08": true, "FR-09": true, "FR-10": true, "FR-11": true,
"FR-12": true, "FR-13": true, "FR-14": true, "FR-15": true, "FR-16": true, "FR-12": true, "FR-13": true, "FR-14": true, "FR-15": true, "FR-16": true,
"FR-17" : true, "FR-18" : true, "FR-19" : true, "FR-21" : true, "FR-22" : true, "FR-17": true, "FR-18": true, "FR-19": true, "FR-20R": true, "FR-21": true, "FR-22": true,
"FR-23": true, "FR-24": true, "FR-25": true, "FR-26": true, "FR-27": true, "FR-23": true, "FR-24": true, "FR-25": true, "FR-26": true, "FR-27": true,
"FR-28": true, "FR-29": true, "FR-2A": true, "FR-2B": true, "FR-30": true, "FR-28": true, "FR-29": true, "FR-2A": true, "FR-2B": true, "FR-30": true,
"FR-31": true, "FR-32": true, "FR-33": true, "FR-34": true, "FR-35": true, "FR-31": true, "FR-32": true, "FR-33": true, "FR-34": true, "FR-35": true,
@ -486,9 +486,9 @@ var iso3166_2 = map[string]bool{
"GD-04": true, "GD-05": true, "GD-06": true, "GD-10": true, "GE-AB": true, "GD-04": true, "GD-05": true, "GD-06": true, "GD-10": true, "GE-AB": true,
"GE-AJ": true, "GE-GU": true, "GE-IM": true, "GE-KA": true, "GE-KK": true, "GE-AJ": true, "GE-GU": true, "GE-IM": true, "GE-KA": true, "GE-KK": true,
"GE-MM": true, "GE-RL": true, "GE-SJ": true, "GE-SK": true, "GE-SZ": true, "GE-MM": true, "GE-RL": true, "GE-SJ": true, "GE-SK": true, "GE-SZ": true,
"GE-TB" : true, "GH-AA" : true, "GH-AH" : true, "GH-BA" : true, "GH-CP" : true, "GE-TB": true, "GH-AA": true, "GH-AH": true, "GH-AF": true, "GH-BA": true, "GH-BO": true, "GH-BE": true, "GH-CP": true,
"GH-EP": true, "GH-NP": true, "GH-TV": true, "GH-UE": true, "GH-UW": true, "GH-EP": true, "GH-NP": true, "GH-TV": true, "GH-UE": true, "GH-UW": true,
"GH-WP" : true, "GL-KU" : true, "GL-QA" : true, "GL-QE" : true, "GL-SM" : true, "GH-WP": true, "GL-AV": true, "GL-KU": true, "GL-QA": true, "GL-QT": true, "GL-QE": true, "GL-SM": true,
"GM-B": true, "GM-L": true, "GM-M": true, "GM-N": true, "GM-U": true, "GM-B": true, "GM-L": true, "GM-M": true, "GM-N": true, "GM-U": true,
"GM-W": true, "GN-B": true, "GN-BE": true, "GN-BF": true, "GN-BK": true, "GM-W": true, "GN-B": true, "GN-BE": true, "GN-BF": true, "GN-BK": true,
"GN-C": true, "GN-CO": true, "GN-D": true, "GN-DB": true, "GN-DI": true, "GN-C": true, "GN-CO": true, "GN-D": true, "GN-DB": true, "GN-DI": true,
@ -513,11 +513,11 @@ var iso3166_2 = map[string]bool{
"GR-93": true, "GR-94": true, "GR-A": true, "GR-A1": true, "GR-B": true, "GR-93": true, "GR-94": true, "GR-A": true, "GR-A1": true, "GR-B": true,
"GR-C": true, "GR-D": true, "GR-E": true, "GR-F": true, "GR-G": true, "GR-C": true, "GR-D": true, "GR-E": true, "GR-F": true, "GR-G": true,
"GR-H": true, "GR-I": true, "GR-J": true, "GR-K": true, "GR-L": true, "GR-H": true, "GR-I": true, "GR-J": true, "GR-K": true, "GR-L": true,
"GR-M" : true, "GT-AV" : true, "GT-BV" : true, "GT-CM" : true, "GT-CQ" : true, "GR-M": true, "GT-01": true, "GT-02": true, "GT-03": true, "GT-04": true,
"GT-ES" : true, "GT-GU" : true, "GT-HU" : true, "GT-IZ" : true, "GT-JA" : true, "GT-05": true, "GT-06": true, "GT-07": true, "GT-08": true, "GT-09": true,
"GT-JU" : true, "GT-PE" : true, "GT-PR" : true, "GT-QC" : true, "GT-QZ" : true, "GT-10": true, "GT-11": true, "GT-12": true, "GT-13": true, "GT-14": true,
"GT-RE" : true, "GT-SA" : true, "GT-SM" : true, "GT-SO" : true, "GT-SR" : true, "GT-15": true, "GT-16": true, "GT-17": true, "GT-18": true, "GT-19": true,
"GT-SU" : true, "GT-TO" : true, "GT-ZA" : true, "GW-BA" : true, "GW-BL" : true, "GT-20": true, "GT-21": true, "GT-22": true, "GW-BA": true, "GW-BL": true,
"GW-BM": true, "GW-BS": true, "GW-CA": true, "GW-GA": true, "GW-L": true, "GW-BM": true, "GW-BS": true, "GW-CA": true, "GW-GA": true, "GW-L": true,
"GW-N": true, "GW-OI": true, "GW-QU": true, "GW-S": true, "GW-TO": true, "GW-N": true, "GW-OI": true, "GW-QU": true, "GW-S": true, "GW-TO": true,
"GY-BA": true, "GY-CU": true, "GY-DE": true, "GY-EB": true, "GY-ES": true, "GY-BA": true, "GY-CU": true, "GY-DE": true, "GY-EB": true, "GY-ES": true,
@ -530,7 +530,7 @@ var iso3166_2 = map[string]bool{
"HR-08": true, "HR-09": true, "HR-10": true, "HR-11": true, "HR-12": true, "HR-08": true, "HR-09": true, "HR-10": true, "HR-11": true, "HR-12": true,
"HR-13": true, "HR-14": true, "HR-15": true, "HR-16": true, "HR-17": true, "HR-13": true, "HR-14": true, "HR-15": true, "HR-16": true, "HR-17": true,
"HR-18": true, "HR-19": true, "HR-20": true, "HR-21": true, "HT-AR": true, "HR-18": true, "HR-19": true, "HR-20": true, "HR-21": true, "HT-AR": true,
"HT-CE" : true, "HT-GA" : true, "HT-ND" : true, "HT-NE" : true, "HT-NO" : true, "HT-CE": true, "HT-GA": true, "HT-ND": true, "HT-NE": true, "HT-NO": true, "HT-NI": true,
"HT-OU": true, "HT-SD": true, "HT-SE": true, "HU-BA": true, "HU-BC": true, "HT-OU": true, "HT-SD": true, "HT-SE": true, "HU-BA": true, "HU-BC": true,
"HU-BE": true, "HU-BK": true, "HU-BU": true, "HU-BZ": true, "HU-CS": true, "HU-BE": true, "HU-BK": true, "HU-BU": true, "HU-BZ": true, "HU-CS": true,
"HU-DE": true, "HU-DU": true, "HU-EG": true, "HU-ER": true, "HU-FE": true, "HU-DE": true, "HU-DU": true, "HU-EG": true, "HU-ER": true, "HU-FE": true,
@ -543,9 +543,10 @@ var iso3166_2 = map[string]bool{
"HU-ZE": true, "ID-AC": true, "ID-BA": true, "ID-BB": true, "ID-BE": true, "HU-ZE": true, "ID-AC": true, "ID-BA": true, "ID-BB": true, "ID-BE": true,
"ID-BT": true, "ID-GO": true, "ID-IJ": true, "ID-JA": true, "ID-JB": true, "ID-BT": true, "ID-GO": true, "ID-IJ": true, "ID-JA": true, "ID-JB": true,
"ID-JI": true, "ID-JK": true, "ID-JT": true, "ID-JW": true, "ID-KA": true, "ID-JI": true, "ID-JK": true, "ID-JT": true, "ID-JW": true, "ID-KA": true,
"ID-KB" : true, "ID-KI" : true, "ID-KR" : true, "ID-KS" : true, "ID-KT" : true, "ID-KB": true, "ID-KI": true, "ID-KU": true, "ID-KR": true, "ID-KS": true,
"ID-LA" : true, "ID-MA" : true, "ID-ML" : true, "ID-MU" : true, "ID-NB" : true, "ID-KT": true, "ID-LA": true, "ID-MA": true, "ID-ML": true, "ID-MU": true,
"ID-NT" : true, "ID-NU" : true, "ID-PA" : true, "ID-PB" : true, "ID-RI" : true, "ID-NB": true, "ID-NT": true, "ID-NU": true, "ID-PA": true, "ID-PB": true,
"ID-PE": true, "ID-PP": true, "ID-PS": true, "ID-PT": true, "ID-RI": true,
"ID-SA": true, "ID-SB": true, "ID-SG": true, "ID-SL": true, "ID-SM": true, "ID-SA": true, "ID-SB": true, "ID-SG": true, "ID-SL": true, "ID-SM": true,
"ID-SN": true, "ID-SR": true, "ID-SS": true, "ID-ST": true, "ID-SU": true, "ID-SN": true, "ID-SR": true, "ID-SS": true, "ID-ST": true, "ID-SU": true,
"ID-YO": true, "IE-C": true, "IE-CE": true, "IE-CN": true, "IE-CO": true, "ID-YO": true, "IE-C": true, "IE-CE": true, "IE-CN": true, "IE-CO": true,
@ -556,18 +557,18 @@ var iso3166_2 = map[string]bool{
"IE-TA": true, "IE-U": true, "IE-WD": true, "IE-WH": true, "IE-WW": true, "IE-TA": true, "IE-U": true, "IE-WD": true, "IE-WH": true, "IE-WW": true,
"IE-WX": true, "IL-D": true, "IL-HA": true, "IL-JM": true, "IL-M": true, "IE-WX": true, "IL-D": true, "IL-HA": true, "IL-JM": true, "IL-M": true,
"IL-TA": true, "IL-Z": true, "IN-AN": true, "IN-AP": true, "IN-AR": true, "IL-TA": true, "IL-Z": true, "IN-AN": true, "IN-AP": true, "IN-AR": true,
"IN-AS" : true, "IN-BR" : true, "IN-CH" : true, "IN-CT" : true, "IN-DD" : true, "IN-AS": true, "IN-BR": true, "IN-CH": true, "IN-CT": true, "IN-DH": true,
"IN-DL": true, "IN-DN": true, "IN-GA": true, "IN-GJ": true, "IN-HP": true, "IN-DL": true, "IN-DN": true, "IN-GA": true, "IN-GJ": true, "IN-HP": true,
"IN-HR": true, "IN-JH": true, "IN-JK": true, "IN-KA": true, "IN-KL": true, "IN-HR": true, "IN-JH": true, "IN-JK": true, "IN-KA": true, "IN-KL": true,
"IN-LD": true, "IN-MH": true, "IN-ML": true, "IN-MN": true, "IN-MP": true, "IN-LD": true, "IN-MH": true, "IN-ML": true, "IN-MN": true, "IN-MP": true,
"IN-MZ" : true, "IN-NL" : true, "IN-OR" : true, "IN-PB" : true, "IN-PY" : true, "IN-MZ": true, "IN-NL": true, "IN-TG": true, "IN-OR": true, "IN-PB": true, "IN-PY": true,
"IN-RJ": true, "IN-SK": true, "IN-TN": true, "IN-TR": true, "IN-UP": true, "IN-RJ": true, "IN-SK": true, "IN-TN": true, "IN-TR": true, "IN-UP": true,
"IN-UT": true, "IN-WB": true, "IQ-AN": true, "IQ-AR": true, "IQ-BA": true, "IN-UT": true, "IN-WB": true, "IQ-AN": true, "IQ-AR": true, "IQ-BA": true,
"IQ-BB": true, "IQ-BG": true, "IQ-DA": true, "IQ-DI": true, "IQ-DQ": true, "IQ-BB": true, "IQ-BG": true, "IQ-DA": true, "IQ-DI": true, "IQ-DQ": true,
"IQ-KA" : true, "IQ-MA" : true, "IQ-MU" : true, "IQ-NA" : true, "IQ-NI" : true, "IQ-KA": true, "IQ-KI": true, "IQ-MA": true, "IQ-MU": true, "IQ-NA": true, "IQ-NI": true,
"IQ-QA" : true, "IQ-SD" : true, "IQ-SW" : true, "IQ-TS" : true, "IQ-WA" : true, "IQ-QA": true, "IQ-SD": true, "IQ-SW": true, "IQ-SU": true, "IQ-TS": true, "IQ-WA": true,
"IR-01" : true, "IR-02" : true, "IR-03" : true, "IR-04" : true, "IR-05" : true, "IR-00": true, "IR-01": true, "IR-02": true, "IR-03": true, "IR-04": true, "IR-05": true,
"IR-06" : true, "IR-07" : true, "IR-08" : true, "IR-10" : true, "IR-11" : true, "IR-06": true, "IR-07": true, "IR-08": true, "IR-09": true, "IR-10": true, "IR-11": true,
"IR-12": true, "IR-13": true, "IR-14": true, "IR-15": true, "IR-16": true, "IR-12": true, "IR-13": true, "IR-14": true, "IR-15": true, "IR-16": true,
"IR-17": true, "IR-18": true, "IR-19": true, "IR-20": true, "IR-21": true, "IR-17": true, "IR-18": true, "IR-19": true, "IR-20": true, "IR-21": true,
"IR-22": true, "IR-23": true, "IR-24": true, "IR-25": true, "IR-26": true, "IR-22": true, "IR-23": true, "IR-24": true, "IR-25": true, "IR-26": true,
@ -614,9 +615,17 @@ var iso3166_2 = map[string]bool{
"JP-31": true, "JP-32": true, "JP-33": true, "JP-34": true, "JP-35": true, "JP-31": true, "JP-32": true, "JP-33": true, "JP-34": true, "JP-35": true,
"JP-36": true, "JP-37": true, "JP-38": true, "JP-39": true, "JP-40": true, "JP-36": true, "JP-37": true, "JP-38": true, "JP-39": true, "JP-40": true,
"JP-41": true, "JP-42": true, "JP-43": true, "JP-44": true, "JP-45": true, "JP-41": true, "JP-42": true, "JP-43": true, "JP-44": true, "JP-45": true,
"JP-46" : true, "JP-47" : true, "KE-110" : true, "KE-200" : true, "KE-300" : true, "JP-46": true, "JP-47": true, "KE-01": true, "KE-02": true, "KE-03": true,
"KE-400" : true, "KE-500" : true, "KE-700" : true, "KE-800" : true, "KG-B" : true, "KE-04": true, "KE-05": true, "KE-06": true, "KE-07": true, "KE-08": true,
"KG-C" : true, "KG-GB" : true, "KG-J" : true, "KG-N" : true, "KG-O" : true, "KE-09": true, "KE-10": true, "KE-11": true, "KE-12": true, "KE-13": true,
"KE-14": true, "KE-15": true, "KE-16": true, "KE-17": true, "KE-18": true,
"KE-19": true, "KE-20": true, "KE-21": true, "KE-22": true, "KE-23": true,
"KE-24": true, "KE-25": true, "KE-26": true, "KE-27": true, "KE-28": true,
"KE-29": true, "KE-30": true, "KE-31": true, "KE-32": true, "KE-33": true,
"KE-34": true, "KE-35": true, "KE-36": true, "KE-37": true, "KE-38": true,
"KE-39": true, "KE-40": true, "KE-41": true, "KE-42": true, "KE-43": true,
"KE-44": true, "KE-45": true, "KE-46": true, "KE-47": true, "KG-B": true,
"KG-C": true, "KG-GB": true, "KG-GO": true, "KG-J": true, "KG-N": true, "KG-O": true,
"KG-T": true, "KG-Y": true, "KH-1": true, "KH-10": true, "KH-11": true, "KG-T": true, "KG-Y": true, "KH-1": true, "KH-10": true, "KH-11": true,
"KH-12": true, "KH-13": true, "KH-14": true, "KH-15": true, "KH-16": true, "KH-12": true, "KH-13": true, "KH-14": true, "KH-15": true, "KH-16": true,
"KH-17": true, "KH-18": true, "KH-19": true, "KH-2": true, "KH-20": true, "KH-17": true, "KH-18": true, "KH-19": true, "KH-2": true, "KH-20": true,
@ -633,15 +642,18 @@ var iso3166_2 = map[string]bool{
"KR-31": true, "KR-41": true, "KR-42": true, "KR-43": true, "KR-44": true, "KR-31": true, "KR-41": true, "KR-42": true, "KR-43": true, "KR-44": true,
"KR-45": true, "KR-46": true, "KR-47": true, "KR-48": true, "KR-49": true, "KR-45": true, "KR-46": true, "KR-47": true, "KR-48": true, "KR-49": true,
"KW-AH": true, "KW-FA": true, "KW-HA": true, "KW-JA": true, "KW-KU": true, "KW-AH": true, "KW-FA": true, "KW-HA": true, "KW-JA": true, "KW-KU": true,
"KW-MU" : true, "KZ-AKM" : true, "KZ-AKT" : true, "KZ-ALA" : true, "KZ-ALM" : true, "KW-MU": true, "KZ-10": true, "KZ-75": true, "KZ-19": true, "KZ-11": true,
"KZ-AST" : true, "KZ-ATY" : true, "KZ-KAR" : true, "KZ-KUS" : true, "KZ-KZY" : true, "KZ-15": true, "KZ-71": true, "KZ-23": true, "KZ-27": true, "KZ-47": true,
"KZ-MAN" : true, "KZ-PAV" : true, "KZ-SEV" : true, "KZ-VOS" : true, "KZ-YUZ" : true, "KZ-55": true, "KZ-35": true, "KZ-39": true, "KZ-43": true, "KZ-63": true,
"KZ-ZAP" : true, "KZ-ZHA" : true, "LA-AT" : true, "LA-BK" : true, "LA-BL" : true, "KZ-79": true, "KZ-59": true, "KZ-61": true, "KZ-62": true, "KZ-31": true,
"KZ-33": true, "LA-AT": true, "LA-BK": true, "LA-BL": true,
"LA-CH": true, "LA-HO": true, "LA-KH": true, "LA-LM": true, "LA-LP": true, "LA-CH": true, "LA-HO": true, "LA-KH": true, "LA-LM": true, "LA-LP": true,
"LA-OU": true, "LA-PH": true, "LA-SL": true, "LA-SV": true, "LA-VI": true, "LA-OU": true, "LA-PH": true, "LA-SL": true, "LA-SV": true, "LA-VI": true,
"LA-VT": true, "LA-XA": true, "LA-XE": true, "LA-XI": true, "LA-XS": true, "LA-VT": true, "LA-XA": true, "LA-XE": true, "LA-XI": true, "LA-XS": true,
"LB-AK": true, "LB-AS": true, "LB-BA": true, "LB-BH": true, "LB-BI": true, "LB-AK": true, "LB-AS": true, "LB-BA": true, "LB-BH": true, "LB-BI": true,
"LB-JA" : true, "LB-JL" : true, "LB-NA" : true, "LI-01" : true, "LI-02" : true, "LB-JA": true, "LB-JL": true, "LB-NA": true, "LC-01": true, "LC-02": true,
"LC-03": true, "LC-05": true, "LC-06": true, "LC-07": true, "LC-08": true,
"LC-10": true, "LC-11": true, "LI-01": true, "LI-02": true,
"LI-03": true, "LI-04": true, "LI-05": true, "LI-06": true, "LI-07": true, "LI-03": true, "LI-04": true, "LI-05": true, "LI-06": true, "LI-07": true,
"LI-08": true, "LI-09": true, "LI-10": true, "LI-11": true, "LK-1": true, "LI-08": true, "LI-09": true, "LI-10": true, "LI-11": true, "LK-1": true,
"LK-11": true, "LK-12": true, "LK-13": true, "LK-2": true, "LK-21": true, "LK-11": true, "LK-12": true, "LK-13": true, "LK-2": true, "LK-21": true,
@ -657,7 +669,10 @@ var iso3166_2 = map[string]bool{
"LS-E": true, "LS-F": true, "LS-G": true, "LS-H": true, "LS-J": true, "LS-E": true, "LS-F": true, "LS-G": true, "LS-H": true, "LS-J": true,
"LS-K": true, "LT-AL": true, "LT-KL": true, "LT-KU": true, "LT-MR": true, "LS-K": true, "LT-AL": true, "LT-KL": true, "LT-KU": true, "LT-MR": true,
"LT-PN": true, "LT-SA": true, "LT-TA": true, "LT-TE": true, "LT-UT": true, "LT-PN": true, "LT-SA": true, "LT-TA": true, "LT-TE": true, "LT-UT": true,
"LT-VL" : true, "LU-D" : true, "LU-G" : true, "LU-L" : true, "LV-001" : true, "LT-VL": true, "LU-CA": true, "LU-CL": true, "LU-DI": true, "LU-EC": true,
"LU-ES": true, "LU-GR": true, "LU-LU": true, "LU-ME": true, "LU-RD": true,
"LU-RM": true, "LU-VD": true, "LU-WI": true, "LU-D": true, "LU-G": true, "LU-L": true,
"LV-001": true, "LV-111": true, "LV-112": true, "LV-113": true,
"LV-002": true, "LV-003": true, "LV-004": true, "LV-005": true, "LV-006": true, "LV-002": true, "LV-003": true, "LV-004": true, "LV-005": true, "LV-006": true,
"LV-007": true, "LV-008": true, "LV-009": true, "LV-010": true, "LV-011": true, "LV-007": true, "LV-008": true, "LV-009": true, "LV-010": true, "LV-011": true,
"LV-012": true, "LV-013": true, "LV-014": true, "LV-015": true, "LV-016": true, "LV-012": true, "LV-013": true, "LV-014": true, "LV-015": true, "LV-016": true,
@ -716,42 +731,39 @@ var iso3166_2 = map[string]bool{
"ME-02": true, "ME-03": true, "ME-04": true, "ME-05": true, "ME-06": true, "ME-02": true, "ME-03": true, "ME-04": true, "ME-05": true, "ME-06": true,
"ME-07": true, "ME-08": true, "ME-09": true, "ME-10": true, "ME-11": true, "ME-07": true, "ME-08": true, "ME-09": true, "ME-10": true, "ME-11": true,
"ME-12": true, "ME-13": true, "ME-14": true, "ME-15": true, "ME-16": true, "ME-12": true, "ME-13": true, "ME-14": true, "ME-15": true, "ME-16": true,
"ME-17" : true, "ME-18" : true, "ME-19" : true, "ME-20" : true, "ME-21" : true, "ME-17": true, "ME-18": true, "ME-19": true, "ME-20": true, "ME-21": true, "ME-24": true,
"MG-A": true, "MG-D": true, "MG-F": true, "MG-M": true, "MG-T": true, "MG-A": true, "MG-D": true, "MG-F": true, "MG-M": true, "MG-T": true,
"MG-U": true, "MH-ALK": true, "MH-ALL": true, "MH-ARN": true, "MH-AUR": true, "MG-U": true, "MH-ALK": true, "MH-ALL": true, "MH-ARN": true, "MH-AUR": true,
"MH-EBO": true, "MH-ENI": true, "MH-JAB": true, "MH-JAL": true, "MH-KIL": true, "MH-EBO": true, "MH-ENI": true, "MH-JAB": true, "MH-JAL": true, "MH-KIL": true,
"MH-KWA": true, "MH-L": true, "MH-LAE": true, "MH-LIB": true, "MH-LIK": true, "MH-KWA": true, "MH-L": true, "MH-LAE": true, "MH-LIB": true, "MH-LIK": true,
"MH-MAJ": true, "MH-MAL": true, "MH-MEJ": true, "MH-MIL": true, "MH-NMK": true, "MH-MAJ": true, "MH-MAL": true, "MH-MEJ": true, "MH-MIL": true, "MH-NMK": true,
"MH-NMU": true, "MH-RON": true, "MH-T": true, "MH-UJA": true, "MH-UTI": true, "MH-NMU": true, "MH-RON": true, "MH-T": true, "MH-UJA": true, "MH-UTI": true,
"MH-WTJ" : true, "MH-WTN" : true, "MK-01" : true, "MK-02" : true, "MK-03" : true, "MH-WTJ": true, "MH-WTN": true, "MK-101": true, "MK-102": true, "MK-103": true,
"MK-04" : true, "MK-05" : true, "MK-06" : true, "MK-07" : true, "MK-08" : true, "MK-104": true, "MK-105": true,
"MK-09" : true, "MK-10" : true, "MK-11" : true, "MK-12" : true, "MK-13" : true, "MK-106": true, "MK-107": true, "MK-108": true, "MK-109": true, "MK-201": true,
"MK-14" : true, "MK-15" : true, "MK-16" : true, "MK-17" : true, "MK-18" : true, "MK-202": true, "MK-205": true, "MK-206": true, "MK-207": true, "MK-208": true,
"MK-19" : true, "MK-20" : true, "MK-21" : true, "MK-22" : true, "MK-23" : true, "MK-209": true, "MK-210": true, "MK-211": true, "MK-301": true, "MK-303": true,
"MK-24" : true, "MK-25" : true, "MK-26" : true, "MK-27" : true, "MK-28" : true, "MK-307": true, "MK-308": true, "MK-310": true, "MK-311": true, "MK-312": true,
"MK-29" : true, "MK-30" : true, "MK-31" : true, "MK-32" : true, "MK-33" : true, "MK-401": true, "MK-402": true, "MK-403": true, "MK-404": true, "MK-405": true,
"MK-34" : true, "MK-35" : true, "MK-36" : true, "MK-37" : true, "MK-38" : true, "MK-406": true, "MK-408": true, "MK-409": true, "MK-410": true, "MK-501": true,
"MK-39" : true, "MK-40" : true, "MK-41" : true, "MK-42" : true, "MK-43" : true, "MK-502": true, "MK-503": true, "MK-505": true, "MK-506": true, "MK-507": true,
"MK-44" : true, "MK-45" : true, "MK-46" : true, "MK-47" : true, "MK-48" : true, "MK-508": true, "MK-509": true, "MK-601": true, "MK-602": true, "MK-604": true,
"MK-49" : true, "MK-50" : true, "MK-51" : true, "MK-52" : true, "MK-53" : true, "MK-605": true, "MK-606": true, "MK-607": true, "MK-608": true, "MK-609": true,
"MK-54" : true, "MK-55" : true, "MK-56" : true, "MK-57" : true, "MK-58" : true, "MK-701": true, "MK-702": true, "MK-703": true, "MK-704": true, "MK-705": true,
"MK-59" : true, "MK-60" : true, "MK-61" : true, "MK-62" : true, "MK-63" : true, "MK-803": true, "MK-804": true, "MK-806": true, "MK-807": true, "MK-809": true,
"MK-64" : true, "MK-65" : true, "MK-66" : true, "MK-67" : true, "MK-68" : true, "MK-810": true, "MK-811": true, "MK-812": true, "MK-813": true, "MK-814": true,
"MK-69" : true, "MK-70" : true, "MK-71" : true, "MK-72" : true, "MK-73" : true, "MK-816": true, "ML-1": true, "ML-2": true, "ML-3": true, "ML-4": true,
"MK-74" : true, "MK-75" : true, "MK-76" : true, "MK-77" : true, "MK-78" : true, "ML-5": true, "ML-6": true, "ML-7": true, "ML-8": true, "ML-BKO": true,
"MK-79" : true, "MK-80" : true, "MK-81" : true, "MK-82" : true, "MK-83" : true,
"MK-84" : true, "ML-1" : true, "ML-2" : true, "ML-3" : true, "ML-4" : true,
"ML-5" : true, "ML-6" : true, "ML-7" : true, "ML-8" : true, "ML-BK0" : true,
"MM-01": true, "MM-02": true, "MM-03": true, "MM-04": true, "MM-05": true, "MM-01": true, "MM-02": true, "MM-03": true, "MM-04": true, "MM-05": true,
"MM-06": true, "MM-07": true, "MM-11": true, "MM-12": true, "MM-13": true, "MM-06": true, "MM-07": true, "MM-11": true, "MM-12": true, "MM-13": true,
"MM-14" : true, "MM-15" : true, "MM-16" : true, "MM-17" : true, "MN-035" : true, "MM-14": true, "MM-15": true, "MM-16": true, "MM-17": true, "MM-18": true, "MN-035": true,
"MN-037": true, "MN-039": true, "MN-041": true, "MN-043": true, "MN-046": true, "MN-037": true, "MN-039": true, "MN-041": true, "MN-043": true, "MN-046": true,
"MN-047": true, "MN-049": true, "MN-051": true, "MN-053": true, "MN-055": true, "MN-047": true, "MN-049": true, "MN-051": true, "MN-053": true, "MN-055": true,
"MN-057": true, "MN-059": true, "MN-061": true, "MN-063": true, "MN-064": true, "MN-057": true, "MN-059": true, "MN-061": true, "MN-063": true, "MN-064": true,
"MN-065": true, "MN-067": true, "MN-069": true, "MN-071": true, "MN-073": true, "MN-065": true, "MN-067": true, "MN-069": true, "MN-071": true, "MN-073": true,
"MN-1": true, "MR-01": true, "MR-02": true, "MR-03": true, "MR-04": true, "MN-1": true, "MR-01": true, "MR-02": true, "MR-03": true, "MR-04": true,
"MR-05": true, "MR-06": true, "MR-07": true, "MR-08": true, "MR-09": true, "MR-05": true, "MR-06": true, "MR-07": true, "MR-08": true, "MR-09": true,
"MR-10" : true, "MR-11" : true, "MR-12" : true, "MR-NKC" : true, "MT-01" : true, "MR-10": true, "MR-11": true, "MR-12": true, "MR-13": true, "MR-NKC": true, "MT-01": true,
"MT-02": true, "MT-03": true, "MT-04": true, "MT-05": true, "MT-06": true, "MT-02": true, "MT-03": true, "MT-04": true, "MT-05": true, "MT-06": true,
"MT-07": true, "MT-08": true, "MT-09": true, "MT-10": true, "MT-11": true, "MT-07": true, "MT-08": true, "MT-09": true, "MT-10": true, "MT-11": true,
"MT-12": true, "MT-13": true, "MT-14": true, "MT-15": true, "MT-16": true, "MT-12": true, "MT-13": true, "MT-14": true, "MT-15": true, "MT-16": true,
@ -768,7 +780,7 @@ var iso3166_2 = map[string]bool{
"MT-67": true, "MT-68": true, "MU-AG": true, "MU-BL": true, "MU-BR": true, "MT-67": true, "MT-68": true, "MU-AG": true, "MU-BL": true, "MU-BR": true,
"MU-CC": true, "MU-CU": true, "MU-FL": true, "MU-GP": true, "MU-MO": true, "MU-CC": true, "MU-CU": true, "MU-FL": true, "MU-GP": true, "MU-MO": true,
"MU-PA": true, "MU-PL": true, "MU-PU": true, "MU-PW": true, "MU-QB": true, "MU-PA": true, "MU-PL": true, "MU-PU": true, "MU-PW": true, "MU-QB": true,
"MU-RO" : true, "MU-RP" : true, "MU-SA" : true, "MU-VP" : true, "MV-00" : true, "MU-RO": true, "MU-RP": true, "MU-RR": true, "MU-SA": true, "MU-VP": true, "MV-00": true,
"MV-01": true, "MV-02": true, "MV-03": true, "MV-04": true, "MV-05": true, "MV-01": true, "MV-02": true, "MV-03": true, "MV-04": true, "MV-05": true,
"MV-07": true, "MV-08": true, "MV-12": true, "MV-13": true, "MV-14": true, "MV-07": true, "MV-08": true, "MV-12": true, "MV-13": true, "MV-14": true,
"MV-17": true, "MV-20": true, "MV-23": true, "MV-24": true, "MV-25": true, "MV-17": true, "MV-20": true, "MV-23": true, "MV-24": true, "MV-25": true,
@ -782,7 +794,7 @@ var iso3166_2 = map[string]bool{
"MW-NS": true, "MW-NU": true, "MW-PH": true, "MW-RU": true, "MW-S": true, "MW-NS": true, "MW-NU": true, "MW-PH": true, "MW-RU": true, "MW-S": true,
"MW-SA": true, "MW-TH": true, "MW-ZO": true, "MX-AGU": true, "MX-BCN": true, "MW-SA": true, "MW-TH": true, "MW-ZO": true, "MX-AGU": true, "MX-BCN": true,
"MX-BCS": true, "MX-CAM": true, "MX-CHH": true, "MX-CHP": true, "MX-COA": true, "MX-BCS": true, "MX-CAM": true, "MX-CHH": true, "MX-CHP": true, "MX-COA": true,
"MX-COL" : true, "MX-DIF" : true, "MX-DUR" : true, "MX-GRO" : true, "MX-GUA" : true, "MX-COL": true, "MX-CMX": true, "MX-DIF": true, "MX-DUR": true, "MX-GRO": true, "MX-GUA": true,
"MX-HID": true, "MX-JAL": true, "MX-MEX": true, "MX-MIC": true, "MX-MOR": true, "MX-HID": true, "MX-JAL": true, "MX-MEX": true, "MX-MIC": true, "MX-MOR": true,
"MX-NAY": true, "MX-NLE": true, "MX-OAX": true, "MX-PUE": true, "MX-QUE": true, "MX-NAY": true, "MX-NLE": true, "MX-OAX": true, "MX-PUE": true, "MX-QUE": true,
"MX-ROO": true, "MX-SIN": true, "MX-SLP": true, "MX-SON": true, "MX-TAB": true, "MX-ROO": true, "MX-SIN": true, "MX-SLP": true, "MX-SON": true, "MX-TAB": true,
@ -793,7 +805,7 @@ var iso3166_2 = map[string]bool{
"MY-16": true, "MZ-A": true, "MZ-B": true, "MZ-G": true, "MZ-I": true, "MY-16": true, "MZ-A": true, "MZ-B": true, "MZ-G": true, "MZ-I": true,
"MZ-L": true, "MZ-MPM": true, "MZ-N": true, "MZ-P": true, "MZ-Q": true, "MZ-L": true, "MZ-MPM": true, "MZ-N": true, "MZ-P": true, "MZ-Q": true,
"MZ-S": true, "MZ-T": true, "NA-CA": true, "NA-ER": true, "NA-HA": true, "MZ-S": true, "MZ-T": true, "NA-CA": true, "NA-ER": true, "NA-HA": true,
"NA-KA" : true, "NA-KH" : true, "NA-KU" : true, "NA-OD" : true, "NA-OH" : true, "NA-KA": true, "NA-KE": true, "NA-KH": true, "NA-KU": true, "NA-KW": true, "NA-OD": true, "NA-OH": true,
"NA-OK": true, "NA-ON": true, "NA-OS": true, "NA-OT": true, "NA-OW": true, "NA-OK": true, "NA-ON": true, "NA-OS": true, "NA-OT": true, "NA-OW": true,
"NE-1": true, "NE-2": true, "NE-3": true, "NE-4": true, "NE-5": true, "NE-1": true, "NE-2": true, "NE-3": true, "NE-4": true, "NE-5": true,
"NE-6": true, "NE-7": true, "NE-8": true, "NG-AB": true, "NG-AD": true, "NE-6": true, "NE-7": true, "NE-8": true, "NG-AB": true, "NG-AD": true,
@ -811,10 +823,9 @@ var iso3166_2 = map[string]bool{
"NL-BQ3": true, "NL-CW": true, "NL-DR": true, "NL-FL": true, "NL-FR": true, "NL-BQ3": true, "NL-CW": true, "NL-DR": true, "NL-FL": true, "NL-FR": true,
"NL-GE": true, "NL-GR": true, "NL-LI": true, "NL-NB": true, "NL-NH": true, "NL-GE": true, "NL-GR": true, "NL-LI": true, "NL-NB": true, "NL-NH": true,
"NL-OV": true, "NL-SX": true, "NL-UT": true, "NL-ZE": true, "NL-ZH": true, "NL-OV": true, "NL-SX": true, "NL-UT": true, "NL-ZE": true, "NL-ZH": true,
"NO-01" : true, "NO-02" : true, "NO-03" : true, "NO-04" : true, "NO-05" : true, "NO-03": true, "NO-11": true, "NO-15": true, "NO-16": true, "NO-17": true,
"NO-06" : true, "NO-07" : true, "NO-08" : true, "NO-09" : true, "NO-10" : true, "NO-18": true, "NO-21": true, "NO-30": true, "NO-34": true, "NO-38": true,
"NO-11" : true, "NO-12" : true, "NO-14" : true, "NO-15" : true, "NO-16" : true, "NO-42": true, "NO-46": true, "NO-50": true, "NO-54": true,
"NO-17" : true, "NO-18" : true, "NO-19" : true, "NO-20" : true, "NO-21" : true,
"NO-22": true, "NP-1": true, "NP-2": true, "NP-3": true, "NP-4": true, "NO-22": true, "NP-1": true, "NP-2": true, "NP-3": true, "NP-4": true,
"NP-5": true, "NP-BA": true, "NP-BH": true, "NP-DH": true, "NP-GA": true, "NP-5": true, "NP-BA": true, "NP-BH": true, "NP-DH": true, "NP-GA": true,
"NP-JA": true, "NP-KA": true, "NP-KO": true, "NP-LU": true, "NP-MA": true, "NP-JA": true, "NP-KA": true, "NP-KO": true, "NP-LU": true, "NP-MA": true,
@ -825,8 +836,8 @@ var iso3166_2 = map[string]bool{
"NZ-BOP": true, "NZ-CAN": true, "NZ-CIT": true, "NZ-GIS": true, "NZ-HKB": true, "NZ-BOP": true, "NZ-CAN": true, "NZ-CIT": true, "NZ-GIS": true, "NZ-HKB": true,
"NZ-MBH": true, "NZ-MWT": true, "NZ-N": true, "NZ-NSN": true, "NZ-NTL": true, "NZ-MBH": true, "NZ-MWT": true, "NZ-N": true, "NZ-NSN": true, "NZ-NTL": true,
"NZ-OTA": true, "NZ-S": true, "NZ-STL": true, "NZ-TAS": true, "NZ-TKI": true, "NZ-OTA": true, "NZ-S": true, "NZ-STL": true, "NZ-TAS": true, "NZ-TKI": true,
"NZ-WGN" : true, "NZ-WKO" : true, "NZ-WTC" : true, "OM-BA" : true, "OM-BU" : true, "NZ-WGN": true, "NZ-WKO": true, "NZ-WTC": true, "OM-BA": true, "OM-BS": true, "OM-BU": true, "OM-BJ": true,
"OM-DA" : true, "OM-MA" : true, "OM-MU" : true, "OM-SH" : true, "OM-WU" : true, "OM-DA": true, "OM-MA": true, "OM-MU": true, "OM-SH": true, "OM-SJ": true, "OM-SS": true, "OM-WU": true,
"OM-ZA": true, "OM-ZU": true, "PA-1": true, "PA-2": true, "PA-3": true, "OM-ZA": true, "OM-ZU": true, "PA-1": true, "PA-2": true, "PA-3": true,
"PA-4": true, "PA-5": true, "PA-6": true, "PA-7": true, "PA-8": true, "PA-4": true, "PA-5": true, "PA-6": true, "PA-7": true, "PA-8": true,
"PA-9": true, "PA-EM": true, "PA-KY": true, "PA-NB": true, "PE-AMA": true, "PA-9": true, "PA-EM": true, "PA-KY": true, "PA-NB": true, "PE-AMA": true,
@ -860,10 +871,10 @@ var iso3166_2 = map[string]bool{
"PH-TAR": true, "PH-TAW": true, "PH-WSA": true, "PH-ZAN": true, "PH-ZAS": true, "PH-TAR": true, "PH-TAW": true, "PH-WSA": true, "PH-ZAN": true, "PH-ZAS": true,
"PH-ZMB": true, "PH-ZSI": true, "PK-BA": true, "PK-GB": true, "PK-IS": true, "PH-ZMB": true, "PH-ZSI": true, "PK-BA": true, "PK-GB": true, "PK-IS": true,
"PK-JK": true, "PK-KP": true, "PK-PB": true, "PK-SD": true, "PK-TA": true, "PK-JK": true, "PK-KP": true, "PK-PB": true, "PK-SD": true, "PK-TA": true,
"PL-DS" : true, "PL-KP" : true, "PL-LB" : true, "PL-LD" : true, "PL-LU" : true, "PL-02": true, "PL-04": true, "PL-06": true, "PL-08": true, "PL-10": true,
"PL-MA" : true, "PL-MZ" : true, "PL-OP" : true, "PL-PD" : true, "PL-PK" : true, "PL-12": true, "PL-14": true, "PL-16": true, "PL-18": true, "PL-20": true,
"PL-PM" : true, "PL-SK" : true, "PL-SL" : true, "PL-WN" : true, "PL-WP" : true, "PL-22": true, "PL-24": true, "PL-26": true, "PL-28": true, "PL-30": true, "PL-32": true,
"PL-ZP" : true, "PS-BTH" : true, "PS-DEB" : true, "PS-GZA" : true, "PS-HBN" : true, "PS-BTH": true, "PS-DEB": true, "PS-GZA": true, "PS-HBN": true,
"PS-JEM": true, "PS-JEN": true, "PS-JRH": true, "PS-KYS": true, "PS-NBS": true, "PS-JEM": true, "PS-JEN": true, "PS-JRH": true, "PS-KYS": true, "PS-NBS": true,
"PS-NGZ": true, "PS-QQA": true, "PS-RBH": true, "PS-RFH": true, "PS-SLT": true, "PS-NGZ": true, "PS-QQA": true, "PS-RBH": true, "PS-RFH": true, "PS-SLT": true,
"PS-TBS": true, "PS-TKM": true, "PT-01": true, "PT-02": true, "PT-03": true, "PS-TBS": true, "PS-TKM": true, "PT-01": true, "PT-02": true, "PT-03": true,
@ -921,7 +932,7 @@ var iso3166_2 = map[string]bool{
"SC-13": true, "SC-14": true, "SC-15": true, "SC-16": true, "SC-17": true, "SC-13": true, "SC-14": true, "SC-15": true, "SC-16": true, "SC-17": true,
"SC-18": true, "SC-19": true, "SC-20": true, "SC-21": true, "SC-22": true, "SC-18": true, "SC-19": true, "SC-20": true, "SC-21": true, "SC-22": true,
"SC-23": true, "SC-24": true, "SC-25": true, "SD-DC": true, "SD-DE": true, "SC-23": true, "SC-24": true, "SC-25": true, "SD-DC": true, "SD-DE": true,
"SD-DN" : true, "SD-DS" : true, "SD-DW" : true, "SD-GD" : true, "SD-GZ" : true, "SD-DN": true, "SD-DS": true, "SD-DW": true, "SD-GD": true, "SD-GK": true, "SD-GZ": true,
"SD-KA": true, "SD-KH": true, "SD-KN": true, "SD-KS": true, "SD-NB": true, "SD-KA": true, "SD-KH": true, "SD-KN": true, "SD-KS": true, "SD-NB": true,
"SD-NO": true, "SD-NR": true, "SD-NW": true, "SD-RS": true, "SD-SI": true, "SD-NO": true, "SD-NR": true, "SD-NW": true, "SD-RS": true, "SD-SI": true,
"SE-AB": true, "SE-AC": true, "SE-BD": true, "SE-C": true, "SE-D": true, "SE-AB": true, "SE-AC": true, "SE-BD": true, "SE-C": true, "SE-D": true,
@ -971,7 +982,7 @@ var iso3166_2 = map[string]bool{
"SI-193": true, "SI-194": true, "SI-195": true, "SI-196": true, "SI-197": true, "SI-193": true, "SI-194": true, "SI-195": true, "SI-196": true, "SI-197": true,
"SI-198": true, "SI-199": true, "SI-200": true, "SI-201": true, "SI-202": true, "SI-198": true, "SI-199": true, "SI-200": true, "SI-201": true, "SI-202": true,
"SI-203": true, "SI-204": true, "SI-205": true, "SI-206": true, "SI-207": true, "SI-203": true, "SI-204": true, "SI-205": true, "SI-206": true, "SI-207": true,
"SI-208" : true, "SI-209" : true, "SI-210" : true, "SI-211" : true, "SK-BC" : true, "SI-208": true, "SI-209": true, "SI-210": true, "SI-211": true, "SI-212": true, "SI-213": true, "SK-BC": true,
"SK-BL": true, "SK-KI": true, "SK-NI": true, "SK-PV": true, "SK-TA": true, "SK-BL": true, "SK-KI": true, "SK-NI": true, "SK-PV": true, "SK-TA": true,
"SK-TC": true, "SK-ZI": true, "SL-E": true, "SL-N": true, "SL-S": true, "SK-TC": true, "SK-ZI": true, "SL-E": true, "SL-N": true, "SL-S": true,
"SL-W": true, "SM-01": true, "SM-02": true, "SM-03": true, "SM-04": true, "SL-W": true, "SM-01": true, "SM-02": true, "SM-03": true, "SM-04": true,
@ -985,8 +996,8 @@ var iso3166_2 = map[string]bool{
"SO-TO": true, "SO-WO": true, "SR-BR": true, "SR-CM": true, "SR-CR": true, "SO-TO": true, "SO-WO": true, "SR-BR": true, "SR-CM": true, "SR-CR": true,
"SR-MA": true, "SR-NI": true, "SR-PM": true, "SR-PR": true, "SR-SA": true, "SR-MA": true, "SR-NI": true, "SR-PM": true, "SR-PR": true, "SR-SA": true,
"SR-SI": true, "SR-WA": true, "SS-BN": true, "SS-BW": true, "SS-EC": true, "SR-SI": true, "SR-WA": true, "SS-BN": true, "SS-BW": true, "SS-EC": true,
"SS-EE8" : true, "SS-EW" : true, "SS-JG" : true, "SS-LK" : true, "SS-NU" : true, "SS-EE8": true, "SS-EE": true, "SS-EW": true, "SS-JG": true, "SS-LK": true, "SS-NU": true,
"SS-UY" : true, "SS-WR" : true, "ST-P" : true, "ST-S" : true, "SV-AH" : true, "SS-UY": true, "SS-WR": true, "ST-01": true, "ST-P": true, "ST-S": true, "SV-AH": true,
"SV-CA": true, "SV-CH": true, "SV-CU": true, "SV-LI": true, "SV-MO": true, "SV-CA": true, "SV-CH": true, "SV-CU": true, "SV-LI": true, "SV-MO": true,
"SV-PA": true, "SV-SA": true, "SV-SM": true, "SV-SO": true, "SV-SS": true, "SV-PA": true, "SV-SA": true, "SV-SM": true, "SV-SO": true, "SV-SS": true,
"SV-SV": true, "SV-UN": true, "SV-US": true, "SY-DI": true, "SY-DR": true, "SV-SV": true, "SV-UN": true, "SV-US": true, "SY-DI": true, "SY-DR": true,
@ -1003,7 +1014,7 @@ var iso3166_2 = map[string]bool{
"TH-17": true, "TH-18": true, "TH-19": true, "TH-20": true, "TH-21": true, "TH-17": true, "TH-18": true, "TH-19": true, "TH-20": true, "TH-21": true,
"TH-22": true, "TH-23": true, "TH-24": true, "TH-25": true, "TH-26": true, "TH-22": true, "TH-23": true, "TH-24": true, "TH-25": true, "TH-26": true,
"TH-27": true, "TH-30": true, "TH-31": true, "TH-32": true, "TH-33": true, "TH-27": true, "TH-30": true, "TH-31": true, "TH-32": true, "TH-33": true,
"TH-34" : true, "TH-35" : true, "TH-36" : true, "TH-37" : true, "TH-39" : true, "TH-34": true, "TH-35": true, "TH-36": true, "TH-37": true, "TH-38": true, "TH-39": true,
"TH-40": true, "TH-41": true, "TH-42": true, "TH-43": true, "TH-44": true, "TH-40": true, "TH-41": true, "TH-42": true, "TH-43": true, "TH-44": true,
"TH-45": true, "TH-46": true, "TH-47": true, "TH-48": true, "TH-49": true, "TH-45": true, "TH-46": true, "TH-47": true, "TH-48": true, "TH-49": true,
"TH-50": true, "TH-51": true, "TH-52": true, "TH-53": true, "TH-54": true, "TH-50": true, "TH-51": true, "TH-52": true, "TH-53": true, "TH-54": true,
@ -1014,7 +1025,7 @@ var iso3166_2 = map[string]bool{
"TH-80": true, "TH-81": true, "TH-82": true, "TH-83": true, "TH-84": true, "TH-80": true, "TH-81": true, "TH-82": true, "TH-83": true, "TH-84": true,
"TH-85": true, "TH-86": true, "TH-90": true, "TH-91": true, "TH-92": true, "TH-85": true, "TH-86": true, "TH-90": true, "TH-91": true, "TH-92": true,
"TH-93": true, "TH-94": true, "TH-95": true, "TH-96": true, "TH-S": true, "TH-93": true, "TH-94": true, "TH-95": true, "TH-96": true, "TH-S": true,
"TJ-GB" : true, "TJ-KT" : true, "TJ-SU" : true, "TL-AL" : true, "TL-AN" : true, "TJ-GB": true, "TJ-KT": true, "TJ-SU": true, "TJ-DU": true, "TJ-RA": true, "TL-AL": true, "TL-AN": true,
"TL-BA": true, "TL-BO": true, "TL-CO": true, "TL-DI": true, "TL-ER": true, "TL-BA": true, "TL-BO": true, "TL-CO": true, "TL-DI": true, "TL-ER": true,
"TL-LA": true, "TL-LI": true, "TL-MF": true, "TL-MT": true, "TL-OE": true, "TL-LA": true, "TL-LI": true, "TL-MF": true, "TL-MT": true, "TL-OE": true,
"TL-VI": true, "TM-A": true, "TM-B": true, "TM-D": true, "TM-L": true, "TL-VI": true, "TM-A": true, "TM-B": true, "TM-D": true, "TM-L": true,
@ -1041,20 +1052,20 @@ var iso3166_2 = map[string]bool{
"TR-70": true, "TR-71": true, "TR-72": true, "TR-73": true, "TR-74": true, "TR-70": true, "TR-71": true, "TR-72": true, "TR-73": true, "TR-74": true,
"TR-75": true, "TR-76": true, "TR-77": true, "TR-78": true, "TR-79": true, "TR-75": true, "TR-76": true, "TR-77": true, "TR-78": true, "TR-79": true,
"TR-80": true, "TR-81": true, "TT-ARI": true, "TT-CHA": true, "TT-CTT": true, "TR-80": true, "TR-81": true, "TT-ARI": true, "TT-CHA": true, "TT-CTT": true,
"TT-DMN" : true, "TT-ETO" : true, "TT-PED" : true, "TT-POS" : true, "TT-PRT" : true, "TT-DMN": true, "TT-ETO": true, "TT-MRC": true, "TT-TOB": true, "TT-PED": true, "TT-POS": true, "TT-PRT": true,
"TT-PTF": true, "TT-RCM": true, "TT-SFO": true, "TT-SGE": true, "TT-SIP": true, "TT-PTF": true, "TT-RCM": true, "TT-SFO": true, "TT-SGE": true, "TT-SIP": true,
"TT-SJL": true, "TT-TUP": true, "TT-WTO": true, "TV-FUN": true, "TV-NIT": true, "TT-SJL": true, "TT-TUP": true, "TT-WTO": true, "TV-FUN": true, "TV-NIT": true,
"TV-NKF": true, "TV-NKL": true, "TV-NMA": true, "TV-NMG": true, "TV-NUI": true, "TV-NKF": true, "TV-NKL": true, "TV-NMA": true, "TV-NMG": true, "TV-NUI": true,
"TV-VAI" : true, "TW-CHA" : true, "TW-CYI" : true, "TW-CYQ" : true, "TW-HSQ" : true, "TV-VAI": true, "TW-CHA": true, "TW-CYI": true, "TW-CYQ": true, "TW-KIN": true, "TW-HSQ": true,
"TW-HSZ" : true, "TW-HUA" : true, "TW-ILA" : true, "TW-KEE" : true, "TW-KHH" : true, "TW-HSZ": true, "TW-HUA": true, "TW-LIE": true, "TW-ILA": true, "TW-KEE": true, "TW-KHH": true,
"TW-KHQ" : true, "TW-MIA" : true, "TW-NAN" : true, "TW-PEN" : true, "TW-PIF" : true, "TW-KHQ": true, "TW-MIA": true, "TW-NAN": true, "TW-NWT": true, "TW-PEN": true, "TW-PIF": true,
"TW-TAO": true, "TW-TNN": true, "TW-TNQ": true, "TW-TPE": true, "TW-TPQ": true, "TW-TAO": true, "TW-TNN": true, "TW-TNQ": true, "TW-TPE": true, "TW-TPQ": true,
"TW-TTT": true, "TW-TXG": true, "TW-TXQ": true, "TW-YUN": true, "TZ-01": true, "TW-TTT": true, "TW-TXG": true, "TW-TXQ": true, "TW-YUN": true, "TZ-01": true,
"TZ-02": true, "TZ-03": true, "TZ-04": true, "TZ-05": true, "TZ-06": true, "TZ-02": true, "TZ-03": true, "TZ-04": true, "TZ-05": true, "TZ-06": true,
"TZ-07": true, "TZ-08": true, "TZ-09": true, "TZ-10": true, "TZ-11": true, "TZ-07": true, "TZ-08": true, "TZ-09": true, "TZ-10": true, "TZ-11": true,
"TZ-12": true, "TZ-13": true, "TZ-14": true, "TZ-15": true, "TZ-16": true, "TZ-12": true, "TZ-13": true, "TZ-14": true, "TZ-15": true, "TZ-16": true,
"TZ-17": true, "TZ-18": true, "TZ-19": true, "TZ-20": true, "TZ-21": true, "TZ-17": true, "TZ-18": true, "TZ-19": true, "TZ-20": true, "TZ-21": true,
"TZ-22" : true, "TZ-23" : true, "TZ-24" : true, "TZ-25" : true, "TZ-26" : true, "TZ-22": true, "TZ-23": true, "TZ-24": true, "TZ-25": true, "TZ-26": true, "TZ-27": true, "TZ-28": true, "TZ-29": true, "TZ-30": true, "TZ-31": true,
"UA-05": true, "UA-07": true, "UA-09": true, "UA-12": true, "UA-14": true, "UA-05": true, "UA-07": true, "UA-09": true, "UA-12": true, "UA-14": true,
"UA-18": true, "UA-21": true, "UA-23": true, "UA-26": true, "UA-30": true, "UA-18": true, "UA-21": true, "UA-23": true, "UA-26": true, "UA-30": true,
"UA-32": true, "UA-35": true, "UA-40": true, "UA-43": true, "UA-46": true, "UA-32": true, "UA-35": true, "UA-40": true, "UA-43": true, "UA-46": true,
@ -1077,7 +1088,14 @@ var iso3166_2 = map[string]bool{
"UG-408": true, "UG-409": true, "UG-410": true, "UG-411": true, "UG-412": true, "UG-408": true, "UG-409": true, "UG-410": true, "UG-411": true, "UG-412": true,
"UG-413": true, "UG-414": true, "UG-415": true, "UG-416": true, "UG-417": true, "UG-413": true, "UG-414": true, "UG-415": true, "UG-416": true, "UG-417": true,
"UG-418": true, "UG-419": true, "UG-C": true, "UG-E": true, "UG-N": true, "UG-418": true, "UG-419": true, "UG-C": true, "UG-E": true, "UG-N": true,
"UG-W" : true, "UM-67" : true, "UM-71" : true, "UM-76" : true, "UM-79" : true, "UG-W": true, "UG-322": true, "UG-323": true, "UG-420": true, "UG-117": true,
"UG-118": true, "UG-225": true, "UG-120": true, "UG-226": true,
"UG-121": true, "UG-122": true, "UG-227": true, "UG-421": true,
"UG-325": true, "UG-228": true, "UG-123": true, "UG-422": true,
"UG-326": true, "UG-229": true, "UG-124": true, "UG-423": true,
"UG-230": true, "UG-327": true, "UG-424": true, "UG-328": true,
"UG-425": true, "UG-426": true, "UG-330": true,
"UM-67": true, "UM-71": true, "UM-76": true, "UM-79": true,
"UM-81": true, "UM-84": true, "UM-86": true, "UM-89": true, "UM-95": true, "UM-81": true, "UM-84": true, "UM-86": true, "UM-89": true, "UM-95": true,
"US-AK": true, "US-AL": true, "US-AR": true, "US-AS": true, "US-AZ": true, "US-AK": true, "US-AL": true, "US-AR": true, "US-AS": true, "US-AZ": true,
"US-CA": true, "US-CO": true, "US-CT": true, "US-DC": true, "US-DE": true, "US-CA": true, "US-CO": true, "US-CT": true, "US-DC": true, "US-DE": true,
@ -1117,16 +1135,16 @@ var iso3166_2 = map[string]bool{
"VN-69": true, "VN-70": true, "VN-71": true, "VN-72": true, "VN-73": true, "VN-69": true, "VN-70": true, "VN-71": true, "VN-72": true, "VN-73": true,
"VN-CT": true, "VN-DN": true, "VN-HN": true, "VN-HP": true, "VN-SG": true, "VN-CT": true, "VN-DN": true, "VN-HN": true, "VN-HP": true, "VN-SG": true,
"VU-MAP": true, "VU-PAM": true, "VU-SAM": true, "VU-SEE": true, "VU-TAE": true, "VU-MAP": true, "VU-PAM": true, "VU-SAM": true, "VU-SEE": true, "VU-TAE": true,
"VU-TOB" : true, "WS-AA" : true, "WS-AL" : true, "WS-AT" : true, "WS-FA" : true, "VU-TOB": true, "WF-SG": true,"WF-UV": true, "WS-AA": true, "WS-AL": true, "WS-AT": true, "WS-FA": true,
"WS-GE": true, "WS-GI": true, "WS-PA": true, "WS-SA": true, "WS-TU": true, "WS-GE": true, "WS-GI": true, "WS-PA": true, "WS-SA": true, "WS-TU": true,
"WS-VF": true, "WS-VS": true, "YE-AB": true, "YE-AD": true, "YE-AM": true, "WS-VF": true, "WS-VS": true, "YE-AB": true, "YE-AD": true, "YE-AM": true,
"YE-BA" : true, "YE-DA" : true, "YE-DH" : true, "YE-HD" : true, "YE-HJ" : true, "YE-BA": true, "YE-DA": true, "YE-DH": true, "YE-HD": true, "YE-HJ": true, "YE-HU": true,
"YE-IB": true, "YE-JA": true, "YE-LA": true, "YE-MA": true, "YE-MR": true, "YE-IB": true, "YE-JA": true, "YE-LA": true, "YE-MA": true, "YE-MR": true,
"YE-MU" : true, "YE-MW" : true, "YE-RA" : true, "YE-SD" : true, "YE-SH" : true, "YE-MU": true, "YE-MW": true, "YE-RA": true, "YE-SA": true, "YE-SD": true, "YE-SH": true,
"YE-SN": true, "YE-TA": true, "ZA-EC": true, "ZA-FS": true, "ZA-GP": true, "YE-SN": true, "YE-TA": true, "ZA-EC": true, "ZA-FS": true, "ZA-GP": true,
"ZA-LP": true, "ZA-MP": true, "ZA-NC": true, "ZA-NW": true, "ZA-WC": true, "ZA-LP": true, "ZA-MP": true, "ZA-NC": true, "ZA-NW": true, "ZA-WC": true,
"ZA-ZN" : true, "ZM-01" : true, "ZM-02" : true, "ZM-03" : true, "ZM-04" : true, "ZA-ZN": true, "ZA-KZN": true, "ZM-01": true, "ZM-02": true, "ZM-03": true, "ZM-04": true,
"ZM-05" : true, "ZM-06" : true, "ZM-07" : true, "ZM-08" : true, "ZM-09" : true, "ZM-05": true, "ZM-06": true, "ZM-07": true, "ZM-08": true, "ZM-09": true, "ZM-10": true,
"ZW-BU": true, "ZW-HA": true, "ZW-MA": true, "ZW-MC": true, "ZW-ME": true, "ZW-BU": true, "ZW-HA": true, "ZW-MA": true, "ZW-MC": true, "ZW-ME": true,
"ZW-MI": true, "ZW-MN": true, "ZW-MS": true, "ZW-MV": true, "ZW-MW": true, "ZW-MI": true, "ZW-MN": true, "ZW-MS": true, "ZW-MV": true, "ZW-MW": true,
} }

View file

@ -146,7 +146,7 @@ use the UTF-8 hex representation 0x7C, which is replaced in the code as a pipe,
so the above will become excludesall=0x7C so the above will become excludesall=0x7C
type Test struct { type Test struct {
Field `validate:"excludesall=|"` // BAD! Do not include a a pipe! Field `validate:"excludesall=|"` // BAD! Do not include a pipe!
Field `validate:"excludesall=0x7C"` // GOOD! Use the UTF-8 hex representation. Field `validate:"excludesall=0x7C"` // GOOD! Use the UTF-8 hex representation.
} }
@ -239,7 +239,7 @@ Example #2
map[[2]string]string with validation tag "gt=0,dive,keys,dive,eq=1|eq=2,endkeys,required" map[[2]string]string with validation tag "gt=0,dive,keys,dive,eq=1|eq=2,endkeys,required"
// gt=0 will be applied to the map itself // gt=0 will be applied to the map itself
// eq=1|eq=2 will be applied to each array element in the the map keys // eq=1|eq=2 will be applied to each array element in the map keys
// required will be applied to map values // required will be applied to map values
# Required # Required
@ -916,7 +916,7 @@ this with the omitempty tag.
# Base64URL String # Base64URL String
This validates that a string value contains a valid base64 URL safe value This validates that a string value contains a valid base64 URL safe value
according the the RFC4648 spec. according the RFC4648 spec.
Although an empty string is a valid base64 URL safe value, this will report Although an empty string is a valid base64 URL safe value, this will report
an empty string as an error, if you wish to accept an empty string as valid an empty string as an error, if you wish to accept an empty string as valid
you can use this with the omitempty tag. you can use this with the omitempty tag.
@ -927,7 +927,7 @@ you can use this with the omitempty tag.
# Base64RawURL String # Base64RawURL String
This validates that a string value contains a valid base64 URL safe value, This validates that a string value contains a valid base64 URL safe value,
but without = padding, according the the RFC4648 spec, section 3.2. but without = padding, according the RFC4648 spec, section 3.2.
Although an empty string is a valid base64 URL safe value, this will report Although an empty string is a valid base64 URL safe value, this will report
an empty string as an error, if you wish to accept an empty string as valid an empty string as an error, if you wish to accept an empty string as valid
you can use this with the omitempty tag. you can use this with the omitempty tag.
@ -1361,7 +1361,7 @@ More information on https://cve.mitre.org/
# Credit Card # Credit Card
This validates that a string value contains a valid credit card number using Luhn algoritm. This validates that a string value contains a valid credit card number using Luhn algorithm.
Usage: credit_card Usage: credit_card
@ -1372,7 +1372,6 @@ This validates that a string value contains a valid credit card number using Luh
This validates that a string or (u)int value contains a valid checksum using the Luhn algorithm. This validates that a string or (u)int value contains a valid checksum using the Luhn algorithm.
# MongoDb ObjectID # MongoDb ObjectID
This validates that a string is a valid 24 character hexadecimal string. This validates that a string is a valid 24 character hexadecimal string.

View file

@ -62,7 +62,7 @@ type StructLevel interface {
// existing namespace that validator is on. // existing namespace that validator is on.
// e.g. pass 'User.FirstName' or 'Users[0].FirstName' depending // e.g. pass 'User.FirstName' or 'Users[0].FirstName' depending
// on the nesting. most of the time they will be blank, unless you validate // on the nesting. most of the time they will be blank, unless you validate
// at a level lower the the current field depth // at a level lower the current field depth
ReportValidationErrors(relativeNamespace, relativeActualNamespace string, errs ValidationErrors) ReportValidationErrors(relativeNamespace, relativeActualNamespace string, errs ValidationErrors)
} }
@ -74,7 +74,7 @@ var _ StructLevel = new(validate)
// if not is a nested struct. // if not is a nested struct.
// //
// this is only called when within Struct and Field Level validation and // this is only called when within Struct and Field Level validation and
// should not be relied upon for an acurate value otherwise. // should not be relied upon for an accurate value otherwise.
func (v *validate) Top() reflect.Value { func (v *validate) Top() reflect.Value {
return v.top return v.top
} }
@ -85,7 +85,7 @@ func (v *validate) Top() reflect.Value {
// if not is a nested struct. // if not is a nested struct.
// //
// this is only called when within Struct and Field Level validation and // this is only called when within Struct and Field Level validation and
// should not be relied upon for an acurate value otherwise. // should not be relied upon for an accurate value otherwise.
func (v *validate) Parent() reflect.Value { func (v *validate) Parent() reflect.Value {
return v.slflParent return v.slflParent
} }

View file

@ -234,7 +234,7 @@ func asInt(param string) int64 {
func asIntFromTimeDuration(param string) int64 { func asIntFromTimeDuration(param string) int64 {
d, err := time.ParseDuration(param) d, err := time.ParseDuration(param)
if err != nil { if err != nil {
// attempt parsing as an an integer assuming nanosecond precision // attempt parsing as an integer assuming nanosecond precision
return asInt(param) return asInt(param)
} }
return int64(d) return int64(d)

View file

@ -29,6 +29,7 @@ const (
requiredWithAllTag = "required_with_all" requiredWithAllTag = "required_with_all"
requiredIfTag = "required_if" requiredIfTag = "required_if"
requiredUnlessTag = "required_unless" requiredUnlessTag = "required_unless"
skipUnlessTag = "skip_unless"
excludedWithoutAllTag = "excluded_without_all" excludedWithoutAllTag = "excluded_without_all"
excludedWithoutTag = "excluded_without" excludedWithoutTag = "excluded_without"
excludedWithTag = "excluded_with" excludedWithTag = "excluded_with"
@ -57,7 +58,7 @@ var (
// FilterFunc is the type used to filter fields using // FilterFunc is the type used to filter fields using
// StructFiltered(...) function. // StructFiltered(...) function.
// returning true results in the field being filtered/skiped from // returning true results in the field being filtered/skipped from
// validation // validation
type FilterFunc func(ns []byte) bool type FilterFunc func(ns []byte) bool
@ -123,7 +124,8 @@ func New() *Validate {
switch k { switch k {
// these require that even if the value is nil that the validation should run, omitempty still overrides this behaviour // these require that even if the value is nil that the validation should run, omitempty still overrides this behaviour
case requiredIfTag, requiredUnlessTag, requiredWithTag, requiredWithAllTag, requiredWithoutTag, requiredWithoutAllTag, case requiredIfTag, requiredUnlessTag, requiredWithTag, requiredWithAllTag, requiredWithoutTag, requiredWithoutAllTag,
excludedIfTag, excludedUnlessTag, excludedWithTag, excludedWithAllTag, excludedWithoutTag, excludedWithoutAllTag: excludedIfTag, excludedUnlessTag, excludedWithTag, excludedWithAllTag, excludedWithoutTag, excludedWithoutAllTag,
skipUnlessTag:
_ = v.registerValidation(k, wrapFunc(val), true, true) _ = v.registerValidation(k, wrapFunc(val), true, true)
default: default:
// no need to error check here, baked in will always be valid // no need to error check here, baked in will always be valid
@ -151,7 +153,7 @@ func (v *Validate) SetTagName(name string) {
} }
// ValidateMapCtx validates a map using a map of validation rules and allows passing of contextual // ValidateMapCtx validates a map using a map of validation rules and allows passing of contextual
// validation validation information via context.Context. // validation information via context.Context.
func (v Validate) ValidateMapCtx(ctx context.Context, data map[string]interface{}, rules map[string]interface{}) map[string]interface{} { func (v Validate) ValidateMapCtx(ctx context.Context, data map[string]interface{}, rules map[string]interface{}) map[string]interface{} {
errs := make(map[string]interface{}) errs := make(map[string]interface{})
for field, rule := range rules { for field, rule := range rules {
@ -451,7 +453,7 @@ func (v *Validate) StructPartial(s interface{}, fields ...string) error {
} }
// StructPartialCtx validates the fields passed in only, ignoring all others and allows passing of contextual // StructPartialCtx validates the fields passed in only, ignoring all others and allows passing of contextual
// validation validation information via context.Context // validation information via context.Context
// Fields may be provided in a namespaced fashion relative to the struct provided // Fields may be provided in a namespaced fashion relative to the struct provided
// eg. NestedStruct.Field or NestedArrayField[0].Struct.Name // eg. NestedStruct.Field or NestedArrayField[0].Struct.Name
// //
@ -541,7 +543,7 @@ func (v *Validate) StructExcept(s interface{}, fields ...string) error {
} }
// StructExceptCtx validates all fields except the ones passed in and allows passing of contextual // StructExceptCtx validates all fields except the ones passed in and allows passing of contextual
// validation validation information via context.Context // validation information via context.Context
// Fields may be provided in a namespaced fashion relative to the struct provided // Fields may be provided in a namespaced fashion relative to the struct provided
// i.e. NestedStruct.Field or NestedArrayField[0].Struct.Name // i.e. NestedStruct.Field or NestedArrayField[0].Struct.Name
// //

View file

@ -17,7 +17,7 @@ images: docs/urn.png
.PHONY: removecomments .PHONY: removecomments
removecomments: removecomments:
@go build ./tools/removecomments @cd ./tools/removecomments; go build -o ../../removecomments ./main.go
machine.go: machine.go.rl machine.go: machine.go.rl

4
vendor/modules.txt vendored
View file

@ -212,7 +212,7 @@ github.com/go-playground/locales/currency
# github.com/go-playground/universal-translator v0.18.1 # github.com/go-playground/universal-translator v0.18.1
## explicit; go 1.18 ## explicit; go 1.18
github.com/go-playground/universal-translator github.com/go-playground/universal-translator
# github.com/go-playground/validator/v10 v10.12.0 # github.com/go-playground/validator/v10 v10.13.0
## explicit; go 1.18 ## explicit; go 1.18
github.com/go-playground/validator/v10 github.com/go-playground/validator/v10
# github.com/go-xmlfmt/xmlfmt v0.0.0-20211206191508-7fd73a941850 # github.com/go-xmlfmt/xmlfmt v0.0.0-20211206191508-7fd73a941850
@ -334,7 +334,7 @@ github.com/klauspost/compress/zlib
# github.com/klauspost/cpuid/v2 v2.2.4 # github.com/klauspost/cpuid/v2 v2.2.4
## explicit; go 1.15 ## explicit; go 1.15
github.com/klauspost/cpuid/v2 github.com/klauspost/cpuid/v2
# github.com/leodido/go-urn v1.2.2 # github.com/leodido/go-urn v1.2.3
## explicit; go 1.16 ## explicit; go 1.16
github.com/leodido/go-urn github.com/leodido/go-urn
# github.com/magiconair/properties v1.8.7 # github.com/magiconair/properties v1.8.7