diff --git a/go.mod b/go.mod
index 2fde26061f..94f87dcb21 100644
--- a/go.mod
+++ b/go.mod
@@ -99,12 +99,12 @@ require (
 	go.uber.org/multierr v1.8.0 // indirect
 	golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 // indirect
 	golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
-	golang.org/x/net v0.0.0-20220722155237-a158d28d115b // indirect
+	golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458 // indirect
 	golang.org/x/oauth2 v0.0.0-20220718184931-c8730f7fcb92 // indirect
 	golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect
-	golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect
+	golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect
 	golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
-	golang.org/x/text v0.3.7 // indirect
+	golang.org/x/text v0.3.8 // indirect
 	golang.org/x/time v0.0.0-20220224211638-0e9765cccd65 // indirect
 	golang.org/x/tools v0.1.12 // indirect
 	gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect
diff --git a/go.sum b/go.sum
index a8d3a0e4f6..2fbe0bbfaf 100644
--- a/go.sum
+++ b/go.sum
@@ -877,8 +877,8 @@ golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su
 golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
 golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
 golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
-golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0=
-golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458 h1:MgJ6t2zo8v0tbmLCueaCbF1RM+TtB0rs3Lv8DGtOIpY=
+golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1004,8 +1004,8 @@ golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s=
-golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg=
+golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@@ -1020,8 +1020,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
+golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go
index 0a54bdbcc6..2cb9c408f2 100644
--- a/vendor/golang.org/x/net/context/go17.go
+++ b/vendor/golang.org/x/net/context/go17.go
@@ -32,7 +32,7 @@ var DeadlineExceeded = context.DeadlineExceeded
 // call cancel as soon as the operations running in this Context complete.
 func WithCancel(parent Context) (ctx Context, cancel CancelFunc) {
 	ctx, f := context.WithCancel(parent)
-	return ctx, CancelFunc(f)
+	return ctx, f
 }
 
 // WithDeadline returns a copy of the parent context with the deadline adjusted
@@ -46,7 +46,7 @@ func WithCancel(parent Context) (ctx Context, cancel CancelFunc) {
 // call cancel as soon as the operations running in this Context complete.
 func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) {
 	ctx, f := context.WithDeadline(parent, deadline)
-	return ctx, CancelFunc(f)
+	return ctx, f
 }
 
 // WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)).
diff --git a/vendor/golang.org/x/net/html/parse.go b/vendor/golang.org/x/net/html/parse.go
index 038941d708..291c91908d 100644
--- a/vendor/golang.org/x/net/html/parse.go
+++ b/vendor/golang.org/x/net/html/parse.go
@@ -734,7 +734,7 @@ func inHeadIM(p *parser) bool {
 	return false
 }
 
-// 12.2.6.4.5.
+// Section 12.2.6.4.5.
 func inHeadNoscriptIM(p *parser) bool {
 	switch p.tok.Type {
 	case DoctypeToken:
diff --git a/vendor/golang.org/x/net/html/render.go b/vendor/golang.org/x/net/html/render.go
index b46d81ca6d..497e132042 100644
--- a/vendor/golang.org/x/net/html/render.go
+++ b/vendor/golang.org/x/net/html/render.go
@@ -85,7 +85,7 @@ func render1(w writer, n *Node) error {
 		if _, err := w.WriteString("<!--"); err != nil {
 			return err
 		}
-		if _, err := w.WriteString(n.Data); err != nil {
+		if err := escape(w, n.Data); err != nil {
 			return err
 		}
 		if _, err := w.WriteString("-->"); err != nil {
@@ -96,7 +96,7 @@ func render1(w writer, n *Node) error {
 		if _, err := w.WriteString("<!DOCTYPE "); err != nil {
 			return err
 		}
-		if _, err := w.WriteString(n.Data); err != nil {
+		if err := escape(w, n.Data); err != nil {
 			return err
 		}
 		if n.Attr != nil {
diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go
index 877709f991..be3c754141 100644
--- a/vendor/golang.org/x/net/html/token.go
+++ b/vendor/golang.org/x/net/html/token.go
@@ -110,9 +110,9 @@ func (t Token) String() string {
 	case SelfClosingTagToken:
 		return "<" + t.tagString() + "/>"
 	case CommentToken:
-		return "<!--" + t.Data + "-->"
+		return "<!--" + EscapeString(t.Data) + "-->"
 	case DoctypeToken:
-		return "<!DOCTYPE " + t.Data + ">"
+		return "<!DOCTYPE " + EscapeString(t.Data) + ">"
 	}
 	return "Invalid(" + strconv.Itoa(int(t.Type)) + ")"
 }
diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go
index 0178647ee0..184ac45feb 100644
--- a/vendor/golang.org/x/net/http2/frame.go
+++ b/vendor/golang.org/x/net/http2/frame.go
@@ -23,7 +23,7 @@ const frameHeaderLen = 9
 var padZeros = make([]byte, 255) // zeros for padding
 
 // A FrameType is a registered frame type as defined in
-// http://http2.github.io/http2-spec/#rfc.section.11.2
+// https://httpwg.org/specs/rfc7540.html#rfc.section.11.2
 type FrameType uint8
 
 const (
@@ -146,7 +146,7 @@ func typeFrameParser(t FrameType) frameParser {
 
 // A FrameHeader is the 9 byte header of all HTTP/2 frames.
 //
-// See http://http2.github.io/http2-spec/#FrameHeader
+// See https://httpwg.org/specs/rfc7540.html#FrameHeader
 type FrameHeader struct {
 	valid bool // caller can access []byte fields in the Frame
 
@@ -575,7 +575,7 @@ func (fr *Framer) checkFrameOrder(f Frame) error {
 
 // A DataFrame conveys arbitrary, variable-length sequences of octets
 // associated with a stream.
-// See http://http2.github.io/http2-spec/#rfc.section.6.1
+// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.1
 type DataFrame struct {
 	FrameHeader
 	data []byte
@@ -698,7 +698,7 @@ func (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []by
 // endpoints communicate, such as preferences and constraints on peer
 // behavior.
 //
-// See http://http2.github.io/http2-spec/#SETTINGS
+// See https://httpwg.org/specs/rfc7540.html#SETTINGS
 type SettingsFrame struct {
 	FrameHeader
 	p []byte
@@ -837,7 +837,7 @@ func (f *Framer) WriteSettingsAck() error {
 // A PingFrame is a mechanism for measuring a minimal round trip time
 // from the sender, as well as determining whether an idle connection
 // is still functional.
-// See http://http2.github.io/http2-spec/#rfc.section.6.7
+// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.7
 type PingFrame struct {
 	FrameHeader
 	Data [8]byte
@@ -870,7 +870,7 @@ func (f *Framer) WritePing(ack bool, data [8]byte) error {
 }
 
 // A GoAwayFrame informs the remote peer to stop creating streams on this connection.
-// See http://http2.github.io/http2-spec/#rfc.section.6.8
+// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.8
 type GoAwayFrame struct {
 	FrameHeader
 	LastStreamID uint32
@@ -934,7 +934,7 @@ func parseUnknownFrame(_ *frameCache, fh FrameHeader, countError func(string), p
 }
 
 // A WindowUpdateFrame is used to implement flow control.
-// See http://http2.github.io/http2-spec/#rfc.section.6.9
+// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.9
 type WindowUpdateFrame struct {
 	FrameHeader
 	Increment uint32 // never read with high bit set
@@ -1123,7 +1123,7 @@ func (f *Framer) WriteHeaders(p HeadersFrameParam) error {
 }
 
 // A PriorityFrame specifies the sender-advised priority of a stream.
-// See http://http2.github.io/http2-spec/#rfc.section.6.3
+// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.3
 type PriorityFrame struct {
 	FrameHeader
 	PriorityParam
@@ -1193,7 +1193,7 @@ func (f *Framer) WritePriority(streamID uint32, p PriorityParam) error {
 }
 
 // A RSTStreamFrame allows for abnormal termination of a stream.
-// See http://http2.github.io/http2-spec/#rfc.section.6.4
+// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.4
 type RSTStreamFrame struct {
 	FrameHeader
 	ErrCode ErrCode
@@ -1225,7 +1225,7 @@ func (f *Framer) WriteRSTStream(streamID uint32, code ErrCode) error {
 }
 
 // A ContinuationFrame is used to continue a sequence of header block fragments.
-// See http://http2.github.io/http2-spec/#rfc.section.6.10
+// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.10
 type ContinuationFrame struct {
 	FrameHeader
 	headerFragBuf []byte
@@ -1266,7 +1266,7 @@ func (f *Framer) WriteContinuation(streamID uint32, endHeaders bool, headerBlock
 }
 
 // A PushPromiseFrame is used to initiate a server stream.
-// See http://http2.github.io/http2-spec/#rfc.section.6.6
+// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.6
 type PushPromiseFrame struct {
 	FrameHeader
 	PromiseID     uint32
diff --git a/vendor/golang.org/x/net/http2/hpack/encode.go b/vendor/golang.org/x/net/http2/hpack/encode.go
index 97f17831fc..6886dc163c 100644
--- a/vendor/golang.org/x/net/http2/hpack/encode.go
+++ b/vendor/golang.org/x/net/http2/hpack/encode.go
@@ -191,7 +191,7 @@ func appendTableSize(dst []byte, v uint32) []byte {
 // bit prefix, to dst and returns the extended buffer.
 //
 // See
-// http://http2.github.io/http2-spec/compression.html#integer.representation
+// https://httpwg.org/specs/rfc7541.html#integer.representation
 func appendVarInt(dst []byte, n byte, i uint64) []byte {
 	k := uint64((1 << n) - 1)
 	if i < k {
diff --git a/vendor/golang.org/x/net/http2/hpack/hpack.go b/vendor/golang.org/x/net/http2/hpack/hpack.go
index 85f18a2b0a..ebdfbee964 100644
--- a/vendor/golang.org/x/net/http2/hpack/hpack.go
+++ b/vendor/golang.org/x/net/http2/hpack/hpack.go
@@ -59,7 +59,7 @@ func (hf HeaderField) String() string {
 
 // Size returns the size of an entry per RFC 7541 section 4.1.
 func (hf HeaderField) Size() uint32 {
-	// http://http2.github.io/http2-spec/compression.html#rfc.section.4.1
+	// https://httpwg.org/specs/rfc7541.html#rfc.section.4.1
 	// "The size of the dynamic table is the sum of the size of
 	// its entries. The size of an entry is the sum of its name's
 	// length in octets (as defined in Section 5.2), its value's
@@ -158,7 +158,7 @@ func (d *Decoder) SetAllowedMaxDynamicTableSize(v uint32) {
 }
 
 type dynamicTable struct {
-	// http://http2.github.io/http2-spec/compression.html#rfc.section.2.3.2
+	// https://httpwg.org/specs/rfc7541.html#rfc.section.2.3.2
 	table          headerFieldTable
 	size           uint32 // in bytes
 	maxSize        uint32 // current maxSize
@@ -307,27 +307,27 @@ func (d *Decoder) parseHeaderFieldRepr() error {
 	case b&128 != 0:
 		// Indexed representation.
 		// High bit set?
-		// http://http2.github.io/http2-spec/compression.html#rfc.section.6.1
+		// https://httpwg.org/specs/rfc7541.html#rfc.section.6.1
 		return d.parseFieldIndexed()
 	case b&192 == 64:
 		// 6.2.1 Literal Header Field with Incremental Indexing
 		// 0b10xxxxxx: top two bits are 10
-		// http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.1
+		// https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.1
 		return d.parseFieldLiteral(6, indexedTrue)
 	case b&240 == 0:
 		// 6.2.2 Literal Header Field without Indexing
 		// 0b0000xxxx: top four bits are 0000
-		// http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.2
+		// https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.2
 		return d.parseFieldLiteral(4, indexedFalse)
 	case b&240 == 16:
 		// 6.2.3 Literal Header Field never Indexed
 		// 0b0001xxxx: top four bits are 0001
-		// http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.3
+		// https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.3
 		return d.parseFieldLiteral(4, indexedNever)
 	case b&224 == 32:
 		// 6.3 Dynamic Table Size Update
 		// Top three bits are '001'.
-		// http://http2.github.io/http2-spec/compression.html#rfc.section.6.3
+		// https://httpwg.org/specs/rfc7541.html#rfc.section.6.3
 		return d.parseDynamicTableSizeUpdate()
 	}
 
@@ -420,7 +420,7 @@ var errVarintOverflow = DecodingError{errors.New("varint integer overflow")}
 
 // readVarInt reads an unsigned variable length integer off the
 // beginning of p. n is the parameter as described in
-// http://http2.github.io/http2-spec/compression.html#rfc.section.5.1.
+// https://httpwg.org/specs/rfc7541.html#rfc.section.5.1.
 //
 // n must always be between 1 and 8.
 //
diff --git a/vendor/golang.org/x/net/http2/http2.go b/vendor/golang.org/x/net/http2/http2.go
index 479ba4b2b1..6f2df28187 100644
--- a/vendor/golang.org/x/net/http2/http2.go
+++ b/vendor/golang.org/x/net/http2/http2.go
@@ -55,14 +55,14 @@ const (
 	ClientPreface = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"
 
 	// SETTINGS_MAX_FRAME_SIZE default
-	// http://http2.github.io/http2-spec/#rfc.section.6.5.2
+	// https://httpwg.org/specs/rfc7540.html#rfc.section.6.5.2
 	initialMaxFrameSize = 16384
 
 	// NextProtoTLS is the NPN/ALPN protocol negotiated during
 	// HTTP/2's TLS setup.
 	NextProtoTLS = "h2"
 
-	// http://http2.github.io/http2-spec/#SettingValues
+	// https://httpwg.org/specs/rfc7540.html#SettingValues
 	initialHeaderTableSize = 4096
 
 	initialWindowSize = 65535 // 6.9.2 Initial Flow Control Window Size
@@ -111,7 +111,7 @@ func (st streamState) String() string {
 // Setting is a setting parameter: which setting it is, and its value.
 type Setting struct {
 	// ID is which setting is being set.
-	// See http://http2.github.io/http2-spec/#SettingValues
+	// See https://httpwg.org/specs/rfc7540.html#SettingFormat
 	ID SettingID
 
 	// Val is the value.
@@ -143,7 +143,7 @@ func (s Setting) Valid() error {
 }
 
 // A SettingID is an HTTP/2 setting as defined in
-// http://http2.github.io/http2-spec/#iana-settings
+// https://httpwg.org/specs/rfc7540.html#iana-settings
 type SettingID uint16
 
 const (
diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go
index 47524a61a5..43cc2a34ad 100644
--- a/vendor/golang.org/x/net/http2/server.go
+++ b/vendor/golang.org/x/net/http2/server.go
@@ -143,7 +143,7 @@ type Server struct {
 }
 
 func (s *Server) initialConnRecvWindowSize() int32 {
-	if s.MaxUploadBufferPerConnection > initialWindowSize {
+	if s.MaxUploadBufferPerConnection >= initialWindowSize {
 		return s.MaxUploadBufferPerConnection
 	}
 	return 1 << 20
@@ -869,9 +869,7 @@ func (sc *serverConn) serve() {
 
 	// Each connection starts with initialWindowSize inflow tokens.
 	// If a higher value is configured, we add more tokens.
-	if diff := sc.srv.initialConnRecvWindowSize() - initialWindowSize; diff > 0 {
-		sc.sendWindowUpdate(nil, int(diff))
-	}
+	sc.sendWindowUpdate(nil)
 
 	if err := sc.readPreface(); err != nil {
 		sc.condlogf(err, "http2: server: error reading preface from client %v: %v", sc.conn.RemoteAddr(), err)
@@ -1371,6 +1369,9 @@ func (sc *serverConn) startGracefulShutdownInternal() {
 func (sc *serverConn) goAway(code ErrCode) {
 	sc.serveG.check()
 	if sc.inGoAway {
+		if sc.goAwayCode == ErrCodeNo {
+			sc.goAwayCode = code
+		}
 		return
 	}
 	sc.inGoAway = true
@@ -1585,7 +1586,7 @@ func (sc *serverConn) closeStream(st *stream, err error) {
 	if p := st.body; p != nil {
 		// Return any buffered unread bytes worth of conn-level flow control.
 		// See golang.org/issue/16481
-		sc.sendWindowUpdate(nil, p.Len())
+		sc.sendWindowUpdate(nil)
 
 		p.CloseWithError(err)
 	}
@@ -1733,7 +1734,7 @@ func (sc *serverConn) processData(f *DataFrame) error {
 		// sendWindowUpdate, which also schedules sending the
 		// frames.
 		sc.inflow.take(int32(f.Length))
-		sc.sendWindowUpdate(nil, int(f.Length)) // conn-level
+		sc.sendWindowUpdate(nil) // conn-level
 
 		if st != nil && st.resetQueued {
 			// Already have a stream error in flight. Don't send another.
@@ -1747,6 +1748,12 @@ func (sc *serverConn) processData(f *DataFrame) error {
 
 	// Sender sending more than they'd declared?
 	if st.declBodyBytes != -1 && st.bodyBytes+int64(len(data)) > st.declBodyBytes {
+		if sc.inflow.available() < int32(f.Length) {
+			return sc.countError("data_flow", streamError(id, ErrCodeFlowControl))
+		}
+		sc.inflow.take(int32(f.Length))
+		sc.sendWindowUpdate(nil) // conn-level
+
 		st.body.CloseWithError(fmt.Errorf("sender tried to send more than declared Content-Length of %d bytes", st.declBodyBytes))
 		// RFC 7540, sec 8.1.2.6: A request or response is also malformed if the
 		// value of a content-length header field does not equal the sum of the
@@ -1763,7 +1770,7 @@ func (sc *serverConn) processData(f *DataFrame) error {
 		if len(data) > 0 {
 			wrote, err := st.body.Write(data)
 			if err != nil {
-				sc.sendWindowUpdate(nil, int(f.Length)-wrote)
+				sc.sendWindowUpdate32(nil, int32(f.Length)-int32(wrote))
 				return sc.countError("body_write_err", streamError(id, ErrCodeStreamClosed))
 			}
 			if wrote != len(data) {
@@ -2090,12 +2097,6 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res
 		return nil, nil, sc.countError("bad_path_method", streamError(f.StreamID, ErrCodeProtocol))
 	}
 
-	bodyOpen := !f.StreamEnded()
-	if rp.method == "HEAD" && bodyOpen {
-		// HEAD requests can't have bodies
-		return nil, nil, sc.countError("head_body", streamError(f.StreamID, ErrCodeProtocol))
-	}
-
 	rp.header = make(http.Header)
 	for _, hf := range f.RegularFields() {
 		rp.header.Add(sc.canonicalHeader(hf.Name), hf.Value)
@@ -2108,6 +2109,7 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res
 	if err != nil {
 		return nil, nil, err
 	}
+	bodyOpen := !f.StreamEnded()
 	if bodyOpen {
 		if vv, ok := rp.header["Content-Length"]; ok {
 			if cl, err := strconv.ParseUint(vv[0], 10, 63); err == nil {
@@ -2223,6 +2225,9 @@ func (sc *serverConn) runHandler(rw *responseWriter, req *http.Request, handler
 	didPanic := true
 	defer func() {
 		rw.rws.stream.cancelCtx()
+		if req.MultipartForm != nil {
+			req.MultipartForm.RemoveAll()
+		}
 		if didPanic {
 			e := recover()
 			sc.writeFrameFromHandler(FrameWriteRequest{
@@ -2317,17 +2322,32 @@ func (sc *serverConn) noteBodyReadFromHandler(st *stream, n int, err error) {
 
 func (sc *serverConn) noteBodyRead(st *stream, n int) {
 	sc.serveG.check()
-	sc.sendWindowUpdate(nil, n) // conn-level
+	sc.sendWindowUpdate(nil) // conn-level
 	if st.state != stateHalfClosedRemote && st.state != stateClosed {
 		// Don't send this WINDOW_UPDATE if the stream is closed
 		// remotely.
-		sc.sendWindowUpdate(st, n)
+		sc.sendWindowUpdate(st)
 	}
 }
 
 // st may be nil for conn-level
-func (sc *serverConn) sendWindowUpdate(st *stream, n int) {
+func (sc *serverConn) sendWindowUpdate(st *stream) {
 	sc.serveG.check()
+
+	var n int32
+	if st == nil {
+		if avail, windowSize := sc.inflow.available(), sc.srv.initialConnRecvWindowSize(); avail > windowSize/2 {
+			return
+		} else {
+			n = windowSize - avail
+		}
+	} else {
+		if avail, windowSize := st.inflow.available(), sc.srv.initialStreamRecvWindowSize(); avail > windowSize/2 {
+			return
+		} else {
+			n = windowSize - avail
+		}
+	}
 	// "The legal range for the increment to the flow control
 	// window is 1 to 2^31-1 (2,147,483,647) octets."
 	// A Go Read call on 64-bit machines could in theory read
@@ -2493,6 +2513,10 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) {
 		rws.writeHeader(200)
 	}
 
+	if rws.handlerDone {
+		rws.promoteUndeclaredTrailers()
+	}
+
 	isHeadResp := rws.req.Method == "HEAD"
 	if !rws.sentHeader {
 		rws.sentHeader = true
@@ -2564,10 +2588,6 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) {
 		return 0, nil
 	}
 
-	if rws.handlerDone {
-		rws.promoteUndeclaredTrailers()
-	}
-
 	// only send trailers if they have actually been defined by the
 	// server handler.
 	hasNonemptyTrailers := rws.hasNonemptyTrailers()
diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go
index 4ded4dfd56..c5d005bba7 100644
--- a/vendor/golang.org/x/net/http2/transport.go
+++ b/vendor/golang.org/x/net/http2/transport.go
@@ -67,13 +67,23 @@ const (
 // A Transport internally caches connections to servers. It is safe
 // for concurrent use by multiple goroutines.
 type Transport struct {
-	// DialTLS specifies an optional dial function for creating
-	// TLS connections for requests.
+	// DialTLSContext specifies an optional dial function with context for
+	// creating TLS connections for requests.
 	//
-	// If DialTLS is nil, tls.Dial is used.
+	// If DialTLSContext and DialTLS is nil, tls.Dial is used.
 	//
 	// If the returned net.Conn has a ConnectionState method like tls.Conn,
 	// it will be used to set http.Response.TLS.
+	DialTLSContext func(ctx context.Context, network, addr string, cfg *tls.Config) (net.Conn, error)
+
+	// DialTLS specifies an optional dial function for creating
+	// TLS connections for requests.
+	//
+	// If DialTLSContext and DialTLS is nil, tls.Dial is used.
+	//
+	// Deprecated: Use DialTLSContext instead, which allows the transport
+	// to cancel dials as soon as they are no longer needed.
+	// If both are set, DialTLSContext takes priority.
 	DialTLS func(network, addr string, cfg *tls.Config) (net.Conn, error)
 
 	// TLSClientConfig specifies the TLS configuration to use with
@@ -248,7 +258,8 @@ func (t *Transport) initConnPool() {
 // HTTP/2 server.
 type ClientConn struct {
 	t             *Transport
-	tconn         net.Conn             // usually *tls.Conn, except specialized impls
+	tconn         net.Conn // usually *tls.Conn, except specialized impls
+	tconnClosed   bool
 	tlsState      *tls.ConnectionState // nil only for specialized impls
 	reused        uint32               // whether conn is being reused; atomic
 	singleUse     bool                 // whether being used for a single http.Request
@@ -334,8 +345,8 @@ type clientStream struct {
 	readErr     error // sticky read error; owned by transportResponseBody.Read
 
 	reqBody              io.ReadCloser
-	reqBodyContentLength int64 // -1 means unknown
-	reqBodyClosed        bool  // body has been closed; guarded by cc.mu
+	reqBodyContentLength int64         // -1 means unknown
+	reqBodyClosed        chan struct{} // guarded by cc.mu; non-nil on Close, closed when done
 
 	// owned by writeRequest:
 	sentEndStream bool // sent an END_STREAM flag to the peer
@@ -375,9 +386,8 @@ func (cs *clientStream) abortStreamLocked(err error) {
 		cs.abortErr = err
 		close(cs.abort)
 	})
-	if cs.reqBody != nil && !cs.reqBodyClosed {
-		cs.reqBody.Close()
-		cs.reqBodyClosed = true
+	if cs.reqBody != nil {
+		cs.closeReqBodyLocked()
 	}
 	// TODO(dneil): Clean up tests where cs.cc.cond is nil.
 	if cs.cc.cond != nil {
@@ -390,13 +400,24 @@ func (cs *clientStream) abortRequestBodyWrite() {
 	cc := cs.cc
 	cc.mu.Lock()
 	defer cc.mu.Unlock()
-	if cs.reqBody != nil && !cs.reqBodyClosed {
-		cs.reqBody.Close()
-		cs.reqBodyClosed = true
+	if cs.reqBody != nil && cs.reqBodyClosed == nil {
+		cs.closeReqBodyLocked()
 		cc.cond.Broadcast()
 	}
 }
 
+func (cs *clientStream) closeReqBodyLocked() {
+	if cs.reqBodyClosed != nil {
+		return
+	}
+	cs.reqBodyClosed = make(chan struct{})
+	reqBodyClosed := cs.reqBodyClosed
+	go func() {
+		cs.reqBody.Close()
+		close(reqBodyClosed)
+	}()
+}
+
 type stickyErrWriter struct {
 	conn    net.Conn
 	timeout time.Duration
@@ -592,7 +613,7 @@ func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse b
 	if err != nil {
 		return nil, err
 	}
-	tconn, err := t.dialTLS(ctx)("tcp", addr, t.newTLSConfig(host))
+	tconn, err := t.dialTLS(ctx, "tcp", addr, t.newTLSConfig(host))
 	if err != nil {
 		return nil, err
 	}
@@ -613,24 +634,25 @@ func (t *Transport) newTLSConfig(host string) *tls.Config {
 	return cfg
 }
 
-func (t *Transport) dialTLS(ctx context.Context) func(string, string, *tls.Config) (net.Conn, error) {
-	if t.DialTLS != nil {
-		return t.DialTLS
+func (t *Transport) dialTLS(ctx context.Context, network, addr string, tlsCfg *tls.Config) (net.Conn, error) {
+	if t.DialTLSContext != nil {
+		return t.DialTLSContext(ctx, network, addr, tlsCfg)
+	} else if t.DialTLS != nil {
+		return t.DialTLS(network, addr, tlsCfg)
 	}
-	return func(network, addr string, cfg *tls.Config) (net.Conn, error) {
-		tlsCn, err := t.dialTLSWithContext(ctx, network, addr, cfg)
-		if err != nil {
-			return nil, err
-		}
-		state := tlsCn.ConnectionState()
-		if p := state.NegotiatedProtocol; p != NextProtoTLS {
-			return nil, fmt.Errorf("http2: unexpected ALPN protocol %q; want %q", p, NextProtoTLS)
-		}
-		if !state.NegotiatedProtocolIsMutual {
-			return nil, errors.New("http2: could not negotiate protocol mutually")
-		}
-		return tlsCn, nil
+
+	tlsCn, err := t.dialTLSWithContext(ctx, network, addr, tlsCfg)
+	if err != nil {
+		return nil, err
+	}
+	state := tlsCn.ConnectionState()
+	if p := state.NegotiatedProtocol; p != NextProtoTLS {
+		return nil, fmt.Errorf("http2: unexpected ALPN protocol %q; want %q", p, NextProtoTLS)
 	}
+	if !state.NegotiatedProtocolIsMutual {
+		return nil, errors.New("http2: could not negotiate protocol mutually")
+	}
+	return tlsCn, nil
 }
 
 // disableKeepAlives reports whether connections should be closed as
@@ -910,10 +932,10 @@ func (cc *ClientConn) onIdleTimeout() {
 	cc.closeIfIdle()
 }
 
-func (cc *ClientConn) closeConn() error {
+func (cc *ClientConn) closeConn() {
 	t := time.AfterFunc(250*time.Millisecond, cc.forceCloseConn)
 	defer t.Stop()
-	return cc.tconn.Close()
+	cc.tconn.Close()
 }
 
 // A tls.Conn.Close can hang for a long time if the peer is unresponsive.
@@ -979,7 +1001,8 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error {
 	shutdownEnterWaitStateHook()
 	select {
 	case <-done:
-		return cc.closeConn()
+		cc.closeConn()
+		return nil
 	case <-ctx.Done():
 		cc.mu.Lock()
 		// Free the goroutine above
@@ -1016,7 +1039,7 @@ func (cc *ClientConn) sendGoAway() error {
 
 // closes the client connection immediately. In-flight requests are interrupted.
 // err is sent to streams.
-func (cc *ClientConn) closeForError(err error) error {
+func (cc *ClientConn) closeForError(err error) {
 	cc.mu.Lock()
 	cc.closed = true
 	for _, cs := range cc.streams {
@@ -1024,7 +1047,7 @@ func (cc *ClientConn) closeForError(err error) error {
 	}
 	cc.cond.Broadcast()
 	cc.mu.Unlock()
-	return cc.closeConn()
+	cc.closeConn()
 }
 
 // Close closes the client connection immediately.
@@ -1032,16 +1055,17 @@ func (cc *ClientConn) closeForError(err error) error {
 // In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead.
 func (cc *ClientConn) Close() error {
 	err := errors.New("http2: client connection force closed via ClientConn.Close")
-	return cc.closeForError(err)
+	cc.closeForError(err)
+	return nil
 }
 
 // closes the client connection immediately. In-flight requests are interrupted.
-func (cc *ClientConn) closeForLostPing() error {
+func (cc *ClientConn) closeForLostPing() {
 	err := errors.New("http2: client connection lost")
 	if f := cc.t.CountError; f != nil {
 		f("conn_close_lost_ping")
 	}
-	return cc.closeForError(err)
+	cc.closeForError(err)
 }
 
 // errRequestCanceled is a copy of net/http's errRequestCanceled because it's not
@@ -1419,11 +1443,19 @@ func (cs *clientStream) cleanupWriteRequest(err error) {
 	// and in multiple cases: server replies <=299 and >299
 	// while still writing request body
 	cc.mu.Lock()
+	mustCloseBody := false
+	if cs.reqBody != nil && cs.reqBodyClosed == nil {
+		mustCloseBody = true
+		cs.reqBodyClosed = make(chan struct{})
+	}
 	bodyClosed := cs.reqBodyClosed
-	cs.reqBodyClosed = true
 	cc.mu.Unlock()
-	if !bodyClosed && cs.reqBody != nil {
+	if mustCloseBody {
 		cs.reqBody.Close()
+		close(bodyClosed)
+	}
+	if bodyClosed != nil {
+		<-bodyClosed
 	}
 
 	if err != nil && cs.sentEndStream {
@@ -1603,7 +1635,7 @@ func (cs *clientStream) writeRequestBody(req *http.Request) (err error) {
 		}
 		if err != nil {
 			cc.mu.Lock()
-			bodyClosed := cs.reqBodyClosed
+			bodyClosed := cs.reqBodyClosed != nil
 			cc.mu.Unlock()
 			switch {
 			case bodyClosed:
@@ -1698,7 +1730,7 @@ func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error)
 		if cc.closed {
 			return 0, errClientConnClosed
 		}
-		if cs.reqBodyClosed {
+		if cs.reqBodyClosed != nil {
 			return 0, errStopReqBodyWrite
 		}
 		select {
@@ -1994,7 +2026,7 @@ func (cc *ClientConn) forgetStreamID(id uint32) {
 	// wake up RoundTrip if there is a pending request.
 	cc.cond.Broadcast()
 
-	closeOnIdle := cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives()
+	closeOnIdle := cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() || cc.goAway != nil
 	if closeOnIdle && cc.streamsReserved == 0 && len(cc.streams) == 0 {
 		if VerboseLogs {
 			cc.vlogf("http2: Transport closing idle conn %p (forSingleUse=%v, maxStream=%v)", cc, cc.singleUse, cc.nextStreamID-2)
@@ -2070,6 +2102,7 @@ func (rl *clientConnReadLoop) cleanup() {
 		err = io.ErrUnexpectedEOF
 	}
 	cc.closed = true
+
 	for _, cs := range cc.streams {
 		select {
 		case <-cs.peerClosed:
@@ -2663,7 +2696,6 @@ func (rl *clientConnReadLoop) processGoAway(f *GoAwayFrame) error {
 		if fn := cc.t.CountError; fn != nil {
 			fn("recv_goaway_" + f.ErrCode.stringToken())
 		}
-
 	}
 	cc.setGoAway(f)
 	return nil
@@ -3017,7 +3049,7 @@ func traceGotConn(req *http.Request, cc *ClientConn, reused bool) {
 	cc.mu.Lock()
 	ci.WasIdle = len(cc.streams) == 0 && reused
 	if ci.WasIdle && !cc.lastActive.IsZero() {
-		ci.IdleTime = time.Now().Sub(cc.lastActive)
+		ci.IdleTime = time.Since(cc.lastActive)
 	}
 	cc.mu.Unlock()
 
diff --git a/vendor/golang.org/x/net/trace/trace.go b/vendor/golang.org/x/net/trace/trace.go
index 3ebf6f2daa..eae2a99f54 100644
--- a/vendor/golang.org/x/net/trace/trace.go
+++ b/vendor/golang.org/x/net/trace/trace.go
@@ -395,7 +395,7 @@ func New(family, title string) Trace {
 }
 
 func (tr *trace) Finish() {
-	elapsed := time.Now().Sub(tr.Start)
+	elapsed := time.Since(tr.Start)
 	tr.mu.Lock()
 	tr.Elapsed = elapsed
 	tr.mu.Unlock()
diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go
index ac579c60fe..e2a30e88c6 100644
--- a/vendor/golang.org/x/sys/unix/syscall_aix.go
+++ b/vendor/golang.org/x/sys/unix/syscall_aix.go
@@ -218,13 +218,62 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) {
 }
 
 func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {
-	// Recvmsg not implemented on AIX
-	return -1, -1, -1, ENOSYS
+	var msg Msghdr
+	msg.Name = (*byte)(unsafe.Pointer(rsa))
+	msg.Namelen = uint32(SizeofSockaddrAny)
+	var dummy byte
+	if len(oob) > 0 {
+		// receive at least one normal byte
+		if emptyIovecs(iov) {
+			var iova [1]Iovec
+			iova[0].Base = &dummy
+			iova[0].SetLen(1)
+			iov = iova[:]
+		}
+		msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
+		msg.SetControllen(len(oob))
+	}
+	if len(iov) > 0 {
+		msg.Iov = &iov[0]
+		msg.SetIovlen(len(iov))
+	}
+	if n, err = recvmsg(fd, &msg, flags); n == -1 {
+		return
+	}
+	oobn = int(msg.Controllen)
+	recvflags = int(msg.Flags)
+	return
 }
 
 func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {
-	// SendmsgN not implemented on AIX
-	return -1, ENOSYS
+	var msg Msghdr
+	msg.Name = (*byte)(unsafe.Pointer(ptr))
+	msg.Namelen = uint32(salen)
+	var dummy byte
+	var empty bool
+	if len(oob) > 0 {
+		// send at least one normal byte
+		empty := emptyIovecs(iov)
+		if empty {
+			var iova [1]Iovec
+			iova[0].Base = &dummy
+			iova[0].SetLen(1)
+			iov = iova[:]
+		}
+		msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
+		msg.SetControllen(len(oob))
+	}
+	if len(iov) > 0 {
+		msg.Iov = &iov[0]
+		msg.SetIovlen(len(iov))
+	}
+	if n, err = sendmsg(fd, &msg, flags); err != nil {
+		return 0, err
+	}
+	if len(oob) > 0 && empty {
+		n = 0
+	}
+	return n, nil
 }
 
 func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
diff --git a/vendor/golang.org/x/text/AUTHORS b/vendor/golang.org/x/text/AUTHORS
deleted file mode 100644
index 15167cd746..0000000000
--- a/vendor/golang.org/x/text/AUTHORS
+++ /dev/null
@@ -1,3 +0,0 @@
-# This source code refers to The Go Authors for copyright purposes.
-# The master list of authors is in the main Go distribution,
-# visible at http://tip.golang.org/AUTHORS.
diff --git a/vendor/golang.org/x/text/CONTRIBUTORS b/vendor/golang.org/x/text/CONTRIBUTORS
deleted file mode 100644
index 1c4577e968..0000000000
--- a/vendor/golang.org/x/text/CONTRIBUTORS
+++ /dev/null
@@ -1,3 +0,0 @@
-# This source code was written by the Go contributors.
-# The master list of contributors is in the main Go distribution,
-# visible at http://tip.golang.org/CONTRIBUTORS.
diff --git a/vendor/golang.org/x/text/encoding/htmlindex/tables.go b/vendor/golang.org/x/text/encoding/htmlindex/tables.go
index f074e2c6da..9e6daa8965 100644
--- a/vendor/golang.org/x/text/encoding/htmlindex/tables.go
+++ b/vendor/golang.org/x/text/encoding/htmlindex/tables.go
@@ -93,8 +93,11 @@ var canonical = [numEncodings]string{
 
 var nameMap = map[string]htmlEncoding{
 	"unicode-1-1-utf-8":   utf8,
+	"unicode11utf8":       utf8,
+	"unicode20utf8":       utf8,
 	"utf-8":               utf8,
 	"utf8":                utf8,
+	"x-unicode20utf8":     utf8,
 	"866":                 ibm866,
 	"cp866":               ibm866,
 	"csibm866":            ibm866,
@@ -307,7 +310,13 @@ var nameMap = map[string]htmlEncoding{
 	"iso-2022-cn-ext":     replacement,
 	"iso-2022-kr":         replacement,
 	"replacement":         replacement,
+	"unicodefffe":         utf16be,
 	"utf-16be":            utf16be,
+	"csunicode":           utf16le,
+	"iso-10646-ucs-2":     utf16le,
+	"ucs-2":               utf16le,
+	"unicode":             utf16le,
+	"unicodefeff":         utf16le,
 	"utf-16":              utf16le,
 	"utf-16le":            utf16le,
 	"x-user-defined":      xUserDefined,
diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/mib.go b/vendor/golang.org/x/text/encoding/internal/identifier/mib.go
index fc7df1bc71..351fb86e29 100644
--- a/vendor/golang.org/x/text/encoding/internal/identifier/mib.go
+++ b/vendor/golang.org/x/text/encoding/internal/identifier/mib.go
@@ -905,6 +905,14 @@ const (
 	// https://www.unicode.org/notes/tn6/
 	BOCU1 MIB = 1020
 
+	// UTF7IMAP is the MIB identifier with IANA name UTF-7-IMAP.
+	//
+	// Note: This charset is used to encode Unicode in IMAP mailbox names;
+	// see section 5.1.3 of rfc3501 . It should never be used
+	// outside this context. A name has been assigned so that charset processing
+	// implementations can refer to it in a consistent way.
+	UTF7IMAP MIB = 1021
+
 	// Windows30Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.0-Latin-1.
 	//
 	// Extended ISO 8859-1 Latin-1 for Windows 3.0.
diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go
index b89c45b03d..0e0fabfd6b 100644
--- a/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go
+++ b/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go
@@ -55,6 +55,8 @@ loop:
 		// Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC
 		// as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk
 		// says to treat "gbk" as Code Page 936.
+		// GBK’s decoder is gb18030’s decoder. https://encoding.spec.whatwg.org/#gbk-decoder
+		// If byte is 0x80, return code point U+20AC. https://encoding.spec.whatwg.org/#gb18030-decoder
 		case c0 == 0x80:
 			r, size = '€', 1
 
@@ -180,7 +182,9 @@ func (e gbkEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err
 				// Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC
 				// as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk
 				// says to treat "gbk" as Code Page 936.
-				if r == '€' {
+				// GBK’s encoder is gb18030’s encoder with its _is GBK_ set to true. https://encoding.spec.whatwg.org/#gbk-encoder
+				// If _is GBK_ is true and code point is U+20AC, return byte 0x80. https://encoding.spec.whatwg.org/#gb18030-encoder
+				if !e.gb18030 && r == '€' {
 					r = 0x80
 					goto write1
 				}
diff --git a/vendor/golang.org/x/text/internal/language/compact/tables.go b/vendor/golang.org/x/text/internal/language/compact/tables.go
index fe7ad9ea7c..32af9de599 100644
--- a/vendor/golang.org/x/text/internal/language/compact/tables.go
+++ b/vendor/golang.org/x/text/internal/language/compact/tables.go
@@ -966,7 +966,7 @@ var coreTags = []language.CompactCoreInfo{ // 773 elements
 	0x3fd00000, 0x3fd00072, 0x3fd000da, 0x3fd0010c,
 	0x3ff00000, 0x3ff000d1, 0x40100000, 0x401000c3,
 	0x40200000, 0x4020004c, 0x40700000, 0x40800000,
-	0x4085a000, 0x4085a0ba, 0x408e3000, 0x408e30ba,
+	0x4085a000, 0x4085a0ba, 0x408e8000, 0x408e80ba,
 	0x40c00000, 0x40c000b3, 0x41200000, 0x41200111,
 	0x41600000, 0x4160010f, 0x41c00000, 0x41d00000,
 	// Entry 280 - 29F
@@ -994,7 +994,7 @@ var coreTags = []language.CompactCoreInfo{ // 773 elements
 	0x4ae00130, 0x4b400000, 0x4b400099, 0x4b4000e8,
 	0x4bc00000, 0x4bc05000, 0x4bc05024, 0x4bc20000,
 	0x4bc20137, 0x4bc5a000, 0x4bc5a137, 0x4be00000,
-	0x4be5a000, 0x4be5a0b4, 0x4beeb000, 0x4beeb0b4,
+	0x4be5a000, 0x4be5a0b4, 0x4bef1000, 0x4bef10b4,
 	0x4c000000, 0x4c300000, 0x4c30013e, 0x4c900000,
 	// Entry 2E0 - 2FF
 	0x4c900001, 0x4cc00000, 0x4cc0012f, 0x4ce00000,
@@ -1012,4 +1012,4 @@ var coreTags = []language.CompactCoreInfo{ // 773 elements
 
 const specialTagsStr string = "ca-ES-valencia en-US-u-va-posix"
 
-// Total table size 3147 bytes (3KiB); checksum: BE816D44
+// Total table size 3147 bytes (3KiB); checksum: 6772C83C
diff --git a/vendor/golang.org/x/text/internal/language/lookup.go b/vendor/golang.org/x/text/internal/language/lookup.go
index 6294b81524..9309dc276a 100644
--- a/vendor/golang.org/x/text/internal/language/lookup.go
+++ b/vendor/golang.org/x/text/internal/language/lookup.go
@@ -328,7 +328,7 @@ func (r Region) IsPrivateUse() bool {
 	return r.typ()&iso3166UserAssigned != 0
 }
 
-type Script uint8
+type Script uint16
 
 // getScriptID returns the script id for string s. It assumes that s
 // is of the format [A-Z][a-z]{3}.
diff --git a/vendor/golang.org/x/text/internal/language/parse.go b/vendor/golang.org/x/text/internal/language/parse.go
index 47ee0fed17..aad1e0acf7 100644
--- a/vendor/golang.org/x/text/internal/language/parse.go
+++ b/vendor/golang.org/x/text/internal/language/parse.go
@@ -270,7 +270,7 @@ func parse(scan *scanner, s string) (t Tag, err error) {
 	} else if n >= 4 {
 		return Und, ErrSyntax
 	} else { // the usual case
-		t, end = parseTag(scan)
+		t, end = parseTag(scan, true)
 		if n := len(scan.token); n == 1 {
 			t.pExt = uint16(end)
 			end = parseExtensions(scan)
@@ -296,7 +296,8 @@ func parse(scan *scanner, s string) (t Tag, err error) {
 
 // parseTag parses language, script, region and variants.
 // It returns a Tag and the end position in the input that was parsed.
-func parseTag(scan *scanner) (t Tag, end int) {
+// If doNorm is true, then <lang>-<extlang> will be normalized to <extlang>.
+func parseTag(scan *scanner, doNorm bool) (t Tag, end int) {
 	var e error
 	// TODO: set an error if an unknown lang, script or region is encountered.
 	t.LangID, e = getLangID(scan.token)
@@ -307,14 +308,17 @@ func parseTag(scan *scanner) (t Tag, end int) {
 	for len(scan.token) == 3 && isAlpha(scan.token[0]) {
 		// From http://tools.ietf.org/html/bcp47, <lang>-<extlang> tags are equivalent
 		// to a tag of the form <extlang>.
-		lang, e := getLangID(scan.token)
-		if lang != 0 {
-			t.LangID = lang
-			copy(scan.b[langStart:], lang.String())
-			scan.b[langStart+3] = '-'
-			scan.start = langStart + 4
+		if doNorm {
+			lang, e := getLangID(scan.token)
+			if lang != 0 {
+				t.LangID = lang
+				langStr := lang.String()
+				copy(scan.b[langStart:], langStr)
+				scan.b[langStart+len(langStr)] = '-'
+				scan.start = langStart + len(langStr) + 1
+			}
+			scan.gobble(e)
 		}
-		scan.gobble(e)
 		end = scan.scan()
 	}
 	if len(scan.token) == 4 && isAlpha(scan.token[0]) {
@@ -559,7 +563,7 @@ func parseExtension(scan *scanner) int {
 	case 't': // https://www.ietf.org/rfc/rfc6497.txt
 		scan.scan()
 		if n := len(scan.token); n >= 2 && n <= 3 && isAlpha(scan.token[1]) {
-			_, end = parseTag(scan)
+			_, end = parseTag(scan, false)
 			scan.toLower(start, end)
 		}
 		for len(scan.token) == 2 && !isAlpha(scan.token[1]) {
diff --git a/vendor/golang.org/x/text/internal/language/tables.go b/vendor/golang.org/x/text/internal/language/tables.go
index a19480c5ba..fb6b58378b 100644
--- a/vendor/golang.org/x/text/internal/language/tables.go
+++ b/vendor/golang.org/x/text/internal/language/tables.go
@@ -7,9 +7,9 @@ import "golang.org/x/text/internal/tag"
 // CLDRVersion is the CLDR version from which the tables in this package are derived.
 const CLDRVersion = "32"
 
-const NumLanguages = 8717
+const NumLanguages = 8752
 
-const NumScripts = 251
+const NumScripts = 258
 
 const NumRegions = 357
 
@@ -121,9 +121,10 @@ const langPrivateEnd = 0x3179
 // lang holds an alphabetically sorted list of ISO-639 language identifiers.
 // All entries are 4 bytes. The index of the identifier (divided by 4) is the language tag.
 // For 2-byte language identifiers, the two successive bytes have the following meaning:
-//     - if the first letter of the 2- and 3-letter ISO codes are the same:
-//       the second and third letter of the 3-letter ISO code.
-//     - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3.
+//   - if the first letter of the 2- and 3-letter ISO codes are the same:
+//     the second and third letter of the 3-letter ISO code.
+//   - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3.
+//
 // For 3-byte language identifiers the 4th byte is 0.
 const lang tag.Index = "" + // Size: 5324 bytes
 	"---\x00aaaraai\x00aak\x00aau\x00abbkabi\x00abq\x00abr\x00abt\x00aby\x00a" +
@@ -265,7 +266,7 @@ var langNoIndex = [2197]uint8{
 	0xad, 0x03, 0xff, 0xff, 0xcf, 0x05, 0x84, 0x62,
 	0xe9, 0xbf, 0xfd, 0xbf, 0xbf, 0xf7, 0xfd, 0x77,
 	0x0f, 0xff, 0xef, 0x6f, 0xff, 0xfb, 0xdf, 0xe2,
-	0xc9, 0xf8, 0x7f, 0x7e, 0x4d, 0xb8, 0x0a, 0x6a,
+	0xc9, 0xf8, 0x7f, 0x7e, 0x4d, 0xbc, 0x0a, 0x6a,
 	0x7c, 0xea, 0xe3, 0xfa, 0x7a, 0xbf, 0x67, 0xff,
 	// Entry 40 - 7F
 	0xff, 0xff, 0xff, 0xdf, 0x2a, 0x54, 0x91, 0xc0,
@@ -277,7 +278,7 @@ var langNoIndex = [2197]uint8{
 	0xa8, 0xff, 0x1f, 0x67, 0x7d, 0xeb, 0xef, 0xce,
 	0xff, 0xff, 0x9f, 0xff, 0xb7, 0xef, 0xfe, 0xcf,
 	// Entry 80 - BF
-	0xdb, 0xff, 0xf3, 0xcd, 0xfb, 0x2f, 0xff, 0xff,
+	0xdb, 0xff, 0xf3, 0xcd, 0xfb, 0x6f, 0xff, 0xff,
 	0xbb, 0xee, 0xf7, 0xbd, 0xdb, 0xff, 0x5f, 0xf7,
 	0xfd, 0xf2, 0xfd, 0xff, 0x5e, 0x2f, 0x3b, 0xba,
 	0x7e, 0xff, 0xff, 0xfe, 0xf7, 0xff, 0xdd, 0xff,
@@ -290,15 +291,15 @@ var langNoIndex = [2197]uint8{
 	0x1b, 0x14, 0x08, 0xf3, 0x2b, 0xe7, 0x17, 0x56,
 	0x05, 0x7d, 0x0e, 0x1c, 0x37, 0x7b, 0xf3, 0xef,
 	0x97, 0xff, 0x5d, 0x38, 0x64, 0x08, 0x00, 0x10,
-	0xbc, 0x85, 0xaf, 0xdf, 0xff, 0xff, 0x73, 0x35,
-	0x3e, 0x87, 0xc7, 0xdf, 0xff, 0x01, 0x81, 0x00,
+	0xbc, 0x85, 0xaf, 0xdf, 0xff, 0xff, 0x7b, 0x35,
+	0x3e, 0xc7, 0xc7, 0xdf, 0xff, 0x01, 0x81, 0x00,
 	0xb0, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03,
 	0x40, 0x00, 0x40, 0x92, 0x21, 0x50, 0xb1, 0x5d,
 	// Entry 100 - 13F
 	0xfd, 0xdc, 0xbe, 0x5e, 0x00, 0x00, 0x02, 0x64,
 	0x0d, 0x19, 0x41, 0xdf, 0x79, 0x22, 0x00, 0x00,
 	0x00, 0x5e, 0x64, 0xdc, 0x24, 0xe5, 0xd9, 0xe3,
-	0xfe, 0xff, 0xfd, 0xcb, 0x9f, 0x14, 0x01, 0x0c,
+	0xfe, 0xff, 0xfd, 0xcb, 0x9f, 0x14, 0x41, 0x0c,
 	0x86, 0x00, 0xd1, 0x00, 0xf0, 0xc7, 0x67, 0x5f,
 	0x56, 0x99, 0x5e, 0xb5, 0x6c, 0xaf, 0x03, 0x00,
 	0x02, 0x00, 0x00, 0x00, 0xc0, 0x37, 0xda, 0x56,
@@ -309,9 +310,9 @@ var langNoIndex = [2197]uint8{
 	0x0a, 0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0x09,
 	0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x10,
 	0x00, 0x00, 0x44, 0x00, 0x00, 0x10, 0x00, 0x04,
-	0x08, 0x00, 0x00, 0x04, 0x00, 0x80, 0x28, 0x04,
+	0x08, 0x00, 0x00, 0x05, 0x00, 0x80, 0x28, 0x04,
 	0x00, 0x00, 0x40, 0xd5, 0x2d, 0x00, 0x64, 0x35,
-	0x24, 0x52, 0xf4, 0xd4, 0xbd, 0x62, 0xc9, 0x03,
+	0x24, 0x52, 0xf4, 0xd5, 0xbf, 0x62, 0xc9, 0x03,
 	// Entry 180 - 1BF
 	0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
 	0x00, 0x04, 0x13, 0x39, 0x01, 0xdd, 0x57, 0x98,
@@ -333,20 +334,20 @@ var langNoIndex = [2197]uint8{
 	// Entry 200 - 23F
 	0xdf, 0xc3, 0x83, 0x82, 0xc0, 0xfb, 0x57, 0x27,
 	0xed, 0x55, 0xe7, 0x01, 0x00, 0x20, 0xb2, 0xc5,
-	0xa4, 0x45, 0x25, 0x9b, 0x02, 0xdf, 0xe0, 0xdf,
-	0x03, 0x44, 0x08, 0x90, 0x01, 0x04, 0x01, 0xe3,
+	0xa4, 0x45, 0x25, 0x9b, 0x02, 0xdf, 0xe1, 0xdf,
+	0x03, 0x44, 0x08, 0x90, 0x01, 0x04, 0x81, 0xe3,
 	0x92, 0x54, 0xdb, 0x28, 0xd3, 0x5f, 0xfe, 0x6d,
 	0x79, 0xed, 0x1c, 0x7d, 0x04, 0x08, 0x00, 0x01,
 	0x21, 0x12, 0x64, 0x5f, 0xdd, 0x0e, 0x85, 0x4f,
 	0x40, 0x40, 0x00, 0x04, 0xf1, 0xfd, 0x3d, 0x54,
 	// Entry 240 - 27F
 	0xe8, 0x03, 0xb4, 0x27, 0x23, 0x0d, 0x00, 0x00,
-	0x20, 0x7b, 0x78, 0x02, 0x05, 0x84, 0x00, 0xf0,
+	0x20, 0x7b, 0x78, 0x02, 0x07, 0x84, 0x00, 0xf0,
 	0xbb, 0x7e, 0x5a, 0x00, 0x18, 0x04, 0x81, 0x00,
 	0x00, 0x00, 0x80, 0x10, 0x90, 0x1c, 0x01, 0x00,
 	0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x00, 0x04,
 	0x08, 0xa0, 0x70, 0xa5, 0x0c, 0x40, 0x00, 0x00,
-	0x11, 0x24, 0x04, 0x68, 0x00, 0x20, 0x70, 0xff,
+	0x91, 0x24, 0x04, 0x68, 0x00, 0x20, 0x70, 0xff,
 	0x7b, 0x7f, 0x70, 0x00, 0x05, 0x9b, 0xdd, 0x66,
 	// Entry 280 - 2BF
 	0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x05,
@@ -365,12 +366,12 @@ var langNoIndex = [2197]uint8{
 	0xa7, 0x81, 0x47, 0x97, 0xfb, 0x00, 0x10, 0x00,
 	0x08, 0x00, 0x80, 0x00, 0x40, 0x04, 0x00, 0x01,
 	0x02, 0x00, 0x01, 0x40, 0x80, 0x00, 0x00, 0x08,
-	0xd8, 0xeb, 0xf6, 0x39, 0xc4, 0x89, 0x12, 0x00,
+	0xd8, 0xeb, 0xf6, 0x39, 0xc4, 0x8d, 0x12, 0x00,
 	// Entry 300 - 33F
 	0x00, 0x0c, 0x04, 0x01, 0x20, 0x20, 0xdd, 0xa0,
 	0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
 	0x04, 0x10, 0xd0, 0x9d, 0x95, 0x13, 0x04, 0x80,
-	0x00, 0x01, 0xd0, 0x12, 0x40, 0x00, 0x10, 0xb0,
+	0x00, 0x01, 0xd0, 0x16, 0x40, 0x00, 0x10, 0xb0,
 	0x10, 0x62, 0x4c, 0xd2, 0x02, 0x01, 0x4a, 0x00,
 	0x46, 0x04, 0x00, 0x08, 0x02, 0x00, 0x20, 0x80,
 	0x00, 0x80, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00,
@@ -397,9 +398,9 @@ var langNoIndex = [2197]uint8{
 	0x02, 0x30, 0x9f, 0x7a, 0x16, 0xbd, 0x7f, 0x57,
 	0xf2, 0xff, 0x31, 0xff, 0xf2, 0x1e, 0x90, 0xf7,
 	0xf1, 0xf9, 0x45, 0x80, 0x01, 0x02, 0x00, 0x00,
-	0x40, 0x54, 0x9f, 0x8a, 0xd9, 0xf9, 0x2e, 0x11,
+	0x40, 0x54, 0x9f, 0x8a, 0xdb, 0xf9, 0x2e, 0x11,
 	0x86, 0x51, 0xc0, 0xf3, 0xfb, 0x47, 0x40, 0x01,
-	0x05, 0xd1, 0x50, 0x5c, 0x00, 0x00, 0x00, 0x10,
+	0x05, 0xd1, 0x50, 0x5c, 0x00, 0x40, 0x00, 0x10,
 	0x04, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x17, 0xd2,
 	0xb9, 0xfd, 0xfc, 0xba, 0xfe, 0xef, 0xc7, 0xbe,
 	// Entry 400 - 43F
@@ -421,19 +422,19 @@ var langNoIndex = [2197]uint8{
 	0xcd, 0xff, 0xfb, 0xff, 0xdf, 0xd7, 0xea, 0xff,
 	0xe5, 0x5f, 0x6d, 0x0f, 0xa7, 0x51, 0x06, 0xc4,
 	// Entry 480 - 4BF
-	0x13, 0x50, 0x5d, 0xaf, 0xa6, 0xff, 0x99, 0xfb,
+	0x93, 0x50, 0x5d, 0xaf, 0xa6, 0xff, 0x99, 0xfb,
 	0x63, 0x1d, 0x53, 0xff, 0xef, 0xb7, 0x35, 0x20,
 	0x14, 0x00, 0x55, 0x51, 0x82, 0x65, 0xf5, 0x41,
 	0xe2, 0xff, 0xfc, 0xdf, 0x02, 0x05, 0xc5, 0x05,
-	0x00, 0x22, 0x00, 0x74, 0x69, 0x10, 0x08, 0x04,
+	0x00, 0x22, 0x00, 0x74, 0x69, 0x10, 0x08, 0x05,
 	0x41, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00,
 	0x00, 0x51, 0x20, 0x05, 0x04, 0x01, 0x00, 0x00,
-	0x06, 0x01, 0x20, 0x00, 0x18, 0x01, 0x92, 0xb1,
+	0x06, 0x01, 0x20, 0x00, 0x18, 0x01, 0x92, 0xf1,
 	// Entry 4C0 - 4FF
-	0xfd, 0x47, 0x49, 0x06, 0x95, 0x06, 0x57, 0xed,
-	0xfb, 0x4c, 0x1c, 0x6b, 0x83, 0x04, 0x62, 0x40,
+	0xfd, 0x47, 0x69, 0x06, 0x95, 0x06, 0x57, 0xed,
+	0xfb, 0x4d, 0x1c, 0x6b, 0x83, 0x04, 0x62, 0x40,
 	0x00, 0x11, 0x42, 0x00, 0x00, 0x00, 0x54, 0x83,
-	0xb8, 0x4f, 0x10, 0x8c, 0x89, 0x46, 0xde, 0xf7,
+	0xb8, 0x4f, 0x10, 0x8e, 0x89, 0x46, 0xde, 0xf7,
 	0x13, 0x31, 0x00, 0x20, 0x00, 0x00, 0x00, 0x90,
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x10, 0x00,
 	0x01, 0x00, 0x00, 0xf0, 0x5b, 0xf4, 0xbe, 0x3d,
@@ -470,7 +471,7 @@ var langNoIndex = [2197]uint8{
 	0xaa, 0x10, 0x5d, 0x98, 0x52, 0x00, 0x80, 0x20,
 	0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x02, 0x02,
 	0x19, 0x00, 0x10, 0x02, 0x10, 0x61, 0x5a, 0x9d,
-	0x31, 0x00, 0x00, 0x00, 0x01, 0x10, 0x02, 0x20,
+	0x31, 0x00, 0x00, 0x00, 0x01, 0x18, 0x02, 0x20,
 	0x00, 0x00, 0x01, 0x00, 0x42, 0x00, 0x20, 0x00,
 	0x00, 0x1f, 0xdf, 0xd2, 0xb9, 0xff, 0xfd, 0x3f,
 	0x1f, 0x98, 0xcf, 0x9c, 0xff, 0xaf, 0x5f, 0xfe,
@@ -479,9 +480,9 @@ var langNoIndex = [2197]uint8{
 	0xb7, 0xf6, 0xfb, 0xb3, 0xc7, 0xff, 0x6f, 0xf1,
 	0x73, 0xb1, 0x7f, 0x9f, 0x7f, 0xbd, 0xfc, 0xb7,
 	0xee, 0x1c, 0xfa, 0xcb, 0xef, 0xdd, 0xf9, 0xbd,
-	0x6e, 0xae, 0x55, 0xfd, 0x6e, 0x81, 0x76, 0x1f,
+	0x6e, 0xae, 0x55, 0xfd, 0x6e, 0x81, 0x76, 0x9f,
 	0xd4, 0x77, 0xf5, 0x7d, 0xfb, 0xff, 0xeb, 0xfe,
-	0xbe, 0x5f, 0x46, 0x1b, 0xe9, 0x5f, 0x50, 0x18,
+	0xbe, 0x5f, 0x46, 0x5b, 0xe9, 0x5f, 0x50, 0x18,
 	0x02, 0xfa, 0xf7, 0x9d, 0x15, 0x97, 0x05, 0x0f,
 	// Entry 640 - 67F
 	0x75, 0xc4, 0x7d, 0x81, 0x92, 0xf5, 0x57, 0x6c,
@@ -495,14 +496,14 @@ var langNoIndex = [2197]uint8{
 	// Entry 680 - 6BF
 	0x97, 0x9d, 0xbf, 0x9f, 0xf7, 0xc7, 0xfd, 0x37,
 	0xce, 0x7f, 0x04, 0x1d, 0x73, 0x7f, 0xf8, 0xda,
-	0x5d, 0xce, 0x7d, 0x06, 0xb9, 0xea, 0x69, 0xa0,
+	0x5d, 0xce, 0x7d, 0x06, 0xb9, 0xea, 0x79, 0xa0,
 	0x1a, 0x20, 0x00, 0x30, 0x02, 0x04, 0x24, 0x08,
 	0x04, 0x00, 0x00, 0x40, 0xd4, 0x02, 0x04, 0x00,
 	0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x01, 0x06,
 	0x50, 0x00, 0x08, 0x00, 0x00, 0x00, 0x24, 0x00,
 	0x04, 0x00, 0x10, 0xdc, 0x58, 0xd7, 0x0d, 0x0f,
 	// Entry 6C0 - 6FF
-	0x14, 0x4d, 0xf1, 0x16, 0x44, 0xd1, 0x42, 0x08,
+	0x14, 0x4d, 0xf1, 0x16, 0x44, 0xd5, 0x42, 0x08,
 	0x40, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00,
 	0x00, 0xdc, 0xfb, 0xcb, 0x0e, 0x58, 0x48, 0x41,
 	0x24, 0x20, 0x04, 0x00, 0x30, 0x12, 0x40, 0x00,
@@ -513,7 +514,7 @@ var langNoIndex = [2197]uint8{
 	// Entry 700 - 73F
 	0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
 	0x80, 0x86, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x01,
-	0xdf, 0x18, 0x00, 0x00, 0x02, 0xf0, 0xfd, 0x79,
+	0xff, 0x18, 0x02, 0x00, 0x02, 0xf0, 0xfd, 0x79,
 	0x3b, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00,
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
 	0x03, 0x00, 0x09, 0x20, 0x00, 0x00, 0x01, 0x00,
@@ -525,7 +526,7 @@ var langNoIndex = [2197]uint8{
 	0xcd, 0xf9, 0x5c, 0x00, 0x01, 0x00, 0x30, 0x04,
 	0x04, 0x55, 0x00, 0x01, 0x04, 0xf4, 0x3f, 0x4a,
 	0x01, 0x00, 0x00, 0xb0, 0x80, 0x20, 0x55, 0x75,
-	0x97, 0x7c, 0x9f, 0x31, 0xcc, 0x68, 0xd1, 0x03,
+	0x97, 0x7c, 0xdf, 0x31, 0xcc, 0x68, 0xd1, 0x03,
 	0xd5, 0x57, 0x27, 0x14, 0x01, 0x00, 0x00, 0x00,
 	0x00, 0x00, 0x2c, 0xf7, 0xcb, 0x1f, 0x14, 0x60,
 	// Entry 780 - 7BF
@@ -538,7 +539,7 @@ var langNoIndex = [2197]uint8{
 	0xe8, 0x30, 0x90, 0x6a, 0x92, 0x00, 0x00, 0x02,
 	0xff, 0xef, 0xff, 0x4b, 0x85, 0x53, 0xf4, 0xed,
 	// Entry 7C0 - 7FF
-	0xdd, 0xbf, 0x72, 0x1d, 0xc7, 0x0c, 0xd5, 0x42,
+	0xdd, 0xbf, 0xf2, 0x5d, 0xc7, 0x0c, 0xd5, 0x42,
 	0xfc, 0xff, 0xf7, 0x1f, 0x00, 0x80, 0x40, 0x56,
 	0xcc, 0x16, 0x9e, 0xea, 0x35, 0x7d, 0xef, 0xff,
 	0xbd, 0xa4, 0xaf, 0x01, 0x44, 0x18, 0x01, 0x4d,
@@ -552,15 +553,15 @@ var langNoIndex = [2197]uint8{
 	0x40, 0x9c, 0x44, 0xdf, 0xf5, 0x8f, 0x66, 0xb3,
 	0x55, 0x20, 0xd4, 0xc1, 0xd8, 0x30, 0x3d, 0x80,
 	0x00, 0x00, 0x00, 0x04, 0xd4, 0x11, 0xc5, 0x84,
-	0x2e, 0x50, 0x00, 0x22, 0x50, 0x6e, 0xbd, 0x93,
+	0x2f, 0x50, 0x00, 0x22, 0x50, 0x6e, 0xbd, 0x93,
 	0x07, 0x00, 0x20, 0x10, 0x84, 0xb2, 0x45, 0x10,
 	0x06, 0x44, 0x00, 0x00, 0x12, 0x02, 0x11, 0x00,
 	// Entry 840 - 87F
-	0xf0, 0xfb, 0xfd, 0x7f, 0x05, 0x00, 0x12, 0x81,
+	0xf0, 0xfb, 0xfd, 0x7f, 0x05, 0x00, 0x16, 0x81,
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02,
 	0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x02, 0x28,
 	0x84, 0x00, 0x21, 0xc0, 0x23, 0x24, 0x00, 0x00,
-	0x00, 0xcb, 0xe4, 0x3a, 0x42, 0x88, 0x14, 0xf1,
+	0x00, 0xcb, 0xe4, 0x3a, 0x46, 0x88, 0x14, 0xf1,
 	0xef, 0xff, 0x7f, 0x12, 0x01, 0x01, 0x84, 0x50,
 	0x07, 0xfc, 0xff, 0xff, 0x0f, 0x01, 0x00, 0x40,
 	0x10, 0x38, 0x01, 0x01, 0x1c, 0x12, 0x40, 0xe1,
@@ -582,8 +583,8 @@ var altLangIndex = [6]uint16{
 }
 
 // AliasMap maps langIDs to their suggested replacements.
-// Size: 704 bytes, 176 elements
-var AliasMap = [176]FromTo{
+// Size: 716 bytes, 179 elements
+var AliasMap = [179]FromTo{
 	0:   {From: 0x82, To: 0x88},
 	1:   {From: 0x187, To: 0x1ae},
 	2:   {From: 0x1f3, To: 0x1e1},
@@ -612,172 +613,176 @@ var AliasMap = [176]FromTo{
 	25:  {From: 0x80c, To: 0x5a},
 	26:  {From: 0x815, To: 0x8d},
 	27:  {From: 0x87e, To: 0x810},
-	28:  {From: 0x8c3, To: 0xee3},
-	29:  {From: 0x9ef, To: 0x331},
-	30:  {From: 0xa36, To: 0x2c5},
-	31:  {From: 0xa3d, To: 0xbf},
-	32:  {From: 0xabe, To: 0x3322},
-	33:  {From: 0xb38, To: 0x529},
-	34:  {From: 0xb75, To: 0x265a},
-	35:  {From: 0xb7e, To: 0xbc3},
-	36:  {From: 0xb9b, To: 0x44e},
-	37:  {From: 0xbbc, To: 0x4229},
-	38:  {From: 0xbbf, To: 0x529},
-	39:  {From: 0xbfe, To: 0x2da7},
-	40:  {From: 0xc2e, To: 0x3181},
-	41:  {From: 0xcb9, To: 0xf3},
-	42:  {From: 0xd08, To: 0xfa},
-	43:  {From: 0xdc8, To: 0x11a},
-	44:  {From: 0xdd7, To: 0x32d},
-	45:  {From: 0xdf8, To: 0xdfb},
-	46:  {From: 0xdfe, To: 0x531},
-	47:  {From: 0xe01, To: 0xdf3},
-	48:  {From: 0xedf, To: 0x205a},
-	49:  {From: 0xee9, To: 0x222e},
-	50:  {From: 0xeee, To: 0x2e9a},
-	51:  {From: 0xf39, To: 0x367},
-	52:  {From: 0x10d0, To: 0x140},
-	53:  {From: 0x1104, To: 0x2d0},
-	54:  {From: 0x11a0, To: 0x1ec},
-	55:  {From: 0x1279, To: 0x21},
-	56:  {From: 0x1424, To: 0x15e},
-	57:  {From: 0x1470, To: 0x14e},
-	58:  {From: 0x151f, To: 0xd9b},
-	59:  {From: 0x1523, To: 0x390},
-	60:  {From: 0x1532, To: 0x19f},
-	61:  {From: 0x1580, To: 0x210},
-	62:  {From: 0x1583, To: 0x10d},
-	63:  {From: 0x15a3, To: 0x3caf},
-	64:  {From: 0x1630, To: 0x222e},
-	65:  {From: 0x166a, To: 0x19b},
-	66:  {From: 0x16c8, To: 0x136},
-	67:  {From: 0x1700, To: 0x29f8},
-	68:  {From: 0x1718, To: 0x194},
-	69:  {From: 0x1727, To: 0xf3f},
-	70:  {From: 0x177a, To: 0x178},
-	71:  {From: 0x1809, To: 0x17b6},
-	72:  {From: 0x1816, To: 0x18f3},
-	73:  {From: 0x188a, To: 0x436},
-	74:  {From: 0x1979, To: 0x1d01},
-	75:  {From: 0x1a74, To: 0x2bb0},
-	76:  {From: 0x1a8a, To: 0x1f8},
-	77:  {From: 0x1b5a, To: 0x1fa},
-	78:  {From: 0x1b86, To: 0x1515},
-	79:  {From: 0x1d64, To: 0x2c9b},
-	80:  {From: 0x2038, To: 0x37b1},
-	81:  {From: 0x203d, To: 0x20dd},
-	82:  {From: 0x205a, To: 0x30b},
-	83:  {From: 0x20e3, To: 0x274},
-	84:  {From: 0x20ee, To: 0x263},
-	85:  {From: 0x20f2, To: 0x22d},
-	86:  {From: 0x20f9, To: 0x256},
-	87:  {From: 0x210f, To: 0x21eb},
-	88:  {From: 0x2135, To: 0x27d},
-	89:  {From: 0x2160, To: 0x913},
-	90:  {From: 0x2199, To: 0x121},
-	91:  {From: 0x21ce, To: 0x1561},
-	92:  {From: 0x21e6, To: 0x504},
-	93:  {From: 0x21f4, To: 0x49f},
-	94:  {From: 0x21fb, To: 0x269},
-	95:  {From: 0x222d, To: 0x121},
-	96:  {From: 0x2237, To: 0x121},
-	97:  {From: 0x2262, To: 0x92a},
-	98:  {From: 0x2316, To: 0x3226},
-	99:  {From: 0x236a, To: 0x2835},
-	100: {From: 0x2382, To: 0x3365},
-	101: {From: 0x2472, To: 0x2c7},
-	102: {From: 0x24e4, To: 0x2ff},
-	103: {From: 0x24f0, To: 0x2fa},
-	104: {From: 0x24fa, To: 0x31f},
-	105: {From: 0x2550, To: 0xb5b},
-	106: {From: 0x25a9, To: 0xe2},
-	107: {From: 0x263e, To: 0x2d0},
-	108: {From: 0x26c9, To: 0x26b4},
-	109: {From: 0x26f9, To: 0x3c8},
-	110: {From: 0x2727, To: 0x3caf},
-	111: {From: 0x2755, To: 0x6a4},
-	112: {From: 0x2765, To: 0x26b4},
-	113: {From: 0x2789, To: 0x4358},
-	114: {From: 0x27c9, To: 0x2001},
-	115: {From: 0x28ea, To: 0x27b1},
-	116: {From: 0x28ef, To: 0x2837},
-	117: {From: 0x2914, To: 0x351},
-	118: {From: 0x2986, To: 0x2da7},
-	119: {From: 0x29f0, To: 0x96b},
-	120: {From: 0x2b1a, To: 0x38d},
-	121: {From: 0x2bfc, To: 0x395},
-	122: {From: 0x2c3f, To: 0x3caf},
-	123: {From: 0x2cfc, To: 0x3be},
-	124: {From: 0x2d13, To: 0x597},
-	125: {From: 0x2d47, To: 0x148},
-	126: {From: 0x2d48, To: 0x148},
-	127: {From: 0x2dff, To: 0x2f1},
-	128: {From: 0x2e08, To: 0x19cc},
-	129: {From: 0x2e1a, To: 0x2d95},
-	130: {From: 0x2e21, To: 0x292},
-	131: {From: 0x2e54, To: 0x7d},
-	132: {From: 0x2e65, To: 0x2282},
-	133: {From: 0x2ea0, To: 0x2e9b},
-	134: {From: 0x2eef, To: 0x2ed7},
-	135: {From: 0x3193, To: 0x3c4},
-	136: {From: 0x3366, To: 0x338e},
-	137: {From: 0x342a, To: 0x3dc},
-	138: {From: 0x34ee, To: 0x18d0},
-	139: {From: 0x35c8, To: 0x2c9b},
-	140: {From: 0x35e6, To: 0x412},
-	141: {From: 0x3658, To: 0x246},
-	142: {From: 0x3676, To: 0x3f4},
-	143: {From: 0x36fd, To: 0x445},
-	144: {From: 0x37c0, To: 0x121},
-	145: {From: 0x3816, To: 0x38f2},
-	146: {From: 0x382a, To: 0x2b48},
-	147: {From: 0x382b, To: 0x2c9b},
-	148: {From: 0x382f, To: 0xa9},
-	149: {From: 0x3832, To: 0x3228},
-	150: {From: 0x386c, To: 0x39a6},
-	151: {From: 0x3892, To: 0x3fc0},
-	152: {From: 0x38a5, To: 0x39d7},
-	153: {From: 0x38b4, To: 0x1fa4},
-	154: {From: 0x38b5, To: 0x2e9a},
-	155: {From: 0x395c, To: 0x47e},
-	156: {From: 0x3b4e, To: 0xd91},
-	157: {From: 0x3b78, To: 0x137},
-	158: {From: 0x3c99, To: 0x4bc},
-	159: {From: 0x3fbd, To: 0x100},
-	160: {From: 0x4208, To: 0xa91},
-	161: {From: 0x42be, To: 0x573},
-	162: {From: 0x42f9, To: 0x3f60},
-	163: {From: 0x4378, To: 0x25a},
-	164: {From: 0x43b8, To: 0xe6c},
-	165: {From: 0x43cd, To: 0x10f},
-	166: {From: 0x44af, To: 0x3322},
-	167: {From: 0x44e3, To: 0x512},
-	168: {From: 0x45ca, To: 0x2409},
-	169: {From: 0x45dd, To: 0x26dc},
-	170: {From: 0x4610, To: 0x48ae},
-	171: {From: 0x46ae, To: 0x46a0},
-	172: {From: 0x473e, To: 0x4745},
-	173: {From: 0x4817, To: 0x3503},
-	174: {From: 0x4916, To: 0x31f},
-	175: {From: 0x49a7, To: 0x523},
+	28:  {From: 0x8a8, To: 0x8b7},
+	29:  {From: 0x8c3, To: 0xee3},
+	30:  {From: 0x8fa, To: 0x1dc},
+	31:  {From: 0x9ef, To: 0x331},
+	32:  {From: 0xa36, To: 0x2c5},
+	33:  {From: 0xa3d, To: 0xbf},
+	34:  {From: 0xabe, To: 0x3322},
+	35:  {From: 0xb38, To: 0x529},
+	36:  {From: 0xb75, To: 0x265a},
+	37:  {From: 0xb7e, To: 0xbc3},
+	38:  {From: 0xb9b, To: 0x44e},
+	39:  {From: 0xbbc, To: 0x4229},
+	40:  {From: 0xbbf, To: 0x529},
+	41:  {From: 0xbfe, To: 0x2da7},
+	42:  {From: 0xc2e, To: 0x3181},
+	43:  {From: 0xcb9, To: 0xf3},
+	44:  {From: 0xd08, To: 0xfa},
+	45:  {From: 0xdc8, To: 0x11a},
+	46:  {From: 0xdd7, To: 0x32d},
+	47:  {From: 0xdf8, To: 0xdfb},
+	48:  {From: 0xdfe, To: 0x531},
+	49:  {From: 0xe01, To: 0xdf3},
+	50:  {From: 0xedf, To: 0x205a},
+	51:  {From: 0xee9, To: 0x222e},
+	52:  {From: 0xeee, To: 0x2e9a},
+	53:  {From: 0xf39, To: 0x367},
+	54:  {From: 0x10d0, To: 0x140},
+	55:  {From: 0x1104, To: 0x2d0},
+	56:  {From: 0x11a0, To: 0x1ec},
+	57:  {From: 0x1279, To: 0x21},
+	58:  {From: 0x1424, To: 0x15e},
+	59:  {From: 0x1470, To: 0x14e},
+	60:  {From: 0x151f, To: 0xd9b},
+	61:  {From: 0x1523, To: 0x390},
+	62:  {From: 0x1532, To: 0x19f},
+	63:  {From: 0x1580, To: 0x210},
+	64:  {From: 0x1583, To: 0x10d},
+	65:  {From: 0x15a3, To: 0x3caf},
+	66:  {From: 0x1630, To: 0x222e},
+	67:  {From: 0x166a, To: 0x19b},
+	68:  {From: 0x16c8, To: 0x136},
+	69:  {From: 0x1700, To: 0x29f8},
+	70:  {From: 0x1718, To: 0x194},
+	71:  {From: 0x1727, To: 0xf3f},
+	72:  {From: 0x177a, To: 0x178},
+	73:  {From: 0x1809, To: 0x17b6},
+	74:  {From: 0x1816, To: 0x18f3},
+	75:  {From: 0x188a, To: 0x436},
+	76:  {From: 0x1979, To: 0x1d01},
+	77:  {From: 0x1a74, To: 0x2bb0},
+	78:  {From: 0x1a8a, To: 0x1f8},
+	79:  {From: 0x1b5a, To: 0x1fa},
+	80:  {From: 0x1b86, To: 0x1515},
+	81:  {From: 0x1d64, To: 0x2c9b},
+	82:  {From: 0x2038, To: 0x37b1},
+	83:  {From: 0x203d, To: 0x20dd},
+	84:  {From: 0x205a, To: 0x30b},
+	85:  {From: 0x20e3, To: 0x274},
+	86:  {From: 0x20ee, To: 0x263},
+	87:  {From: 0x20f2, To: 0x22d},
+	88:  {From: 0x20f9, To: 0x256},
+	89:  {From: 0x210f, To: 0x21eb},
+	90:  {From: 0x2135, To: 0x27d},
+	91:  {From: 0x2160, To: 0x913},
+	92:  {From: 0x2199, To: 0x121},
+	93:  {From: 0x21ce, To: 0x1561},
+	94:  {From: 0x21e6, To: 0x504},
+	95:  {From: 0x21f4, To: 0x49f},
+	96:  {From: 0x21fb, To: 0x269},
+	97:  {From: 0x222d, To: 0x121},
+	98:  {From: 0x2237, To: 0x121},
+	99:  {From: 0x2262, To: 0x92a},
+	100: {From: 0x2316, To: 0x3226},
+	101: {From: 0x236a, To: 0x2835},
+	102: {From: 0x2382, To: 0x3365},
+	103: {From: 0x2472, To: 0x2c7},
+	104: {From: 0x24e4, To: 0x2ff},
+	105: {From: 0x24f0, To: 0x2fa},
+	106: {From: 0x24fa, To: 0x31f},
+	107: {From: 0x2550, To: 0xb5b},
+	108: {From: 0x25a9, To: 0xe2},
+	109: {From: 0x263e, To: 0x2d0},
+	110: {From: 0x26c9, To: 0x26b4},
+	111: {From: 0x26f9, To: 0x3c8},
+	112: {From: 0x2727, To: 0x3caf},
+	113: {From: 0x2755, To: 0x6a4},
+	114: {From: 0x2765, To: 0x26b4},
+	115: {From: 0x2789, To: 0x4358},
+	116: {From: 0x27c9, To: 0x2001},
+	117: {From: 0x28ea, To: 0x27b1},
+	118: {From: 0x28ef, To: 0x2837},
+	119: {From: 0x2914, To: 0x351},
+	120: {From: 0x2986, To: 0x2da7},
+	121: {From: 0x29f0, To: 0x96b},
+	122: {From: 0x2b1a, To: 0x38d},
+	123: {From: 0x2bfc, To: 0x395},
+	124: {From: 0x2c3f, To: 0x3caf},
+	125: {From: 0x2ce1, To: 0x2201},
+	126: {From: 0x2cfc, To: 0x3be},
+	127: {From: 0x2d13, To: 0x597},
+	128: {From: 0x2d47, To: 0x148},
+	129: {From: 0x2d48, To: 0x148},
+	130: {From: 0x2dff, To: 0x2f1},
+	131: {From: 0x2e08, To: 0x19cc},
+	132: {From: 0x2e1a, To: 0x2d95},
+	133: {From: 0x2e21, To: 0x292},
+	134: {From: 0x2e54, To: 0x7d},
+	135: {From: 0x2e65, To: 0x2282},
+	136: {From: 0x2ea0, To: 0x2e9b},
+	137: {From: 0x2eef, To: 0x2ed7},
+	138: {From: 0x3193, To: 0x3c4},
+	139: {From: 0x3366, To: 0x338e},
+	140: {From: 0x342a, To: 0x3dc},
+	141: {From: 0x34ee, To: 0x18d0},
+	142: {From: 0x35c8, To: 0x2c9b},
+	143: {From: 0x35e6, To: 0x412},
+	144: {From: 0x3658, To: 0x246},
+	145: {From: 0x3676, To: 0x3f4},
+	146: {From: 0x36fd, To: 0x445},
+	147: {From: 0x37c0, To: 0x121},
+	148: {From: 0x3816, To: 0x38f2},
+	149: {From: 0x382a, To: 0x2b48},
+	150: {From: 0x382b, To: 0x2c9b},
+	151: {From: 0x382f, To: 0xa9},
+	152: {From: 0x3832, To: 0x3228},
+	153: {From: 0x386c, To: 0x39a6},
+	154: {From: 0x3892, To: 0x3fc0},
+	155: {From: 0x38a5, To: 0x39d7},
+	156: {From: 0x38b4, To: 0x1fa4},
+	157: {From: 0x38b5, To: 0x2e9a},
+	158: {From: 0x395c, To: 0x47e},
+	159: {From: 0x3b4e, To: 0xd91},
+	160: {From: 0x3b78, To: 0x137},
+	161: {From: 0x3c99, To: 0x4bc},
+	162: {From: 0x3fbd, To: 0x100},
+	163: {From: 0x4208, To: 0xa91},
+	164: {From: 0x42be, To: 0x573},
+	165: {From: 0x42f9, To: 0x3f60},
+	166: {From: 0x4378, To: 0x25a},
+	167: {From: 0x43b8, To: 0xe6c},
+	168: {From: 0x43cd, To: 0x10f},
+	169: {From: 0x44af, To: 0x3322},
+	170: {From: 0x44e3, To: 0x512},
+	171: {From: 0x45ca, To: 0x2409},
+	172: {From: 0x45dd, To: 0x26dc},
+	173: {From: 0x4610, To: 0x48ae},
+	174: {From: 0x46ae, To: 0x46a0},
+	175: {From: 0x473e, To: 0x4745},
+	176: {From: 0x4817, To: 0x3503},
+	177: {From: 0x4916, To: 0x31f},
+	178: {From: 0x49a7, To: 0x523},
 }
 
-// Size: 176 bytes, 176 elements
-var AliasTypes = [176]AliasType{
+// Size: 179 bytes, 179 elements
+var AliasTypes = [179]AliasType{
 	// Entry 0 - 3F
 	1, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 1, 0, 0, 1, 2,
-	1, 1, 2, 0, 0, 1, 0, 1, 2, 1, 1, 0, 0, 2, 1, 1,
-	0, 2, 0, 0, 1, 0, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0,
-	0, 0, 0, 2, 1, 1, 1, 1, 2, 1, 0, 1, 1, 2, 2, 0,
+	1, 1, 2, 0, 0, 1, 0, 1, 2, 1, 1, 0, 0, 0, 0, 2,
+	1, 1, 0, 2, 0, 0, 1, 0, 1, 0, 0, 1, 2, 1, 1, 1,
+	1, 0, 0, 0, 0, 2, 1, 1, 1, 1, 2, 1, 0, 1, 1, 2,
 	// Entry 40 - 7F
-	0, 1, 2, 0, 1, 0, 1, 1, 1, 1, 0, 0, 2, 1, 0, 0,
-	0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-	0, 1, 0, 0, 0, 1, 2, 2, 2, 0, 1, 1, 0, 1, 0, 0,
-	0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 2, 1, 1,
+	2, 0, 0, 1, 2, 0, 1, 0, 1, 1, 1, 1, 0, 0, 2, 1,
+	0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 1, 0, 0, 0, 1, 2, 2, 2, 0, 1, 1, 0, 1,
+	0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0,
 	// Entry 80 - BF
-	0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 0, 0, 2, 1, 1, 1,
-	0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 2,
-	0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1,
+	2, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 0, 0, 2,
+	1, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1,
+	0, 1, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1,
+	0, 1, 1,
 }
 
 const (
@@ -785,17 +790,17 @@ const (
 	_Hani = 57
 	_Hans = 59
 	_Hant = 60
-	_Qaaa = 143
-	_Qaai = 151
-	_Qabx = 192
-	_Zinh = 245
-	_Zyyy = 250
-	_Zzzz = 251
+	_Qaaa = 147
+	_Qaai = 155
+	_Qabx = 196
+	_Zinh = 252
+	_Zyyy = 257
+	_Zzzz = 258
 )
 
 // script is an alphabetically sorted list of ISO 15924 codes. The index
 // of the script in the string, divided by 4, is the internal scriptID.
-const script tag.Index = "" + // Size: 1012 bytes
+const script tag.Index = "" + // Size: 1040 bytes
 	"----AdlmAfakAghbAhomArabAranArmiArmnAvstBaliBamuBassBatkBengBhksBlisBopo" +
 	"BrahBraiBugiBuhdCakmCansCariChamCherChrsCirtCoptCpmnCprtCyrlCyrsDevaDiak" +
 	"DogrDsrtDuplEgydEgyhEgypElbaElymEthiGeokGeorGlagGongGonmGothGranGrekGujr" +
@@ -803,14 +808,14 @@ const script tag.Index = "" + // Size: 1012 bytes
 	"JavaJpanJurcKaliKanaKharKhmrKhojKitlKitsKndaKoreKpelKthiLanaLaooLatfLatg" +
 	"LatnLekeLepcLimbLinaLinbLisuLomaLyciLydiMahjMakaMandManiMarcMayaMedfMend" +
 	"MercMeroMlymModiMongMoonMrooMteiMultMymrNandNarbNbatNewaNkdbNkgbNkooNshu" +
-	"OgamOlckOrkhOryaOsgeOsmaPalmPaucPermPhagPhliPhlpPhlvPhnxPiqdPlrdPrtiQaaa" +
-	"QaabQaacQaadQaaeQaafQaagQaahQaaiQaajQaakQaalQaamQaanQaaoQaapQaaqQaarQaas" +
-	"QaatQaauQaavQaawQaaxQaayQaazQabaQabbQabcQabdQabeQabfQabgQabhQabiQabjQabk" +
-	"QablQabmQabnQaboQabpQabqQabrQabsQabtQabuQabvQabwQabxRjngRohgRoroRunrSamr" +
-	"SaraSarbSaurSgnwShawShrdShuiSiddSindSinhSogdSogoSoraSoyoSundSyloSyrcSyre" +
-	"SyrjSyrnTagbTakrTaleTaluTamlTangTavtTeluTengTfngTglgThaaThaiTibtTirhToto" +
-	"UgarVaiiVispWaraWchoWoleXpeoXsuxYeziYiiiZanbZinhZmthZsyeZsymZxxxZyyyZzzz" +
-	"\xff\xff\xff\xff"
+	"OgamOlckOrkhOryaOsgeOsmaOugrPalmPaucPcunPelmPermPhagPhliPhlpPhlvPhnxPiqd" +
+	"PlrdPrtiPsinQaaaQaabQaacQaadQaaeQaafQaagQaahQaaiQaajQaakQaalQaamQaanQaao" +
+	"QaapQaaqQaarQaasQaatQaauQaavQaawQaaxQaayQaazQabaQabbQabcQabdQabeQabfQabg" +
+	"QabhQabiQabjQabkQablQabmQabnQaboQabpQabqQabrQabsQabtQabuQabvQabwQabxRanj" +
+	"RjngRohgRoroRunrSamrSaraSarbSaurSgnwShawShrdShuiSiddSindSinhSogdSogoSora" +
+	"SoyoSundSyloSyrcSyreSyrjSyrnTagbTakrTaleTaluTamlTangTavtTeluTengTfngTglg" +
+	"ThaaThaiTibtTirhTnsaTotoUgarVaiiVispVithWaraWchoWoleXpeoXsuxYeziYiiiZanb" +
+	"ZinhZmthZsyeZsymZxxxZyyyZzzz\xff\xff\xff\xff"
 
 // suppressScript is an index from langID to the dominant script for that language,
 // if it exists.  If a script is given, it should be suppressed from the language tag.
@@ -858,7 +863,7 @@ var suppressScript = [1330]uint8{
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a,
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0xe5, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00,
+	0xea, 0x00, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00,
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00,
 	0x00, 0x5a, 0x00, 0x00, 0x5a, 0x00, 0x5a, 0x00,
 	// Entry 140 - 17F
@@ -962,7 +967,7 @@ var suppressScript = [1330]uint8{
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 	// Entry 400 - 43F
 	0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00,
 	0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00,
 	0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00,
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -972,10 +977,10 @@ var suppressScript = [1330]uint8{
 	// Entry 440 - 47F
 	0x00, 0x00, 0x00, 0x00, 0x5a, 0x5a, 0x00, 0x00,
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0xe1, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x2c,
+	0x00, 0xe6, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x2c,
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a,
 	0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00,
 	// Entry 480 - 4BF
@@ -1086,9 +1091,9 @@ var regionTypes = [358]uint8{
 
 // regionISO holds a list of alphabetically sorted 2-letter ISO region codes.
 // Each 2-letter codes is followed by two bytes with the following meaning:
-//     - [A-Z}{2}: the first letter of the 2-letter code plus these two
-//                 letters form the 3-letter ISO code.
-//     - 0, n:     index into altRegionISO3.
+//   - [A-Z}{2}: the first letter of the 2-letter code plus these two
+//     letters form the 3-letter ISO code.
+//   - 0, n:     index into altRegionISO3.
 const regionISO tag.Index = "" + // Size: 1308 bytes
 	"AAAAACSCADNDAEREAFFGAGTGAIIAALLBAMRMANNTAOGOAQTAARRGASSMATUTAUUSAWBWAXLA" +
 	"AZZEBAIHBBRBBDGDBEELBFFABGGRBHHRBIDIBJENBLLMBMMUBNRNBOOLBQESBRRABSHSBTTN" +
@@ -1206,7 +1211,9 @@ var m49 = [358]int16{
 
 // m49Index gives indexes into fromM49 based on the three most significant bits
 // of a 10-bit UN.M49 code. To search an UN.M49 code in fromM49, search in
-//    fromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]]
+//
+//	fromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]]
+//
 // for an entry where the first 7 bits match the 7 lsb of the UN.M49 code.
 // The region code is stored in the 9 lsb of the indexed value.
 // Size: 18 bytes, 9 elements
@@ -1268,117 +1275,118 @@ var fromM49 = [333]uint16{
 	0xc759, 0xc95a, 0xcb5b, 0xcd5c, 0xcf65,
 }
 
-// Size: 1995 bytes
+// Size: 2014 bytes
 var variantIndex = map[string]uint8{
 	"1606nict": 0x0,
 	"1694acad": 0x1,
 	"1901":     0x2,
 	"1959acad": 0x3,
-	"1994":     0x60,
+	"1994":     0x61,
 	"1996":     0x4,
 	"abl1943":  0x5,
 	"akuapem":  0x6,
-	"alalc97":  0x62,
+	"alalc97":  0x63,
 	"aluku":    0x7,
 	"ao1990":   0x8,
 	"aranes":   0x9,
 	"arevela":  0xa,
 	"arevmda":  0xb,
-	"asante":   0xc,
-	"auvern":   0xd,
-	"baku1926": 0xe,
-	"balanka":  0xf,
-	"barla":    0x10,
-	"basiceng": 0x11,
-	"bauddha":  0x12,
-	"biscayan": 0x13,
-	"biske":    0x5b,
-	"bohoric":  0x14,
-	"boont":    0x15,
-	"bornholm": 0x16,
-	"cisaup":   0x17,
-	"colb1945": 0x18,
-	"cornu":    0x19,
-	"creiss":   0x1a,
-	"dajnko":   0x1b,
-	"ekavsk":   0x1c,
-	"emodeng":  0x1d,
-	"fonipa":   0x63,
-	"fonkirsh": 0x64,
-	"fonnapa":  0x65,
-	"fonupa":   0x66,
-	"fonxsamp": 0x67,
-	"gascon":   0x1e,
-	"grclass":  0x1f,
-	"grital":   0x20,
-	"grmistr":  0x21,
-	"hepburn":  0x22,
-	"heploc":   0x61,
-	"hognorsk": 0x23,
-	"hsistemo": 0x24,
-	"ijekavsk": 0x25,
-	"itihasa":  0x26,
-	"ivanchov": 0x27,
-	"jauer":    0x28,
-	"jyutping": 0x29,
-	"kkcor":    0x2a,
-	"kociewie": 0x2b,
-	"kscor":    0x2c,
-	"laukika":  0x2d,
-	"lemosin":  0x2e,
-	"lengadoc": 0x2f,
-	"lipaw":    0x5c,
-	"luna1918": 0x30,
-	"metelko":  0x31,
-	"monoton":  0x32,
-	"ndyuka":   0x33,
-	"nedis":    0x34,
-	"newfound": 0x35,
-	"nicard":   0x36,
-	"njiva":    0x5d,
-	"nulik":    0x37,
-	"osojs":    0x5e,
-	"oxendict": 0x38,
-	"pahawh2":  0x39,
-	"pahawh3":  0x3a,
-	"pahawh4":  0x3b,
-	"pamaka":   0x3c,
-	"peano":    0x3d,
-	"petr1708": 0x3e,
-	"pinyin":   0x3f,
-	"polyton":  0x40,
-	"provenc":  0x41,
-	"puter":    0x42,
-	"rigik":    0x43,
-	"rozaj":    0x44,
-	"rumgr":    0x45,
-	"scotland": 0x46,
-	"scouse":   0x47,
-	"simple":   0x68,
-	"solba":    0x5f,
-	"sotav":    0x48,
-	"spanglis": 0x49,
-	"surmiran": 0x4a,
-	"sursilv":  0x4b,
-	"sutsilv":  0x4c,
-	"tarask":   0x4d,
-	"tongyong": 0x4e,
-	"tunumiit": 0x4f,
-	"uccor":    0x50,
-	"ucrcor":   0x51,
-	"ulster":   0x52,
-	"unifon":   0x53,
-	"vaidika":  0x54,
-	"valencia": 0x55,
-	"vallader": 0x56,
-	"vecdruka": 0x57,
-	"vivaraup": 0x58,
-	"wadegile": 0x59,
-	"xsistemo": 0x5a,
+	"arkaika":  0xc,
+	"asante":   0xd,
+	"auvern":   0xe,
+	"baku1926": 0xf,
+	"balanka":  0x10,
+	"barla":    0x11,
+	"basiceng": 0x12,
+	"bauddha":  0x13,
+	"biscayan": 0x14,
+	"biske":    0x5c,
+	"bohoric":  0x15,
+	"boont":    0x16,
+	"bornholm": 0x17,
+	"cisaup":   0x18,
+	"colb1945": 0x19,
+	"cornu":    0x1a,
+	"creiss":   0x1b,
+	"dajnko":   0x1c,
+	"ekavsk":   0x1d,
+	"emodeng":  0x1e,
+	"fonipa":   0x64,
+	"fonkirsh": 0x65,
+	"fonnapa":  0x66,
+	"fonupa":   0x67,
+	"fonxsamp": 0x68,
+	"gascon":   0x1f,
+	"grclass":  0x20,
+	"grital":   0x21,
+	"grmistr":  0x22,
+	"hepburn":  0x23,
+	"heploc":   0x62,
+	"hognorsk": 0x24,
+	"hsistemo": 0x25,
+	"ijekavsk": 0x26,
+	"itihasa":  0x27,
+	"ivanchov": 0x28,
+	"jauer":    0x29,
+	"jyutping": 0x2a,
+	"kkcor":    0x2b,
+	"kociewie": 0x2c,
+	"kscor":    0x2d,
+	"laukika":  0x2e,
+	"lemosin":  0x2f,
+	"lengadoc": 0x30,
+	"lipaw":    0x5d,
+	"luna1918": 0x31,
+	"metelko":  0x32,
+	"monoton":  0x33,
+	"ndyuka":   0x34,
+	"nedis":    0x35,
+	"newfound": 0x36,
+	"nicard":   0x37,
+	"njiva":    0x5e,
+	"nulik":    0x38,
+	"osojs":    0x5f,
+	"oxendict": 0x39,
+	"pahawh2":  0x3a,
+	"pahawh3":  0x3b,
+	"pahawh4":  0x3c,
+	"pamaka":   0x3d,
+	"peano":    0x3e,
+	"petr1708": 0x3f,
+	"pinyin":   0x40,
+	"polyton":  0x41,
+	"provenc":  0x42,
+	"puter":    0x43,
+	"rigik":    0x44,
+	"rozaj":    0x45,
+	"rumgr":    0x46,
+	"scotland": 0x47,
+	"scouse":   0x48,
+	"simple":   0x69,
+	"solba":    0x60,
+	"sotav":    0x49,
+	"spanglis": 0x4a,
+	"surmiran": 0x4b,
+	"sursilv":  0x4c,
+	"sutsilv":  0x4d,
+	"tarask":   0x4e,
+	"tongyong": 0x4f,
+	"tunumiit": 0x50,
+	"uccor":    0x51,
+	"ucrcor":   0x52,
+	"ulster":   0x53,
+	"unifon":   0x54,
+	"vaidika":  0x55,
+	"valencia": 0x56,
+	"vallader": 0x57,
+	"vecdruka": 0x58,
+	"vivaraup": 0x59,
+	"wadegile": 0x5a,
+	"xsistemo": 0x5b,
 }
 
 // variantNumSpecialized is the number of specialized variants in variants.
-const variantNumSpecialized = 98
+const variantNumSpecialized = 99
 
 // nRegionGroups is the number of region groups.
 const nRegionGroups = 33
@@ -1390,8 +1398,8 @@ type likelyLangRegion struct {
 
 // likelyScript is a lookup table, indexed by scriptID, for the most likely
 // languages and regions given a script.
-// Size: 1012 bytes, 253 elements
-var likelyScript = [253]likelyLangRegion{
+// Size: 1040 bytes, 260 elements
+var likelyScript = [260]likelyLangRegion{
 	1:   {lang: 0x14e, region: 0x84},
 	3:   {lang: 0x2a2, region: 0x106},
 	4:   {lang: 0x1f, region: 0x99},
@@ -1489,57 +1497,57 @@ var likelyScript = [253]likelyLangRegion{
 	129: {lang: 0x395, region: 0x99},
 	130: {lang: 0x399, region: 0x135},
 	131: {lang: 0x429, region: 0x115},
-	132: {lang: 0x3b, region: 0x11c},
-	133: {lang: 0xfd, region: 0xc4},
-	134: {lang: 0x27d, region: 0x106},
-	135: {lang: 0x2c9, region: 0x53},
-	136: {lang: 0x39f, region: 0x9c},
-	137: {lang: 0x39f, region: 0x53},
-	139: {lang: 0x3ad, region: 0xb0},
-	141: {lang: 0x1c6, region: 0x53},
-	142: {lang: 0x4fd, region: 0x9c},
-	193: {lang: 0x3cb, region: 0x95},
-	196: {lang: 0x372, region: 0x10c},
-	197: {lang: 0x420, region: 0x97},
-	199: {lang: 0x4ff, region: 0x15e},
-	200: {lang: 0x3f0, region: 0x99},
-	201: {lang: 0x45, region: 0x135},
-	202: {lang: 0x139, region: 0x7b},
-	203: {lang: 0x3e9, region: 0x99},
-	205: {lang: 0x3e9, region: 0x99},
-	206: {lang: 0x3fa, region: 0x99},
-	207: {lang: 0x40c, region: 0xb3},
-	210: {lang: 0x433, region: 0x99},
-	211: {lang: 0xef, region: 0xc5},
-	212: {lang: 0x43e, region: 0x95},
-	213: {lang: 0x44d, region: 0x35},
-	214: {lang: 0x44e, region: 0x9b},
-	218: {lang: 0x45a, region: 0xe7},
-	219: {lang: 0x11a, region: 0x99},
-	220: {lang: 0x45e, region: 0x53},
-	221: {lang: 0x232, region: 0x53},
-	222: {lang: 0x450, region: 0x99},
-	223: {lang: 0x4a5, region: 0x53},
-	224: {lang: 0x9f, region: 0x13e},
-	225: {lang: 0x461, region: 0x99},
-	227: {lang: 0x528, region: 0xba},
-	228: {lang: 0x153, region: 0xe7},
-	229: {lang: 0x128, region: 0xcd},
-	230: {lang: 0x46b, region: 0x123},
-	231: {lang: 0xa9, region: 0x53},
-	232: {lang: 0x2ce, region: 0x99},
-	234: {lang: 0x4ad, region: 0x11c},
-	235: {lang: 0x4be, region: 0xb4},
-	237: {lang: 0x1ce, region: 0x99},
-	240: {lang: 0x3a9, region: 0x9c},
-	241: {lang: 0x22, region: 0x9b},
-	243: {lang: 0x1ea, region: 0x53},
-	244: {lang: 0xef, region: 0xc5},
+	133: {lang: 0x3b, region: 0x11c},
+	134: {lang: 0xfd, region: 0xc4},
+	137: {lang: 0x27d, region: 0x106},
+	138: {lang: 0x2c9, region: 0x53},
+	139: {lang: 0x39f, region: 0x9c},
+	140: {lang: 0x39f, region: 0x53},
+	142: {lang: 0x3ad, region: 0xb0},
+	144: {lang: 0x1c6, region: 0x53},
+	145: {lang: 0x4fd, region: 0x9c},
+	198: {lang: 0x3cb, region: 0x95},
+	201: {lang: 0x372, region: 0x10c},
+	202: {lang: 0x420, region: 0x97},
+	204: {lang: 0x4ff, region: 0x15e},
+	205: {lang: 0x3f0, region: 0x99},
+	206: {lang: 0x45, region: 0x135},
+	207: {lang: 0x139, region: 0x7b},
+	208: {lang: 0x3e9, region: 0x99},
+	210: {lang: 0x3e9, region: 0x99},
+	211: {lang: 0x3fa, region: 0x99},
+	212: {lang: 0x40c, region: 0xb3},
+	215: {lang: 0x433, region: 0x99},
+	216: {lang: 0xef, region: 0xc5},
+	217: {lang: 0x43e, region: 0x95},
+	218: {lang: 0x44d, region: 0x35},
+	219: {lang: 0x44e, region: 0x9b},
+	223: {lang: 0x45a, region: 0xe7},
+	224: {lang: 0x11a, region: 0x99},
+	225: {lang: 0x45e, region: 0x53},
+	226: {lang: 0x232, region: 0x53},
+	227: {lang: 0x450, region: 0x99},
+	228: {lang: 0x4a5, region: 0x53},
+	229: {lang: 0x9f, region: 0x13e},
+	230: {lang: 0x461, region: 0x99},
+	232: {lang: 0x528, region: 0xba},
+	233: {lang: 0x153, region: 0xe7},
+	234: {lang: 0x128, region: 0xcd},
+	235: {lang: 0x46b, region: 0x123},
+	236: {lang: 0xa9, region: 0x53},
+	237: {lang: 0x2ce, region: 0x99},
+	240: {lang: 0x4ad, region: 0x11c},
+	241: {lang: 0x4be, region: 0xb4},
+	244: {lang: 0x1ce, region: 0x99},
+	247: {lang: 0x3a9, region: 0x9c},
+	248: {lang: 0x22, region: 0x9b},
+	250: {lang: 0x1ea, region: 0x53},
+	251: {lang: 0xef, region: 0xc5},
 }
 
 type likelyScriptRegion struct {
 	region uint16
-	script uint8
+	script uint16
 	flags  uint8
 }
 
@@ -1547,7 +1555,7 @@ type likelyScriptRegion struct {
 // scripts and regions given incomplete information. If more entries exist for a
 // given language, region and script are the index and size respectively
 // of the list in likelyLangList.
-// Size: 5320 bytes, 1330 elements
+// Size: 7980 bytes, 1330 elements
 var likelyLang = [1330]likelyScriptRegion{
 	0:    {region: 0x135, script: 0x5a, flags: 0x0},
 	1:    {region: 0x6f, script: 0x5a, flags: 0x0},
@@ -1583,7 +1591,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	31:   {region: 0x99, script: 0x4, flags: 0x0},
 	32:   {region: 0x165, script: 0x5a, flags: 0x0},
 	33:   {region: 0x80, script: 0x5a, flags: 0x0},
-	34:   {region: 0x9b, script: 0xf1, flags: 0x0},
+	34:   {region: 0x9b, script: 0xf8, flags: 0x0},
 	35:   {region: 0x165, script: 0x5a, flags: 0x0},
 	36:   {region: 0x165, script: 0x5a, flags: 0x0},
 	37:   {region: 0x14d, script: 0x5a, flags: 0x0},
@@ -1616,7 +1624,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	66:   {region: 0x6b, script: 0x5, flags: 0x0},
 	67:   {region: 0x99, script: 0xe, flags: 0x0},
 	68:   {region: 0x12f, script: 0x5a, flags: 0x0},
-	69:   {region: 0x135, script: 0xc9, flags: 0x0},
+	69:   {region: 0x135, script: 0xce, flags: 0x0},
 	70:   {region: 0x165, script: 0x5a, flags: 0x0},
 	71:   {region: 0x165, script: 0x5a, flags: 0x0},
 	72:   {region: 0x6e, script: 0x5a, flags: 0x0},
@@ -1670,7 +1678,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	120:  {region: 0x165, script: 0x5a, flags: 0x0},
 	121:  {region: 0x12f, script: 0x5a, flags: 0x0},
 	122:  {region: 0x52, script: 0x5a, flags: 0x0},
-	123:  {region: 0x99, script: 0xde, flags: 0x0},
+	123:  {region: 0x99, script: 0xe3, flags: 0x0},
 	124:  {region: 0xe8, script: 0x5, flags: 0x0},
 	125:  {region: 0x99, script: 0x22, flags: 0x0},
 	126:  {region: 0x38, script: 0x20, flags: 0x0},
@@ -1705,7 +1713,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	156:  {region: 0x165, script: 0x5a, flags: 0x0},
 	157:  {region: 0xe7, script: 0x5a, flags: 0x0},
 	158:  {region: 0x165, script: 0x5a, flags: 0x0},
-	159:  {region: 0x13e, script: 0xe0, flags: 0x0},
+	159:  {region: 0x13e, script: 0xe5, flags: 0x0},
 	160:  {region: 0xc3, script: 0x5a, flags: 0x0},
 	161:  {region: 0x165, script: 0x5a, flags: 0x0},
 	162:  {region: 0x165, script: 0x5a, flags: 0x0},
@@ -1715,7 +1723,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	166:  {region: 0x165, script: 0x5a, flags: 0x0},
 	167:  {region: 0x165, script: 0x5a, flags: 0x0},
 	168:  {region: 0x165, script: 0x5a, flags: 0x0},
-	169:  {region: 0x53, script: 0xe7, flags: 0x0},
+	169:  {region: 0x53, script: 0xec, flags: 0x0},
 	170:  {region: 0x165, script: 0x5a, flags: 0x0},
 	171:  {region: 0x165, script: 0x5a, flags: 0x0},
 	172:  {region: 0x165, script: 0x5a, flags: 0x0},
@@ -1785,7 +1793,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	236:  {region: 0x165, script: 0x5a, flags: 0x0},
 	237:  {region: 0x165, script: 0x5a, flags: 0x0},
 	238:  {region: 0x165, script: 0x5a, flags: 0x0},
-	239:  {region: 0xc5, script: 0xd3, flags: 0x0},
+	239:  {region: 0xc5, script: 0xd8, flags: 0x0},
 	240:  {region: 0x78, script: 0x5a, flags: 0x0},
 	241:  {region: 0x6b, script: 0x1d, flags: 0x0},
 	242:  {region: 0xe7, script: 0x5a, flags: 0x0},
@@ -1799,7 +1807,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	250:  {region: 0x5e, script: 0x5a, flags: 0x0},
 	251:  {region: 0xe9, script: 0x5a, flags: 0x0},
 	252:  {region: 0x49, script: 0x17, flags: 0x0},
-	253:  {region: 0xc4, script: 0x85, flags: 0x0},
+	253:  {region: 0xc4, script: 0x86, flags: 0x0},
 	254:  {region: 0x8, script: 0x2, flags: 0x1},
 	255:  {region: 0x106, script: 0x20, flags: 0x0},
 	256:  {region: 0x7b, script: 0x5a, flags: 0x0},
@@ -1842,12 +1850,12 @@ var likelyLang = [1330]likelyScriptRegion{
 	293:  {region: 0x165, script: 0x5a, flags: 0x0},
 	294:  {region: 0x165, script: 0x5a, flags: 0x0},
 	295:  {region: 0x165, script: 0x5a, flags: 0x0},
-	296:  {region: 0xcd, script: 0xe5, flags: 0x0},
+	296:  {region: 0xcd, script: 0xea, flags: 0x0},
 	297:  {region: 0x165, script: 0x5a, flags: 0x0},
 	298:  {region: 0x165, script: 0x5a, flags: 0x0},
 	299:  {region: 0x114, script: 0x5a, flags: 0x0},
 	300:  {region: 0x37, script: 0x5a, flags: 0x0},
-	301:  {region: 0x43, script: 0xe7, flags: 0x0},
+	301:  {region: 0x43, script: 0xec, flags: 0x0},
 	302:  {region: 0x165, script: 0x5a, flags: 0x0},
 	303:  {region: 0xa4, script: 0x5a, flags: 0x0},
 	304:  {region: 0x80, script: 0x5a, flags: 0x0},
@@ -1957,7 +1965,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	408:  {region: 0x165, script: 0x2c, flags: 0x0},
 	409:  {region: 0x165, script: 0x5a, flags: 0x0},
 	410:  {region: 0x99, script: 0x22, flags: 0x0},
-	411:  {region: 0x99, script: 0xe1, flags: 0x0},
+	411:  {region: 0x99, script: 0xe6, flags: 0x0},
 	412:  {region: 0x95, script: 0x5a, flags: 0x0},
 	413:  {region: 0xd9, script: 0x5a, flags: 0x0},
 	414:  {region: 0x130, script: 0x32, flags: 0x0},
@@ -2000,7 +2008,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	451:  {region: 0xe7, script: 0x5a, flags: 0x0},
 	452:  {region: 0x165, script: 0x5a, flags: 0x0},
 	453:  {region: 0x12b, script: 0x40, flags: 0x0},
-	454:  {region: 0x53, script: 0x8d, flags: 0x0},
+	454:  {region: 0x53, script: 0x90, flags: 0x0},
 	455:  {region: 0x165, script: 0x5a, flags: 0x0},
 	456:  {region: 0xe8, script: 0x5, flags: 0x0},
 	457:  {region: 0x99, script: 0x22, flags: 0x0},
@@ -2035,7 +2043,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	487:  {region: 0xd6, script: 0x5a, flags: 0x0},
 	488:  {region: 0x165, script: 0x5a, flags: 0x0},
 	489:  {region: 0x165, script: 0x5a, flags: 0x0},
-	490:  {region: 0x53, script: 0xf3, flags: 0x0},
+	490:  {region: 0x53, script: 0xfa, flags: 0x0},
 	491:  {region: 0x165, script: 0x5a, flags: 0x0},
 	492:  {region: 0x135, script: 0x5a, flags: 0x0},
 	493:  {region: 0x165, script: 0x5a, flags: 0x0},
@@ -2095,7 +2103,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	547:  {region: 0x12f, script: 0x5a, flags: 0x0},
 	548:  {region: 0x122, script: 0x5, flags: 0x0},
 	549:  {region: 0x165, script: 0x5a, flags: 0x0},
-	550:  {region: 0x123, script: 0xe6, flags: 0x0},
+	550:  {region: 0x123, script: 0xeb, flags: 0x0},
 	551:  {region: 0x5a, script: 0x5a, flags: 0x0},
 	552:  {region: 0x52, script: 0x5a, flags: 0x0},
 	553:  {region: 0x165, script: 0x5a, flags: 0x0},
@@ -2107,7 +2115,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	559:  {region: 0x165, script: 0x5a, flags: 0x0},
 	560:  {region: 0x41, script: 0x5a, flags: 0x0},
 	561:  {region: 0x99, script: 0x5a, flags: 0x0},
-	562:  {region: 0x53, script: 0xdd, flags: 0x0},
+	562:  {region: 0x53, script: 0xe2, flags: 0x0},
 	563:  {region: 0x99, script: 0x22, flags: 0x0},
 	564:  {region: 0xc3, script: 0x5a, flags: 0x0},
 	565:  {region: 0x165, script: 0x5a, flags: 0x0},
@@ -2191,7 +2199,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	643:  {region: 0x165, script: 0x5a, flags: 0x0},
 	644:  {region: 0x165, script: 0x5a, flags: 0x0},
 	645:  {region: 0x165, script: 0x2c, flags: 0x0},
-	646:  {region: 0x123, script: 0xe6, flags: 0x0},
+	646:  {region: 0x123, script: 0xeb, flags: 0x0},
 	647:  {region: 0xe8, script: 0x5, flags: 0x0},
 	648:  {region: 0x165, script: 0x5a, flags: 0x0},
 	649:  {region: 0x165, script: 0x5a, flags: 0x0},
@@ -2211,7 +2219,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	663:  {region: 0x165, script: 0x5a, flags: 0x0},
 	664:  {region: 0x95, script: 0x5a, flags: 0x0},
 	665:  {region: 0x165, script: 0x5a, flags: 0x0},
-	666:  {region: 0x53, script: 0xe6, flags: 0x0},
+	666:  {region: 0x53, script: 0xeb, flags: 0x0},
 	667:  {region: 0x165, script: 0x5a, flags: 0x0},
 	668:  {region: 0x165, script: 0x5a, flags: 0x0},
 	669:  {region: 0x165, script: 0x5a, flags: 0x0},
@@ -2235,7 +2243,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	687:  {region: 0x135, script: 0x5a, flags: 0x0},
 	688:  {region: 0x165, script: 0x5a, flags: 0x0},
 	689:  {region: 0x165, script: 0x5a, flags: 0x0},
-	690:  {region: 0x99, script: 0xe1, flags: 0x0},
+	690:  {region: 0x99, script: 0xe6, flags: 0x0},
 	691:  {region: 0x9e, script: 0x5a, flags: 0x0},
 	692:  {region: 0x165, script: 0x5a, flags: 0x0},
 	693:  {region: 0x4b, script: 0x5a, flags: 0x0},
@@ -2257,7 +2265,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	709:  {region: 0xa4, script: 0x5a, flags: 0x0},
 	710:  {region: 0x9c, script: 0x5, flags: 0x0},
 	711:  {region: 0xb8, script: 0x5a, flags: 0x0},
-	712:  {region: 0x123, script: 0xe6, flags: 0x0},
+	712:  {region: 0x123, script: 0xeb, flags: 0x0},
 	713:  {region: 0x53, script: 0x3b, flags: 0x0},
 	714:  {region: 0x12b, script: 0x5a, flags: 0x0},
 	715:  {region: 0x95, script: 0x5a, flags: 0x0},
@@ -2424,7 +2432,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	879:  {region: 0xda, script: 0x5a, flags: 0x0},
 	880:  {region: 0x123, script: 0x56, flags: 0x0},
 	881:  {region: 0x99, script: 0x22, flags: 0x0},
-	882:  {region: 0x10c, script: 0xc4, flags: 0x0},
+	882:  {region: 0x10c, script: 0xc9, flags: 0x0},
 	883:  {region: 0x165, script: 0x5a, flags: 0x0},
 	884:  {region: 0x165, script: 0x5a, flags: 0x0},
 	885:  {region: 0x84, script: 0x7c, flags: 0x0},
@@ -2478,11 +2486,11 @@ var likelyLang = [1330]likelyScriptRegion{
 	934:  {region: 0x135, script: 0x5a, flags: 0x0},
 	935:  {region: 0x49, script: 0x5a, flags: 0x0},
 	936:  {region: 0x165, script: 0x5a, flags: 0x0},
-	937:  {region: 0x9c, script: 0xf0, flags: 0x0},
+	937:  {region: 0x9c, script: 0xf7, flags: 0x0},
 	938:  {region: 0x165, script: 0x5a, flags: 0x0},
 	939:  {region: 0x60, script: 0x5a, flags: 0x0},
 	940:  {region: 0x165, script: 0x5, flags: 0x0},
-	941:  {region: 0xb0, script: 0x8b, flags: 0x0},
+	941:  {region: 0xb0, script: 0x8e, flags: 0x0},
 	943:  {region: 0x165, script: 0x5a, flags: 0x0},
 	944:  {region: 0x165, script: 0x5a, flags: 0x0},
 	945:  {region: 0x99, script: 0x12, flags: 0x0},
@@ -2548,7 +2556,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	1005: {region: 0x95, script: 0x5a, flags: 0x0},
 	1006: {region: 0x99, script: 0x5a, flags: 0x0},
 	1007: {region: 0x114, script: 0x5a, flags: 0x0},
-	1008: {region: 0x99, script: 0xc8, flags: 0x0},
+	1008: {region: 0x99, script: 0xcd, flags: 0x0},
 	1009: {region: 0x165, script: 0x5a, flags: 0x0},
 	1010: {region: 0x165, script: 0x5a, flags: 0x0},
 	1011: {region: 0x12f, script: 0x5a, flags: 0x0},
@@ -2571,11 +2579,11 @@ var likelyLang = [1330]likelyScriptRegion{
 	1028: {region: 0xb6, script: 0x5a, flags: 0x0},
 	1029: {region: 0x165, script: 0x2c, flags: 0x0},
 	1030: {region: 0x165, script: 0x5a, flags: 0x0},
-	1032: {region: 0xba, script: 0xe3, flags: 0x0},
+	1032: {region: 0xba, script: 0xe8, flags: 0x0},
 	1033: {region: 0x165, script: 0x5a, flags: 0x0},
 	1034: {region: 0xc4, script: 0x75, flags: 0x0},
 	1035: {region: 0x165, script: 0x5, flags: 0x0},
-	1036: {region: 0xb3, script: 0xcf, flags: 0x0},
+	1036: {region: 0xb3, script: 0xd4, flags: 0x0},
 	1037: {region: 0x6f, script: 0x5a, flags: 0x0},
 	1038: {region: 0x165, script: 0x5a, flags: 0x0},
 	1039: {region: 0x165, script: 0x5a, flags: 0x0},
@@ -2594,7 +2602,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	1052: {region: 0x10c, script: 0x5a, flags: 0x0},
 	1054: {region: 0x10c, script: 0x5a, flags: 0x0},
 	1055: {region: 0x72, script: 0x5a, flags: 0x0},
-	1056: {region: 0x97, script: 0xc5, flags: 0x0},
+	1056: {region: 0x97, script: 0xca, flags: 0x0},
 	1057: {region: 0x165, script: 0x5a, flags: 0x0},
 	1058: {region: 0x72, script: 0x5a, flags: 0x0},
 	1059: {region: 0x164, script: 0x5a, flags: 0x0},
@@ -2606,14 +2614,14 @@ var likelyLang = [1330]likelyScriptRegion{
 	1065: {region: 0x115, script: 0x5a, flags: 0x0},
 	1066: {region: 0x165, script: 0x5a, flags: 0x0},
 	1067: {region: 0x165, script: 0x5a, flags: 0x0},
-	1068: {region: 0x123, script: 0xe6, flags: 0x0},
+	1068: {region: 0x123, script: 0xeb, flags: 0x0},
 	1069: {region: 0x165, script: 0x5a, flags: 0x0},
 	1070: {region: 0x165, script: 0x5a, flags: 0x0},
 	1071: {region: 0x165, script: 0x5a, flags: 0x0},
 	1072: {region: 0x165, script: 0x5a, flags: 0x0},
 	1073: {region: 0x27, script: 0x5a, flags: 0x0},
 	1074: {region: 0x37, script: 0x5, flags: 0x1},
-	1075: {region: 0x99, script: 0xd2, flags: 0x0},
+	1075: {region: 0x99, script: 0xd7, flags: 0x0},
 	1076: {region: 0x116, script: 0x5a, flags: 0x0},
 	1077: {region: 0x114, script: 0x5a, flags: 0x0},
 	1078: {region: 0x99, script: 0x22, flags: 0x0},
@@ -2640,9 +2648,9 @@ var likelyLang = [1330]likelyScriptRegion{
 	1099: {region: 0x95, script: 0x5a, flags: 0x0},
 	1100: {region: 0x165, script: 0x5a, flags: 0x0},
 	1101: {region: 0x35, script: 0xe, flags: 0x0},
-	1102: {region: 0x9b, script: 0xd6, flags: 0x0},
+	1102: {region: 0x9b, script: 0xdb, flags: 0x0},
 	1103: {region: 0xe9, script: 0x5a, flags: 0x0},
-	1104: {region: 0x99, script: 0xde, flags: 0x0},
+	1104: {region: 0x99, script: 0xe3, flags: 0x0},
 	1105: {region: 0xdb, script: 0x22, flags: 0x0},
 	1106: {region: 0x165, script: 0x5a, flags: 0x0},
 	1107: {region: 0x165, script: 0x5a, flags: 0x0},
@@ -2656,10 +2664,10 @@ var likelyLang = [1330]likelyScriptRegion{
 	1115: {region: 0x165, script: 0x5a, flags: 0x0},
 	1116: {region: 0x165, script: 0x5a, flags: 0x0},
 	1117: {region: 0x99, script: 0x52, flags: 0x0},
-	1118: {region: 0x53, script: 0xdc, flags: 0x0},
+	1118: {region: 0x53, script: 0xe1, flags: 0x0},
 	1119: {region: 0xdb, script: 0x22, flags: 0x0},
 	1120: {region: 0xdb, script: 0x22, flags: 0x0},
-	1121: {region: 0x99, script: 0xe1, flags: 0x0},
+	1121: {region: 0x99, script: 0xe6, flags: 0x0},
 	1122: {region: 0x165, script: 0x5a, flags: 0x0},
 	1123: {region: 0x112, script: 0x5a, flags: 0x0},
 	1124: {region: 0x131, script: 0x5a, flags: 0x0},
@@ -2669,7 +2677,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	1128: {region: 0x165, script: 0x5a, flags: 0x0},
 	1129: {region: 0x165, script: 0x5a, flags: 0x0},
 	1130: {region: 0x165, script: 0x5a, flags: 0x0},
-	1131: {region: 0x123, script: 0xe6, flags: 0x0},
+	1131: {region: 0x123, script: 0xeb, flags: 0x0},
 	1132: {region: 0xdb, script: 0x22, flags: 0x0},
 	1133: {region: 0xdb, script: 0x22, flags: 0x0},
 	1134: {region: 0xdb, script: 0x22, flags: 0x0},
@@ -2708,14 +2716,14 @@ var likelyLang = [1330]likelyScriptRegion{
 	1167: {region: 0x87, script: 0x34, flags: 0x0},
 	1168: {region: 0xdb, script: 0x22, flags: 0x0},
 	1169: {region: 0xe7, script: 0x5a, flags: 0x0},
-	1170: {region: 0x43, script: 0xe7, flags: 0x0},
+	1170: {region: 0x43, script: 0xec, flags: 0x0},
 	1171: {region: 0x165, script: 0x5a, flags: 0x0},
 	1172: {region: 0x106, script: 0x20, flags: 0x0},
 	1173: {region: 0x165, script: 0x5a, flags: 0x0},
 	1174: {region: 0x165, script: 0x5a, flags: 0x0},
 	1175: {region: 0x131, script: 0x5a, flags: 0x0},
 	1176: {region: 0x165, script: 0x5a, flags: 0x0},
-	1177: {region: 0x123, script: 0xe6, flags: 0x0},
+	1177: {region: 0x123, script: 0xeb, flags: 0x0},
 	1178: {region: 0x32, script: 0x5a, flags: 0x0},
 	1179: {region: 0x165, script: 0x5a, flags: 0x0},
 	1180: {region: 0x165, script: 0x5a, flags: 0x0},
@@ -2726,7 +2734,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	1185: {region: 0x165, script: 0x5a, flags: 0x0},
 	1187: {region: 0x165, script: 0x5a, flags: 0x0},
 	1188: {region: 0xd4, script: 0x5a, flags: 0x0},
-	1189: {region: 0x53, script: 0xdf, flags: 0x0},
+	1189: {region: 0x53, script: 0xe4, flags: 0x0},
 	1190: {region: 0xe5, script: 0x5a, flags: 0x0},
 	1191: {region: 0x165, script: 0x5a, flags: 0x0},
 	1192: {region: 0x106, script: 0x20, flags: 0x0},
@@ -2734,7 +2742,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	1194: {region: 0x165, script: 0x5a, flags: 0x0},
 	1195: {region: 0x106, script: 0x20, flags: 0x0},
 	1196: {region: 0x3f, script: 0x4, flags: 0x1},
-	1197: {region: 0x11c, script: 0xea, flags: 0x0},
+	1197: {region: 0x11c, script: 0xf0, flags: 0x0},
 	1198: {region: 0x130, script: 0x20, flags: 0x0},
 	1199: {region: 0x75, script: 0x5a, flags: 0x0},
 	1200: {region: 0x2a, script: 0x5a, flags: 0x0},
@@ -2750,7 +2758,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	1211: {region: 0x165, script: 0x5a, flags: 0x0},
 	1212: {region: 0x46, script: 0x4, flags: 0x1},
 	1213: {region: 0x165, script: 0x5a, flags: 0x0},
-	1214: {region: 0xb4, script: 0xeb, flags: 0x0},
+	1214: {region: 0xb4, script: 0xf1, flags: 0x0},
 	1215: {region: 0x165, script: 0x5a, flags: 0x0},
 	1216: {region: 0x161, script: 0x5a, flags: 0x0},
 	1217: {region: 0x9e, script: 0x5a, flags: 0x0},
@@ -2773,7 +2781,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	1234: {region: 0x165, script: 0x5a, flags: 0x0},
 	1235: {region: 0xe7, script: 0x5a, flags: 0x0},
 	1236: {region: 0x2f, script: 0x5a, flags: 0x0},
-	1237: {region: 0x99, script: 0xe1, flags: 0x0},
+	1237: {region: 0x99, script: 0xe6, flags: 0x0},
 	1238: {region: 0x99, script: 0x22, flags: 0x0},
 	1239: {region: 0x165, script: 0x5a, flags: 0x0},
 	1240: {region: 0x165, script: 0x5a, flags: 0x0},
@@ -2813,9 +2821,9 @@ var likelyLang = [1330]likelyScriptRegion{
 	1274: {region: 0x99, script: 0x22, flags: 0x0},
 	1275: {region: 0x131, script: 0x5a, flags: 0x0},
 	1276: {region: 0x165, script: 0x5a, flags: 0x0},
-	1277: {region: 0x9c, script: 0x8e, flags: 0x0},
+	1277: {region: 0x9c, script: 0x91, flags: 0x0},
 	1278: {region: 0x165, script: 0x5a, flags: 0x0},
-	1279: {region: 0x15e, script: 0xc7, flags: 0x0},
+	1279: {region: 0x15e, script: 0xcc, flags: 0x0},
 	1280: {region: 0x165, script: 0x5a, flags: 0x0},
 	1281: {region: 0x165, script: 0x5a, flags: 0x0},
 	1282: {region: 0xdb, script: 0x22, flags: 0x0},
@@ -2855,7 +2863,7 @@ var likelyLang = [1330]likelyScriptRegion{
 	1316: {region: 0x10b, script: 0x5a, flags: 0x0},
 	1318: {region: 0xa8, script: 0x5, flags: 0x0},
 	1319: {region: 0xd9, script: 0x5a, flags: 0x0},
-	1320: {region: 0xba, script: 0xe3, flags: 0x0},
+	1320: {region: 0xba, script: 0xe8, flags: 0x0},
 	1321: {region: 0x4d, script: 0x14, flags: 0x1},
 	1322: {region: 0x53, script: 0x7d, flags: 0x0},
 	1323: {region: 0x165, script: 0x5a, flags: 0x0},
@@ -2867,11 +2875,11 @@ var likelyLang = [1330]likelyScriptRegion{
 }
 
 // likelyLangList holds lists info associated with likelyLang.
-// Size: 388 bytes, 97 elements
+// Size: 582 bytes, 97 elements
 var likelyLangList = [97]likelyScriptRegion{
 	0:  {region: 0x9c, script: 0x7, flags: 0x0},
 	1:  {region: 0xa1, script: 0x78, flags: 0x2},
-	2:  {region: 0x11c, script: 0x84, flags: 0x2},
+	2:  {region: 0x11c, script: 0x85, flags: 0x2},
 	3:  {region: 0x32, script: 0x5a, flags: 0x0},
 	4:  {region: 0x9b, script: 0x5, flags: 0x4},
 	5:  {region: 0x9c, script: 0x5, flags: 0x4},
@@ -2880,7 +2888,7 @@ var likelyLangList = [97]likelyScriptRegion{
 	8:  {region: 0x106, script: 0x20, flags: 0x0},
 	9:  {region: 0x38, script: 0x2f, flags: 0x2},
 	10: {region: 0x135, script: 0x5a, flags: 0x0},
-	11: {region: 0x7b, script: 0xca, flags: 0x2},
+	11: {region: 0x7b, script: 0xcf, flags: 0x2},
 	12: {region: 0x114, script: 0x5a, flags: 0x0},
 	13: {region: 0x84, script: 0x1, flags: 0x2},
 	14: {region: 0x5d, script: 0x1f, flags: 0x0},
@@ -2916,14 +2924,14 @@ var likelyLangList = [97]likelyScriptRegion{
 	44: {region: 0x99, script: 0x36, flags: 0x0},
 	45: {region: 0xe8, script: 0x5, flags: 0x4},
 	46: {region: 0xe8, script: 0x5, flags: 0x2},
-	47: {region: 0x9c, script: 0x88, flags: 0x0},
-	48: {region: 0x53, script: 0x89, flags: 0x2},
-	49: {region: 0xba, script: 0xe3, flags: 0x0},
+	47: {region: 0x9c, script: 0x8b, flags: 0x0},
+	48: {region: 0x53, script: 0x8c, flags: 0x2},
+	49: {region: 0xba, script: 0xe8, flags: 0x0},
 	50: {region: 0xd9, script: 0x5a, flags: 0x4},
 	51: {region: 0xe8, script: 0x5, flags: 0x0},
 	52: {region: 0x99, script: 0x22, flags: 0x2},
 	53: {region: 0x99, script: 0x4f, flags: 0x2},
-	54: {region: 0x99, script: 0xce, flags: 0x2},
+	54: {region: 0x99, script: 0xd3, flags: 0x2},
 	55: {region: 0x105, script: 0x20, flags: 0x0},
 	56: {region: 0xbd, script: 0x5a, flags: 0x4},
 	57: {region: 0x104, script: 0x5a, flags: 0x4},
@@ -2970,7 +2978,7 @@ var likelyLangList = [97]likelyScriptRegion{
 
 type likelyLangScript struct {
 	lang   uint16
-	script uint8
+	script uint16
 	flags  uint8
 }
 
@@ -2979,7 +2987,7 @@ type likelyLangScript struct {
 // for a given regionID, lang and script are the index and size respectively
 // of the list in likelyRegionList.
 // TODO: exclude containers and user-definable regions from the list.
-// Size: 1432 bytes, 358 elements
+// Size: 2148 bytes, 358 elements
 var likelyRegion = [358]likelyLangScript{
 	34:  {lang: 0xd7, script: 0x5a, flags: 0x0},
 	35:  {lang: 0x3a, script: 0x5, flags: 0x0},
@@ -3086,7 +3094,7 @@ var likelyRegion = [358]likelyLangScript{
 	175: {lang: 0x27, script: 0x2, flags: 0x1},
 	176: {lang: 0x3a, script: 0x5, flags: 0x0},
 	178: {lang: 0x10d, script: 0x5a, flags: 0x0},
-	179: {lang: 0x40c, script: 0xcf, flags: 0x0},
+	179: {lang: 0x40c, script: 0xd4, flags: 0x0},
 	181: {lang: 0x43b, script: 0x5a, flags: 0x0},
 	182: {lang: 0x2c0, script: 0x5a, flags: 0x0},
 	183: {lang: 0x15e, script: 0x5a, flags: 0x0},
@@ -3107,7 +3115,7 @@ var likelyRegion = [358]likelyLangScript{
 	201: {lang: 0x35, script: 0x2, flags: 0x1},
 	203: {lang: 0x320, script: 0x5a, flags: 0x0},
 	204: {lang: 0x37, script: 0x3, flags: 0x1},
-	205: {lang: 0x128, script: 0xe5, flags: 0x0},
+	205: {lang: 0x128, script: 0xea, flags: 0x0},
 	207: {lang: 0x13e, script: 0x5a, flags: 0x0},
 	208: {lang: 0x31f, script: 0x5a, flags: 0x0},
 	209: {lang: 0x3c0, script: 0x5a, flags: 0x0},
@@ -3185,7 +3193,7 @@ var likelyRegion = [358]likelyLangScript{
 }
 
 // likelyRegionList holds lists info associated with likelyRegion.
-// Size: 372 bytes, 93 elements
+// Size: 558 bytes, 93 elements
 var likelyRegionList = [93]likelyLangScript{
 	0:  {lang: 0x148, script: 0x5, flags: 0x0},
 	1:  {lang: 0x476, script: 0x5a, flags: 0x0},
@@ -3195,12 +3203,12 @@ var likelyRegionList = [93]likelyLangScript{
 	5:  {lang: 0x274, script: 0x5a, flags: 0x0},
 	6:  {lang: 0xb7, script: 0x5a, flags: 0x0},
 	7:  {lang: 0x432, script: 0x20, flags: 0x0},
-	8:  {lang: 0x12d, script: 0xe7, flags: 0x0},
+	8:  {lang: 0x12d, script: 0xec, flags: 0x0},
 	9:  {lang: 0x351, script: 0x22, flags: 0x0},
 	10: {lang: 0x529, script: 0x3b, flags: 0x0},
 	11: {lang: 0x4ac, script: 0x5, flags: 0x0},
 	12: {lang: 0x523, script: 0x5a, flags: 0x0},
-	13: {lang: 0x29a, script: 0xe6, flags: 0x0},
+	13: {lang: 0x29a, script: 0xeb, flags: 0x0},
 	14: {lang: 0x136, script: 0x34, flags: 0x0},
 	15: {lang: 0x48a, script: 0x5a, flags: 0x0},
 	16: {lang: 0x3a, script: 0x5, flags: 0x0},
@@ -3223,11 +3231,11 @@ var likelyRegionList = [93]likelyLangScript{
 	33: {lang: 0x476, script: 0x5a, flags: 0x0},
 	34: {lang: 0x24a, script: 0x4e, flags: 0x0},
 	35: {lang: 0xe6, script: 0x5, flags: 0x0},
-	36: {lang: 0x226, script: 0xe6, flags: 0x0},
+	36: {lang: 0x226, script: 0xeb, flags: 0x0},
 	37: {lang: 0x3a, script: 0x5, flags: 0x0},
 	38: {lang: 0x15e, script: 0x5a, flags: 0x0},
 	39: {lang: 0x2b8, script: 0x57, flags: 0x0},
-	40: {lang: 0x226, script: 0xe6, flags: 0x0},
+	40: {lang: 0x226, script: 0xeb, flags: 0x0},
 	41: {lang: 0x3a, script: 0x5, flags: 0x0},
 	42: {lang: 0x15e, script: 0x5a, flags: 0x0},
 	43: {lang: 0x3dc, script: 0x5a, flags: 0x0},
@@ -3260,7 +3268,7 @@ var likelyRegionList = [93]likelyLangScript{
 	70: {lang: 0x15e, script: 0x5a, flags: 0x0},
 	71: {lang: 0x15e, script: 0x5a, flags: 0x0},
 	72: {lang: 0x35, script: 0x5, flags: 0x0},
-	73: {lang: 0x46b, script: 0xe6, flags: 0x0},
+	73: {lang: 0x46b, script: 0xeb, flags: 0x0},
 	74: {lang: 0x2ec, script: 0x5, flags: 0x0},
 	75: {lang: 0x30f, script: 0x75, flags: 0x0},
 	76: {lang: 0x467, script: 0x20, flags: 0x0},
@@ -3285,7 +3293,7 @@ var likelyRegionList = [93]likelyLangScript{
 type likelyTag struct {
 	lang   uint16
 	region uint16
-	script uint8
+	script uint16
 }
 
 // Size: 198 bytes, 33 elements
@@ -3446,8 +3454,8 @@ var regionInclusionNext = [73]uint8{
 
 type parentRel struct {
 	lang       uint16
-	script     uint8
-	maxScript  uint8
+	script     uint16
+	maxScript  uint16
 	toRegion   uint16
 	fromRegion []uint16
 }
@@ -3461,4 +3469,4 @@ var parents = [5]parentRel{
 	4: {lang: 0x529, script: 0x3c, maxScript: 0x3c, toRegion: 0x8d, fromRegion: []uint16{0xc6}},
 }
 
-// Total table size 26398 bytes (25KiB); checksum: 1C859EA7
+// Total table size 30244 bytes (29KiB); checksum: B6B15F30
diff --git a/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go b/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go
index 575cea8707..e5c53b1b3e 100644
--- a/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go
+++ b/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go
@@ -74,7 +74,7 @@ type AcceptRange struct {
 
 // AcceptRanges is a slice of AcceptRange values. For a given byte sequence b
 //
-//		AcceptRanges[First[b[0]]>>AcceptShift]
+//	AcceptRanges[First[b[0]]>>AcceptShift]
 //
 // will give the value of AcceptRange for the multi-byte UTF-8 sequence starting
 // at b[0].
diff --git a/vendor/golang.org/x/text/language/doc.go b/vendor/golang.org/x/text/language/doc.go
index 8afecd50e1..212b77c906 100644
--- a/vendor/golang.org/x/text/language/doc.go
+++ b/vendor/golang.org/x/text/language/doc.go
@@ -10,18 +10,17 @@
 // and provides the user with the best experience
 // (see https://blog.golang.org/matchlang).
 //
-//
-// Matching preferred against supported languages
+// # Matching preferred against supported languages
 //
 // A Matcher for an application that supports English, Australian English,
 // Danish, and standard Mandarin can be created as follows:
 //
-//    var matcher = language.NewMatcher([]language.Tag{
-//        language.English,   // The first language is used as fallback.
-//        language.MustParse("en-AU"),
-//        language.Danish,
-//        language.Chinese,
-//    })
+//	var matcher = language.NewMatcher([]language.Tag{
+//	    language.English,   // The first language is used as fallback.
+//	    language.MustParse("en-AU"),
+//	    language.Danish,
+//	    language.Chinese,
+//	})
 //
 // This list of supported languages is typically implied by the languages for
 // which there exists translations of the user interface.
@@ -30,14 +29,14 @@
 // language tags.
 // The MatchString finds best matches for such strings:
 //
-//    handler(w http.ResponseWriter, r *http.Request) {
-//        lang, _ := r.Cookie("lang")
-//        accept := r.Header.Get("Accept-Language")
-//        tag, _ := language.MatchStrings(matcher, lang.String(), accept)
+//	handler(w http.ResponseWriter, r *http.Request) {
+//	    lang, _ := r.Cookie("lang")
+//	    accept := r.Header.Get("Accept-Language")
+//	    tag, _ := language.MatchStrings(matcher, lang.String(), accept)
 //
-//        // tag should now be used for the initialization of any
-//        // locale-specific service.
-//    }
+//	    // tag should now be used for the initialization of any
+//	    // locale-specific service.
+//	}
 //
 // The Matcher's Match method can be used to match Tags directly.
 //
@@ -48,8 +47,7 @@
 // For instance, it will know that a reader of Bokmål Danish can read Norwegian
 // and will know that Cantonese ("yue") is a good match for "zh-HK".
 //
-//
-// Using match results
+// # Using match results
 //
 // To guarantee a consistent user experience to the user it is important to
 // use the same language tag for the selection of any locale-specific services.
@@ -58,9 +56,9 @@
 // More subtly confusing is using the wrong sorting order or casing
 // algorithm for a certain language.
 //
-//    All the packages in x/text that provide locale-specific services
-//    (e.g. collate, cases) should be initialized with the tag that was
-//    obtained at the start of an interaction with the user.
+// All the packages in x/text that provide locale-specific services
+// (e.g. collate, cases) should be initialized with the tag that was
+// obtained at the start of an interaction with the user.
 //
 // Note that Tag that is returned by Match and MatchString may differ from any
 // of the supported languages, as it may contain carried over settings from
@@ -70,8 +68,7 @@
 // Match and MatchString both return the index of the matched supported tag
 // to simplify associating such data with the matched tag.
 //
-//
-// Canonicalization
+// # Canonicalization
 //
 // If one uses the Matcher to compare languages one does not need to
 // worry about canonicalization.
@@ -92,10 +89,9 @@
 // equivalence relations. The CanonType type can be used to alter the
 // canonicalization form.
 //
-// References
+// # References
 //
 // BCP 47 - Tags for Identifying Languages http://tools.ietf.org/html/bcp47
-//
 package language // import "golang.org/x/text/language"
 
 // TODO: explanation on how to match languages for your own locale-specific
diff --git a/vendor/golang.org/x/text/language/match.go b/vendor/golang.org/x/text/language/match.go
index f734921349..ee45f49474 100644
--- a/vendor/golang.org/x/text/language/match.go
+++ b/vendor/golang.org/x/text/language/match.go
@@ -545,7 +545,7 @@ type bestMatch struct {
 // match as the preferred match.
 //
 // If pin is true and have and tag are a strong match, it will henceforth only
-// consider matches for this language. This corresponds to the nothing that most
+// consider matches for this language. This corresponds to the idea that most
 // users have a strong preference for the first defined language. A user can
 // still prefer a second language over a dialect of the preferred language by
 // explicitly specifying dialects, e.g. "en, nl, en-GB". In this case pin should
diff --git a/vendor/golang.org/x/text/language/parse.go b/vendor/golang.org/x/text/language/parse.go
index 59b0410080..b982d9e422 100644
--- a/vendor/golang.org/x/text/language/parse.go
+++ b/vendor/golang.org/x/text/language/parse.go
@@ -147,6 +147,7 @@ func update(b *language.Builder, part ...interface{}) (err error) {
 }
 
 var errInvalidWeight = errors.New("ParseAcceptLanguage: invalid weight")
+var errTagListTooLarge = errors.New("tag list exceeds max length")
 
 // ParseAcceptLanguage parses the contents of an Accept-Language header as
 // defined in http://www.ietf.org/rfc/rfc2616.txt and returns a list of Tags and
@@ -164,6 +165,10 @@ func ParseAcceptLanguage(s string) (tag []Tag, q []float32, err error) {
 		}
 	}()
 
+	if strings.Count(s, "-") > 1000 {
+		return nil, nil, errTagListTooLarge
+	}
+
 	var entry string
 	for s != "" {
 		if entry, s = split(s, ','); entry == "" {
diff --git a/vendor/golang.org/x/text/language/tables.go b/vendor/golang.org/x/text/language/tables.go
index 96b57f610a..34a732b699 100644
--- a/vendor/golang.org/x/text/language/tables.go
+++ b/vendor/golang.org/x/text/language/tables.go
@@ -39,12 +39,12 @@ const (
 	_Hani = 57
 	_Hans = 59
 	_Hant = 60
-	_Qaaa = 143
-	_Qaai = 151
-	_Qabx = 192
-	_Zinh = 245
-	_Zyyy = 250
-	_Zzzz = 251
+	_Qaaa = 147
+	_Qaai = 155
+	_Qabx = 196
+	_Zinh = 252
+	_Zyyy = 257
+	_Zzzz = 258
 )
 
 var regionToGroups = []uint8{ // 358 elements
@@ -265,9 +265,9 @@ var matchScript = []scriptIntelligibility{ // 26 elements
 	13: {wantLang: 0x39d, haveLang: 0x139, wantScript: 0x36, haveScript: 0x5a, distance: 0xa},
 	14: {wantLang: 0x3be, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5a, distance: 0xa},
 	15: {wantLang: 0x3fa, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5a, distance: 0xa},
-	16: {wantLang: 0x40c, haveLang: 0x139, wantScript: 0xcf, haveScript: 0x5a, distance: 0xa},
-	17: {wantLang: 0x450, haveLang: 0x139, wantScript: 0xde, haveScript: 0x5a, distance: 0xa},
-	18: {wantLang: 0x461, haveLang: 0x139, wantScript: 0xe1, haveScript: 0x5a, distance: 0xa},
+	16: {wantLang: 0x40c, haveLang: 0x139, wantScript: 0xd4, haveScript: 0x5a, distance: 0xa},
+	17: {wantLang: 0x450, haveLang: 0x139, wantScript: 0xe3, haveScript: 0x5a, distance: 0xa},
+	18: {wantLang: 0x461, haveLang: 0x139, wantScript: 0xe6, haveScript: 0x5a, distance: 0xa},
 	19: {wantLang: 0x46f, haveLang: 0x139, wantScript: 0x2c, haveScript: 0x5a, distance: 0xa},
 	20: {wantLang: 0x476, haveLang: 0x3e2, wantScript: 0x5a, haveScript: 0x20, distance: 0xa},
 	21: {wantLang: 0x4b4, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5a, distance: 0xa},
diff --git a/vendor/golang.org/x/text/unicode/bidi/core.go b/vendor/golang.org/x/text/unicode/bidi/core.go
index e4c0811016..9d2ae547b5 100644
--- a/vendor/golang.org/x/text/unicode/bidi/core.go
+++ b/vendor/golang.org/x/text/unicode/bidi/core.go
@@ -193,14 +193,14 @@ func (p *paragraph) run() {
 //
 // At the end of this function:
 //
-//  - The member variable matchingPDI is set to point to the index of the
-//    matching PDI character for each isolate initiator character. If there is
-//    no matching PDI, it is set to the length of the input text. For other
-//    characters, it is set to -1.
-//  - The member variable matchingIsolateInitiator is set to point to the
-//    index of the matching isolate initiator character for each PDI character.
-//    If there is no matching isolate initiator, or the character is not a PDI,
-//    it is set to -1.
+//   - The member variable matchingPDI is set to point to the index of the
+//     matching PDI character for each isolate initiator character. If there is
+//     no matching PDI, it is set to the length of the input text. For other
+//     characters, it is set to -1.
+//   - The member variable matchingIsolateInitiator is set to point to the
+//     index of the matching isolate initiator character for each PDI character.
+//     If there is no matching isolate initiator, or the character is not a PDI,
+//     it is set to -1.
 func (p *paragraph) determineMatchingIsolates() {
 	p.matchingPDI = make([]int, p.Len())
 	p.matchingIsolateInitiator = make([]int, p.Len())
@@ -435,7 +435,7 @@ func maxLevel(a, b level) level {
 }
 
 // Rule X10, second bullet: Determine the start-of-sequence (sos) and end-of-sequence (eos) types,
-// 			 either L or R, for each isolating run sequence.
+// either L or R, for each isolating run sequence.
 func (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence {
 	length := len(indexes)
 	types := make([]Class, length)
@@ -495,9 +495,9 @@ func (s *isolatingRunSequence) resolveWeakTypes() {
 		if t == NSM {
 			s.types[i] = precedingCharacterType
 		} else {
-			if t.in(LRI, RLI, FSI, PDI) {
-				precedingCharacterType = ON
-			}
+			// if t.in(LRI, RLI, FSI, PDI) {
+			// 	precedingCharacterType = ON
+			// }
 			precedingCharacterType = t
 		}
 	}
@@ -905,7 +905,7 @@ func (p *paragraph) getLevels(linebreaks []int) []level {
 // Lines are concatenated from left to right. So for example, the fifth
 // character from the left on the third line is
 //
-// 		getReordering(linebreaks)[linebreaks[1] + 4]
+//	getReordering(linebreaks)[linebreaks[1] + 4]
 //
 // (linebreaks[1] is the position after the last character of the second
 // line, which is also the index of the first character on the third line,
diff --git a/vendor/golang.org/x/text/unicode/norm/forminfo.go b/vendor/golang.org/x/text/unicode/norm/forminfo.go
index 526c7033ac..d69ccb4f97 100644
--- a/vendor/golang.org/x/text/unicode/norm/forminfo.go
+++ b/vendor/golang.org/x/text/unicode/norm/forminfo.go
@@ -110,10 +110,11 @@ func (p Properties) BoundaryAfter() bool {
 }
 
 // We pack quick check data in 4 bits:
-//   5:    Combines forward  (0 == false, 1 == true)
-//   4..3: NFC_QC Yes(00), No (10), or Maybe (11)
-//   2:    NFD_QC Yes (0) or No (1). No also means there is a decomposition.
-//   1..0: Number of trailing non-starters.
+//
+//	5:    Combines forward  (0 == false, 1 == true)
+//	4..3: NFC_QC Yes(00), No (10), or Maybe (11)
+//	2:    NFD_QC Yes (0) or No (1). No also means there is a decomposition.
+//	1..0: Number of trailing non-starters.
 //
 // When all 4 bits are zero, the character is inert, meaning it is never
 // influenced by normalization.
diff --git a/vendor/golang.org/x/text/unicode/norm/normalize.go b/vendor/golang.org/x/text/unicode/norm/normalize.go
index 95efcf26e8..4747ad07a8 100644
--- a/vendor/golang.org/x/text/unicode/norm/normalize.go
+++ b/vendor/golang.org/x/text/unicode/norm/normalize.go
@@ -18,16 +18,17 @@ import (
 // A Form denotes a canonical representation of Unicode code points.
 // The Unicode-defined normalization and equivalence forms are:
 //
-//   NFC   Unicode Normalization Form C
-//   NFD   Unicode Normalization Form D
-//   NFKC  Unicode Normalization Form KC
-//   NFKD  Unicode Normalization Form KD
+//	NFC   Unicode Normalization Form C
+//	NFD   Unicode Normalization Form D
+//	NFKC  Unicode Normalization Form KC
+//	NFKD  Unicode Normalization Form KD
 //
 // For a Form f, this documentation uses the notation f(x) to mean
 // the bytes or string x converted to the given form.
 // A position n in x is called a boundary if conversion to the form can
 // proceed independently on both sides:
-//   f(x) == append(f(x[0:n]), f(x[n:])...)
+//
+//	f(x) == append(f(x[0:n]), f(x[n:])...)
 //
 // References: https://unicode.org/reports/tr15/ and
 // https://unicode.org/notes/tn5/.
diff --git a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go
index 96a130d30e..9115ef257e 100644
--- a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go
+++ b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go
@@ -7315,7 +7315,7 @@ const recompMapPacked = "" +
 	"\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C
 	"\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D
 	"\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E
-	"\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F
+	"\x00v\x03#\x00\x00\x1e\x7f" + // 0x00760323: 0x00001E7F
 	"\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80
 	"\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81
 	"\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82
@@ -7342,7 +7342,7 @@ const recompMapPacked = "" +
 	"\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97
 	"\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98
 	"\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99
-	"\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B
+	"\x01\x7f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B
 	"\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0
 	"\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1
 	"\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2
diff --git a/vendor/modules.txt b/vendor/modules.txt
index a711ba96f5..9524bd4008 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -469,7 +469,7 @@ golang.org/x/crypto/ssh/knownhosts
 golang.org/x/mod/internal/lazyregexp
 golang.org/x/mod/module
 golang.org/x/mod/semver
-# golang.org/x/net v0.0.0-20220722155237-a158d28d115b
+# golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458
 ## explicit; go 1.17
 golang.org/x/net/context
 golang.org/x/net/context/ctxhttp
@@ -497,7 +497,7 @@ golang.org/x/oauth2/jwt
 ## explicit
 golang.org/x/sync/errgroup
 golang.org/x/sync/semaphore
-# golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f
+# golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10
 ## explicit; go 1.17
 golang.org/x/sys/cpu
 golang.org/x/sys/execabs
@@ -508,7 +508,7 @@ golang.org/x/sys/windows
 # golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
 ## explicit; go 1.17
 golang.org/x/term
-# golang.org/x/text v0.3.7
+# golang.org/x/text v0.3.8
 ## explicit; go 1.17
 golang.org/x/text/encoding
 golang.org/x/text/encoding/charmap