From 9f216fd4816c9f5ff70effe24ef381a9b63b77a3 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Wed, 29 Jul 2020 16:18:42 -0400 Subject: [PATCH 1/7] WIP on BaseAccount protobuf pub_key --- go.sum | 5 -- proto/cosmos/auth/auth.proto | 3 +- proto/ibc/transfer/genesis.proto | 2 - x/auth/types/account.go | 13 ---- x/auth/types/auth.pb.go | 120 ++++++++++++++++------------- x/ibc-transfer/types/genesis.pb.go | 24 +++--- x/staking/types/staking.pb.go | 11 ++- 7 files changed, 83 insertions(+), 95 deletions(-) diff --git a/go.sum b/go.sum index b3d075b7647d..a79943ce319c 100644 --- a/go.sum +++ b/go.sum @@ -168,8 +168,6 @@ github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4er github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.3 h1:GV+pQPG/EUUbkh47niozDcADz6go/dUwhVzdUQHIVRw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -646,7 +644,6 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20u golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1 h1:ogLJMz+qpzav7lGMh10LMvAkM/fAoGlaiiHYiFYdm80= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= @@ -772,7 +769,5 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/proto/cosmos/auth/auth.proto b/proto/cosmos/auth/auth.proto index ad748b560a5b..e23a20fe33ae 100644 --- a/proto/cosmos/auth/auth.proto +++ b/proto/cosmos/auth/auth.proto @@ -3,6 +3,7 @@ package cosmos.auth; import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; +import "cosmos/crypto/crypto.proto"; option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; @@ -15,7 +16,7 @@ message BaseAccount { option (cosmos_proto.implements_interface) = "AccountI"; bytes address = 1 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"]; - bytes pub_key = 2 [(gogoproto.jsontag) = "public_key,omitempty", (gogoproto.moretags) = "yaml:\"public_key\""]; + cosmos.crypto.PublicKey pub_key = 2 [(gogoproto.jsontag) = "public_key,omitempty", (gogoproto.moretags) = "yaml:\"public_key\""]; uint64 account_number = 3 [(gogoproto.moretags) = "yaml:\"account_number\""]; uint64 sequence = 4; } diff --git a/proto/ibc/transfer/genesis.proto b/proto/ibc/transfer/genesis.proto index b8e7b665d18e..e83d7af0f481 100644 --- a/proto/ibc/transfer/genesis.proto +++ b/proto/ibc/transfer/genesis.proto @@ -4,8 +4,6 @@ package ibc.transfer; option go_package = "github.com/cosmos/cosmos-sdk/x/ibc-transfer/types"; import "gogoproto/gogo.proto"; -import "cosmos/cosmos.proto"; -import "ibc/transfer/transfer.proto"; // GenesisState is currently only used to ensure that the InitGenesis gets run // by the module manager diff --git a/x/auth/types/account.go b/x/auth/types/account.go index 1e85ac8f2049..98cd96b4449f 100644 --- a/x/auth/types/account.go +++ b/x/auth/types/account.go @@ -62,23 +62,10 @@ func (acc *BaseAccount) SetAddress(addr sdk.AccAddress) error { // GetPubKey - Implements sdk.AccountI. func (acc BaseAccount) GetPubKey() (pk crypto.PubKey) { - if len(acc.PubKey) == 0 { - return nil - } - - amino.MustUnmarshalBinaryBare(acc.PubKey, &pk) - return pk } // SetPubKey - Implements sdk.AccountI. func (acc *BaseAccount) SetPubKey(pubKey crypto.PubKey) error { - if pubKey == nil { - acc.PubKey = nil - } else { - acc.PubKey = pubKey.Bytes() - } - - return nil } // GetAccountNumber - Implements AccountI diff --git a/x/auth/types/auth.pb.go b/x/auth/types/auth.pb.go index cc56b31a299b..c23e6ae8b722 100644 --- a/x/auth/types/auth.pb.go +++ b/x/auth/types/auth.pb.go @@ -5,6 +5,7 @@ package types import ( fmt "fmt" + types "github.com/cosmos/cosmos-sdk/crypto/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" @@ -30,7 +31,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // type for additional functionality (e.g. vesting). type BaseAccount struct { Address github_com_cosmos_cosmos_sdk_types.AccAddress `protobuf:"bytes,1,opt,name=address,proto3,casttype=github.com/cosmos/cosmos-sdk/types.AccAddress" json:"address,omitempty"` - PubKey []byte `protobuf:"bytes,2,opt,name=pub_key,json=pubKey,proto3" json:"public_key,omitempty" yaml:"public_key"` + PubKey *types.PublicKey `protobuf:"bytes,2,opt,name=pub_key,json=pubKey,proto3" json:"public_key,omitempty" yaml:"public_key"` AccountNumber uint64 `protobuf:"varint,3,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty" yaml:"account_number"` Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` } @@ -191,48 +192,50 @@ func init() { func init() { proto.RegisterFile("cosmos/auth/auth.proto", fileDescriptor_ec2401f40a84da7e) } var fileDescriptor_ec2401f40a84da7e = []byte{ - // 650 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0x4f, 0x4f, 0xdb, 0x4e, - 0x10, 0x8d, 0x49, 0x7e, 0xfc, 0xd9, 0x00, 0x12, 0x26, 0x80, 0xc9, 0xaf, 0xf2, 0x46, 0x3e, 0x51, - 0xa9, 0x09, 0x82, 0x8a, 0x4a, 0xe4, 0x50, 0x15, 0xd3, 0x56, 0x42, 0x14, 0x84, 0x16, 0xa9, 0xaa, - 0x7a, 0xb1, 0xd6, 0xce, 0x36, 0x58, 0x64, 0xb3, 0xc6, 0xbb, 0xae, 0x62, 0x3e, 0x41, 0x8f, 0x3d, - 0x55, 0x3d, 0xf2, 0x21, 0x7a, 0xeb, 0x17, 0xe8, 0x11, 0xf5, 0xd4, 0x93, 0x5b, 0x85, 0x4b, 0xd5, - 0xa3, 0x8f, 0x3d, 0x55, 0xde, 0x35, 0xc1, 0x41, 0xb4, 0x97, 0x64, 0xe7, 0xcd, 0xbc, 0x37, 0xe3, - 0x37, 0xda, 0x05, 0xcb, 0x1e, 0xe3, 0x94, 0xf1, 0x75, 0x1c, 0x89, 0x13, 0xf9, 0xd3, 0x0a, 0x42, - 0x26, 0x98, 0x5e, 0x55, 0x78, 0x2b, 0x83, 0xea, 0xab, 0x2a, 0x70, 0x64, 0x6a, 0x3d, 0xcf, 0xc8, - 0xa0, 0x5e, 0xeb, 0xb2, 0x2e, 0x53, 0x78, 0x76, 0x52, 0xa8, 0xf5, 0x61, 0x02, 0x54, 0x6d, 0xcc, - 0xc9, 0x8e, 0xe7, 0xb1, 0xa8, 0x2f, 0xf4, 0x7d, 0x30, 0x85, 0x3b, 0x9d, 0x90, 0x70, 0x6e, 0x68, - 0x0d, 0x6d, 0x6d, 0xd6, 0xde, 0xf8, 0x9d, 0xc0, 0x66, 0xd7, 0x17, 0x27, 0x91, 0xdb, 0xf2, 0x18, - 0xcd, 0x35, 0xf3, 0xbf, 0x26, 0xef, 0x9c, 0xae, 0x8b, 0x38, 0x20, 0xbc, 0xb5, 0xe3, 0x79, 0x3b, - 0x8a, 0x88, 0xae, 0x15, 0xf4, 0xe7, 0x60, 0x2a, 0x88, 0x5c, 0xe7, 0x94, 0xc4, 0xc6, 0x84, 0x14, - 0x6b, 0xfe, 0x4a, 0x60, 0x2d, 0x88, 0xdc, 0x9e, 0xef, 0x65, 0xe8, 0x03, 0x46, 0x7d, 0x41, 0x68, - 0x20, 0xe2, 0x34, 0x81, 0x0b, 0x31, 0xa6, 0xbd, 0xb6, 0x75, 0x93, 0xb5, 0xd0, 0x64, 0x10, 0xb9, - 0xfb, 0x24, 0xd6, 0x9f, 0x80, 0x79, 0xac, 0xe6, 0x73, 0xfa, 0x11, 0x75, 0x49, 0x68, 0x94, 0x1b, - 0xda, 0x5a, 0xc5, 0x5e, 0x4d, 0x13, 0xb8, 0xa4, 0x68, 0xe3, 0x79, 0x0b, 0xcd, 0xe5, 0xc0, 0xa1, - 0x8c, 0xf5, 0x3a, 0x98, 0xe6, 0xe4, 0x2c, 0x22, 0x7d, 0x8f, 0x18, 0x95, 0x8c, 0x8b, 0x46, 0x71, - 0xbb, 0xf6, 0xee, 0x02, 0x96, 0x3e, 0x5e, 0xc0, 0xd2, 0xd7, 0x4f, 0xcd, 0xe9, 0xdc, 0x87, 0x3d, - 0xeb, 0xb3, 0x06, 0xe6, 0x0e, 0x58, 0x27, 0xea, 0x8d, 0xac, 0x79, 0x05, 0x66, 0x5d, 0xcc, 0x89, - 0x93, 0x2b, 0x4b, 0x7f, 0xaa, 0x9b, 0x46, 0xab, 0xe0, 0x7f, 0xab, 0x60, 0xa5, 0xfd, 0xff, 0x65, - 0x02, 0xb5, 0x34, 0x81, 0x8b, 0x6a, 0xc2, 0x22, 0xd7, 0x42, 0x55, 0xb7, 0x60, 0xba, 0x0e, 0x2a, - 0x7d, 0x4c, 0x89, 0x34, 0x69, 0x06, 0xc9, 0xb3, 0xde, 0x00, 0xd5, 0x80, 0x84, 0xd4, 0xe7, 0xdc, - 0x67, 0x7d, 0x6e, 0x94, 0x1b, 0xe5, 0xb5, 0x19, 0x54, 0x84, 0xda, 0xf5, 0xc2, 0xdc, 0xf3, 0x63, - 0xa3, 0xee, 0x59, 0xdf, 0xcb, 0x60, 0xf2, 0x08, 0x87, 0x98, 0x72, 0xfd, 0x10, 0x2c, 0x52, 0x3c, - 0x70, 0x28, 0xa1, 0xcc, 0xf1, 0x4e, 0x70, 0x88, 0x3d, 0x41, 0x42, 0xb5, 0xdd, 0x8a, 0x6d, 0xa6, - 0x09, 0xac, 0xab, 0xf9, 0xee, 0x28, 0xb2, 0xd0, 0x02, 0xc5, 0x83, 0x03, 0x42, 0xd9, 0xee, 0x08, - 0xd3, 0xb7, 0xc1, 0xac, 0x18, 0x38, 0xdc, 0xef, 0x3a, 0x3d, 0x9f, 0xfa, 0x42, 0x0e, 0x5d, 0xb1, - 0x57, 0x6e, 0x3e, 0xb4, 0x98, 0xb5, 0x10, 0x10, 0x83, 0x63, 0xbf, 0xfb, 0x22, 0x0b, 0x74, 0x04, - 0x96, 0x64, 0xf2, 0x9c, 0x38, 0x1e, 0xe3, 0xc2, 0x09, 0x48, 0xe8, 0xb8, 0xb1, 0x20, 0xf9, 0x3a, - 0x1b, 0x69, 0x02, 0xef, 0x15, 0x34, 0x6e, 0x97, 0x59, 0x68, 0x21, 0x13, 0x3b, 0x27, 0xbb, 0x8c, - 0x8b, 0x23, 0x12, 0xda, 0xb1, 0x20, 0xfa, 0x19, 0x58, 0xc9, 0xba, 0xbd, 0x25, 0xa1, 0xff, 0x26, - 0x56, 0xf5, 0xa4, 0xb3, 0xb9, 0xb5, 0xb5, 0xb1, 0xad, 0x16, 0x6d, 0xb7, 0x87, 0x09, 0xac, 0x1d, - 0xfb, 0xdd, 0x97, 0xb2, 0x22, 0xa3, 0x3e, 0x7b, 0x2a, 0xf3, 0x69, 0x02, 0x4d, 0xd5, 0xed, 0x2f, - 0x02, 0x16, 0xaa, 0xf1, 0x31, 0x9e, 0x82, 0xf5, 0x18, 0xac, 0xde, 0x66, 0x70, 0xe2, 0x05, 0x9b, - 0x5b, 0x8f, 0x4e, 0x37, 0x8c, 0xff, 0x64, 0xd3, 0xc7, 0xc3, 0x04, 0x2e, 0x8f, 0x35, 0x3d, 0xbe, - 0xae, 0x48, 0x13, 0xd8, 0xb8, 0xbb, 0xed, 0x48, 0xc4, 0x42, 0xcb, 0xfc, 0x4e, 0x6e, 0x7b, 0x3a, - 0xdb, 0xf7, 0xcf, 0x0b, 0xa8, 0xd9, 0xbb, 0x5f, 0x86, 0xa6, 0x76, 0x39, 0x34, 0xb5, 0x1f, 0x43, - 0x53, 0x7b, 0x7f, 0x65, 0x96, 0x2e, 0xaf, 0xcc, 0xd2, 0xb7, 0x2b, 0xb3, 0xf4, 0xfa, 0xfe, 0x3f, - 0x6f, 0xeb, 0x40, 0x3d, 0x20, 0xf2, 0xd2, 0xba, 0x93, 0xf2, 0x11, 0x78, 0xf8, 0x27, 0x00, 0x00, - 0xff, 0xff, 0x10, 0x68, 0x06, 0x78, 0x5c, 0x04, 0x00, 0x00, + // 674 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0x3f, 0x4f, 0xdb, 0x4e, + 0x18, 0x8e, 0x49, 0x7e, 0xfc, 0xb9, 0x00, 0x12, 0x26, 0x80, 0xc9, 0xaf, 0xf2, 0x59, 0x9e, 0x52, + 0xa9, 0x49, 0x04, 0x15, 0x95, 0xc8, 0x50, 0x15, 0xd3, 0x0e, 0x88, 0x82, 0x90, 0x91, 0xaa, 0xaa, + 0x8b, 0x6b, 0x5f, 0xae, 0xc1, 0x22, 0x97, 0x33, 0xbe, 0x73, 0x15, 0xf3, 0x09, 0x3a, 0x76, 0xec, + 0xc8, 0x47, 0xe8, 0xd0, 0xad, 0x5f, 0xa0, 0x23, 0xea, 0xd4, 0xc9, 0xad, 0xc2, 0x52, 0x75, 0xf4, + 0xd8, 0xa9, 0xf2, 0x9d, 0x09, 0x0e, 0xa2, 0x5d, 0x6c, 0xbf, 0xef, 0xf3, 0x3e, 0xcf, 0xfb, 0xf8, + 0x7d, 0x75, 0x07, 0x56, 0x11, 0x65, 0x84, 0xb2, 0xb6, 0x1b, 0xf1, 0x13, 0xf1, 0x68, 0x05, 0x21, + 0xe5, 0x54, 0xad, 0xca, 0x7c, 0x2b, 0x4b, 0xd5, 0xd7, 0x65, 0xe0, 0x08, 0xa8, 0x9d, 0x23, 0x22, + 0xa8, 0xd7, 0x7a, 0xb4, 0x47, 0x65, 0x3e, 0xfb, 0xca, 0xb3, 0xf5, 0x5c, 0x15, 0x85, 0x71, 0x90, + 0x31, 0xc4, 0x4b, 0x62, 0xe6, 0xc7, 0x29, 0x50, 0xb5, 0x5c, 0x86, 0x77, 0x10, 0xa2, 0xd1, 0x80, + 0xab, 0xfb, 0x60, 0xc6, 0xed, 0x76, 0x43, 0xcc, 0x98, 0xa6, 0x18, 0x4a, 0x63, 0xde, 0xda, 0xf8, + 0x9d, 0xc0, 0x66, 0xcf, 0xe7, 0x27, 0x91, 0xd7, 0x42, 0x94, 0xb4, 0xaf, 0xb5, 0xc4, 0xab, 0xc9, + 0xba, 0xa7, 0x6d, 0x1e, 0x07, 0x98, 0xb5, 0x76, 0x10, 0xda, 0x91, 0x44, 0xfb, 0x5a, 0x41, 0x7d, + 0x0d, 0x66, 0x82, 0xc8, 0x73, 0x4e, 0x71, 0xac, 0x4d, 0x19, 0x4a, 0xa3, 0xba, 0xa9, 0xb5, 0x72, + 0xbb, 0xb9, 0x87, 0xa3, 0xc8, 0xeb, 0xfb, 0x68, 0x1f, 0xc7, 0x56, 0xf3, 0x57, 0x02, 0x6b, 0x81, + 0x08, 0xb3, 0xfa, 0x07, 0x94, 0xf8, 0x1c, 0x93, 0x80, 0xc7, 0x69, 0x02, 0x97, 0x62, 0x97, 0xf4, + 0x3b, 0xe6, 0x0d, 0x6a, 0xda, 0xd3, 0x41, 0xe4, 0xed, 0xe3, 0x58, 0x7d, 0x02, 0x16, 0x5d, 0xe9, + 0xdc, 0x19, 0x44, 0xc4, 0xc3, 0xa1, 0x56, 0x36, 0x94, 0x46, 0xc5, 0x5a, 0x4f, 0x13, 0xb8, 0x22, + 0x69, 0x93, 0xb8, 0x69, 0x2f, 0xe4, 0x89, 0x43, 0x11, 0xab, 0x75, 0x30, 0xcb, 0xf0, 0x59, 0x84, + 0x07, 0x08, 0x6b, 0x95, 0x8c, 0x6b, 0x8f, 0xe3, 0x4e, 0xed, 0xdd, 0x05, 0x2c, 0x7d, 0xb8, 0x80, + 0xa5, 0xaf, 0x9f, 0x9a, 0xb3, 0xf9, 0x84, 0xf6, 0xcc, 0xcf, 0x0a, 0x58, 0x38, 0xa0, 0xdd, 0xa8, + 0x3f, 0x1e, 0xda, 0x4b, 0x30, 0xef, 0xb9, 0x0c, 0x3b, 0xb9, 0xb2, 0x98, 0x5c, 0xe1, 0x67, 0xc5, + 0x22, 0x0b, 0x43, 0xb6, 0xfe, 0xbf, 0x4c, 0xa0, 0x92, 0x26, 0x70, 0x59, 0x3a, 0x2c, 0x72, 0x4d, + 0xbb, 0xea, 0x15, 0xd6, 0xa1, 0x82, 0xca, 0xc0, 0x25, 0x58, 0x8c, 0x6f, 0xce, 0x16, 0xdf, 0xaa, + 0x01, 0xaa, 0x01, 0x0e, 0x89, 0xcf, 0x98, 0x4f, 0x07, 0x4c, 0x2b, 0x1b, 0xe5, 0xc6, 0x9c, 0x5d, + 0x4c, 0x75, 0xea, 0x05, 0xdf, 0x8b, 0x13, 0x56, 0xf7, 0xcc, 0xef, 0x65, 0x30, 0x7d, 0xe4, 0x86, + 0x2e, 0x61, 0xea, 0x21, 0x58, 0x26, 0xee, 0xd0, 0x21, 0x98, 0x50, 0x07, 0x9d, 0xb8, 0xa1, 0x8b, + 0x38, 0x0e, 0xe5, 0xde, 0x2b, 0x96, 0x9e, 0x26, 0xb0, 0x2e, 0xfd, 0xdd, 0x51, 0x64, 0xda, 0x4b, + 0xc4, 0x1d, 0x1e, 0x60, 0x42, 0x77, 0xc7, 0x39, 0x75, 0x1b, 0xcc, 0xf3, 0xa1, 0xc3, 0xfc, 0x9e, + 0xd3, 0xf7, 0x89, 0xcf, 0x85, 0xe9, 0x8a, 0xb5, 0x76, 0xf3, 0xa3, 0x45, 0xd4, 0xb4, 0x01, 0x1f, + 0x1e, 0xfb, 0xbd, 0xe7, 0x59, 0xa0, 0xda, 0x60, 0x45, 0x80, 0xe7, 0xd8, 0x41, 0x94, 0x71, 0x27, + 0xc0, 0xa1, 0xe3, 0xc5, 0x1c, 0xe7, 0xeb, 0x34, 0xd2, 0x04, 0xde, 0x2b, 0x68, 0xdc, 0x2e, 0x33, + 0xed, 0xa5, 0x4c, 0xec, 0x1c, 0xef, 0x52, 0xc6, 0x8f, 0x70, 0x68, 0xc5, 0x1c, 0xab, 0x67, 0x60, + 0x2d, 0xeb, 0xf6, 0x16, 0x87, 0xfe, 0x9b, 0x58, 0xd6, 0xe3, 0xee, 0xe6, 0xd6, 0xd6, 0xc6, 0xb6, + 0x5c, 0xb4, 0xd5, 0x19, 0x25, 0xb0, 0x76, 0xec, 0xf7, 0x5e, 0x88, 0x8a, 0x8c, 0xfa, 0xec, 0xa9, + 0xc0, 0xd3, 0x04, 0xea, 0xb2, 0xdb, 0x5f, 0x04, 0x4c, 0xbb, 0xc6, 0x26, 0x78, 0x32, 0xad, 0xc6, + 0x60, 0xfd, 0x36, 0x83, 0x61, 0x14, 0x6c, 0x6e, 0x3d, 0x3a, 0xdd, 0xd0, 0xfe, 0x13, 0x4d, 0x1f, + 0x8f, 0x12, 0xb8, 0x3a, 0xd1, 0xf4, 0xf8, 0xba, 0x22, 0x4d, 0xa0, 0x71, 0x77, 0xdb, 0xb1, 0x88, + 0x69, 0xaf, 0xb2, 0x3b, 0xb9, 0x9d, 0xd9, 0x6c, 0xdf, 0x3f, 0x2f, 0xa0, 0x62, 0xed, 0x7e, 0x19, + 0xe9, 0xca, 0xe5, 0x48, 0x57, 0x7e, 0x8c, 0x74, 0xe5, 0xfd, 0x95, 0x5e, 0xba, 0xbc, 0xd2, 0x4b, + 0xdf, 0xae, 0xf4, 0xd2, 0xab, 0xfb, 0xff, 0x3c, 0xc7, 0x43, 0x79, 0xed, 0x88, 0xe3, 0xec, 0x4d, + 0x8b, 0xeb, 0xe1, 0xe1, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x04, 0xd8, 0x73, 0x92, 0x04, + 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -301,10 +304,15 @@ func (m *BaseAccount) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x18 } - if len(m.PubKey) > 0 { - i -= len(m.PubKey) - copy(dAtA[i:], m.PubKey) - i = encodeVarintAuth(dAtA, i, uint64(len(m.PubKey))) + if m.PubKey != nil { + { + size, err := m.PubKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintAuth(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x12 } @@ -438,8 +446,8 @@ func (m *BaseAccount) Size() (n int) { if l > 0 { n += 1 + l + sovAuth(uint64(l)) } - l = len(m.PubKey) - if l > 0 { + if m.PubKey != nil { + l = m.PubKey.Size() n += 1 + l + sovAuth(uint64(l)) } if m.AccountNumber != 0 { @@ -571,7 +579,7 @@ func (m *BaseAccount) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field PubKey", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowAuth @@ -581,24 +589,26 @@ func (m *BaseAccount) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthAuth } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthAuth } if postIndex > l { return io.ErrUnexpectedEOF } - m.PubKey = append(m.PubKey[:0], dAtA[iNdEx:postIndex]...) if m.PubKey == nil { - m.PubKey = []byte{} + m.PubKey = &types.PublicKey{} + } + if err := m.PubKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex case 3: diff --git a/x/ibc-transfer/types/genesis.pb.go b/x/ibc-transfer/types/genesis.pb.go index d032d4650cdc..cd800d16f8bd 100644 --- a/x/ibc-transfer/types/genesis.pb.go +++ b/x/ibc-transfer/types/genesis.pb.go @@ -5,7 +5,6 @@ package types import ( fmt "fmt" - _ "github.com/cosmos/cosmos-sdk/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" io "io" @@ -77,21 +76,20 @@ func init() { func init() { proto.RegisterFile("ibc/transfer/genesis.proto", fileDescriptor_c13b8463155e05c2) } var fileDescriptor_c13b8463155e05c2 = []byte{ - // 218 bytes of a gzipped FileDescriptorProto + // 204 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xca, 0x4c, 0x4a, 0xd6, 0x2f, 0x29, 0x4a, 0xcc, 0x2b, 0x4e, 0x4b, 0x2d, 0xd2, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc9, 0x4c, 0x4a, 0xd6, 0x83, 0xc9, 0x49, 0x89, - 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x25, 0xf4, 0x41, 0x2c, 0x88, 0x1a, 0x29, 0xe1, 0xe4, 0xfc, 0xe2, - 0xdc, 0xfc, 0x62, 0x7d, 0x08, 0x05, 0x15, 0x94, 0x46, 0x31, 0x14, 0xc6, 0x80, 0x48, 0x2a, 0xb9, - 0x72, 0xf1, 0xb8, 0x43, 0xac, 0x09, 0x2e, 0x49, 0x2c, 0x49, 0x15, 0x32, 0xe5, 0x62, 0x2f, 0xc8, - 0x2f, 0x2a, 0x89, 0xcf, 0x4c, 0x91, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x74, 0x92, 0x79, 0x74, 0x4f, - 0x9e, 0x2d, 0x20, 0xbf, 0xa8, 0xc4, 0xd3, 0xe5, 0xd3, 0x3d, 0x79, 0xbe, 0xca, 0xc4, 0xdc, 0x1c, - 0x2b, 0x25, 0xa8, 0x12, 0xa5, 0x20, 0x36, 0x10, 0xcb, 0x33, 0xc5, 0xc9, 0xfb, 0xc4, 0x23, 0x39, - 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, 0x92, 0x63, 0x9c, 0xf0, 0x58, 0x8e, 0xe1, 0xc2, 0x63, - 0x39, 0x86, 0x1b, 0x8f, 0xe5, 0x18, 0xa2, 0x0c, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, - 0xf3, 0x73, 0xf5, 0x51, 0x5c, 0xa7, 0x5b, 0x9c, 0x92, 0xad, 0x5f, 0xa1, 0x9f, 0x99, 0x94, 0xac, - 0x8b, 0x70, 0x5c, 0x65, 0x41, 0x6a, 0x71, 0x12, 0x1b, 0xd8, 0x69, 0xc6, 0x80, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x7a, 0xfc, 0xa4, 0xfa, 0x0e, 0x01, 0x00, 0x00, + 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x25, 0xf4, 0x41, 0x2c, 0x88, 0x1a, 0x25, 0x57, 0x2e, 0x1e, 0x77, + 0x88, 0xa6, 0xe0, 0x92, 0xc4, 0x92, 0x54, 0x21, 0x53, 0x2e, 0xf6, 0x82, 0xfc, 0xa2, 0x92, 0xf8, + 0xcc, 0x14, 0x09, 0x46, 0x05, 0x46, 0x0d, 0x4e, 0x27, 0x99, 0x47, 0xf7, 0xe4, 0xd9, 0x02, 0xf2, + 0x8b, 0x4a, 0x3c, 0x5d, 0x3e, 0xdd, 0x93, 0xe7, 0xab, 0x4c, 0xcc, 0xcd, 0xb1, 0x52, 0x82, 0x2a, + 0x51, 0x0a, 0x62, 0x03, 0xb1, 0x3c, 0x53, 0x9c, 0xbc, 0x4f, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, + 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x09, 0x8f, 0xe5, 0x18, 0x2e, 0x3c, 0x96, 0x63, 0xb8, 0xf1, + 0x58, 0x8e, 0x21, 0xca, 0x30, 0x3d, 0xb3, 0x24, 0xa3, 0x34, 0x49, 0x2f, 0x39, 0x3f, 0x57, 0x3f, + 0x39, 0xbf, 0x38, 0x37, 0xbf, 0x18, 0x4a, 0xe9, 0x16, 0xa7, 0x64, 0xeb, 0x57, 0xe8, 0x67, 0x26, + 0x25, 0xeb, 0xc2, 0xdd, 0x5f, 0x52, 0x59, 0x90, 0x5a, 0x9c, 0xc4, 0x06, 0x76, 0x9a, 0x31, 0x20, + 0x00, 0x00, 0xff, 0xff, 0x2e, 0x43, 0x78, 0xc7, 0xdc, 0x00, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index 1d60e583f304..93226ea42ae4 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -7,12 +7,6 @@ import ( bytes "bytes" compress_gzip "compress/gzip" fmt "fmt" - io "io" - io_ioutil "io/ioutil" - math "math" - math_bits "math/bits" - time "time" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" _ "github.com/gogo/protobuf/gogoproto" @@ -23,6 +17,11 @@ import ( _ "github.com/golang/protobuf/ptypes/duration" _ "github.com/golang/protobuf/ptypes/timestamp" types1 "github.com/tendermint/tendermint/abci/types" + io "io" + io_ioutil "io/ioutil" + math "math" + math_bits "math/bits" + time "time" ) // Reference imports to suppress errors if they are not otherwise used. From 8a086a16c1240187b03be2fa0a064b7d34c4abbd Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Wed, 29 Jul 2020 18:34:21 -0400 Subject: [PATCH 2/7] WIP on BaseAccount.PubKey --- x/auth/types/account.go | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/x/auth/types/account.go b/x/auth/types/account.go index 98cd96b4449f..5150332572cf 100644 --- a/x/auth/types/account.go +++ b/x/auth/types/account.go @@ -1,12 +1,13 @@ package types import ( - "bytes" "encoding/json" "errors" "fmt" "strings" + "github.com/cosmos/cosmos-sdk/crypto/types" + "github.com/tendermint/tendermint/crypto" yaml "gopkg.in/yaml.v2" @@ -21,15 +22,14 @@ var ( ) // NewBaseAccount creates a new BaseAccount object -func NewBaseAccount(address sdk.AccAddress, pubKey crypto.PubKey, accountNumber, sequence uint64) *BaseAccount { +func NewBaseAccount(address sdk.AccAddress, pubKey *types.PublicKey, accountNumber, sequence uint64) *BaseAccount { acc := &BaseAccount{ Address: address, AccountNumber: accountNumber, Sequence: sequence, + PubKey: pubKey, } - acc.SetPubKey(pubKey) - return acc } @@ -61,11 +61,14 @@ func (acc *BaseAccount) SetAddress(addr sdk.AccAddress) error { } // GetPubKey - Implements sdk.AccountI. -func (acc BaseAccount) GetPubKey() (pk crypto.PubKey) { +func (acc BaseAccount) GetPubKey() (pk *types.PublicKey) { + return acc.PubKey } // SetPubKey - Implements sdk.AccountI. -func (acc *BaseAccount) SetPubKey(pubKey crypto.PubKey) error { +func (acc *BaseAccount) SetPubKey(pubKey *types.PublicKey) error { + acc.PubKey = pubKey + return nil } // GetAccountNumber - Implements AccountI @@ -92,11 +95,6 @@ func (acc *BaseAccount) SetSequence(seq uint64) error { // Validate checks for errors on the account fields func (acc BaseAccount) Validate() error { - if len(acc.PubKey) != 0 && acc.Address != nil && - !bytes.Equal(acc.GetPubKey().Address().Bytes(), acc.Address.Bytes()) { - return errors.New("account address and pubkey address do not match") - } - return nil } @@ -192,7 +190,7 @@ func (ma ModuleAccount) GetPermissions() []string { } // SetPubKey - Implements AccountI -func (ma ModuleAccount) SetPubKey(pubKey crypto.PubKey) error { +func (ma ModuleAccount) SetPubKey(pubKey *types.PublicKey) error { return fmt.Errorf("not supported for module accounts") } @@ -282,8 +280,8 @@ type AccountI interface { GetAddress() sdk.AccAddress SetAddress(sdk.AccAddress) error // errors if already set. - GetPubKey() crypto.PubKey // can return nil. - SetPubKey(crypto.PubKey) error + GetPubKey() *types.PublicKey // can return nil. + SetPubKey(*types.PublicKey) error GetAccountNumber() uint64 SetAccountNumber(uint64) error From 671edfb736503ebf7e9b05b6038a351f1a7809c5 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Tue, 4 Aug 2020 10:56:32 -0400 Subject: [PATCH 3/7] WIP on BaseAccount pub key --- client/context.go | 18 +-- codec/json.go | 8 +- codec/yaml.go | 29 +++++ codec/yaml_test.go | 49 ++++++++ proto/cosmos/auth/auth.proto | 4 + testutil/testdata/proto.pb.go | 205 +++++++++++++++++----------------- x/auth/types/account.go | 53 ++++----- x/auth/types/auth.pb.go | 106 ++++++++---------- 8 files changed, 271 insertions(+), 201 deletions(-) create mode 100644 codec/yaml.go create mode 100644 codec/yaml_test.go diff --git a/client/context.go b/client/context.go index 5580853e3027..8aa017e7eebb 100644 --- a/client/context.go +++ b/client/context.go @@ -1,14 +1,12 @@ package client import ( - "encoding/json" "io" "os" "github.com/pkg/errors" rpcclient "github.com/tendermint/tendermint/rpc/client" rpchttp "github.com/tendermint/tendermint/rpc/client/http" - yaml "gopkg.in/yaml.v2" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" @@ -199,22 +197,16 @@ func (ctx Context) WithInterfaceRegistry(interfaceRegistry codectypes.InterfaceR // either text or json. If text, toPrint will be YAML encoded. Otherwise, toPrint // will be JSON encoded using ctx.JSONMarshaler. An error is returned upon failure. func (ctx Context) PrintOutput(toPrint interface{}) error { - // always serialize JSON initially because proto json can't be directly YAML encoded - out, err := ctx.JSONMarshaler.MarshalJSON(toPrint) - if err != nil { - return err - } + var out []byte + var err error if ctx.OutputFormat == "text" { - // handle text format by decoding and re-encoding JSON as YAML - var j interface{} - - err = json.Unmarshal(out, &j) + out, err = codec.MarshalYAML(ctx.JSONMarshaler, toPrint) if err != nil { return err } - - out, err = yaml.Marshal(j) + } else { + out, err = ctx.JSONMarshaler.MarshalJSON(toPrint) if err != nil { return err } diff --git a/codec/json.go b/codec/json.go index cab6993cae5d..40e9d7a523ce 100644 --- a/codec/json.go +++ b/codec/json.go @@ -12,7 +12,13 @@ import ( // ProtoMarshalJSON provides an auxiliary function to return Proto3 JSON encoded // bytes of a message. func ProtoMarshalJSON(msg proto.Message) ([]byte, error) { - jm := &jsonpb.Marshaler{OrigName: true} + jm := &jsonpb.Marshaler{ + EnumsAsInts: false, + EmitDefaults: true, // emit defaults by default - this should not be used for sign bytes + Indent: "", + OrigName: true, // don't camel case names + AnyResolver: nil, + } err := types.UnpackInterfaces(msg, types.ProtoJSONPacker{JSONPBMarshaler: jm}) if err != nil { return nil, err diff --git a/codec/yaml.go b/codec/yaml.go new file mode 100644 index 000000000000..9ddec8d3080f --- /dev/null +++ b/codec/yaml.go @@ -0,0 +1,29 @@ +package codec + +import ( + "encoding/json" + + "gopkg.in/yaml.v2" +) + +func MarshalYAML(jsonMarshaler JSONMarshaler, toPrint interface{}) ([]byte, error) { + bz, err := jsonMarshaler.MarshalJSON(toPrint) + if err != nil { + return nil, err + } + + // generate YAML by decoding and re-encoding JSON as YAML + var j interface{} + + err = json.Unmarshal(bz, &j) + if err != nil { + return nil, err + } + + bz, err = yaml.Marshal(j) + if err != nil { + return nil, err + } + + return bz, nil +} diff --git a/codec/yaml_test.go b/codec/yaml_test.go new file mode 100644 index 000000000000..fc9488997cb1 --- /dev/null +++ b/codec/yaml_test.go @@ -0,0 +1,49 @@ +package codec_test + +import ( + "testing" + + "github.com/cosmos/cosmos-sdk/codec" + + "github.com/stretchr/testify/require" + + "github.com/cosmos/cosmos-sdk/codec/types" + "github.com/cosmos/cosmos-sdk/testutil/testdata" +) + +func TestMarshalYAML(t *testing.T) { + dog := &testdata.Dog{ + Size_: "small", + Name: "Spot", + } + any, err := types.NewAnyWithValue(dog) + require.NoError(t, err) + hasAnimal := &testdata.HasAnimal{ + Animal: any, + X: 0, + } + + // proto + protoCdc := codec.NewProtoCodec(NewTestInterfaceRegistry()) + bz, err := codec.MarshalYAML(protoCdc, hasAnimal) + require.NoError(t, err) + require.Equal(t, `animal: + '@type': /testdata.Dog + name: Spot + size: small +x: "0" +`, string(bz)) + + // amino + aminoCdc := &codec.Codec{testdata.NewTestAmino()} + bz, err = codec.MarshalYAML(aminoCdc, hasAnimal) + require.NoError(t, err) + require.Equal(t, `type: testdata/HasAnimal +value: + animal: + type: testdata/Dog + value: + name: Spot + size: small +`, string(bz)) +} diff --git a/proto/cosmos/auth/auth.proto b/proto/cosmos/auth/auth.proto index e23a20fe33ae..6318cc008602 100644 --- a/proto/cosmos/auth/auth.proto +++ b/proto/cosmos/auth/auth.proto @@ -13,6 +13,10 @@ option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; message BaseAccount { option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_stringer) = false; + // NOTE: this disables the generation of the BaseAccount struct and uses a hand-written struct + // so that we can deal with PublicKey encoding. This should likely be replaced with something + // less hacky in the future. + option (gogoproto.typedecl) = false; option (cosmos_proto.implements_interface) = "AccountI"; bytes address = 1 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"]; diff --git a/testutil/testdata/proto.pb.go b/testutil/testdata/proto.pb.go index 5c69d0bd7d4c..0edda11fcf47 100644 --- a/testutil/testdata/proto.pb.go +++ b/testutil/testdata/proto.pb.go @@ -1608,7 +1608,7 @@ type TestVersion2 struct { // *TestVersion2_F Sum isTestVersion2_Sum `protobuf_oneof:"sum"` G *types.Any `protobuf:"bytes,8,opt,name=g,proto3" json:"g,omitempty"` - H []*TestVersion2 `protobuf:"bytes,9,rep,name=h,proto3" json:"h,omitempty"` + H []*TestVersion1 `protobuf:"bytes,9,rep,name=h,proto3" json:"h,omitempty"` // google.protobuf.Timestamp i = 10; // google.protobuf.Timestamp j = 11; // [(gogoproto.stdtime) = true]; *Customer1 `protobuf:"bytes,12,opt,name=k,proto3,embedded=k" json:"k,omitempty"` @@ -1727,7 +1727,7 @@ func (m *TestVersion2) GetG() *types.Any { return nil } -func (m *TestVersion2) GetH() []*TestVersion2 { +func (m *TestVersion2) GetH() []*TestVersion1 { if m != nil { return m.H } @@ -3150,112 +3150,111 @@ func init() { func init() { proto.RegisterFile("proto.proto", fileDescriptor_2fcc84b9998d60d8) } var fileDescriptor_2fcc84b9998d60d8 = []byte{ - // 1669 bytes of a gzipped FileDescriptorProto + // 1664 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0xcf, 0x6f, 0x23, 0x49, 0x15, 0x4e, 0xb9, 0xed, 0xc4, 0x7e, 0x31, 0x8e, 0x29, 0xc2, 0xd2, 0xe3, 0x65, 0x33, 0xa1, 0x35, 0xec, 0x98, 0xd5, 0x8e, 0x43, 0xda, 0x5e, 0x09, 0xcd, 0x01, 0xad, 0x9d, 0x49, 0x36, 0x23, 0x66, 0xb2, 0xa8, 0x67, 0x35, 0xa0, 0xbd, 0x44, 0xe5, 0xee, 0x72, 0xbb, 0x94, 0x76, 0x55, 0xe8, 0x6a, 0xcf, 0x8c, 0x39, 0xc2, 0x81, 0x2b, 0x17, 0xc4, 0x99, 0x23, 0x27, 0xb4, 0x7f, 0x05, 0x7b, 0x41, 0x9a, 0x0b, 0x12, 0x12, 0xd2, 0x08, 0xcd, 0x5c, 0xf9, 0x0b, 0x40, 0x08, 0x54, 0xdd, 0xd5, 0x3f, - 0x92, 0xb1, 0xb3, 0x4e, 0x76, 0xd9, 0x55, 0xa4, 0xbd, 0xd8, 0x55, 0xaf, 0xbf, 0xfa, 0xea, 0xd5, - 0xf7, 0xea, 0xbd, 0xae, 0x2e, 0x58, 0x3f, 0x0d, 0x45, 0x24, 0x3a, 0xf1, 0x2f, 0xae, 0x46, 0x54, - 0x46, 0x1e, 0x89, 0x48, 0x6b, 0xd3, 0x17, 0xbe, 0x88, 0x8d, 0x3b, 0xaa, 0x95, 0x3c, 0x6f, 0xdd, - 0xf0, 0x85, 0xf0, 0x03, 0xba, 0x13, 0xf7, 0x86, 0xd3, 0xd1, 0x0e, 0xe1, 0xb3, 0xe4, 0x91, 0x75, - 0x07, 0x8c, 0x7b, 0xc2, 0xc7, 0x18, 0xca, 0x92, 0xfd, 0x92, 0x9a, 0x68, 0x1b, 0xb5, 0x6b, 0x4e, - 0xdc, 0x56, 0x36, 0x4e, 0x26, 0xd4, 0x2c, 0x25, 0x36, 0xd5, 0xb6, 0xde, 0x03, 0x63, 0x8f, 0x44, - 0xd8, 0x84, 0xb5, 0x89, 0xe0, 0xec, 0x84, 0x86, 0x7a, 0x44, 0xda, 0xc5, 0x9b, 0x50, 0x09, 0xd8, - 0x13, 0x2a, 0xe3, 0x51, 0x15, 0x27, 0xe9, 0x58, 0x1f, 0x40, 0xed, 0x90, 0xc8, 0x3e, 0x67, 0x13, - 0x12, 0xe0, 0x77, 0x61, 0x95, 0xc4, 0xad, 0x78, 0xec, 0xba, 0xbd, 0xd9, 0x49, 0xdc, 0xeb, 0xa4, - 0xee, 0x75, 0xfa, 0x7c, 0xe6, 0x68, 0x0c, 0xae, 0x03, 0x7a, 0x16, 0x93, 0x19, 0x0e, 0x7a, 0x66, - 0xed, 0x41, 0xfd, 0x90, 0xc8, 0x9c, 0xab, 0x0b, 0x30, 0x26, 0xf2, 0x78, 0x09, 0xbe, 0xda, 0x38, - 0x1d, 0x64, 0x3d, 0x84, 0x8d, 0x84, 0x24, 0xe7, 0xb9, 0x0b, 0x0d, 0xc5, 0xb3, 0x24, 0x57, 0x7d, - 0x5c, 0x18, 0x6b, 0xdd, 0x86, 0xf5, 0x7d, 0x77, 0x2c, 0x1c, 0xfa, 0x8b, 0x29, 0x95, 0x89, 0x36, - 0x54, 0x4a, 0xe2, 0xd3, 0x4c, 0x9b, 0xa4, 0x6b, 0xb5, 0xa1, 0x9e, 0x00, 0xe5, 0xa9, 0xe0, 0x92, - 0x5e, 0x80, 0xfc, 0x3e, 0x6c, 0x3c, 0x22, 0xb3, 0x43, 0x1a, 0x04, 0x19, 0x6d, 0x1a, 0x0d, 0x54, - 0x88, 0x46, 0x07, 0x9a, 0x39, 0x4c, 0x93, 0xb6, 0xa0, 0xea, 0x87, 0x94, 0x46, 0x8c, 0xfb, 0x1a, - 0x9b, 0xf5, 0xad, 0x7d, 0x68, 0x7c, 0x44, 0x65, 0xa4, 0x96, 0xa0, 0x59, 0xbb, 0x00, 0x84, 0xcf, - 0x96, 0xd2, 0x8f, 0xf0, 0x99, 0x5e, 0xf0, 0x3e, 0x6c, 0x64, 0x34, 0x7a, 0x56, 0x7b, 0x4e, 0x1c, - 0xbe, 0xd5, 0x49, 0xb7, 0x65, 0x27, 0x13, 0xab, 0x18, 0x86, 0xc7, 0xb0, 0xa6, 0x68, 0x1e, 0x4a, - 0x1f, 0xff, 0x04, 0xd6, 0x24, 0xf3, 0x39, 0x0d, 0xa5, 0x89, 0xb6, 0x8d, 0x76, 0x7d, 0xb0, 0xfb, - 0xaf, 0x17, 0x37, 0xef, 0xf8, 0x2c, 0x1a, 0x4f, 0x87, 0x1d, 0x57, 0x4c, 0x76, 0x5c, 0x21, 0x27, - 0x42, 0xea, 0xbf, 0x3b, 0xd2, 0x3b, 0xd9, 0x89, 0x66, 0xa7, 0x54, 0x76, 0xfa, 0xae, 0xdb, 0xf7, - 0xbc, 0x90, 0x4a, 0xe9, 0xa4, 0x0c, 0xd6, 0x10, 0xbe, 0x39, 0x20, 0xde, 0xc3, 0x69, 0x10, 0xb1, - 0x47, 0xcc, 0xe7, 0x24, 0x9a, 0x86, 0x14, 0x6f, 0x01, 0xc8, 0xb4, 0xa3, 0x27, 0x71, 0x0a, 0x16, - 0x7c, 0x1b, 0x36, 0x26, 0x24, 0x60, 0x2e, 0x13, 0x53, 0x79, 0x3c, 0x62, 0x34, 0xf0, 0xcc, 0xca, - 0x36, 0x6a, 0xd7, 0x9d, 0x46, 0x66, 0x3e, 0x50, 0xd6, 0xbb, 0xe5, 0xe7, 0x7f, 0xb8, 0x89, 0xac, - 0x08, 0x6a, 0x7b, 0x53, 0x19, 0x89, 0x09, 0x0d, 0x77, 0x71, 0x03, 0x4a, 0xcc, 0x8b, 0x17, 0x5d, - 0x71, 0x4a, 0xcc, 0x9b, 0x97, 0x38, 0xf8, 0x07, 0xd0, 0x94, 0xd3, 0xa1, 0x74, 0x43, 0x76, 0x1a, - 0x31, 0xc1, 0x8f, 0x47, 0x94, 0x9a, 0xc6, 0x36, 0x6a, 0x97, 0x9c, 0x8d, 0xa2, 0xfd, 0x80, 0xc6, - 0xdb, 0xe2, 0x94, 0xcc, 0x26, 0x94, 0x47, 0xe6, 0x5a, 0xb2, 0x2d, 0x74, 0xd7, 0xfa, 0xa4, 0x94, - 0x4f, 0x6b, 0xbf, 0x36, 0x6d, 0x0b, 0xaa, 0x8c, 0x7b, 0x53, 0x19, 0x85, 0x33, 0x9d, 0x7d, 0x59, - 0x3f, 0x73, 0xc9, 0x28, 0xb8, 0xb4, 0x09, 0x95, 0x11, 0x7d, 0x4a, 0x43, 0xb3, 0x1c, 0xfb, 0x91, - 0x74, 0xf0, 0x9b, 0x50, 0x0d, 0xa9, 0xa4, 0xe1, 0x13, 0xea, 0x99, 0xbf, 0xaf, 0xc6, 0x79, 0x97, - 0x19, 0xf0, 0xbb, 0x50, 0x76, 0x59, 0x34, 0x33, 0x57, 0xb7, 0x51, 0xbb, 0x61, 0x9b, 0x79, 0x80, - 0x33, 0xaf, 0x3a, 0x7b, 0x2c, 0x9a, 0x39, 0x31, 0x0a, 0xdf, 0x85, 0x6f, 0x4c, 0x98, 0x74, 0x69, - 0x10, 0x10, 0x4e, 0xc5, 0x54, 0x9a, 0x70, 0xc1, 0xfe, 0x3a, 0x0b, 0xb5, 0x3e, 0x80, 0xb2, 0x62, - 0xc2, 0x55, 0x28, 0x3f, 0x20, 0x42, 0x36, 0x57, 0x70, 0x03, 0xe0, 0x81, 0x90, 0x7d, 0xee, 0xd3, - 0x80, 0xca, 0x26, 0xc2, 0x75, 0xa8, 0xfe, 0x94, 0x04, 0xa2, 0x1f, 0x44, 0xa2, 0x59, 0xc2, 0x00, - 0xab, 0x0f, 0x85, 0x74, 0xc5, 0xd3, 0xa6, 0x81, 0xd7, 0x61, 0xed, 0x88, 0xb0, 0x50, 0x0c, 0x59, - 0xb3, 0x6c, 0x75, 0xa0, 0x7a, 0x44, 0x65, 0x44, 0xbd, 0x5e, 0x7f, 0x99, 0x40, 0x59, 0x7f, 0x45, - 0xe9, 0x80, 0xee, 0x52, 0x03, 0xb0, 0x05, 0x25, 0xd2, 0x33, 0xcb, 0xdb, 0x46, 0x7b, 0xdd, 0xc6, - 0xb9, 0x22, 0xe9, 0xa4, 0x4e, 0x89, 0xf4, 0x70, 0x17, 0x2a, 0x8c, 0x7b, 0xf4, 0x99, 0x59, 0x89, - 0x61, 0x6f, 0x9d, 0x87, 0x75, 0xfb, 0x9d, 0xfb, 0xea, 0xf9, 0x3e, 0x8f, 0xc2, 0x99, 0x93, 0x60, - 0x5b, 0x0f, 0x00, 0x72, 0x23, 0x6e, 0x82, 0x71, 0x42, 0x67, 0xb1, 0x2f, 0x86, 0xa3, 0x9a, 0xb8, - 0x0d, 0x95, 0x27, 0x24, 0x98, 0x26, 0xde, 0xcc, 0x9f, 0x3b, 0x01, 0xdc, 0x2d, 0xfd, 0x08, 0x59, - 0x1f, 0xa7, 0xcb, 0xb2, 0x97, 0x5b, 0xd6, 0x3b, 0xb0, 0xca, 0x63, 0x7c, 0xbc, 0x67, 0xe6, 0xd0, - 0x77, 0xfb, 0x8e, 0x46, 0x58, 0x07, 0x29, 0xf7, 0xee, 0xeb, 0xdc, 0x39, 0xcf, 0x02, 0x37, 0xed, - 0x9c, 0xe7, 0xfd, 0x2c, 0x56, 0x83, 0xd7, 0x78, 0x9a, 0x60, 0xa8, 0x42, 0x99, 0x6c, 0x6c, 0xd5, - 0x9c, 0xb7, 0xa7, 0x2d, 0x2f, 0x0b, 0xde, 0x15, 0x19, 0x54, 0x38, 0x87, 0x8b, 0xc3, 0x39, 0x70, - 0x4a, 0xc3, 0x9e, 0xc5, 0x33, 0x2d, 0xe7, 0xce, 0xa2, 0x72, 0x5b, 0xcd, 0x82, 0x1c, 0xd5, 0x5c, - 0x42, 0xc9, 0x41, 0xaa, 0x80, 0xca, 0xc9, 0x50, 0x4c, 0x23, 0x1a, 0xe7, 0x64, 0xcd, 0x49, 0x3a, - 0xd6, 0xcf, 0x33, 0x7d, 0x07, 0x57, 0xd0, 0x37, 0x67, 0xd7, 0x0a, 0x18, 0x99, 0x02, 0xd6, 0xaf, - 0x0a, 0x15, 0xa5, 0xbb, 0xd4, 0xbe, 0x68, 0x40, 0x49, 0x8e, 0x74, 0xe9, 0x2a, 0xc9, 0x11, 0xfe, - 0x2e, 0xd4, 0xe4, 0x34, 0x74, 0xc7, 0x24, 0xf4, 0xa9, 0xae, 0x24, 0xb9, 0x01, 0x6f, 0xc3, 0xba, - 0x47, 0x65, 0xc4, 0x38, 0x51, 0xd5, 0x2d, 0x2e, 0xa9, 0x35, 0xa7, 0x68, 0xc2, 0x6f, 0x43, 0xc3, - 0x0d, 0xa9, 0xc7, 0xa2, 0x63, 0x97, 0x84, 0xde, 0x31, 0x17, 0x49, 0xd1, 0x3b, 0x5c, 0x71, 0xea, - 0x89, 0x7d, 0x8f, 0x84, 0xde, 0x91, 0xc0, 0x6f, 0x41, 0xcd, 0x1d, 0xab, 0xb7, 0x96, 0x82, 0x54, - 0x35, 0xa4, 0x9a, 0x98, 0x8e, 0x04, 0xde, 0x81, 0xaa, 0x08, 0x99, 0xcf, 0x38, 0x09, 0xcc, 0xda, - 0xf9, 0xd7, 0x4f, 0x56, 0xaa, 0x9d, 0x0c, 0x34, 0xa8, 0x65, 0x55, 0xd6, 0xfa, 0x67, 0x09, 0xea, - 0xea, 0x4d, 0xf4, 0x98, 0x86, 0x92, 0x09, 0xbe, 0x9b, 0x9c, 0x39, 0x90, 0x3e, 0x73, 0xe0, 0x5b, - 0x80, 0x88, 0x16, 0xf7, 0x8d, 0x9c, 0xb3, 0x38, 0xc0, 0x41, 0x44, 0xa1, 0x86, 0x3a, 0xc0, 0x0b, - 0x51, 0x43, 0x85, 0x72, 0xf5, 0xe6, 0x5a, 0x88, 0x72, 0xf1, 0x3b, 0x80, 0x3c, 0x5d, 0x2a, 0x16, - 0xa0, 0x06, 0xe5, 0x4f, 0x5f, 0xdc, 0x5c, 0x71, 0x90, 0x87, 0x1b, 0x80, 0x68, 0x5c, 0x8f, 0x2b, - 0x87, 0x2b, 0x0e, 0xa2, 0xf8, 0x6d, 0x40, 0xa3, 0x58, 0xc2, 0x85, 0x63, 0x15, 0x6e, 0x84, 0x2d, - 0x40, 0x7e, 0xac, 0xe3, 0xa2, 0x82, 0x8c, 0x7c, 0xe5, 0xed, 0xd8, 0xac, 0x5d, 0xec, 0xed, 0x18, - 0xdf, 0x06, 0x74, 0x62, 0xd6, 0x17, 0x6a, 0x3e, 0x28, 0x3f, 0x7f, 0x71, 0x13, 0x39, 0xe8, 0x64, - 0x50, 0x01, 0x43, 0x4e, 0x27, 0xd6, 0xaf, 0x8d, 0x33, 0x72, 0xdb, 0x97, 0x95, 0xdb, 0x5e, 0x4a, - 0x6e, 0x7b, 0x29, 0xb9, 0x6d, 0x25, 0xf7, 0xad, 0xcf, 0x92, 0xdb, 0xbe, 0x92, 0xd0, 0xf6, 0x17, - 0x28, 0xb4, 0x7d, 0x19, 0xa1, 0xf1, 0x9b, 0x50, 0xe3, 0xf4, 0xa9, 0x3e, 0xc6, 0xdc, 0xd8, 0x46, - 0xed, 0xb2, 0x53, 0xe5, 0xf4, 0x69, 0x7c, 0x80, 0x49, 0xa3, 0xf0, 0xbb, 0xb3, 0x51, 0xe8, 0x5e, - 0x36, 0x0a, 0xdd, 0xa5, 0xa2, 0xd0, 0x5d, 0x2a, 0x0a, 0xdd, 0xa5, 0xa2, 0xd0, 0xbd, 0x52, 0x14, - 0xba, 0x5f, 0xd5, 0x76, 0xc7, 0x77, 0x00, 0x73, 0xc1, 0x8f, 0xdd, 0x90, 0x45, 0xcc, 0x25, 0x81, - 0x0e, 0xc7, 0x6f, 0xe2, 0xda, 0xe5, 0x34, 0xb9, 0xe0, 0x7b, 0xfa, 0xc9, 0x99, 0xb8, 0xfc, 0xbb, - 0x04, 0xad, 0xa2, 0xfb, 0x0f, 0x04, 0xa7, 0x1f, 0x72, 0xfa, 0xe1, 0xe8, 0xb1, 0x7a, 0x95, 0x5f, - 0xd3, 0x28, 0x5d, 0x1b, 0xf5, 0xff, 0xb3, 0x0a, 0xdf, 0x39, 0xaf, 0xfe, 0x51, 0xfc, 0xb6, 0xf2, - 0xaf, 0x89, 0xf4, 0xbb, 0x79, 0x42, 0x7c, 0x6f, 0x3e, 0xaa, 0xb0, 0xa6, 0x6b, 0x92, 0x1b, 0xf8, - 0x7d, 0x58, 0x65, 0x9c, 0xd3, 0x70, 0xd7, 0x6c, 0xc4, 0xe4, 0xed, 0xcf, 0x5c, 0x59, 0xe7, 0x7e, - 0x8c, 0x77, 0xf4, 0xb8, 0x8c, 0xc1, 0x36, 0x37, 0x2e, 0xc5, 0x60, 0x6b, 0x06, 0xbb, 0xf5, 0x47, - 0x04, 0xab, 0x09, 0x69, 0xe1, 0x9c, 0x64, 0x2c, 0x3c, 0x27, 0xdd, 0x57, 0x47, 0x7e, 0x4e, 0x43, - 0x1d, 0xfd, 0xee, 0xb2, 0x1e, 0x27, 0x7f, 0xf1, 0x8f, 0x93, 0x30, 0xb4, 0x7e, 0xa8, 0x3e, 0x04, - 0x52, 0x63, 0x61, 0xf2, 0x5a, 0x3a, 0x79, 0xfc, 0x4d, 0xa6, 0x27, 0x57, 0xed, 0xd6, 0x9f, 0x52, - 0x5f, 0xed, 0xd7, 0xe0, 0x26, 0xac, 0xb9, 0x62, 0xca, 0xd3, 0x8f, 0xc4, 0x9a, 0x93, 0x76, 0xaf, - 0xea, 0xb1, 0xfd, 0x45, 0x78, 0x9c, 0xe6, 0xdf, 0x7f, 0xcf, 0xe6, 0x5f, 0xef, 0xeb, 0xfc, 0xbb, - 0x46, 0xf9, 0xd7, 0xfb, 0xdc, 0xf9, 0xd7, 0xfb, 0x92, 0xf3, 0xaf, 0xf7, 0xb9, 0xf2, 0xcf, 0x58, - 0x98, 0x7f, 0x9f, 0xfc, 0xdf, 0xf2, 0xaf, 0xb7, 0x54, 0xfe, 0xd9, 0x17, 0xe6, 0xdf, 0x66, 0xf1, - 0xe2, 0xc0, 0xd0, 0x97, 0x04, 0x69, 0x06, 0xfe, 0x05, 0x25, 0x97, 0x84, 0x7a, 0xbe, 0x83, 0x7b, - 0x57, 0xfb, 0x1c, 0xfa, 0xca, 0x3f, 0x4b, 0xd2, 0xf5, 0xfc, 0x1d, 0x9d, 0x39, 0x4f, 0x1d, 0xdc, - 0xdb, 0xfd, 0x19, 0x8b, 0xc6, 0xfb, 0xcf, 0xa2, 0x90, 0xf4, 0xf9, 0xec, 0x4b, 0x5d, 0xdb, 0xad, - 0x7c, 0x6d, 0x05, 0x5c, 0x9f, 0xcf, 0x32, 0x8f, 0x2e, 0xbd, 0xba, 0x8f, 0xa0, 0x5e, 0x1c, 0x8f, - 0xdb, 0x6a, 0x01, 0x17, 0x5c, 0xe3, 0xa6, 0x15, 0x80, 0xa8, 0x85, 0x27, 0x95, 0xd1, 0x50, 0x15, - 0xb0, 0x9e, 0x54, 0xc0, 0xb8, 0xe7, 0xda, 0x7f, 0x46, 0xb0, 0xae, 0x26, 0x7c, 0x44, 0xc3, 0x27, - 0xcc, 0xa5, 0xf8, 0x3d, 0x28, 0xef, 0xbb, 0x63, 0x81, 0xbf, 0x9d, 0xfb, 0x53, 0xb8, 0xf1, 0x6e, - 0xbd, 0x71, 0xde, 0xac, 0x2f, 0x85, 0xfb, 0x50, 0x4d, 0xaf, 0xa7, 0xf1, 0x8d, 0x1c, 0x73, 0xee, - 0x66, 0xbb, 0xd5, 0x9a, 0xf7, 0x48, 0x53, 0xfc, 0x38, 0xb9, 0x23, 0x56, 0x91, 0x32, 0xcf, 0x8a, - 0x91, 0x5f, 0x62, 0xb7, 0x6e, 0xcc, 0x79, 0x92, 0x8c, 0x1f, 0x1c, 0x7e, 0xfa, 0x72, 0x0b, 0x3d, - 0x7f, 0xb9, 0x85, 0xfe, 0xf1, 0x72, 0x0b, 0xfd, 0xf6, 0xd5, 0xd6, 0xca, 0xf3, 0x57, 0x5b, 0x2b, - 0x7f, 0x7b, 0xb5, 0xb5, 0xf2, 0x71, 0xe7, 0xe2, 0xdb, 0x65, 0x2a, 0xa3, 0x69, 0xc4, 0x82, 0x9d, - 0x94, 0x79, 0xb8, 0x1a, 0xcb, 0xd8, 0xfd, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x45, 0xa4, - 0xce, 0x79, 0x19, 0x00, 0x00, + 0x92, 0xb1, 0xb3, 0x4e, 0x16, 0x76, 0x14, 0x89, 0x8b, 0x5d, 0xf5, 0xfa, 0xab, 0xaf, 0x5e, 0x7d, + 0xaf, 0xde, 0xeb, 0xea, 0x82, 0xf5, 0xd3, 0x50, 0x44, 0xa2, 0x13, 0xff, 0xe2, 0x6a, 0x44, 0x65, + 0xe4, 0x91, 0x88, 0xb4, 0x36, 0x7d, 0xe1, 0x8b, 0xd8, 0xb8, 0xa3, 0x5a, 0xc9, 0xf3, 0xd6, 0x0d, + 0x5f, 0x08, 0x3f, 0xa0, 0x3b, 0x71, 0x6f, 0x38, 0x1d, 0xed, 0x10, 0x3e, 0x4b, 0x1e, 0x59, 0x77, + 0xc0, 0xb8, 0x27, 0x7c, 0x8c, 0xa1, 0x2c, 0xd9, 0xcf, 0xa9, 0x89, 0xb6, 0x51, 0xbb, 0xe6, 0xc4, + 0x6d, 0x65, 0xe3, 0x64, 0x42, 0xcd, 0x52, 0x62, 0x53, 0x6d, 0xeb, 0x03, 0x30, 0xf6, 0x48, 0x84, + 0x4d, 0x58, 0x9b, 0x08, 0xce, 0x4e, 0x68, 0xa8, 0x47, 0xa4, 0x5d, 0xbc, 0x09, 0x95, 0x80, 0x3d, + 0xa1, 0x32, 0x1e, 0x55, 0x71, 0x92, 0x8e, 0xf5, 0x11, 0xd4, 0x0e, 0x89, 0xec, 0x73, 0x36, 0x21, + 0x01, 0x7e, 0x1f, 0x56, 0x49, 0xdc, 0x8a, 0xc7, 0xae, 0xdb, 0x9b, 0x9d, 0xc4, 0xbd, 0x4e, 0xea, + 0x5e, 0xa7, 0xcf, 0x67, 0x8e, 0xc6, 0xe0, 0x3a, 0xa0, 0x67, 0x31, 0x99, 0xe1, 0xa0, 0x67, 0xd6, + 0x1e, 0xd4, 0x0f, 0x89, 0xcc, 0xb9, 0xba, 0x00, 0x63, 0x22, 0x8f, 0x97, 0xe0, 0xab, 0x8d, 0xd3, + 0x41, 0xd6, 0x43, 0xd8, 0x48, 0x48, 0x72, 0x9e, 0xbb, 0xd0, 0x50, 0x3c, 0x4b, 0x72, 0xd5, 0xc7, + 0x85, 0xb1, 0xd6, 0x6d, 0x58, 0xdf, 0x77, 0xc7, 0xc2, 0xa1, 0x3f, 0x9b, 0x52, 0x99, 0x68, 0x43, + 0xa5, 0x24, 0x3e, 0xcd, 0xb4, 0x49, 0xba, 0x56, 0x1b, 0xea, 0x09, 0x50, 0x9e, 0x0a, 0x2e, 0xe9, + 0x05, 0xc8, 0xef, 0xc2, 0xc6, 0x23, 0x32, 0x3b, 0xa4, 0x41, 0x90, 0xd1, 0xa6, 0xd1, 0x40, 0x85, + 0x68, 0x74, 0xa0, 0x99, 0xc3, 0x34, 0x69, 0x0b, 0xaa, 0x7e, 0x48, 0x69, 0xc4, 0xb8, 0xaf, 0xb1, + 0x59, 0xdf, 0xda, 0x87, 0xc6, 0x27, 0x54, 0x46, 0x6a, 0x09, 0x9a, 0xb5, 0x0b, 0x40, 0xf8, 0x6c, + 0x29, 0xfd, 0x08, 0x9f, 0xe9, 0x05, 0xef, 0xc3, 0x46, 0x46, 0xa3, 0x67, 0xb5, 0xe7, 0xc4, 0xe1, + 0x1b, 0x9d, 0x74, 0x5b, 0x76, 0x32, 0xb1, 0x8a, 0x61, 0x78, 0x0c, 0x6b, 0x8a, 0xe6, 0xa1, 0xf4, + 0xf1, 0x8f, 0x60, 0x4d, 0x32, 0x9f, 0xd3, 0x50, 0x9a, 0x68, 0xdb, 0x68, 0xd7, 0x07, 0xbb, 0xff, + 0x78, 0x71, 0xf3, 0x8e, 0xcf, 0xa2, 0xf1, 0x74, 0xd8, 0x71, 0xc5, 0x64, 0xc7, 0x15, 0x72, 0x22, + 0xa4, 0xfe, 0xbb, 0x23, 0xbd, 0x93, 0x9d, 0x68, 0x76, 0x4a, 0x65, 0xa7, 0xef, 0xba, 0x7d, 0xcf, + 0x0b, 0xa9, 0x94, 0x4e, 0xca, 0x60, 0x0d, 0xe1, 0xeb, 0x03, 0xe2, 0x3d, 0x9c, 0x06, 0x11, 0x7b, + 0xc4, 0x7c, 0x4e, 0xa2, 0x69, 0x48, 0xf1, 0x16, 0x80, 0x4c, 0x3b, 0x7a, 0x12, 0xa7, 0x60, 0xc1, + 0xb7, 0x61, 0x63, 0x42, 0x02, 0xe6, 0x32, 0x31, 0x95, 0xc7, 0x23, 0x46, 0x03, 0xcf, 0xac, 0x6c, + 0xa3, 0x76, 0xdd, 0x69, 0x64, 0xe6, 0x03, 0x65, 0xbd, 0x5b, 0x7e, 0xfe, 0xbb, 0x9b, 0xc8, 0x8a, + 0xa0, 0xb6, 0x37, 0x95, 0x91, 0x98, 0xd0, 0x70, 0x17, 0x37, 0xa0, 0xc4, 0xbc, 0x78, 0xd1, 0x15, + 0xa7, 0xc4, 0xbc, 0x79, 0x89, 0x83, 0xbf, 0x07, 0x4d, 0x39, 0x1d, 0x4a, 0x37, 0x64, 0xa7, 0x11, + 0x13, 0xfc, 0x78, 0x44, 0xa9, 0x69, 0x6c, 0xa3, 0x76, 0xc9, 0xd9, 0x28, 0xda, 0x0f, 0x68, 0xbc, + 0x2d, 0x4e, 0xc9, 0x6c, 0x42, 0x79, 0x64, 0xae, 0x25, 0xdb, 0x42, 0x77, 0xad, 0xcf, 0x4a, 0xf9, + 0xb4, 0xf6, 0x6b, 0xd3, 0xb6, 0xa0, 0xca, 0xb8, 0x37, 0x95, 0x51, 0x38, 0xd3, 0xd9, 0x97, 0xf5, + 0x33, 0x97, 0x8c, 0x82, 0x4b, 0x9b, 0x50, 0x19, 0xd1, 0xa7, 0x34, 0x34, 0xcb, 0xb1, 0x1f, 0x49, + 0x07, 0xbf, 0x0d, 0xd5, 0x90, 0x4a, 0x1a, 0x3e, 0xa1, 0x9e, 0xf9, 0xdb, 0x6a, 0x9c, 0x77, 0x99, + 0x01, 0xbf, 0x0f, 0x65, 0x97, 0x45, 0x33, 0x73, 0x75, 0x1b, 0xb5, 0x1b, 0xb6, 0x99, 0x07, 0x38, + 0xf3, 0xaa, 0xb3, 0xc7, 0xa2, 0x99, 0x13, 0xa3, 0xf0, 0x5d, 0xf8, 0xda, 0x84, 0x49, 0x97, 0x06, + 0x01, 0xe1, 0x54, 0x4c, 0xa5, 0x09, 0x17, 0xec, 0xaf, 0xb3, 0x50, 0xeb, 0x23, 0x28, 0x2b, 0x26, + 0x5c, 0x85, 0xf2, 0x03, 0x22, 0x64, 0x73, 0x05, 0x37, 0x00, 0x1e, 0x08, 0xd9, 0xe7, 0x3e, 0x0d, + 0xa8, 0x6c, 0x22, 0x5c, 0x87, 0xea, 0x8f, 0x49, 0x20, 0xfa, 0x41, 0x24, 0x9a, 0x25, 0x0c, 0xb0, + 0xfa, 0x50, 0x48, 0x57, 0x3c, 0x6d, 0x1a, 0x78, 0x1d, 0xd6, 0x8e, 0x08, 0x0b, 0xc5, 0x90, 0x35, + 0xcb, 0x56, 0x07, 0xaa, 0x47, 0x54, 0x46, 0xd4, 0xeb, 0xf5, 0x97, 0x09, 0x94, 0xf5, 0x67, 0x94, + 0x0e, 0xe8, 0x2e, 0x35, 0x00, 0x5b, 0x50, 0x22, 0x3d, 0xb3, 0xbc, 0x6d, 0xb4, 0xd7, 0x6d, 0x9c, + 0x2b, 0x92, 0x4e, 0xea, 0x94, 0x48, 0x0f, 0x77, 0xa1, 0xc2, 0xb8, 0x47, 0x9f, 0x99, 0x95, 0x18, + 0xf6, 0xce, 0x79, 0x58, 0xb7, 0xdf, 0xb9, 0xaf, 0x9e, 0xef, 0xf3, 0x28, 0x9c, 0x39, 0x09, 0xb6, + 0xf5, 0x00, 0x20, 0x37, 0xe2, 0x26, 0x18, 0x27, 0x74, 0x16, 0xfb, 0x62, 0x38, 0xaa, 0x89, 0xdb, + 0x50, 0x79, 0x42, 0x82, 0x69, 0xe2, 0xcd, 0xfc, 0xb9, 0x13, 0xc0, 0xdd, 0xd2, 0x0f, 0x90, 0xf5, + 0x69, 0xba, 0x2c, 0x7b, 0xb9, 0x65, 0xbd, 0x07, 0xab, 0x3c, 0xc6, 0xc7, 0x7b, 0x66, 0x0e, 0x7d, + 0xb7, 0xef, 0x68, 0x84, 0x75, 0x90, 0x72, 0xef, 0xbe, 0xce, 0x9d, 0xf3, 0x2c, 0x70, 0xd3, 0xce, + 0x79, 0x3e, 0xcc, 0x62, 0x35, 0x78, 0x8d, 0xa7, 0x09, 0x86, 0x2a, 0x94, 0xc9, 0xc6, 0x56, 0xcd, + 0x79, 0x7b, 0xda, 0xf2, 0xb2, 0xe0, 0x5d, 0x91, 0x41, 0x85, 0x73, 0xb8, 0x38, 0x9c, 0x03, 0xa7, + 0x34, 0xec, 0x59, 0x3c, 0xd3, 0x72, 0xee, 0x2c, 0x2a, 0xb7, 0xd5, 0x2c, 0xc8, 0x51, 0xcd, 0x25, + 0x94, 0x1c, 0xa4, 0x0a, 0xa8, 0x9c, 0x0c, 0xc5, 0x34, 0xa2, 0x71, 0x4e, 0xd6, 0x9c, 0xa4, 0x63, + 0xfd, 0x34, 0xd3, 0x77, 0x70, 0x05, 0x7d, 0x73, 0x76, 0xad, 0x80, 0x91, 0x29, 0x60, 0xfd, 0xa2, + 0x50, 0x51, 0xba, 0x4b, 0xed, 0x8b, 0x06, 0x94, 0xe4, 0x48, 0x97, 0xae, 0x92, 0x1c, 0xe1, 0x6f, + 0x43, 0x4d, 0x4e, 0x43, 0x77, 0x4c, 0x42, 0x9f, 0xea, 0x4a, 0x92, 0x1b, 0xf0, 0x36, 0xac, 0x7b, + 0x54, 0x46, 0x8c, 0x13, 0x55, 0xdd, 0xe2, 0x92, 0x5a, 0x73, 0x8a, 0x26, 0xfc, 0x2e, 0x34, 0xdc, + 0x90, 0x7a, 0x2c, 0x3a, 0x76, 0x49, 0xe8, 0x1d, 0x73, 0x91, 0x14, 0xbd, 0xc3, 0x15, 0xa7, 0x9e, + 0xd8, 0xf7, 0x48, 0xe8, 0x1d, 0x09, 0xfc, 0x0e, 0xd4, 0xdc, 0xb1, 0x7a, 0x6b, 0x29, 0x48, 0x55, + 0x43, 0xaa, 0x89, 0xe9, 0x48, 0xe0, 0x1d, 0xa8, 0x8a, 0x90, 0xf9, 0x8c, 0x93, 0xc0, 0xac, 0x9d, + 0x7f, 0xfd, 0x64, 0xa5, 0xda, 0xc9, 0x40, 0x83, 0x5a, 0x56, 0x65, 0xad, 0xbf, 0x97, 0xa0, 0xae, + 0xde, 0x44, 0x8f, 0x69, 0x28, 0x99, 0xe0, 0xbb, 0xc9, 0x99, 0x03, 0xe9, 0x33, 0x07, 0xbe, 0x05, + 0x88, 0x68, 0x71, 0xdf, 0xca, 0x39, 0x8b, 0x03, 0x1c, 0x44, 0x14, 0x6a, 0xa8, 0x03, 0xbc, 0x10, + 0x35, 0x54, 0x28, 0x57, 0x6f, 0xae, 0x85, 0x28, 0x17, 0xbf, 0x07, 0xc8, 0xd3, 0xa5, 0x62, 0x01, + 0x6a, 0x50, 0xfe, 0xfc, 0xc5, 0xcd, 0x15, 0x07, 0x79, 0xb8, 0x01, 0x88, 0xc6, 0xf5, 0xb8, 0x72, + 0xb8, 0xe2, 0x20, 0x8a, 0xdf, 0x05, 0x34, 0x8a, 0x25, 0x5c, 0x38, 0x56, 0xe1, 0x46, 0xd8, 0x02, + 0xe4, 0xc7, 0x3a, 0x2e, 0x2a, 0xc8, 0xc8, 0x57, 0xde, 0x8e, 0xcd, 0xda, 0xc5, 0xde, 0x8e, 0xf1, + 0x6d, 0x40, 0x27, 0x66, 0x7d, 0xa1, 0xe6, 0x83, 0xf2, 0xf3, 0x17, 0x37, 0x91, 0x83, 0x4e, 0x06, + 0x15, 0x30, 0xe4, 0x74, 0x62, 0xfd, 0xd2, 0x38, 0x23, 0xb7, 0x7d, 0x59, 0xb9, 0xed, 0xa5, 0xe4, + 0xb6, 0x97, 0x92, 0xdb, 0x56, 0x72, 0xdf, 0xfa, 0x22, 0xb9, 0xed, 0x2b, 0x09, 0x6d, 0xbf, 0x29, + 0xa1, 0xf1, 0xdb, 0x50, 0xe3, 0xf4, 0xa9, 0x3e, 0xc6, 0xdc, 0xd8, 0x46, 0xed, 0xb2, 0x53, 0xe5, + 0xf4, 0x69, 0x7c, 0x80, 0x49, 0xa3, 0xf0, 0x9b, 0xb3, 0x51, 0xe8, 0x5e, 0x36, 0x0a, 0xdd, 0xa5, + 0xa2, 0xd0, 0x5d, 0x2a, 0x0a, 0xdd, 0xa5, 0xa2, 0xd0, 0xbd, 0x52, 0x14, 0xba, 0x6f, 0x2c, 0x0a, + 0x77, 0x00, 0x73, 0xc1, 0x8f, 0xdd, 0x90, 0x45, 0xcc, 0x25, 0x81, 0x0e, 0xc7, 0xaf, 0xe2, 0xda, + 0xe5, 0x34, 0xb9, 0xe0, 0x7b, 0xfa, 0xc9, 0x99, 0xb8, 0xfc, 0xb3, 0x04, 0xad, 0xa2, 0xfb, 0x0f, + 0x04, 0xa7, 0x1f, 0x73, 0xfa, 0xf1, 0xe8, 0xb1, 0x7a, 0x95, 0x5f, 0xd3, 0x28, 0x5d, 0x1b, 0xf5, + 0xff, 0xb5, 0x0a, 0xdf, 0x3a, 0xaf, 0xfe, 0x51, 0xfc, 0xb6, 0xf2, 0xaf, 0x89, 0xf4, 0xbb, 0x79, + 0x42, 0x7c, 0x67, 0x3e, 0xaa, 0xb0, 0xa6, 0x6b, 0x92, 0x1b, 0xf8, 0x43, 0x58, 0x65, 0x9c, 0xd3, + 0x70, 0xd7, 0x6c, 0xc4, 0xe4, 0xed, 0x2f, 0x5c, 0x59, 0xe7, 0x7e, 0x8c, 0x77, 0xf4, 0xb8, 0x8c, + 0xc1, 0x36, 0x37, 0x2e, 0xc5, 0x60, 0x6b, 0x06, 0xbb, 0xf5, 0x7b, 0x04, 0xab, 0x09, 0x69, 0xe1, + 0x9c, 0x64, 0x2c, 0x3c, 0x27, 0xdd, 0x57, 0x47, 0x7e, 0x4e, 0x43, 0x1d, 0xfd, 0xee, 0xb2, 0x1e, + 0x27, 0x7f, 0xf1, 0x8f, 0x93, 0x30, 0xb4, 0xbe, 0xaf, 0x3e, 0x04, 0x52, 0x63, 0x61, 0xf2, 0x5a, + 0x3a, 0x79, 0xfc, 0x4d, 0xa6, 0x27, 0x57, 0xed, 0xd6, 0x1f, 0x52, 0x5f, 0xed, 0xd7, 0xe0, 0x26, + 0xac, 0xb9, 0x62, 0xca, 0xd3, 0x8f, 0xc4, 0x9a, 0x93, 0x76, 0xaf, 0xea, 0xb1, 0xfd, 0xdf, 0xf0, + 0x38, 0xcd, 0xbf, 0x7f, 0x9f, 0xcd, 0xbf, 0xde, 0xff, 0xf3, 0xef, 0x1a, 0xe5, 0x5f, 0xef, 0x4b, + 0xe7, 0x5f, 0xef, 0x2b, 0xce, 0xbf, 0xde, 0x97, 0xca, 0x3f, 0x63, 0x61, 0xfe, 0x7d, 0xf6, 0x3f, + 0xcb, 0xbf, 0xde, 0x52, 0xf9, 0x67, 0x5f, 0x98, 0x7f, 0x9b, 0xc5, 0x8b, 0x03, 0x43, 0x5f, 0x12, + 0xa4, 0x19, 0xf8, 0x27, 0x94, 0x5c, 0x12, 0xea, 0xf9, 0x0e, 0xee, 0x5d, 0xed, 0x73, 0xe8, 0x8d, + 0x7f, 0x96, 0xa4, 0xeb, 0xf9, 0x2b, 0x3a, 0x73, 0x9e, 0x3a, 0xb8, 0xb7, 0xfb, 0x13, 0x16, 0x8d, + 0xf7, 0x9f, 0x45, 0x21, 0xe9, 0xf3, 0xd9, 0x57, 0xba, 0xb6, 0x5b, 0xf9, 0xda, 0x0a, 0xb8, 0x3e, + 0x9f, 0x65, 0x1e, 0x5d, 0x7a, 0x75, 0x9f, 0x40, 0xbd, 0x38, 0x1e, 0xb7, 0xd5, 0x02, 0x2e, 0xb8, + 0xc6, 0x4d, 0x2b, 0x00, 0x51, 0x0b, 0x4f, 0x2a, 0xa3, 0xa1, 0x2a, 0x60, 0x3d, 0xa9, 0x80, 0x71, + 0xcf, 0xb5, 0xff, 0x88, 0x60, 0x5d, 0x4d, 0xf8, 0x88, 0x86, 0x4f, 0x98, 0x4b, 0xf1, 0x07, 0x50, + 0xde, 0x77, 0xc7, 0x02, 0x7f, 0x33, 0xf7, 0xa7, 0x70, 0xe3, 0xdd, 0x7a, 0xeb, 0xbc, 0x59, 0x5f, + 0x0a, 0xf7, 0xa1, 0x9a, 0x5e, 0x4f, 0xe3, 0x1b, 0x39, 0xe6, 0xdc, 0xcd, 0x76, 0xab, 0x35, 0xef, + 0x91, 0xa6, 0xf8, 0x61, 0x72, 0x47, 0xac, 0x22, 0x65, 0x9e, 0x15, 0x23, 0xbf, 0xc4, 0x6e, 0xdd, + 0x98, 0xf3, 0x24, 0x19, 0x3f, 0x38, 0xfc, 0xfc, 0xe5, 0x16, 0x7a, 0xfe, 0x72, 0x0b, 0xfd, 0xed, + 0xe5, 0x16, 0xfa, 0xf5, 0xab, 0xad, 0x95, 0xe7, 0xaf, 0xb6, 0x56, 0xfe, 0xf2, 0x6a, 0x6b, 0xe5, + 0xd3, 0xce, 0xc5, 0xb7, 0xcb, 0x54, 0x46, 0xd3, 0x88, 0x05, 0x3b, 0x29, 0xf3, 0x70, 0x35, 0x96, + 0xb1, 0xfb, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x62, 0xd0, 0xa8, 0x05, 0x79, 0x19, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -10935,7 +10934,7 @@ func (m *TestVersion2) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.H = append(m.H, &TestVersion2{}) + m.H = append(m.H, &TestVersion1{}) if err := m.H[len(m.H)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/x/auth/types/account.go b/x/auth/types/account.go index 5150332572cf..72f513818292 100644 --- a/x/auth/types/account.go +++ b/x/auth/types/account.go @@ -6,6 +6,9 @@ import ( "fmt" "strings" + "github.com/cosmos/cosmos-sdk/codec" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" + "github.com/cosmos/cosmos-sdk/crypto/types" "github.com/tendermint/tendermint/crypto" @@ -21,13 +24,27 @@ var ( _ ModuleAccountI = (*ModuleAccount)(nil) ) +// BaseAccount defines a base account type. It contains all the necessary fields +// for basic account functionality. Any custom account type should extend this +// type for additional functionality (e.g. vesting). +type BaseAccount struct { + Address sdk.AccAddress `protobuf:"bytes,1,opt,name=address,proto3,casttype=github.com/cosmos/cosmos-sdk/types.AccAddress" json:"address,omitempty"` + PubKey *types.PublicKey `protobuf:"bytes,2,opt,name=pub_key,json=pubKey,proto3" json:"public_key,omitempty" yaml:"public_key"` + AccountNumber uint64 `protobuf:"varint,3,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty" yaml:"account_number"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` + + // NOTE: this is somewhat of a hack to not have to break the AccountI.Get/SetPubKey interface methods. It should + // likely be replaced with something less hacky in the future (this involves re-enabled gogoproto.typedecl). + decodedPubKey crypto.PubKey +} + // NewBaseAccount creates a new BaseAccount object -func NewBaseAccount(address sdk.AccAddress, pubKey *types.PublicKey, accountNumber, sequence uint64) *BaseAccount { +func NewBaseAccount(address sdk.AccAddress, pubKey crypto.PubKey, accountNumber, sequence uint64) *BaseAccount { acc := &BaseAccount{ Address: address, AccountNumber: accountNumber, Sequence: sequence, - PubKey: pubKey, + decodedPubKey: pubKey, } return acc @@ -61,13 +78,13 @@ func (acc *BaseAccount) SetAddress(addr sdk.AccAddress) error { } // GetPubKey - Implements sdk.AccountI. -func (acc BaseAccount) GetPubKey() (pk *types.PublicKey) { - return acc.PubKey +func (acc BaseAccount) GetPubKey() (pk crypto.PubKey) { + panic("TODO") } // SetPubKey - Implements sdk.AccountI. -func (acc *BaseAccount) SetPubKey(pubKey *types.PublicKey) error { - acc.PubKey = pubKey +func (acc *BaseAccount) SetPubKey(pubKey crypto.PubKey) error { + panic("TODO") return nil } @@ -112,26 +129,10 @@ type baseAccountPretty struct { // MarshalYAML returns the YAML representation of an account. func (acc BaseAccount) MarshalYAML() (interface{}, error) { - alias := baseAccountPretty{ - Address: acc.Address, - AccountNumber: acc.AccountNumber, - Sequence: acc.Sequence, - } - - if acc.PubKey != nil { - pks, err := sdk.Bech32ifyPubKey(sdk.Bech32PubKeyTypeAccPub, acc.GetPubKey()) - if err != nil { - return nil, err - } - - alias.PubKey = pks - } - - bz, err := yaml.Marshal(alias) + bz, err := codec.MarshalYAML(codec.NewProtoCodec(codectypes.NewInterfaceRegistry()), acc) if err != nil { return nil, err } - return string(bz), err } @@ -190,7 +191,7 @@ func (ma ModuleAccount) GetPermissions() []string { } // SetPubKey - Implements AccountI -func (ma ModuleAccount) SetPubKey(pubKey *types.PublicKey) error { +func (ma ModuleAccount) SetPubKey(pubKey crypto.PubKey) error { return fmt.Errorf("not supported for module accounts") } @@ -280,8 +281,8 @@ type AccountI interface { GetAddress() sdk.AccAddress SetAddress(sdk.AccAddress) error // errors if already set. - GetPubKey() *types.PublicKey // can return nil. - SetPubKey(*types.PublicKey) error + GetPubKey() crypto.PubKey // can return nil. + SetPubKey(crypto.PubKey) error GetAccountNumber() uint64 SetAccountNumber(uint64) error diff --git a/x/auth/types/auth.pb.go b/x/auth/types/auth.pb.go index c23e6ae8b722..a7b66ace9b08 100644 --- a/x/auth/types/auth.pb.go +++ b/x/auth/types/auth.pb.go @@ -5,14 +5,14 @@ package types import ( fmt "fmt" + io "io" + math "math" + math_bits "math/bits" + types "github.com/cosmos/cosmos-sdk/crypto/types" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" _ "github.com/regen-network/cosmos-proto" - io "io" - math "math" - math_bits "math/bits" ) // Reference imports to suppress errors if they are not otherwise used. @@ -26,16 +26,6 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -// BaseAccount defines a base account type. It contains all the necessary fields -// for basic account functionality. Any custom account type should extend this -// type for additional functionality (e.g. vesting). -type BaseAccount struct { - Address github_com_cosmos_cosmos_sdk_types.AccAddress `protobuf:"bytes,1,opt,name=address,proto3,casttype=github.com/cosmos/cosmos-sdk/types.AccAddress" json:"address,omitempty"` - PubKey *types.PublicKey `protobuf:"bytes,2,opt,name=pub_key,json=pubKey,proto3" json:"public_key,omitempty" yaml:"public_key"` - AccountNumber uint64 `protobuf:"varint,3,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty" yaml:"account_number"` - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` -} - func (m *BaseAccount) Reset() { *m = BaseAccount{} } func (*BaseAccount) ProtoMessage() {} func (*BaseAccount) Descriptor() ([]byte, []int) { @@ -192,50 +182,50 @@ func init() { func init() { proto.RegisterFile("cosmos/auth/auth.proto", fileDescriptor_ec2401f40a84da7e) } var fileDescriptor_ec2401f40a84da7e = []byte{ - // 674 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0x3f, 0x4f, 0xdb, 0x4e, - 0x18, 0x8e, 0x49, 0x7e, 0xfc, 0xb9, 0x00, 0x12, 0x26, 0x80, 0xc9, 0xaf, 0xf2, 0x59, 0x9e, 0x52, - 0xa9, 0x49, 0x04, 0x15, 0x95, 0xc8, 0x50, 0x15, 0xd3, 0x0e, 0x88, 0x82, 0x90, 0x91, 0xaa, 0xaa, - 0x8b, 0x6b, 0x5f, 0xae, 0xc1, 0x22, 0x97, 0x33, 0xbe, 0x73, 0x15, 0xf3, 0x09, 0x3a, 0x76, 0xec, - 0xc8, 0x47, 0xe8, 0xd0, 0xad, 0x5f, 0xa0, 0x23, 0xea, 0xd4, 0xc9, 0xad, 0xc2, 0x52, 0x75, 0xf4, - 0xd8, 0xa9, 0xf2, 0x9d, 0x09, 0x0e, 0xa2, 0x5d, 0x6c, 0xbf, 0xef, 0xf3, 0x3e, 0xcf, 0xfb, 0xf8, - 0x7d, 0x75, 0x07, 0x56, 0x11, 0x65, 0x84, 0xb2, 0xb6, 0x1b, 0xf1, 0x13, 0xf1, 0x68, 0x05, 0x21, - 0xe5, 0x54, 0xad, 0xca, 0x7c, 0x2b, 0x4b, 0xd5, 0xd7, 0x65, 0xe0, 0x08, 0xa8, 0x9d, 0x23, 0x22, - 0xa8, 0xd7, 0x7a, 0xb4, 0x47, 0x65, 0x3e, 0xfb, 0xca, 0xb3, 0xf5, 0x5c, 0x15, 0x85, 0x71, 0x90, - 0x31, 0xc4, 0x4b, 0x62, 0xe6, 0xc7, 0x29, 0x50, 0xb5, 0x5c, 0x86, 0x77, 0x10, 0xa2, 0xd1, 0x80, - 0xab, 0xfb, 0x60, 0xc6, 0xed, 0x76, 0x43, 0xcc, 0x98, 0xa6, 0x18, 0x4a, 0x63, 0xde, 0xda, 0xf8, - 0x9d, 0xc0, 0x66, 0xcf, 0xe7, 0x27, 0x91, 0xd7, 0x42, 0x94, 0xb4, 0xaf, 0xb5, 0xc4, 0xab, 0xc9, - 0xba, 0xa7, 0x6d, 0x1e, 0x07, 0x98, 0xb5, 0x76, 0x10, 0xda, 0x91, 0x44, 0xfb, 0x5a, 0x41, 0x7d, - 0x0d, 0x66, 0x82, 0xc8, 0x73, 0x4e, 0x71, 0xac, 0x4d, 0x19, 0x4a, 0xa3, 0xba, 0xa9, 0xb5, 0x72, - 0xbb, 0xb9, 0x87, 0xa3, 0xc8, 0xeb, 0xfb, 0x68, 0x1f, 0xc7, 0x56, 0xf3, 0x57, 0x02, 0x6b, 0x81, - 0x08, 0xb3, 0xfa, 0x07, 0x94, 0xf8, 0x1c, 0x93, 0x80, 0xc7, 0x69, 0x02, 0x97, 0x62, 0x97, 0xf4, - 0x3b, 0xe6, 0x0d, 0x6a, 0xda, 0xd3, 0x41, 0xe4, 0xed, 0xe3, 0x58, 0x7d, 0x02, 0x16, 0x5d, 0xe9, - 0xdc, 0x19, 0x44, 0xc4, 0xc3, 0xa1, 0x56, 0x36, 0x94, 0x46, 0xc5, 0x5a, 0x4f, 0x13, 0xb8, 0x22, - 0x69, 0x93, 0xb8, 0x69, 0x2f, 0xe4, 0x89, 0x43, 0x11, 0xab, 0x75, 0x30, 0xcb, 0xf0, 0x59, 0x84, - 0x07, 0x08, 0x6b, 0x95, 0x8c, 0x6b, 0x8f, 0xe3, 0x4e, 0xed, 0xdd, 0x05, 0x2c, 0x7d, 0xb8, 0x80, - 0xa5, 0xaf, 0x9f, 0x9a, 0xb3, 0xf9, 0x84, 0xf6, 0xcc, 0xcf, 0x0a, 0x58, 0x38, 0xa0, 0xdd, 0xa8, - 0x3f, 0x1e, 0xda, 0x4b, 0x30, 0xef, 0xb9, 0x0c, 0x3b, 0xb9, 0xb2, 0x98, 0x5c, 0xe1, 0x67, 0xc5, - 0x22, 0x0b, 0x43, 0xb6, 0xfe, 0xbf, 0x4c, 0xa0, 0x92, 0x26, 0x70, 0x59, 0x3a, 0x2c, 0x72, 0x4d, - 0xbb, 0xea, 0x15, 0xd6, 0xa1, 0x82, 0xca, 0xc0, 0x25, 0x58, 0x8c, 0x6f, 0xce, 0x16, 0xdf, 0xaa, - 0x01, 0xaa, 0x01, 0x0e, 0x89, 0xcf, 0x98, 0x4f, 0x07, 0x4c, 0x2b, 0x1b, 0xe5, 0xc6, 0x9c, 0x5d, - 0x4c, 0x75, 0xea, 0x05, 0xdf, 0x8b, 0x13, 0x56, 0xf7, 0xcc, 0xef, 0x65, 0x30, 0x7d, 0xe4, 0x86, - 0x2e, 0x61, 0xea, 0x21, 0x58, 0x26, 0xee, 0xd0, 0x21, 0x98, 0x50, 0x07, 0x9d, 0xb8, 0xa1, 0x8b, - 0x38, 0x0e, 0xe5, 0xde, 0x2b, 0x96, 0x9e, 0x26, 0xb0, 0x2e, 0xfd, 0xdd, 0x51, 0x64, 0xda, 0x4b, - 0xc4, 0x1d, 0x1e, 0x60, 0x42, 0x77, 0xc7, 0x39, 0x75, 0x1b, 0xcc, 0xf3, 0xa1, 0xc3, 0xfc, 0x9e, - 0xd3, 0xf7, 0x89, 0xcf, 0x85, 0xe9, 0x8a, 0xb5, 0x76, 0xf3, 0xa3, 0x45, 0xd4, 0xb4, 0x01, 0x1f, - 0x1e, 0xfb, 0xbd, 0xe7, 0x59, 0xa0, 0xda, 0x60, 0x45, 0x80, 0xe7, 0xd8, 0x41, 0x94, 0x71, 0x27, - 0xc0, 0xa1, 0xe3, 0xc5, 0x1c, 0xe7, 0xeb, 0x34, 0xd2, 0x04, 0xde, 0x2b, 0x68, 0xdc, 0x2e, 0x33, - 0xed, 0xa5, 0x4c, 0xec, 0x1c, 0xef, 0x52, 0xc6, 0x8f, 0x70, 0x68, 0xc5, 0x1c, 0xab, 0x67, 0x60, - 0x2d, 0xeb, 0xf6, 0x16, 0x87, 0xfe, 0x9b, 0x58, 0xd6, 0xe3, 0xee, 0xe6, 0xd6, 0xd6, 0xc6, 0xb6, - 0x5c, 0xb4, 0xd5, 0x19, 0x25, 0xb0, 0x76, 0xec, 0xf7, 0x5e, 0x88, 0x8a, 0x8c, 0xfa, 0xec, 0xa9, - 0xc0, 0xd3, 0x04, 0xea, 0xb2, 0xdb, 0x5f, 0x04, 0x4c, 0xbb, 0xc6, 0x26, 0x78, 0x32, 0xad, 0xc6, - 0x60, 0xfd, 0x36, 0x83, 0x61, 0x14, 0x6c, 0x6e, 0x3d, 0x3a, 0xdd, 0xd0, 0xfe, 0x13, 0x4d, 0x1f, - 0x8f, 0x12, 0xb8, 0x3a, 0xd1, 0xf4, 0xf8, 0xba, 0x22, 0x4d, 0xa0, 0x71, 0x77, 0xdb, 0xb1, 0x88, - 0x69, 0xaf, 0xb2, 0x3b, 0xb9, 0x9d, 0xd9, 0x6c, 0xdf, 0x3f, 0x2f, 0xa0, 0x62, 0xed, 0x7e, 0x19, - 0xe9, 0xca, 0xe5, 0x48, 0x57, 0x7e, 0x8c, 0x74, 0xe5, 0xfd, 0x95, 0x5e, 0xba, 0xbc, 0xd2, 0x4b, - 0xdf, 0xae, 0xf4, 0xd2, 0xab, 0xfb, 0xff, 0x3c, 0xc7, 0x43, 0x79, 0xed, 0x88, 0xe3, 0xec, 0x4d, - 0x8b, 0xeb, 0xe1, 0xe1, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x04, 0xd8, 0x73, 0x92, 0x04, - 0x00, 0x00, + // 679 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0xbf, 0x6f, 0xd3, 0x40, + 0x14, 0x8e, 0x9b, 0xd0, 0x1f, 0x97, 0xb6, 0x52, 0xdd, 0xb4, 0x75, 0x03, 0xf2, 0x59, 0x9e, 0x82, + 0x44, 0x12, 0xb5, 0xa8, 0x48, 0xcd, 0x80, 0xa8, 0x0b, 0x43, 0x55, 0x5a, 0x55, 0xae, 0x84, 0x10, + 0x8b, 0xb1, 0x9d, 0x23, 0xb5, 0x9a, 0xcb, 0xb9, 0xbe, 0x33, 0x8a, 0xfb, 0x17, 0x30, 0x32, 0x32, + 0x96, 0xff, 0xa1, 0x1b, 0xff, 0x00, 0x63, 0xd5, 0x89, 0xc9, 0xa0, 0x74, 0x41, 0x4c, 0xc8, 0x23, + 0x13, 0xf2, 0x9d, 0x93, 0x3a, 0x55, 0x60, 0xb1, 0xfd, 0xde, 0xf7, 0xbe, 0xef, 0x7d, 0x7e, 0x4f, + 0x77, 0x60, 0xd5, 0x25, 0x14, 0x13, 0xda, 0xb4, 0x43, 0x76, 0xc2, 0x1f, 0x0d, 0x3f, 0x20, 0x8c, + 0xc8, 0x65, 0x91, 0x6f, 0xa4, 0xa9, 0xea, 0xba, 0x08, 0x2c, 0x0e, 0x35, 0x33, 0x84, 0x07, 0xd5, + 0x4a, 0x87, 0x74, 0x88, 0xc8, 0xa7, 0x5f, 0x59, 0xb6, 0x9a, 0xa9, 0xba, 0x41, 0xe4, 0xa7, 0x0c, + 0xfe, 0x12, 0x98, 0x7e, 0x39, 0x05, 0xca, 0x86, 0x4d, 0xd1, 0x8e, 0xeb, 0x92, 0xb0, 0xc7, 0xe4, + 0x7d, 0x30, 0x63, 0xb7, 0xdb, 0x01, 0xa2, 0x54, 0x91, 0x34, 0xa9, 0x36, 0x6f, 0x6c, 0xfc, 0x89, + 0x61, 0xbd, 0xe3, 0xb1, 0x93, 0xd0, 0x69, 0xb8, 0x04, 0x37, 0x87, 0x5a, 0xfc, 0x55, 0xa7, 0xed, + 0xd3, 0x26, 0x8b, 0x7c, 0x44, 0x1b, 0x3b, 0xae, 0xbb, 0x23, 0x88, 0xe6, 0x50, 0x41, 0x7e, 0x0b, + 0x66, 0xfc, 0xd0, 0xb1, 0x4e, 0x51, 0xa4, 0x4c, 0x69, 0x52, 0xad, 0xbc, 0xa9, 0x34, 0x32, 0xbb, + 0x99, 0x87, 0xa3, 0xd0, 0xe9, 0x7a, 0xee, 0x3e, 0x8a, 0x8c, 0xfa, 0xaf, 0x18, 0x56, 0x7c, 0x1e, + 0xa6, 0xf5, 0x8f, 0x08, 0xf6, 0x18, 0xc2, 0x3e, 0x8b, 0x92, 0x18, 0x2e, 0x45, 0x36, 0xee, 0xb6, + 0xf4, 0x5b, 0x54, 0x37, 0xa7, 0xfd, 0xd0, 0xd9, 0x47, 0x91, 0xfc, 0x0c, 0x2c, 0xda, 0xc2, 0xb9, + 0xd5, 0x0b, 0xb1, 0x83, 0x02, 0xa5, 0xa8, 0x49, 0xb5, 0x92, 0xb1, 0x9e, 0xc4, 0x70, 0x45, 0xd0, + 0xc6, 0x71, 0xdd, 0x5c, 0xc8, 0x12, 0x87, 0x3c, 0x96, 0xab, 0x60, 0x96, 0xa2, 0xb3, 0x10, 0xf5, + 0x5c, 0xa4, 0x94, 0x52, 0xae, 0x39, 0x8a, 0x5b, 0xca, 0x87, 0x0b, 0x58, 0xf8, 0x74, 0x01, 0x0b, + 0xbf, 0x3f, 0xc3, 0xc2, 0xf5, 0x65, 0x7d, 0x36, 0x9b, 0xd2, 0x9e, 0xfe, 0x45, 0x02, 0x0b, 0x07, + 0xa4, 0x1d, 0x76, 0x47, 0x83, 0x7b, 0x0d, 0xe6, 0x1d, 0x9b, 0x22, 0x2b, 0x53, 0xe7, 0xd3, 0xcb, + 0xfd, 0x30, 0x5f, 0x66, 0x6e, 0xd0, 0xc6, 0xfd, 0xab, 0x18, 0x4a, 0x49, 0x0c, 0x97, 0x85, 0xcb, + 0x3c, 0x57, 0x37, 0xcb, 0x4e, 0x6e, 0x25, 0x32, 0x28, 0xf5, 0x6c, 0x8c, 0xf8, 0x08, 0xe7, 0x4c, + 0xfe, 0x2d, 0x6b, 0xa0, 0xec, 0xa3, 0x00, 0x7b, 0x94, 0x7a, 0xa4, 0x47, 0x95, 0xa2, 0x56, 0xac, + 0xcd, 0x99, 0xf9, 0x54, 0xab, 0x3a, 0xf4, 0x7e, 0x7d, 0x59, 0x5f, 0x1c, 0xb3, 0xba, 0xa7, 0x7f, + 0x2f, 0x82, 0xe9, 0x23, 0x3b, 0xb0, 0x31, 0x95, 0x0f, 0xc1, 0x32, 0xb6, 0xfb, 0x16, 0x46, 0x98, + 0x58, 0xee, 0x89, 0x1d, 0xd8, 0x2e, 0x43, 0x81, 0xd8, 0x7d, 0xc9, 0x50, 0x93, 0x18, 0x56, 0x85, + 0xbf, 0x09, 0x45, 0xba, 0xb9, 0x84, 0xed, 0xfe, 0x01, 0xc2, 0x64, 0x77, 0x94, 0x93, 0xb7, 0xc1, + 0x3c, 0xeb, 0x5b, 0xd4, 0xeb, 0x58, 0x5d, 0x0f, 0x7b, 0x8c, 0x9b, 0x2e, 0x19, 0x6b, 0xb7, 0x3f, + 0x9a, 0x47, 0x75, 0x13, 0xb0, 0xfe, 0xb1, 0xd7, 0x79, 0x99, 0x06, 0xb2, 0x09, 0x56, 0x38, 0x78, + 0x8e, 0x2c, 0x97, 0x50, 0x66, 0xf9, 0x28, 0xb0, 0x9c, 0x88, 0xa1, 0x6c, 0xa5, 0x5a, 0x12, 0xc3, + 0x07, 0x39, 0x8d, 0xbb, 0x65, 0xba, 0xb9, 0x94, 0x8a, 0x9d, 0xa3, 0x5d, 0x42, 0xd9, 0x11, 0x0a, + 0x8c, 0x88, 0x21, 0xf9, 0x0c, 0xac, 0xa5, 0xdd, 0xde, 0xa3, 0xc0, 0x7b, 0x17, 0x89, 0x7a, 0xd4, + 0xde, 0xdc, 0xda, 0xda, 0xd8, 0x16, 0xcb, 0x36, 0x5a, 0x83, 0x18, 0x56, 0x8e, 0xbd, 0xce, 0x2b, + 0x5e, 0x91, 0x52, 0x5f, 0x3c, 0xe7, 0x78, 0x12, 0x43, 0x55, 0x74, 0xfb, 0x87, 0x80, 0x6e, 0x56, + 0xe8, 0x18, 0x4f, 0xa4, 0xe5, 0x08, 0xac, 0xdf, 0x65, 0x50, 0xe4, 0xfa, 0x9b, 0x5b, 0x4f, 0x4e, + 0x37, 0x94, 0x7b, 0xbc, 0xe9, 0xd3, 0x41, 0x0c, 0x57, 0xc7, 0x9a, 0x1e, 0x0f, 0x2b, 0x92, 0x18, + 0x6a, 0x93, 0xdb, 0x8e, 0x44, 0x74, 0x73, 0x95, 0x4e, 0xe4, 0xb6, 0x66, 0xd3, 0x7d, 0xff, 0xbc, + 0x80, 0x92, 0xb1, 0xfb, 0x75, 0xa0, 0x4a, 0x57, 0x03, 0x55, 0xfa, 0x31, 0x50, 0xa5, 0x8f, 0x37, + 0x6a, 0xe1, 0xea, 0x46, 0x2d, 0x7c, 0xbb, 0x51, 0x0b, 0x6f, 0x1e, 0xfe, 0xf7, 0x2c, 0xf7, 0xc5, + 0xd5, 0xc3, 0x8f, 0xb4, 0x33, 0xcd, 0xaf, 0x88, 0xc7, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x29, + 0x45, 0xd7, 0x21, 0x96, 0x04, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { From 7f12c37608cf31b8dacd816818ca60185f1ef2f2 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Mon, 17 Aug 2020 11:45:07 -0400 Subject: [PATCH 4/7] Update PubKey --- proto/cosmos/auth/auth.proto | 4 +- x/auth/types/auth.pb.go | 100 +-- x/staking/types/staking.pb.go | 1213 +++++++++++++++++---------------- 3 files changed, 660 insertions(+), 657 deletions(-) diff --git a/proto/cosmos/auth/auth.proto b/proto/cosmos/auth/auth.proto index 6318cc008602..76e4f5090ca2 100644 --- a/proto/cosmos/auth/auth.proto +++ b/proto/cosmos/auth/auth.proto @@ -3,7 +3,7 @@ package cosmos.auth; import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; -import "cosmos/crypto/crypto.proto"; +import "google/protobuf/any.proto"; option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; @@ -20,7 +20,7 @@ message BaseAccount { option (cosmos_proto.implements_interface) = "AccountI"; bytes address = 1 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"]; - cosmos.crypto.PublicKey pub_key = 2 [(gogoproto.jsontag) = "public_key,omitempty", (gogoproto.moretags) = "yaml:\"public_key\""]; + google.protobuf.Any pub_key = 2 [(gogoproto.jsontag) = "public_key,omitempty", (gogoproto.moretags) = "yaml:\"public_key\""]; uint64 account_number = 3 [(gogoproto.moretags) = "yaml:\"account_number\""]; uint64 sequence = 4; } diff --git a/x/auth/types/auth.pb.go b/x/auth/types/auth.pb.go index a7b66ace9b08..5aeae5a1a673 100644 --- a/x/auth/types/auth.pb.go +++ b/x/auth/types/auth.pb.go @@ -5,14 +5,14 @@ package types import ( fmt "fmt" - io "io" - math "math" - math_bits "math/bits" - - types "github.com/cosmos/cosmos-sdk/crypto/types" + types "github.com/cosmos/cosmos-sdk/codec/types" + github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" _ "github.com/regen-network/cosmos-proto" + io "io" + math "math" + math_bits "math/bits" ) // Reference imports to suppress errors if they are not otherwise used. @@ -182,50 +182,50 @@ func init() { func init() { proto.RegisterFile("cosmos/auth/auth.proto", fileDescriptor_ec2401f40a84da7e) } var fileDescriptor_ec2401f40a84da7e = []byte{ - // 679 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0xbf, 0x6f, 0xd3, 0x40, - 0x14, 0x8e, 0x9b, 0xd0, 0x1f, 0x97, 0xb6, 0x52, 0xdd, 0xb4, 0x75, 0x03, 0xf2, 0x59, 0x9e, 0x82, - 0x44, 0x12, 0xb5, 0xa8, 0x48, 0xcd, 0x80, 0xa8, 0x0b, 0x43, 0x55, 0x5a, 0x55, 0xae, 0x84, 0x10, - 0x8b, 0xb1, 0x9d, 0x23, 0xb5, 0x9a, 0xcb, 0xb9, 0xbe, 0x33, 0x8a, 0xfb, 0x17, 0x30, 0x32, 0x32, - 0x96, 0xff, 0xa1, 0x1b, 0xff, 0x00, 0x63, 0xd5, 0x89, 0xc9, 0xa0, 0x74, 0x41, 0x4c, 0xc8, 0x23, - 0x13, 0xf2, 0x9d, 0x93, 0x3a, 0x55, 0x60, 0xb1, 0xfd, 0xde, 0xf7, 0xbe, 0xef, 0x7d, 0x7e, 0x4f, - 0x77, 0x60, 0xd5, 0x25, 0x14, 0x13, 0xda, 0xb4, 0x43, 0x76, 0xc2, 0x1f, 0x0d, 0x3f, 0x20, 0x8c, - 0xc8, 0x65, 0x91, 0x6f, 0xa4, 0xa9, 0xea, 0xba, 0x08, 0x2c, 0x0e, 0x35, 0x33, 0x84, 0x07, 0xd5, - 0x4a, 0x87, 0x74, 0x88, 0xc8, 0xa7, 0x5f, 0x59, 0xb6, 0x9a, 0xa9, 0xba, 0x41, 0xe4, 0xa7, 0x0c, - 0xfe, 0x12, 0x98, 0x7e, 0x39, 0x05, 0xca, 0x86, 0x4d, 0xd1, 0x8e, 0xeb, 0x92, 0xb0, 0xc7, 0xe4, - 0x7d, 0x30, 0x63, 0xb7, 0xdb, 0x01, 0xa2, 0x54, 0x91, 0x34, 0xa9, 0x36, 0x6f, 0x6c, 0xfc, 0x89, - 0x61, 0xbd, 0xe3, 0xb1, 0x93, 0xd0, 0x69, 0xb8, 0x04, 0x37, 0x87, 0x5a, 0xfc, 0x55, 0xa7, 0xed, - 0xd3, 0x26, 0x8b, 0x7c, 0x44, 0x1b, 0x3b, 0xae, 0xbb, 0x23, 0x88, 0xe6, 0x50, 0x41, 0x7e, 0x0b, - 0x66, 0xfc, 0xd0, 0xb1, 0x4e, 0x51, 0xa4, 0x4c, 0x69, 0x52, 0xad, 0xbc, 0xa9, 0x34, 0x32, 0xbb, - 0x99, 0x87, 0xa3, 0xd0, 0xe9, 0x7a, 0xee, 0x3e, 0x8a, 0x8c, 0xfa, 0xaf, 0x18, 0x56, 0x7c, 0x1e, - 0xa6, 0xf5, 0x8f, 0x08, 0xf6, 0x18, 0xc2, 0x3e, 0x8b, 0x92, 0x18, 0x2e, 0x45, 0x36, 0xee, 0xb6, - 0xf4, 0x5b, 0x54, 0x37, 0xa7, 0xfd, 0xd0, 0xd9, 0x47, 0x91, 0xfc, 0x0c, 0x2c, 0xda, 0xc2, 0xb9, - 0xd5, 0x0b, 0xb1, 0x83, 0x02, 0xa5, 0xa8, 0x49, 0xb5, 0x92, 0xb1, 0x9e, 0xc4, 0x70, 0x45, 0xd0, - 0xc6, 0x71, 0xdd, 0x5c, 0xc8, 0x12, 0x87, 0x3c, 0x96, 0xab, 0x60, 0x96, 0xa2, 0xb3, 0x10, 0xf5, - 0x5c, 0xa4, 0x94, 0x52, 0xae, 0x39, 0x8a, 0x5b, 0xca, 0x87, 0x0b, 0x58, 0xf8, 0x74, 0x01, 0x0b, - 0xbf, 0x3f, 0xc3, 0xc2, 0xf5, 0x65, 0x7d, 0x36, 0x9b, 0xd2, 0x9e, 0xfe, 0x45, 0x02, 0x0b, 0x07, - 0xa4, 0x1d, 0x76, 0x47, 0x83, 0x7b, 0x0d, 0xe6, 0x1d, 0x9b, 0x22, 0x2b, 0x53, 0xe7, 0xd3, 0xcb, - 0xfd, 0x30, 0x5f, 0x66, 0x6e, 0xd0, 0xc6, 0xfd, 0xab, 0x18, 0x4a, 0x49, 0x0c, 0x97, 0x85, 0xcb, - 0x3c, 0x57, 0x37, 0xcb, 0x4e, 0x6e, 0x25, 0x32, 0x28, 0xf5, 0x6c, 0x8c, 0xf8, 0x08, 0xe7, 0x4c, - 0xfe, 0x2d, 0x6b, 0xa0, 0xec, 0xa3, 0x00, 0x7b, 0x94, 0x7a, 0xa4, 0x47, 0x95, 0xa2, 0x56, 0xac, - 0xcd, 0x99, 0xf9, 0x54, 0xab, 0x3a, 0xf4, 0x7e, 0x7d, 0x59, 0x5f, 0x1c, 0xb3, 0xba, 0xa7, 0x7f, - 0x2f, 0x82, 0xe9, 0x23, 0x3b, 0xb0, 0x31, 0x95, 0x0f, 0xc1, 0x32, 0xb6, 0xfb, 0x16, 0x46, 0x98, - 0x58, 0xee, 0x89, 0x1d, 0xd8, 0x2e, 0x43, 0x81, 0xd8, 0x7d, 0xc9, 0x50, 0x93, 0x18, 0x56, 0x85, - 0xbf, 0x09, 0x45, 0xba, 0xb9, 0x84, 0xed, 0xfe, 0x01, 0xc2, 0x64, 0x77, 0x94, 0x93, 0xb7, 0xc1, - 0x3c, 0xeb, 0x5b, 0xd4, 0xeb, 0x58, 0x5d, 0x0f, 0x7b, 0x8c, 0x9b, 0x2e, 0x19, 0x6b, 0xb7, 0x3f, - 0x9a, 0x47, 0x75, 0x13, 0xb0, 0xfe, 0xb1, 0xd7, 0x79, 0x99, 0x06, 0xb2, 0x09, 0x56, 0x38, 0x78, - 0x8e, 0x2c, 0x97, 0x50, 0x66, 0xf9, 0x28, 0xb0, 0x9c, 0x88, 0xa1, 0x6c, 0xa5, 0x5a, 0x12, 0xc3, - 0x07, 0x39, 0x8d, 0xbb, 0x65, 0xba, 0xb9, 0x94, 0x8a, 0x9d, 0xa3, 0x5d, 0x42, 0xd9, 0x11, 0x0a, - 0x8c, 0x88, 0x21, 0xf9, 0x0c, 0xac, 0xa5, 0xdd, 0xde, 0xa3, 0xc0, 0x7b, 0x17, 0x89, 0x7a, 0xd4, - 0xde, 0xdc, 0xda, 0xda, 0xd8, 0x16, 0xcb, 0x36, 0x5a, 0x83, 0x18, 0x56, 0x8e, 0xbd, 0xce, 0x2b, - 0x5e, 0x91, 0x52, 0x5f, 0x3c, 0xe7, 0x78, 0x12, 0x43, 0x55, 0x74, 0xfb, 0x87, 0x80, 0x6e, 0x56, - 0xe8, 0x18, 0x4f, 0xa4, 0xe5, 0x08, 0xac, 0xdf, 0x65, 0x50, 0xe4, 0xfa, 0x9b, 0x5b, 0x4f, 0x4e, - 0x37, 0x94, 0x7b, 0xbc, 0xe9, 0xd3, 0x41, 0x0c, 0x57, 0xc7, 0x9a, 0x1e, 0x0f, 0x2b, 0x92, 0x18, - 0x6a, 0x93, 0xdb, 0x8e, 0x44, 0x74, 0x73, 0x95, 0x4e, 0xe4, 0xb6, 0x66, 0xd3, 0x7d, 0xff, 0xbc, - 0x80, 0x92, 0xb1, 0xfb, 0x75, 0xa0, 0x4a, 0x57, 0x03, 0x55, 0xfa, 0x31, 0x50, 0xa5, 0x8f, 0x37, - 0x6a, 0xe1, 0xea, 0x46, 0x2d, 0x7c, 0xbb, 0x51, 0x0b, 0x6f, 0x1e, 0xfe, 0xf7, 0x2c, 0xf7, 0xc5, - 0xd5, 0xc3, 0x8f, 0xb4, 0x33, 0xcd, 0xaf, 0x88, 0xc7, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x29, - 0x45, 0xd7, 0x21, 0x96, 0x04, 0x00, 0x00, + // 688 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0x4d, 0x4f, 0xdb, 0x4a, + 0x14, 0x8d, 0x49, 0x1e, 0x1f, 0x13, 0x40, 0xc2, 0x04, 0x70, 0xf2, 0x9e, 0x3c, 0x91, 0x57, 0x79, + 0x52, 0xe3, 0x88, 0x54, 0x54, 0x22, 0x8b, 0xaa, 0x31, 0xed, 0x02, 0x51, 0x10, 0x32, 0x52, 0x55, + 0x55, 0x95, 0x2c, 0xdb, 0x19, 0x8c, 0x45, 0x26, 0x63, 0x3c, 0xe3, 0x2a, 0xe6, 0x17, 0x74, 0xd9, + 0x65, 0x97, 0xf4, 0x1f, 0x74, 0xc1, 0xae, 0x7f, 0xa0, 0x4b, 0xc4, 0xaa, 0x2b, 0xb7, 0x0a, 0x9b, + 0xaa, 0xab, 0x2a, 0xcb, 0xae, 0x2a, 0xcf, 0x38, 0x21, 0x41, 0xb4, 0x1b, 0x7b, 0xee, 0x39, 0xf7, + 0xdc, 0x7b, 0x7c, 0xaf, 0xc6, 0x60, 0xdd, 0x25, 0x14, 0x13, 0xda, 0xb0, 0x23, 0x76, 0xc2, 0x1f, + 0x7a, 0x10, 0x12, 0x46, 0xe4, 0xa2, 0xc0, 0xf5, 0x14, 0xaa, 0x94, 0x45, 0x60, 0x71, 0xaa, 0x91, + 0x31, 0x3c, 0xa8, 0x94, 0x3c, 0xe2, 0x11, 0x81, 0xa7, 0xa7, 0x0c, 0x2d, 0x7b, 0x84, 0x78, 0x5d, + 0xd4, 0xe0, 0x91, 0x13, 0x1d, 0x37, 0xec, 0x5e, 0x2c, 0x28, 0xed, 0xe3, 0x0c, 0x28, 0x1a, 0x36, + 0x45, 0x6d, 0xd7, 0x25, 0x51, 0x8f, 0xc9, 0x7b, 0x60, 0xce, 0xee, 0x74, 0x42, 0x44, 0xa9, 0x22, + 0x55, 0xa5, 0xda, 0xa2, 0xb1, 0xf9, 0x2b, 0x81, 0x75, 0xcf, 0x67, 0x27, 0x91, 0xa3, 0xbb, 0x04, + 0x67, 0xed, 0xb2, 0x57, 0x9d, 0x76, 0x4e, 0x1b, 0x2c, 0x0e, 0x10, 0xd5, 0xdb, 0xae, 0xdb, 0x16, + 0x42, 0x73, 0x54, 0x41, 0x7e, 0x0d, 0xe6, 0x82, 0xc8, 0xb1, 0x4e, 0x51, 0xac, 0xcc, 0x54, 0xa5, + 0x5a, 0xb1, 0x59, 0xd2, 0x85, 0x13, 0x7d, 0xe4, 0x44, 0x6f, 0xf7, 0x62, 0xa3, 0xfe, 0x23, 0x81, + 0xa5, 0x20, 0x72, 0xba, 0xbe, 0x9b, 0xe6, 0x3e, 0x20, 0xd8, 0x67, 0x08, 0x07, 0x2c, 0x1e, 0x26, + 0x70, 0x25, 0xb6, 0x71, 0xb7, 0xa5, 0xdd, 0xb2, 0x9a, 0x39, 0x1b, 0x44, 0xce, 0x1e, 0x8a, 0xe5, + 0x27, 0x60, 0xd9, 0x16, 0xae, 0xad, 0x5e, 0x84, 0x1d, 0x14, 0x2a, 0xf9, 0xaa, 0x54, 0x2b, 0x18, + 0xe5, 0x61, 0x02, 0xd7, 0x84, 0x6c, 0x9a, 0xd7, 0xcc, 0xa5, 0x0c, 0x38, 0xe0, 0xb1, 0x5c, 0x01, + 0xf3, 0x14, 0x9d, 0x45, 0xa8, 0xe7, 0x22, 0xa5, 0x90, 0x6a, 0xcd, 0x71, 0xdc, 0x52, 0xde, 0x5e, + 0xc0, 0xdc, 0xfb, 0x0b, 0x98, 0xfb, 0xf9, 0x01, 0xe6, 0xae, 0x2f, 0xeb, 0xf3, 0xd9, 0x84, 0x76, + 0xb5, 0x4f, 0x12, 0x58, 0xda, 0x27, 0x9d, 0xa8, 0x3b, 0x1e, 0xda, 0x4b, 0xb0, 0xe8, 0xd8, 0x14, + 0x59, 0x59, 0x75, 0x3e, 0xb9, 0x62, 0x53, 0xd1, 0x27, 0x96, 0xa6, 0x4f, 0x0c, 0xd9, 0xf8, 0xf7, + 0x2a, 0x81, 0xd2, 0x30, 0x81, 0xab, 0xc2, 0xe5, 0xa4, 0x56, 0x33, 0x8b, 0xce, 0xc4, 0x3a, 0x64, + 0x50, 0xe8, 0xd9, 0x18, 0xf1, 0xf1, 0x2d, 0x98, 0xfc, 0x2c, 0x57, 0x41, 0x31, 0x40, 0x21, 0xf6, + 0x29, 0xf5, 0x49, 0x8f, 0x2a, 0xf9, 0x6a, 0xbe, 0xb6, 0x60, 0x4e, 0x42, 0xad, 0xca, 0xc8, 0xfb, + 0xf5, 0x65, 0x7d, 0x79, 0xca, 0xea, 0xae, 0xf6, 0x35, 0x0f, 0x66, 0x0f, 0xed, 0xd0, 0xc6, 0x54, + 0x3e, 0x00, 0xab, 0xd8, 0xee, 0x5b, 0x18, 0x61, 0x62, 0xb9, 0x27, 0x76, 0x68, 0xbb, 0x0c, 0x85, + 0x62, 0xef, 0x05, 0x43, 0x1d, 0x26, 0xb0, 0x22, 0xfc, 0xdd, 0x93, 0xa4, 0x99, 0x2b, 0xd8, 0xee, + 0xef, 0x23, 0x4c, 0x76, 0xc6, 0x98, 0xbc, 0x0d, 0x16, 0x59, 0xdf, 0xa2, 0xbe, 0x67, 0x75, 0x7d, + 0xec, 0x33, 0x6e, 0xba, 0x60, 0x6c, 0xdc, 0x7e, 0xe8, 0x24, 0xab, 0x99, 0x80, 0xf5, 0x8f, 0x7c, + 0xef, 0x79, 0x1a, 0xc8, 0x26, 0x58, 0xe3, 0xe4, 0x39, 0xb2, 0x5c, 0x42, 0x99, 0x15, 0xa0, 0xd0, + 0x72, 0x62, 0x86, 0xb2, 0x95, 0x56, 0x87, 0x09, 0xfc, 0x6f, 0xa2, 0xc6, 0xdd, 0x34, 0xcd, 0x5c, + 0x49, 0x8b, 0x9d, 0xa3, 0x1d, 0x42, 0xd9, 0x21, 0x0a, 0x8d, 0x98, 0x21, 0xf9, 0x0c, 0x6c, 0xa4, + 0xdd, 0xde, 0xa0, 0xd0, 0x3f, 0x8e, 0x45, 0x3e, 0xea, 0x34, 0xb7, 0xb6, 0x36, 0xb7, 0xc5, 0xb2, + 0x8d, 0xd6, 0x20, 0x81, 0xa5, 0x23, 0xdf, 0x7b, 0xc1, 0x33, 0x52, 0xe9, 0xb3, 0xa7, 0x9c, 0x1f, + 0x26, 0x50, 0x15, 0xdd, 0xfe, 0x50, 0x40, 0x33, 0x4b, 0x74, 0x4a, 0x27, 0x60, 0x39, 0x06, 0xe5, + 0xbb, 0x0a, 0x8a, 0xdc, 0xa0, 0xb9, 0xf5, 0xe8, 0x74, 0x53, 0xf9, 0x87, 0x37, 0x7d, 0x3c, 0x48, + 0xe0, 0xfa, 0x54, 0xd3, 0xa3, 0x51, 0xc6, 0x30, 0x81, 0xd5, 0xfb, 0xdb, 0x8e, 0x8b, 0x68, 0xe6, + 0x3a, 0xbd, 0x57, 0xdb, 0x9a, 0x4f, 0xf7, 0xfd, 0xfd, 0x02, 0x4a, 0xc6, 0xce, 0xe7, 0x81, 0x2a, + 0x5d, 0x0d, 0x54, 0xe9, 0xdb, 0x40, 0x95, 0xde, 0xdd, 0xa8, 0xb9, 0xab, 0x1b, 0x35, 0xf7, 0xe5, + 0x46, 0xcd, 0xbd, 0xfa, 0xff, 0xaf, 0xf7, 0xb8, 0x2f, 0xfe, 0x3a, 0xfc, 0x3a, 0x3b, 0xb3, 0xfc, + 0x86, 0x3e, 0xfc, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x57, 0x6d, 0x77, 0x2d, 0x91, 0x04, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -595,7 +595,7 @@ func (m *BaseAccount) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.PubKey == nil { - m.PubKey = &types.PublicKey{} + m.PubKey = &types.Any{} } if err := m.PubKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index 44b497096f73..93226ea42ae4 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -1569,612 +1569,615 @@ func (this *Pool) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_ func StakingDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 9675 bytes of a gzipped FileDescriptorSet + // 9722 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x7b, 0x70, 0x24, 0xc7, - 0x79, 0x1f, 0xf6, 0x81, 0xc5, 0xee, 0xb7, 0x8b, 0xc5, 0xa2, 0x81, 0xbb, 0xc3, 0x2d, 0xc9, 0xdb, - 0xe3, 0x1c, 0x1f, 0x38, 0x3e, 0x70, 0xd4, 0x89, 0x0f, 0x71, 0x8f, 0x22, 0x85, 0x05, 0x70, 0x77, - 0x20, 0x81, 0x3b, 0x70, 0x00, 0x1c, 0x29, 0xca, 0xf6, 0x78, 0x30, 0xdb, 0x58, 0x0c, 0xb1, 0x3b, - 0xb3, 0x9c, 0x99, 0xbd, 0x03, 0x58, 0x4a, 0x15, 0x53, 0x96, 0xf5, 0x70, 0x64, 0x4b, 0x51, 0x6c, - 0x87, 0x96, 0x25, 0x99, 0x52, 0x2a, 0x91, 0xa3, 0x24, 0x7e, 0x24, 0x8a, 0x1e, 0x76, 0xfe, 0x50, - 0x55, 0x1e, 0x56, 0xaa, 0x5c, 0x29, 0x29, 0x71, 0x52, 0xae, 0x54, 0x0a, 0xb6, 0x48, 0x55, 0x59, - 0x51, 0x98, 0x44, 0xb9, 0xd0, 0x2e, 0x97, 0xf4, 0x47, 0x52, 0xfd, 0x9a, 0xd7, 0xce, 0xee, 0x0c, - 0x8e, 0x47, 0x8a, 0x2e, 0xe9, 0x2f, 0x6c, 0xf7, 0x7c, 0xdf, 0xaf, 0xbb, 0xbf, 0xfe, 0xfa, 0xfb, - 0xbe, 0xfe, 0xba, 0x67, 0x00, 0xbf, 0x79, 0x0e, 0x4e, 0xb6, 0x4c, 0xb3, 0xd5, 0xc6, 0x67, 0xba, - 0x96, 0xe9, 0x98, 0x5b, 0xbd, 0xed, 0x33, 0x4d, 0x6c, 0x6b, 0x96, 0xde, 0x75, 0x4c, 0x6b, 0x8e, - 0xd6, 0xa1, 0x09, 0x46, 0x31, 0x27, 0x28, 0xa4, 0x55, 0x98, 0x3c, 0xaf, 0xb7, 0xf1, 0xa2, 0x4b, - 0xb8, 0x8e, 0x1d, 0xf4, 0x1e, 0xc8, 0x6e, 0xeb, 0x6d, 0x3c, 0x93, 0x3a, 0x99, 0x99, 0x2d, 0x9e, - 0xbd, 0x63, 0x2e, 0xc4, 0x34, 0x17, 0xe4, 0x58, 0x23, 0xd5, 0x32, 0xe5, 0x90, 0xbe, 0x9b, 0x85, - 0xa9, 0x88, 0xa7, 0x08, 0x41, 0xd6, 0x50, 0x3b, 0x04, 0x31, 0x35, 0x5b, 0x90, 0xe9, 0x6f, 0x34, - 0x03, 0x63, 0x5d, 0x55, 0xdb, 0x55, 0x5b, 0x78, 0x26, 0x4d, 0xab, 0x45, 0x11, 0x9d, 0x00, 0x68, - 0xe2, 0x2e, 0x36, 0x9a, 0xd8, 0xd0, 0xf6, 0x67, 0x32, 0x27, 0x33, 0xb3, 0x05, 0xd9, 0x57, 0x83, - 0xee, 0x85, 0xc9, 0x6e, 0x6f, 0xab, 0xad, 0x6b, 0x8a, 0x8f, 0x0c, 0x4e, 0x66, 0x66, 0x47, 0xe5, - 0x0a, 0x7b, 0xb0, 0xe8, 0x11, 0xdf, 0x0d, 0x13, 0xd7, 0xb0, 0xba, 0xeb, 0x27, 0x2d, 0x52, 0xd2, - 0x32, 0xa9, 0xf6, 0x11, 0x2e, 0x40, 0xa9, 0x83, 0x6d, 0x5b, 0x6d, 0x61, 0xc5, 0xd9, 0xef, 0xe2, - 0x99, 0x2c, 0x1d, 0xfd, 0xc9, 0xbe, 0xd1, 0x87, 0x47, 0x5e, 0xe4, 0x5c, 0x1b, 0xfb, 0x5d, 0x8c, - 0xe6, 0xa1, 0x80, 0x8d, 0x5e, 0x87, 0x21, 0x8c, 0x0e, 0x90, 0xdf, 0x92, 0xd1, 0xeb, 0x84, 0x51, - 0xf2, 0x84, 0x8d, 0x43, 0x8c, 0xd9, 0xd8, 0xba, 0xaa, 0x6b, 0x78, 0x26, 0x47, 0x01, 0xee, 0xee, - 0x03, 0x58, 0x67, 0xcf, 0xc3, 0x18, 0x82, 0x0f, 0x2d, 0x40, 0x01, 0xef, 0x39, 0xd8, 0xb0, 0x75, - 0xd3, 0x98, 0x19, 0xa3, 0x20, 0x77, 0x46, 0xcc, 0x22, 0x6e, 0x37, 0xc3, 0x10, 0x1e, 0x1f, 0x7a, - 0x18, 0xc6, 0xcc, 0xae, 0xa3, 0x9b, 0x86, 0x3d, 0x93, 0x3f, 0x99, 0x9a, 0x2d, 0x9e, 0xbd, 0x35, - 0x52, 0x11, 0x2e, 0x33, 0x1a, 0x59, 0x10, 0xa3, 0x65, 0xa8, 0xd8, 0x66, 0xcf, 0xd2, 0xb0, 0xa2, - 0x99, 0x4d, 0xac, 0xe8, 0xc6, 0xb6, 0x39, 0x53, 0xa0, 0x00, 0xb5, 0xfe, 0x81, 0x50, 0xc2, 0x05, - 0xb3, 0x89, 0x97, 0x8d, 0x6d, 0x53, 0x2e, 0xdb, 0x81, 0x32, 0x3a, 0x0a, 0x39, 0x7b, 0xdf, 0x70, - 0xd4, 0xbd, 0x99, 0x12, 0xd5, 0x10, 0x5e, 0x92, 0xbe, 0x9e, 0x83, 0x89, 0x24, 0x2a, 0x76, 0x0e, - 0x46, 0xb7, 0xc9, 0x28, 0x67, 0xd2, 0x87, 0x91, 0x01, 0xe3, 0x09, 0x0a, 0x31, 0x77, 0x83, 0x42, - 0x9c, 0x87, 0xa2, 0x81, 0x6d, 0x07, 0x37, 0x99, 0x46, 0x64, 0x12, 0xea, 0x14, 0x30, 0xa6, 0x7e, - 0x95, 0xca, 0xde, 0x90, 0x4a, 0x3d, 0x0b, 0x13, 0x6e, 0x97, 0x14, 0x4b, 0x35, 0x5a, 0x42, 0x37, - 0xcf, 0xc4, 0xf5, 0x64, 0x6e, 0x49, 0xf0, 0xc9, 0x84, 0x4d, 0x2e, 0xe3, 0x40, 0x19, 0x2d, 0x02, - 0x98, 0x06, 0x36, 0xb7, 0x95, 0x26, 0xd6, 0xda, 0x33, 0xf9, 0x01, 0x52, 0xba, 0x4c, 0x48, 0xfa, - 0xa4, 0x64, 0xb2, 0x5a, 0xad, 0x8d, 0x1e, 0xf5, 0x54, 0x6d, 0x6c, 0x80, 0xa6, 0xac, 0xb2, 0x45, - 0xd6, 0xa7, 0x6d, 0x9b, 0x50, 0xb6, 0x30, 0xd1, 0x7b, 0xdc, 0xe4, 0x23, 0x2b, 0xd0, 0x4e, 0xcc, - 0xc5, 0x8e, 0x4c, 0xe6, 0x6c, 0x6c, 0x60, 0xe3, 0x96, 0xbf, 0x88, 0x4e, 0x81, 0x5b, 0xa1, 0x50, - 0xb5, 0x02, 0x6a, 0x85, 0x4a, 0xa2, 0xf2, 0x92, 0xda, 0xc1, 0xd5, 0x17, 0xa1, 0x1c, 0x14, 0x0f, - 0x9a, 0x86, 0x51, 0xdb, 0x51, 0x2d, 0x87, 0x6a, 0xe1, 0xa8, 0xcc, 0x0a, 0xa8, 0x02, 0x19, 0x6c, - 0x34, 0xa9, 0x95, 0x1b, 0x95, 0xc9, 0x4f, 0xf4, 0x3e, 0x6f, 0xc0, 0x19, 0x3a, 0xe0, 0xbb, 0xfa, - 0x67, 0x34, 0x80, 0x1c, 0x1e, 0x77, 0xf5, 0x11, 0x18, 0x0f, 0x0c, 0x20, 0x69, 0xd3, 0xd2, 0x07, - 0xe1, 0x48, 0x24, 0x34, 0x7a, 0x16, 0xa6, 0x7b, 0x86, 0x6e, 0x38, 0xd8, 0xea, 0x5a, 0x98, 0x68, - 0x2c, 0x6b, 0x6a, 0xe6, 0x2f, 0xc6, 0x06, 0xe8, 0xdc, 0xa6, 0x9f, 0x9a, 0xa1, 0xc8, 0x53, 0xbd, - 0xfe, 0xca, 0x7b, 0x0a, 0xf9, 0xef, 0x8d, 0x55, 0x5e, 0x7a, 0xe9, 0xa5, 0x97, 0xd2, 0xd2, 0xcb, - 0x39, 0x98, 0x8e, 0x5a, 0x33, 0x91, 0xcb, 0xf7, 0x28, 0xe4, 0x8c, 0x5e, 0x67, 0x0b, 0x5b, 0x54, - 0x48, 0xa3, 0x32, 0x2f, 0xa1, 0x79, 0x18, 0x6d, 0xab, 0x5b, 0xb8, 0x3d, 0x93, 0x3d, 0x99, 0x9a, - 0x2d, 0x9f, 0xbd, 0x37, 0xd1, 0xaa, 0x9c, 0x5b, 0x21, 0x2c, 0x32, 0xe3, 0x44, 0x8f, 0x43, 0x96, - 0x9b, 0x68, 0x82, 0x70, 0x4f, 0x32, 0x04, 0xb2, 0x96, 0x64, 0xca, 0x87, 0x6e, 0x81, 0x02, 0xf9, - 0xcb, 0x74, 0x23, 0x47, 0xfb, 0x9c, 0x27, 0x15, 0x44, 0x2f, 0x50, 0x15, 0xf2, 0x74, 0x99, 0x34, - 0xb1, 0x70, 0x6d, 0x6e, 0x99, 0x28, 0x56, 0x13, 0x6f, 0xab, 0xbd, 0xb6, 0xa3, 0x5c, 0x55, 0xdb, - 0x3d, 0x4c, 0x15, 0xbe, 0x20, 0x97, 0x78, 0xe5, 0x15, 0x52, 0x87, 0x6a, 0x50, 0x64, 0xab, 0x4a, - 0x37, 0x9a, 0x78, 0x8f, 0x5a, 0xcf, 0x51, 0x99, 0x2d, 0xb4, 0x65, 0x52, 0x43, 0x9a, 0x7f, 0xde, - 0x36, 0x0d, 0xa1, 0x9a, 0xb4, 0x09, 0x52, 0x41, 0x9b, 0x7f, 0x24, 0x6c, 0xb8, 0x6f, 0x8b, 0x1e, - 0x5e, 0x58, 0xa7, 0xa4, 0xaf, 0xa4, 0x21, 0x4b, 0xed, 0xc5, 0x04, 0x14, 0x37, 0xde, 0xbf, 0xb6, - 0xa4, 0x2c, 0x5e, 0xde, 0x6c, 0xac, 0x2c, 0x55, 0x52, 0xa8, 0x0c, 0x40, 0x2b, 0xce, 0xaf, 0x5c, - 0x9e, 0xdf, 0xa8, 0xa4, 0xdd, 0xf2, 0xf2, 0xa5, 0x8d, 0x87, 0x1f, 0xac, 0x64, 0x5c, 0x86, 0x4d, - 0x56, 0x91, 0xf5, 0x13, 0xbc, 0xfb, 0x6c, 0x65, 0x14, 0x55, 0xa0, 0xc4, 0x00, 0x96, 0x9f, 0x5d, - 0x5a, 0x7c, 0xf8, 0xc1, 0x4a, 0x2e, 0x58, 0xf3, 0xee, 0xb3, 0x95, 0x31, 0x34, 0x0e, 0x05, 0x5a, - 0xd3, 0xb8, 0x7c, 0x79, 0xa5, 0x92, 0x77, 0x31, 0xd7, 0x37, 0xe4, 0xe5, 0x4b, 0x17, 0x2a, 0x05, - 0x17, 0xf3, 0x82, 0x7c, 0x79, 0x73, 0xad, 0x02, 0x2e, 0xc2, 0xea, 0xd2, 0xfa, 0xfa, 0xfc, 0x85, - 0xa5, 0x4a, 0xd1, 0xa5, 0x68, 0xbc, 0x7f, 0x63, 0x69, 0xbd, 0x52, 0x0a, 0x74, 0xeb, 0xdd, 0x67, - 0x2b, 0xe3, 0x6e, 0x13, 0x4b, 0x97, 0x36, 0x57, 0x2b, 0x65, 0x34, 0x09, 0xe3, 0xac, 0x09, 0xd1, - 0x89, 0x89, 0x50, 0xd5, 0xc3, 0x0f, 0x56, 0x2a, 0x5e, 0x47, 0x18, 0xca, 0x64, 0xa0, 0xe2, 0xe1, - 0x07, 0x2b, 0x48, 0x5a, 0x80, 0x51, 0xaa, 0x5d, 0x08, 0x41, 0x79, 0x65, 0xbe, 0xb1, 0xb4, 0xa2, - 0x5c, 0x5e, 0xdb, 0x58, 0xbe, 0x7c, 0x69, 0x7e, 0xa5, 0x92, 0xf2, 0xea, 0xe4, 0xa5, 0xa7, 0x37, - 0x97, 0xe5, 0xa5, 0xc5, 0x4a, 0xda, 0x5f, 0xb7, 0xb6, 0x34, 0xbf, 0xb1, 0xb4, 0x58, 0xc9, 0x48, - 0x1a, 0x4c, 0x47, 0xd9, 0xc9, 0xc8, 0x95, 0xe1, 0x9b, 0xe2, 0xf4, 0x80, 0x29, 0xa6, 0x58, 0x7d, - 0x53, 0xfc, 0x5a, 0x1a, 0xa6, 0x22, 0x7c, 0x45, 0x64, 0x23, 0x4f, 0xc0, 0x28, 0x53, 0x51, 0xe6, - 0x3d, 0x4f, 0x47, 0x3a, 0x1d, 0xaa, 0xb0, 0x7d, 0x1e, 0x94, 0xf2, 0xf9, 0x23, 0x88, 0xcc, 0x80, - 0x08, 0x82, 0x40, 0xf4, 0xd9, 0xf4, 0x9f, 0xed, 0xb3, 0xe9, 0xcc, 0xed, 0x3d, 0x9c, 0xc4, 0xed, - 0xd1, 0xba, 0xc3, 0xd9, 0xf6, 0xd1, 0x08, 0xdb, 0x7e, 0x0e, 0x26, 0xfb, 0x80, 0x12, 0xdb, 0xd8, - 0x5f, 0x48, 0xc1, 0xcc, 0x20, 0xe1, 0xc4, 0x58, 0xba, 0x74, 0xc0, 0xd2, 0x9d, 0x0b, 0x4b, 0xf0, - 0xf6, 0xc1, 0x93, 0xd0, 0x37, 0xd7, 0x5f, 0x4c, 0xc1, 0xd1, 0xe8, 0x48, 0x31, 0xb2, 0x0f, 0x8f, - 0x43, 0xae, 0x83, 0x9d, 0x1d, 0x53, 0x44, 0x4b, 0x77, 0x45, 0xf8, 0x60, 0xf2, 0x38, 0x3c, 0xd9, - 0x9c, 0xcb, 0xef, 0xc4, 0x33, 0x83, 0xc2, 0x3d, 0xd6, 0x9b, 0xbe, 0x9e, 0x7e, 0x2c, 0x0d, 0x47, - 0x22, 0xc1, 0x23, 0x3b, 0x7a, 0x1b, 0x80, 0x6e, 0x74, 0x7b, 0x0e, 0x8b, 0x88, 0x98, 0x81, 0x2d, - 0xd0, 0x1a, 0x6a, 0xbc, 0x88, 0xf1, 0xec, 0x39, 0xee, 0xf3, 0x0c, 0x7d, 0x0e, 0xac, 0x8a, 0x12, - 0xbc, 0xc7, 0xeb, 0x68, 0x96, 0x76, 0xf4, 0xc4, 0x80, 0x91, 0xf6, 0x29, 0xe6, 0x03, 0x50, 0xd1, - 0xda, 0x3a, 0x36, 0x1c, 0xc5, 0x76, 0x2c, 0xac, 0x76, 0x74, 0xa3, 0x45, 0x3d, 0x48, 0xbe, 0x3e, - 0xba, 0xad, 0xb6, 0x6d, 0x2c, 0x4f, 0xb0, 0xc7, 0xeb, 0xe2, 0x29, 0xe1, 0xa0, 0x0a, 0x64, 0xf9, - 0x38, 0x72, 0x01, 0x0e, 0xf6, 0xd8, 0xe5, 0x90, 0x3e, 0x55, 0x80, 0xa2, 0x2f, 0xae, 0x46, 0xb7, - 0x43, 0xe9, 0x79, 0xf5, 0xaa, 0xaa, 0x88, 0xbd, 0x12, 0x93, 0x44, 0x91, 0xd4, 0xad, 0xf1, 0xfd, - 0xd2, 0x03, 0x30, 0x4d, 0x49, 0xcc, 0x9e, 0x83, 0x2d, 0x45, 0x6b, 0xab, 0xb6, 0x4d, 0x85, 0x96, - 0xa7, 0xa4, 0x88, 0x3c, 0xbb, 0x4c, 0x1e, 0x2d, 0x88, 0x27, 0xe8, 0x21, 0x98, 0xa2, 0x1c, 0x9d, - 0x5e, 0xdb, 0xd1, 0xbb, 0x6d, 0xac, 0x90, 0xdd, 0x9b, 0x4d, 0x3d, 0x89, 0xdb, 0xb3, 0x49, 0x42, - 0xb1, 0xca, 0x09, 0x48, 0x8f, 0x6c, 0xb4, 0x08, 0xb7, 0x51, 0xb6, 0x16, 0x36, 0xb0, 0xa5, 0x3a, - 0x58, 0xc1, 0x2f, 0xf4, 0xd4, 0xb6, 0xad, 0xa8, 0x46, 0x53, 0xd9, 0x51, 0xed, 0x9d, 0x99, 0x69, - 0x02, 0xd0, 0x48, 0xcf, 0xa4, 0xe4, 0xe3, 0x84, 0xf0, 0x02, 0xa7, 0x5b, 0xa2, 0x64, 0xf3, 0x46, - 0xf3, 0xa2, 0x6a, 0xef, 0xa0, 0x3a, 0x1c, 0xa5, 0x28, 0xb6, 0x63, 0xe9, 0x46, 0x4b, 0xd1, 0x76, - 0xb0, 0xb6, 0xab, 0xf4, 0x9c, 0xed, 0xf7, 0xcc, 0xdc, 0xe2, 0x6f, 0x9f, 0xf6, 0x70, 0x9d, 0xd2, - 0x2c, 0x10, 0x92, 0x4d, 0x67, 0xfb, 0x3d, 0x68, 0x1d, 0x4a, 0x64, 0x32, 0x3a, 0xfa, 0x8b, 0x58, - 0xd9, 0x36, 0x2d, 0xea, 0x1a, 0xcb, 0x11, 0xa6, 0xc9, 0x27, 0xc1, 0xb9, 0xcb, 0x9c, 0x61, 0xd5, - 0x6c, 0xe2, 0xfa, 0xe8, 0xfa, 0xda, 0xd2, 0xd2, 0xa2, 0x5c, 0x14, 0x28, 0xe7, 0x4d, 0x8b, 0x28, - 0x54, 0xcb, 0x74, 0x05, 0x5c, 0x64, 0x0a, 0xd5, 0x32, 0x85, 0x78, 0x1f, 0x82, 0x29, 0x4d, 0x63, - 0x63, 0xd6, 0x35, 0x85, 0xef, 0xb1, 0xec, 0x99, 0x4a, 0x40, 0x58, 0x9a, 0x76, 0x81, 0x11, 0x70, - 0x1d, 0xb7, 0xd1, 0xa3, 0x70, 0xc4, 0x13, 0x96, 0x9f, 0x71, 0xb2, 0x6f, 0x94, 0x61, 0xd6, 0x87, - 0x60, 0xaa, 0xbb, 0xdf, 0xcf, 0x88, 0x02, 0x2d, 0x76, 0xf7, 0xc3, 0x6c, 0x8f, 0xc0, 0x74, 0x77, - 0xa7, 0xdb, 0xcf, 0x77, 0x8f, 0x9f, 0x0f, 0x75, 0x77, 0xba, 0x61, 0xc6, 0x3b, 0xe9, 0x86, 0xdb, - 0xc2, 0x9a, 0xea, 0xe0, 0xe6, 0xcc, 0x31, 0x3f, 0xb9, 0xef, 0x01, 0x3a, 0x03, 0x15, 0x4d, 0x53, - 0xb0, 0xa1, 0x6e, 0xb5, 0xb1, 0xa2, 0x5a, 0xd8, 0x50, 0xed, 0x99, 0x9a, 0x9f, 0xb8, 0xac, 0x69, - 0x4b, 0xf4, 0xe9, 0x3c, 0x7d, 0x88, 0xee, 0x81, 0x49, 0x73, 0xeb, 0x79, 0x8d, 0xa9, 0xa4, 0xd2, - 0xb5, 0xf0, 0xb6, 0xbe, 0x37, 0x73, 0x07, 0x95, 0xef, 0x04, 0x79, 0x40, 0x15, 0x72, 0x8d, 0x56, - 0xa3, 0xd3, 0x50, 0xd1, 0xec, 0x1d, 0xd5, 0xea, 0x52, 0x9b, 0x6c, 0x77, 0x55, 0x0d, 0xcf, 0xdc, - 0xc9, 0x48, 0x59, 0xfd, 0x25, 0x51, 0x4d, 0x96, 0x84, 0x7d, 0x4d, 0xdf, 0x76, 0x04, 0xe2, 0xdd, - 0x6c, 0x49, 0xd0, 0x3a, 0x8e, 0x36, 0x0b, 0x15, 0x22, 0x8a, 0x40, 0xc3, 0xb3, 0x94, 0xac, 0xdc, - 0xdd, 0xe9, 0xfa, 0xdb, 0x3d, 0x05, 0xe3, 0x84, 0xd2, 0x6b, 0xf4, 0x34, 0x0b, 0xc8, 0xba, 0x3b, - 0xbe, 0x16, 0x1f, 0x84, 0xa3, 0x84, 0xa8, 0x83, 0x1d, 0xb5, 0xa9, 0x3a, 0xaa, 0x8f, 0xfa, 0x3e, - 0x4a, 0x4d, 0xe4, 0xbe, 0xca, 0x1f, 0x06, 0xfa, 0x69, 0xf5, 0xb6, 0xf6, 0x5d, 0xcd, 0xba, 0x9f, - 0xf5, 0x93, 0xd4, 0x09, 0xdd, 0x7a, 0xcb, 0x82, 0x6e, 0xa9, 0x0e, 0x25, 0xbf, 0xe2, 0xa3, 0x02, - 0x30, 0xd5, 0xaf, 0xa4, 0x48, 0x14, 0xb4, 0x70, 0x79, 0x91, 0xc4, 0x2f, 0xcf, 0x2d, 0x55, 0xd2, - 0x24, 0x8e, 0x5a, 0x59, 0xde, 0x58, 0x52, 0xe4, 0xcd, 0x4b, 0x1b, 0xcb, 0xab, 0x4b, 0x95, 0x8c, - 0x2f, 0x60, 0x7f, 0x32, 0x9b, 0xbf, 0xab, 0x72, 0xb7, 0xf4, 0xed, 0x34, 0x94, 0x83, 0x3b, 0x30, - 0xf4, 0x18, 0x1c, 0x13, 0xe9, 0x12, 0x1b, 0x3b, 0xca, 0x35, 0xdd, 0xa2, 0x2b, 0xb2, 0xa3, 0x32, - 0xef, 0xe8, 0xea, 0xc4, 0x34, 0xa7, 0x5a, 0xc7, 0xce, 0x33, 0xba, 0x45, 0xd6, 0x5b, 0x47, 0x75, - 0xd0, 0x0a, 0xd4, 0x0c, 0x53, 0xb1, 0x1d, 0xd5, 0x68, 0xaa, 0x56, 0x53, 0xf1, 0x12, 0x55, 0x8a, - 0xaa, 0x69, 0xd8, 0xb6, 0x4d, 0xe6, 0x09, 0x5d, 0x94, 0x5b, 0x0d, 0x73, 0x9d, 0x13, 0x7b, 0x2e, - 0x62, 0x9e, 0x93, 0x86, 0xf4, 0x37, 0x33, 0x48, 0x7f, 0x6f, 0x81, 0x42, 0x47, 0xed, 0x2a, 0xd8, - 0x70, 0xac, 0x7d, 0x1a, 0x77, 0xe7, 0xe5, 0x7c, 0x47, 0xed, 0x2e, 0x91, 0xf2, 0xdb, 0xb2, 0xfd, - 0x79, 0x32, 0x9b, 0xcf, 0x57, 0x0a, 0x4f, 0x66, 0xf3, 0x85, 0x0a, 0x48, 0xaf, 0x66, 0xa0, 0xe4, - 0x8f, 0xc3, 0xc9, 0xb6, 0x46, 0xa3, 0x2e, 0x2b, 0x45, 0x8d, 0xda, 0xa9, 0xa1, 0x51, 0xfb, 0xdc, - 0x02, 0xf1, 0x65, 0xf5, 0x1c, 0x8b, 0x8e, 0x65, 0xc6, 0x49, 0xe2, 0x08, 0xa2, 0x6c, 0x98, 0x45, - 0x23, 0x79, 0x99, 0x97, 0xd0, 0x05, 0xc8, 0x3d, 0x6f, 0x53, 0xec, 0x1c, 0xc5, 0xbe, 0x63, 0x38, - 0xf6, 0x93, 0xeb, 0x14, 0xbc, 0xf0, 0xe4, 0xba, 0x72, 0xe9, 0xb2, 0xbc, 0x3a, 0xbf, 0x22, 0x73, - 0x76, 0x74, 0x1c, 0xb2, 0x6d, 0xf5, 0xc5, 0xfd, 0xa0, 0xd7, 0xa3, 0x55, 0x49, 0x27, 0xe1, 0x38, - 0x64, 0xaf, 0x61, 0x75, 0x37, 0xe8, 0x6b, 0x68, 0xd5, 0x5b, 0xb8, 0x18, 0xce, 0xc0, 0x28, 0x95, - 0x17, 0x02, 0xe0, 0x12, 0xab, 0x8c, 0xa0, 0x3c, 0x64, 0x17, 0x2e, 0xcb, 0x64, 0x41, 0x54, 0xa0, - 0xc4, 0x6a, 0x95, 0xb5, 0xe5, 0xa5, 0x85, 0xa5, 0x4a, 0x5a, 0x7a, 0x08, 0x72, 0x4c, 0x08, 0x64, - 0xb1, 0xb8, 0x62, 0xa8, 0x8c, 0xf0, 0x22, 0xc7, 0x48, 0x89, 0xa7, 0x9b, 0xab, 0x8d, 0x25, 0xb9, - 0x92, 0x0e, 0x4e, 0x75, 0xb6, 0x32, 0x2a, 0xd9, 0x50, 0xf2, 0x07, 0xe2, 0x6f, 0xcf, 0x26, 0xfb, - 0x1b, 0x29, 0x28, 0xfa, 0x02, 0x6b, 0x12, 0x11, 0xa9, 0xed, 0xb6, 0x79, 0x4d, 0x51, 0xdb, 0xba, - 0x6a, 0x73, 0xd5, 0x00, 0x5a, 0x35, 0x4f, 0x6a, 0x92, 0x4e, 0xdd, 0xdb, 0xb4, 0x44, 0x46, 0x2b, - 0x39, 0xe9, 0x73, 0x29, 0xa8, 0x84, 0x23, 0xdb, 0x50, 0x37, 0x53, 0x3f, 0xce, 0x6e, 0x4a, 0x9f, - 0x49, 0x41, 0x39, 0x18, 0xce, 0x86, 0xba, 0x77, 0xfb, 0x8f, 0xb5, 0x7b, 0x7f, 0x9e, 0x86, 0xf1, - 0x40, 0x10, 0x9b, 0xb4, 0x77, 0x2f, 0xc0, 0xa4, 0xde, 0xc4, 0x9d, 0xae, 0xe9, 0x60, 0x43, 0xdb, - 0x57, 0xda, 0xf8, 0x2a, 0x6e, 0xcf, 0x48, 0xd4, 0x68, 0x9c, 0x19, 0x1e, 0x26, 0xcf, 0x2d, 0x7b, - 0x7c, 0x2b, 0x84, 0xad, 0x3e, 0xb5, 0xbc, 0xb8, 0xb4, 0xba, 0x76, 0x79, 0x63, 0xe9, 0xd2, 0xc2, - 0xfb, 0x95, 0xcd, 0x4b, 0x4f, 0x5d, 0xba, 0xfc, 0xcc, 0x25, 0xb9, 0xa2, 0x87, 0xc8, 0xde, 0xc2, - 0x65, 0xbf, 0x06, 0x95, 0x70, 0xa7, 0xd0, 0x31, 0x88, 0xea, 0x56, 0x65, 0x04, 0x4d, 0xc1, 0xc4, - 0xa5, 0xcb, 0xca, 0xfa, 0xf2, 0xe2, 0x92, 0xb2, 0x74, 0xfe, 0xfc, 0xd2, 0xc2, 0xc6, 0x3a, 0x4b, - 0x7c, 0xb8, 0xd4, 0x1b, 0x81, 0x05, 0x2e, 0x7d, 0x3a, 0x03, 0x53, 0x11, 0x3d, 0x41, 0xf3, 0x7c, - 0xcb, 0xc2, 0x76, 0x51, 0xf7, 0x27, 0xe9, 0xfd, 0x1c, 0x89, 0x19, 0xd6, 0x54, 0xcb, 0xe1, 0x3b, - 0x9c, 0xd3, 0x40, 0xa4, 0x64, 0x38, 0xfa, 0xb6, 0x8e, 0x2d, 0x9e, 0x27, 0x62, 0xfb, 0x98, 0x09, - 0xaf, 0x9e, 0xa5, 0x8a, 0xee, 0x03, 0xd4, 0x35, 0x6d, 0xdd, 0xd1, 0xaf, 0x62, 0x45, 0x37, 0x44, - 0x52, 0x89, 0xec, 0x6b, 0xb2, 0x72, 0x45, 0x3c, 0x59, 0x36, 0x1c, 0x97, 0xda, 0xc0, 0x2d, 0x35, - 0x44, 0x4d, 0x8c, 0x79, 0x46, 0xae, 0x88, 0x27, 0x2e, 0xf5, 0xed, 0x50, 0x6a, 0x9a, 0x3d, 0x12, - 0xec, 0x31, 0x3a, 0xe2, 0x3b, 0x52, 0x72, 0x91, 0xd5, 0xb9, 0x24, 0x3c, 0x8c, 0xf7, 0xb2, 0x59, - 0x25, 0xb9, 0xc8, 0xea, 0x18, 0xc9, 0xdd, 0x30, 0xa1, 0xb6, 0x5a, 0x16, 0x01, 0x17, 0x40, 0x6c, - 0x63, 0x52, 0x76, 0xab, 0x29, 0x61, 0xf5, 0x49, 0xc8, 0x0b, 0x39, 0x10, 0x57, 0x4d, 0x24, 0xa1, - 0x74, 0xd9, 0x6e, 0x3b, 0x3d, 0x5b, 0x90, 0xf3, 0x86, 0x78, 0x78, 0x3b, 0x94, 0x74, 0x5b, 0xf1, - 0x92, 0xf3, 0xe9, 0x93, 0xe9, 0xd9, 0xbc, 0x5c, 0xd4, 0x6d, 0x37, 0xb1, 0x29, 0x7d, 0x31, 0x0d, - 0xe5, 0xe0, 0xe1, 0x02, 0x5a, 0x84, 0x7c, 0xdb, 0xd4, 0x54, 0xaa, 0x5a, 0xec, 0x64, 0x6b, 0x36, - 0xe6, 0x3c, 0x62, 0x6e, 0x85, 0xd3, 0xcb, 0x2e, 0x67, 0xf5, 0x3f, 0xa4, 0x20, 0x2f, 0xaa, 0xd1, - 0x51, 0xc8, 0x76, 0x55, 0x67, 0x87, 0xc2, 0x8d, 0x36, 0xd2, 0x95, 0x94, 0x4c, 0xcb, 0xa4, 0xde, - 0xee, 0xaa, 0x06, 0x55, 0x01, 0x5e, 0x4f, 0xca, 0x64, 0x5e, 0xdb, 0x58, 0x6d, 0xd2, 0x5d, 0x8f, - 0xd9, 0xe9, 0x60, 0xc3, 0xb1, 0xc5, 0xbc, 0xf2, 0xfa, 0x05, 0x5e, 0x8d, 0xee, 0x85, 0x49, 0xc7, - 0x52, 0xf5, 0x76, 0x80, 0x36, 0x4b, 0x69, 0x2b, 0xe2, 0x81, 0x4b, 0x5c, 0x87, 0xe3, 0x02, 0xb7, - 0x89, 0x1d, 0x55, 0xdb, 0xc1, 0x4d, 0x8f, 0x29, 0x47, 0xb3, 0x1b, 0xc7, 0x38, 0xc1, 0x22, 0x7f, - 0x2e, 0x78, 0xa5, 0x6f, 0xa7, 0x60, 0x52, 0xec, 0xd3, 0x9a, 0xae, 0xb0, 0x56, 0x01, 0x54, 0xc3, - 0x30, 0x1d, 0xbf, 0xb8, 0xfa, 0x55, 0xb9, 0x8f, 0x6f, 0x6e, 0xde, 0x65, 0x92, 0x7d, 0x00, 0xd5, - 0x0e, 0x80, 0xf7, 0x64, 0xa0, 0xd8, 0x6a, 0x50, 0xe4, 0x27, 0x47, 0xf4, 0xf8, 0x91, 0xed, 0xec, - 0x81, 0x55, 0x91, 0x0d, 0x1d, 0x9a, 0x86, 0xd1, 0x2d, 0xdc, 0xd2, 0x0d, 0x9e, 0x0f, 0x66, 0x05, - 0x91, 0x7f, 0xc9, 0xba, 0xf9, 0x97, 0xc6, 0x27, 0x52, 0x30, 0xa5, 0x99, 0x9d, 0x70, 0x7f, 0x1b, - 0x95, 0x50, 0x7a, 0xc1, 0xbe, 0x98, 0x7a, 0xee, 0xf1, 0x96, 0xee, 0xec, 0xf4, 0xb6, 0xe6, 0x34, - 0xb3, 0x73, 0xa6, 0x65, 0xb6, 0x55, 0xa3, 0xe5, 0x9d, 0x9f, 0xd2, 0x1f, 0xda, 0xfd, 0x2d, 0x6c, - 0xdc, 0xdf, 0x32, 0x7d, 0xa7, 0xa9, 0xe7, 0xbc, 0x9f, 0x7f, 0x9d, 0x4a, 0x7d, 0x21, 0x9d, 0xb9, - 0xb0, 0xd6, 0xf8, 0x52, 0xba, 0x7a, 0x81, 0x35, 0xb7, 0x26, 0xc4, 0x23, 0xe3, 0xed, 0x36, 0xd6, - 0xc8, 0x90, 0xe1, 0xfb, 0xf7, 0xc2, 0x74, 0xcb, 0x6c, 0x99, 0x14, 0xf1, 0x0c, 0xf9, 0xc5, 0x4f, - 0x64, 0x0b, 0x6e, 0x6d, 0x35, 0xf6, 0xf8, 0xb6, 0x7e, 0x09, 0xa6, 0x38, 0xb1, 0x42, 0x8f, 0x84, - 0xd8, 0xc6, 0x06, 0x0d, 0x4d, 0xab, 0xcd, 0xfc, 0xfe, 0x77, 0xa9, 0x43, 0x97, 0x27, 0x39, 0x2b, - 0x79, 0xc6, 0xf6, 0x3e, 0x75, 0x19, 0x8e, 0x04, 0xf0, 0xd8, 0xb2, 0xc5, 0x56, 0x0c, 0xe2, 0xbf, - 0xe5, 0x88, 0x53, 0x3e, 0xc4, 0x75, 0xce, 0x5a, 0x5f, 0x80, 0xf1, 0xc3, 0x60, 0xfd, 0x3b, 0x8e, - 0x55, 0xc2, 0x7e, 0x90, 0x0b, 0x30, 0x41, 0x41, 0xb4, 0x9e, 0xed, 0x98, 0x1d, 0x6a, 0x13, 0x87, - 0xc3, 0xfc, 0xd1, 0x77, 0xd9, 0x3a, 0x2a, 0x13, 0xb6, 0x05, 0x97, 0xab, 0x5e, 0x07, 0x7a, 0x0a, - 0xd6, 0xc4, 0x5a, 0x3b, 0x06, 0xe1, 0x9b, 0xbc, 0x23, 0x2e, 0x7d, 0xfd, 0x0a, 0x4c, 0x93, 0xdf, - 0xd4, 0x64, 0xf9, 0x7b, 0x12, 0x9f, 0x83, 0x9b, 0xf9, 0xf6, 0x2f, 0xb0, 0xa5, 0x3a, 0xe5, 0x02, - 0xf8, 0xfa, 0xe4, 0x9b, 0xc5, 0x16, 0x76, 0x1c, 0x6c, 0xd9, 0x8a, 0xda, 0x8e, 0xea, 0x9e, 0x2f, - 0x89, 0x31, 0xf3, 0x1b, 0xaf, 0x07, 0x67, 0xf1, 0x02, 0xe3, 0x9c, 0x6f, 0xb7, 0xeb, 0x9b, 0x70, - 0x2c, 0x42, 0x2b, 0x12, 0x60, 0x7e, 0x9a, 0x63, 0x4e, 0xf7, 0x69, 0x06, 0x81, 0x5d, 0x03, 0x51, - 0xef, 0xce, 0x65, 0x02, 0xcc, 0xdf, 0xe4, 0x98, 0x88, 0xf3, 0x8a, 0x29, 0x25, 0x88, 0x4f, 0xc2, - 0xe4, 0x55, 0x6c, 0x6d, 0x99, 0x36, 0x4f, 0x1c, 0x25, 0x80, 0xfb, 0x0c, 0x87, 0x9b, 0xe0, 0x8c, - 0x34, 0x93, 0x44, 0xb0, 0x1e, 0x85, 0xfc, 0xb6, 0xaa, 0xe1, 0x04, 0x10, 0x9f, 0xe5, 0x10, 0x63, - 0x84, 0x9e, 0xb0, 0xce, 0x43, 0xa9, 0x65, 0x72, 0xaf, 0x15, 0xcf, 0xfe, 0x39, 0xce, 0x5e, 0x14, - 0x3c, 0x1c, 0xa2, 0x6b, 0x76, 0x7b, 0x6d, 0xe2, 0xd2, 0xe2, 0x21, 0x7e, 0x4b, 0x40, 0x08, 0x1e, - 0x0e, 0x71, 0x08, 0xb1, 0xbe, 0x22, 0x20, 0x6c, 0x9f, 0x3c, 0x9f, 0x80, 0xa2, 0x69, 0xb4, 0xf7, - 0x4d, 0x23, 0x49, 0x27, 0x3e, 0xcf, 0x11, 0x80, 0xb3, 0x10, 0x80, 0x73, 0x50, 0x48, 0x3a, 0x11, - 0xff, 0xf0, 0x75, 0xb1, 0x3c, 0xc4, 0x0c, 0x5c, 0x80, 0x09, 0x61, 0xa0, 0x74, 0xd3, 0x48, 0x00, - 0xf1, 0x8f, 0x38, 0x44, 0xd9, 0xc7, 0xc6, 0x87, 0xe1, 0x60, 0xdb, 0x69, 0xe1, 0x24, 0x20, 0x5f, - 0x14, 0xc3, 0xe0, 0x2c, 0x5c, 0x94, 0x5b, 0xd8, 0xd0, 0x76, 0x92, 0x21, 0xfc, 0xb6, 0x10, 0xa5, - 0xe0, 0x21, 0x10, 0x0b, 0x30, 0xde, 0x51, 0x2d, 0x7b, 0x47, 0x6d, 0x27, 0x9a, 0x8e, 0x7f, 0xcc, - 0x31, 0x4a, 0x2e, 0x13, 0x97, 0x48, 0xcf, 0x38, 0x0c, 0xcc, 0x97, 0x84, 0x44, 0x7c, 0x6c, 0x7c, - 0xe9, 0xd9, 0x0e, 0xcd, 0xb2, 0x1d, 0x06, 0xed, 0x9f, 0x88, 0xa5, 0xc7, 0x78, 0x57, 0xfd, 0x88, - 0xe7, 0xa0, 0x60, 0xeb, 0x2f, 0x26, 0x82, 0xf9, 0xa7, 0x62, 0xa6, 0x29, 0x03, 0x61, 0x7e, 0x3f, - 0x1c, 0x8f, 0x74, 0x13, 0x09, 0xc0, 0xfe, 0x19, 0x07, 0x3b, 0x1a, 0xe1, 0x2a, 0xb8, 0x49, 0x38, - 0x2c, 0xe4, 0xef, 0x08, 0x93, 0x80, 0x43, 0x58, 0x6b, 0x64, 0x1f, 0x61, 0xab, 0xdb, 0x87, 0x93, - 0xda, 0xef, 0x0a, 0xa9, 0x31, 0xde, 0x80, 0xd4, 0x36, 0xe0, 0x28, 0x47, 0x3c, 0xdc, 0xbc, 0xfe, - 0x9e, 0x30, 0xac, 0x8c, 0x7b, 0x33, 0x38, 0xbb, 0x1f, 0x80, 0xaa, 0x2b, 0x4e, 0x11, 0xb0, 0xda, - 0x4a, 0x47, 0xed, 0x26, 0x40, 0xfe, 0x7d, 0x8e, 0x2c, 0x2c, 0xbe, 0x1b, 0xf1, 0xda, 0xab, 0x6a, - 0x97, 0x80, 0x3f, 0x0b, 0x33, 0x02, 0xbc, 0x67, 0x58, 0x58, 0x33, 0x5b, 0x86, 0xfe, 0x22, 0x6e, - 0x26, 0x80, 0xfe, 0xe7, 0xa1, 0xa9, 0xda, 0xf4, 0xb1, 0x13, 0xe4, 0x65, 0xa8, 0xb8, 0xb1, 0x8a, - 0xa2, 0x77, 0xba, 0xa6, 0xe5, 0xc4, 0x20, 0xfe, 0x0b, 0x31, 0x53, 0x2e, 0xdf, 0x32, 0x65, 0xab, - 0x2f, 0x41, 0x99, 0x16, 0x93, 0xaa, 0xe4, 0x97, 0x39, 0xd0, 0xb8, 0xc7, 0xc5, 0x0d, 0x87, 0x66, - 0x76, 0xba, 0xaa, 0x95, 0xc4, 0xfe, 0xfd, 0x4b, 0x61, 0x38, 0x38, 0x0b, 0x37, 0x1c, 0xce, 0x7e, - 0x17, 0x13, 0x6f, 0x9f, 0x00, 0xe1, 0x2b, 0xc2, 0x70, 0x08, 0x1e, 0x0e, 0x21, 0x02, 0x86, 0x04, - 0x10, 0x5f, 0x15, 0x10, 0x82, 0x87, 0x40, 0x3c, 0xed, 0x39, 0x5a, 0x0b, 0xb7, 0x74, 0xdb, 0xb1, - 0x58, 0x98, 0x3c, 0x1c, 0xea, 0x6b, 0xaf, 0x07, 0x83, 0x30, 0xd9, 0xc7, 0x4a, 0x2c, 0x11, 0x4f, - 0xbb, 0xd2, 0x5d, 0x54, 0x7c, 0xc7, 0xbe, 0x2e, 0x2c, 0x91, 0x8f, 0x8d, 0xf4, 0xcd, 0x17, 0x21, - 0x12, 0xb1, 0x6b, 0x64, 0xef, 0x90, 0x00, 0xee, 0x0f, 0x42, 0x9d, 0x5b, 0x17, 0xbc, 0x04, 0xd3, - 0x17, 0xff, 0xf4, 0x8c, 0x5d, 0xbc, 0x9f, 0x48, 0x3b, 0xff, 0x30, 0x14, 0xff, 0x6c, 0x32, 0x4e, - 0x66, 0x43, 0x26, 0x42, 0xf1, 0x14, 0x8a, 0xbb, 0x3f, 0x34, 0xf3, 0xb7, 0xdf, 0xe0, 0xe3, 0x0d, - 0x86, 0x53, 0xf5, 0x15, 0xa2, 0xe4, 0xc1, 0xa0, 0x27, 0x1e, 0xec, 0x17, 0xde, 0x70, 0xf5, 0x3c, - 0x10, 0xf3, 0xd4, 0xcf, 0xc3, 0x78, 0x20, 0xe0, 0x89, 0x87, 0xfa, 0x10, 0x87, 0x2a, 0xf9, 0xe3, - 0x9d, 0xfa, 0x43, 0x90, 0x25, 0xc1, 0x4b, 0x3c, 0xfb, 0x2f, 0x72, 0x76, 0x4a, 0x5e, 0x7f, 0x2f, - 0xe4, 0x45, 0xd0, 0x12, 0xcf, 0xfa, 0x61, 0xce, 0xea, 0xb2, 0x10, 0x76, 0x11, 0xb0, 0xc4, 0xb3, - 0x7f, 0x44, 0xb0, 0x0b, 0x16, 0xc2, 0x9e, 0x5c, 0x84, 0xdf, 0xf8, 0x3b, 0x59, 0xee, 0x74, 0x84, - 0xec, 0xce, 0xc1, 0x18, 0x8f, 0x54, 0xe2, 0xb9, 0x3f, 0xc6, 0x1b, 0x17, 0x1c, 0xf5, 0x47, 0x60, - 0x34, 0xa1, 0xc0, 0x7f, 0x99, 0xb3, 0x32, 0xfa, 0xfa, 0x02, 0x14, 0x7d, 0xd1, 0x49, 0x3c, 0xfb, - 0xaf, 0x70, 0x76, 0x3f, 0x17, 0xe9, 0x3a, 0x8f, 0x4e, 0xe2, 0x01, 0x3e, 0x21, 0xba, 0xce, 0x39, - 0x88, 0xd8, 0x44, 0x60, 0x12, 0xcf, 0xfd, 0x49, 0x21, 0x75, 0xc1, 0x52, 0x7f, 0x02, 0x0a, 0xae, - 0xb3, 0x89, 0xe7, 0xff, 0xbb, 0x9c, 0xdf, 0xe3, 0x21, 0x12, 0xf0, 0x39, 0xbb, 0x78, 0x88, 0x4f, - 0x09, 0x09, 0xf8, 0xb8, 0xc8, 0x32, 0x0a, 0x07, 0x30, 0xf1, 0x48, 0x7f, 0x4f, 0x2c, 0xa3, 0x50, - 0xfc, 0x42, 0x66, 0x93, 0xda, 0xfc, 0x78, 0x88, 0x5f, 0x15, 0xb3, 0x49, 0xe9, 0x49, 0x37, 0xc2, - 0x11, 0x41, 0x3c, 0xc6, 0xdf, 0x17, 0xdd, 0x08, 0x05, 0x04, 0xf5, 0x35, 0x40, 0xfd, 0xd1, 0x40, - 0x3c, 0xde, 0xcb, 0x1c, 0x6f, 0xb2, 0x2f, 0x18, 0xa8, 0x3f, 0x03, 0x47, 0xa3, 0x23, 0x81, 0x78, - 0xd4, 0xdf, 0x78, 0x23, 0xb4, 0x77, 0xf3, 0x07, 0x02, 0xf5, 0x0d, 0xcf, 0xa5, 0xf8, 0xa3, 0x80, - 0x78, 0xd8, 0x4f, 0xbf, 0x11, 0x34, 0xdc, 0xfe, 0x20, 0xa0, 0x3e, 0x0f, 0xe0, 0x39, 0xe0, 0x78, - 0xac, 0xcf, 0x70, 0x2c, 0x1f, 0x13, 0x59, 0x1a, 0xdc, 0xff, 0xc6, 0xf3, 0x7f, 0x56, 0x2c, 0x0d, - 0xce, 0x41, 0x96, 0x86, 0x70, 0xbd, 0xf1, 0xdc, 0x9f, 0x13, 0x4b, 0x43, 0xb0, 0x10, 0xcd, 0xf6, - 0x79, 0xb7, 0x78, 0x84, 0xcf, 0x0b, 0xcd, 0xf6, 0x71, 0xd5, 0x2f, 0xc1, 0x64, 0x9f, 0x43, 0x8c, - 0x87, 0xfa, 0x02, 0x87, 0xaa, 0x84, 0xfd, 0xa1, 0xdf, 0x79, 0x71, 0x67, 0x18, 0x8f, 0xf6, 0x0f, - 0x42, 0xce, 0x8b, 0xfb, 0xc2, 0xfa, 0x39, 0xc8, 0x1b, 0xbd, 0x76, 0x9b, 0x2c, 0x1e, 0x34, 0xfc, - 0xce, 0xdf, 0xcc, 0x7f, 0xff, 0x11, 0x97, 0x8e, 0x60, 0xa8, 0x3f, 0x04, 0xa3, 0xb8, 0xb3, 0x85, - 0x9b, 0x71, 0x9c, 0xdf, 0xff, 0x91, 0x30, 0x98, 0x84, 0xba, 0xfe, 0x04, 0x00, 0x4b, 0x8d, 0xd0, - 0xe3, 0xc1, 0x18, 0xde, 0xff, 0xf1, 0x23, 0x7e, 0x1b, 0xc7, 0x63, 0xf1, 0x00, 0xd8, 0xdd, 0x9e, - 0xe1, 0x00, 0xaf, 0x07, 0x01, 0xe8, 0x8c, 0x3c, 0x0a, 0x63, 0xcf, 0xdb, 0xa6, 0xe1, 0xa8, 0xad, - 0x38, 0xee, 0xff, 0xc9, 0xb9, 0x05, 0x3d, 0x11, 0x58, 0xc7, 0xb4, 0xb0, 0xa3, 0xb6, 0xec, 0x38, - 0xde, 0xff, 0xc5, 0x79, 0x5d, 0x06, 0xc2, 0xac, 0xa9, 0xb6, 0x93, 0x64, 0xdc, 0xff, 0x5b, 0x30, - 0x0b, 0x06, 0xd2, 0x69, 0xf2, 0x7b, 0x17, 0xef, 0xc7, 0xf1, 0xfe, 0x40, 0x74, 0x9a, 0xd3, 0xd7, - 0xdf, 0x0b, 0x05, 0xf2, 0x93, 0x5d, 0xb1, 0x8b, 0x61, 0xfe, 0x3f, 0x9c, 0xd9, 0xe3, 0x20, 0x2d, - 0xdb, 0x4e, 0xd3, 0xd1, 0xe3, 0x85, 0x7d, 0x9d, 0xcf, 0xb4, 0xa0, 0xaf, 0xcf, 0x43, 0xd1, 0x76, - 0x9a, 0xcd, 0x1e, 0x8f, 0x4f, 0x63, 0xd8, 0xff, 0xef, 0x8f, 0xdc, 0x94, 0x85, 0xcb, 0x43, 0x66, - 0xfb, 0xda, 0xae, 0xd3, 0x35, 0xe9, 0x11, 0x48, 0x1c, 0xc2, 0x1b, 0x1c, 0xc1, 0xc7, 0x52, 0x5f, - 0x80, 0x12, 0x19, 0x8b, 0x85, 0xbb, 0x98, 0x9e, 0x57, 0xc5, 0x40, 0xfc, 0x25, 0x17, 0x40, 0x80, - 0xa9, 0xf1, 0xb3, 0xdf, 0x7c, 0xf5, 0x44, 0xea, 0x5b, 0xaf, 0x9e, 0x48, 0xfd, 0xf9, 0xab, 0x27, - 0x52, 0x9f, 0x7c, 0xed, 0xc4, 0xc8, 0xb7, 0x5e, 0x3b, 0x31, 0xf2, 0xa7, 0xaf, 0x9d, 0x18, 0x89, - 0x4e, 0x1b, 0xc3, 0x05, 0xf3, 0x82, 0xc9, 0x12, 0xc6, 0xcf, 0x49, 0x81, 0x74, 0x71, 0xcb, 0xf4, - 0xb2, 0xb5, 0xee, 0x26, 0x07, 0xfe, 0x20, 0x0d, 0x77, 0xd2, 0xeb, 0xbe, 0x56, 0x47, 0x37, 0x9c, - 0x33, 0x9a, 0xb5, 0xdf, 0x75, 0xcc, 0x33, 0x1d, 0x6c, 0xed, 0xb6, 0x31, 0xff, 0xc3, 0xb3, 0xbf, - 0x33, 0x1e, 0xd9, 0x1c, 0x23, 0x9b, 0x63, 0xcf, 0xab, 0x91, 0xd9, 0x62, 0x69, 0x01, 0xc6, 0xd6, - 0x2c, 0xd3, 0xdc, 0xbe, 0xdc, 0x45, 0x88, 0xdf, 0x60, 0xe6, 0x37, 0xe3, 0xa8, 0x1a, 0x56, 0x20, - 0xb3, 0x8b, 0xf7, 0x69, 0xe2, 0xbc, 0x24, 0x93, 0x9f, 0x84, 0xaa, 0xa9, 0x3a, 0x2a, 0x4d, 0x98, - 0x97, 0x64, 0xfa, 0x5b, 0x6a, 0xc0, 0x28, 0x05, 0x41, 0x8f, 0x42, 0xc6, 0xec, 0xda, 0x3c, 0xbb, - 0x7f, 0xfb, 0xdc, 0xa0, 0xbe, 0xcc, 0xf1, 0x26, 0x1b, 0xd9, 0x6f, 0x1e, 0xd4, 0x46, 0x64, 0xc2, - 0xd3, 0x58, 0xfb, 0xeb, 0xef, 0x9c, 0x48, 0xfd, 0xf6, 0xab, 0x27, 0x52, 0x83, 0x24, 0xf9, 0xdc, - 0x9c, 0x4f, 0x50, 0x3e, 0x61, 0x0c, 0x92, 0xcb, 0x56, 0x8e, 0x8e, 0xf0, 0xdd, 0xf0, 0x4b, 0x69, - 0x38, 0xe1, 0x23, 0x6a, 0xeb, 0x5b, 0xf6, 0x99, 0xdd, 0xab, 0x67, 0xc8, 0xf8, 0x6c, 0x2e, 0x35, - 0xe4, 0xeb, 0x29, 0x79, 0x3e, 0xb7, 0x7b, 0x75, 0x80, 0xbc, 0xe6, 0x20, 0xbb, 0xa6, 0xea, 0x96, - 0x10, 0x4c, 0xca, 0x13, 0xcc, 0xb4, 0x77, 0xb9, 0x95, 0xd4, 0xb1, 0x82, 0x74, 0x16, 0xf2, 0x4f, - 0x2d, 0x3f, 0xfc, 0x60, 0x12, 0x9e, 0x0c, 0xe7, 0x69, 0xc8, 0x42, 0x14, 0x5f, 0x8b, 0x10, 0xc7, - 0x37, 0x5e, 0x3b, 0x91, 0x72, 0x45, 0x32, 0x1b, 0x2b, 0x12, 0x3e, 0x5a, 0x57, 0x18, 0x9f, 0x4c, - 0x43, 0x2d, 0x7c, 0x2a, 0x40, 0x96, 0xa2, 0xed, 0xa8, 0x9d, 0xee, 0xa0, 0x77, 0xba, 0xce, 0x41, - 0x61, 0x43, 0xd0, 0xa0, 0x19, 0x18, 0xb3, 0xb1, 0x66, 0x1a, 0x4d, 0x9b, 0x8e, 0x24, 0x23, 0x8b, - 0x22, 0x19, 0x8d, 0xa1, 0x1a, 0xa6, 0xcd, 0xaf, 0x9c, 0xb2, 0x42, 0xe3, 0xd7, 0x53, 0x87, 0x5b, - 0x1b, 0x65, 0xb7, 0x29, 0xba, 0x40, 0xd6, 0x52, 0xcf, 0xdd, 0x3b, 0xec, 0x40, 0x85, 0x4e, 0xa3, - 0x37, 0x04, 0xdf, 0xe9, 0xc9, 0x89, 0xf0, 0xe9, 0xc9, 0x33, 0xb8, 0xdd, 0x7e, 0xca, 0x30, 0xaf, - 0x19, 0x1b, 0x84, 0xc7, 0x15, 0xc9, 0xc7, 0xd3, 0x70, 0xa2, 0xef, 0xa0, 0x84, 0x9b, 0x97, 0x41, - 0x12, 0xa9, 0x43, 0x7e, 0x51, 0x58, 0xad, 0xc3, 0x0a, 0xe4, 0x57, 0x0f, 0x29, 0x90, 0x71, 0xd1, - 0x92, 0x90, 0xc7, 0x3d, 0xf1, 0xf2, 0x10, 0xfd, 0xbf, 0x01, 0x71, 0x7c, 0xe8, 0x71, 0xb8, 0xdd, - 0xa7, 0x40, 0xea, 0x96, 0xa6, 0x9f, 0xe1, 0x42, 0xf6, 0xad, 0x98, 0x23, 0xbe, 0x15, 0x43, 0x48, - 0xe6, 0xe8, 0xc3, 0xe8, 0x45, 0x53, 0x4d, 0x66, 0xbb, 0xaa, 0x31, 0xab, 0xb4, 0x1a, 0xa7, 0xb8, - 0xd5, 0x98, 0x69, 0x94, 0xfe, 0x6a, 0x14, 0xc6, 0x64, 0xfc, 0x42, 0x0f, 0xdb, 0xf4, 0x95, 0x44, - 0xac, 0xed, 0x98, 0xfc, 0xb6, 0xbb, 0x34, 0x17, 0x39, 0x9e, 0x39, 0x4e, 0xbd, 0xa4, 0xed, 0x98, - 0x17, 0x47, 0x64, 0xca, 0x41, 0xdf, 0x01, 0x6b, 0xf7, 0xec, 0x1d, 0x7e, 0x29, 0xf9, 0xd4, 0x70, - 0xd6, 0xf3, 0x84, 0xf4, 0xe2, 0x88, 0xcc, 0x78, 0x48, 0xb3, 0xf4, 0xfd, 0xb5, 0x6c, 0x92, 0x66, - 0x97, 0x8d, 0x6d, 0xda, 0x2c, 0xe1, 0x40, 0x17, 0x01, 0x6c, 0xec, 0x88, 0xab, 0x0c, 0xa3, 0x94, - 0xff, 0xee, 0xe1, 0xfc, 0xeb, 0xd8, 0x61, 0x6e, 0xeb, 0xe2, 0x88, 0x5c, 0xb0, 0x45, 0x81, 0x20, - 0xe9, 0x86, 0xee, 0x28, 0xda, 0x8e, 0xaa, 0x1b, 0xf4, 0x0c, 0x3e, 0x16, 0x69, 0xd9, 0xd0, 0x9d, - 0x05, 0x42, 0x4e, 0x90, 0x74, 0x51, 0x20, 0xa2, 0x78, 0xa1, 0x87, 0xf9, 0xdd, 0xb7, 0x58, 0x51, - 0x3c, 0x4d, 0x48, 0x89, 0x28, 0x28, 0x0f, 0x7a, 0x0a, 0x8a, 0xf4, 0xb8, 0x55, 0xd9, 0x6a, 0x9b, - 0xda, 0x2e, 0x7f, 0xb3, 0x64, 0x76, 0x38, 0x44, 0x83, 0x30, 0x34, 0x08, 0xfd, 0xc5, 0x11, 0x19, - 0xb6, 0xdc, 0x12, 0x6a, 0x40, 0x9e, 0x5d, 0xfb, 0x75, 0xf6, 0xf8, 0xbb, 0x81, 0x77, 0x0e, 0x47, - 0xa2, 0x37, 0x80, 0x37, 0xf6, 0x2e, 0x8e, 0xc8, 0x63, 0x1a, 0xfb, 0x89, 0x96, 0xa0, 0x80, 0x8d, - 0x26, 0xef, 0x4e, 0x91, 0xbf, 0x45, 0x35, 0x5c, 0x2f, 0x8c, 0xa6, 0xe8, 0x4c, 0x1e, 0xf3, 0xdf, - 0xe8, 0x71, 0xc8, 0x69, 0x66, 0xa7, 0xa3, 0x3b, 0xf4, 0x1d, 0xc3, 0xe2, 0xd9, 0x3b, 0x62, 0x3a, - 0x42, 0x69, 0x2f, 0x8e, 0xc8, 0x9c, 0x8b, 0x4c, 0x4f, 0x13, 0xb7, 0xf5, 0xab, 0xd8, 0x22, 0x83, - 0x99, 0x4a, 0x32, 0x3d, 0x8b, 0x8c, 0x9e, 0x0e, 0xa7, 0xd0, 0x14, 0x85, 0xc6, 0x18, 0x77, 0x2f, - 0xd2, 0xdd, 0x50, 0xf4, 0x69, 0x32, 0xb1, 0x58, 0x7c, 0x07, 0xc2, 0x9d, 0xbd, 0x28, 0x4a, 0x65, - 0x28, 0xf9, 0xf5, 0x56, 0xea, 0xb8, 0x8c, 0xf4, 0x10, 0x7f, 0x06, 0xc6, 0xae, 0x62, 0xcb, 0x66, - 0x27, 0xf8, 0x94, 0x91, 0x17, 0xd1, 0x29, 0x18, 0xa7, 0x72, 0x53, 0xc4, 0xf3, 0x34, 0xbd, 0x30, - 0x52, 0xa2, 0x95, 0x57, 0x38, 0x51, 0x0d, 0x8a, 0xdd, 0xb3, 0x5d, 0x97, 0x24, 0x43, 0x49, 0xa0, - 0x7b, 0xb6, 0xcb, 0x09, 0xa4, 0x3a, 0x54, 0xc2, 0xaa, 0xeb, 0xf7, 0x9a, 0x85, 0x08, 0xaf, 0x59, - 0x10, 0x9e, 0xf6, 0xf7, 0xd2, 0x2e, 0xb3, 0xab, 0xad, 0x64, 0xb9, 0x11, 0x23, 0x41, 0xb9, 0x8b, - 0x67, 0xab, 0x7d, 0xa1, 0x9d, 0xeb, 0x6b, 0x1a, 0x79, 0x12, 0x8a, 0x7c, 0xf2, 0xcf, 0x6a, 0x29, - 0x99, 0x72, 0xa0, 0xe3, 0x44, 0xa1, 0x54, 0xdd, 0x50, 0xf4, 0xa6, 0x78, 0x9b, 0x98, 0x96, 0x97, - 0x9b, 0xe8, 0x69, 0xa8, 0x68, 0xa6, 0x61, 0x63, 0xc3, 0xee, 0xd9, 0x4a, 0x57, 0xb5, 0xd4, 0x8e, - 0xf7, 0xd2, 0x5d, 0xf4, 0x34, 0x2d, 0x08, 0xf2, 0x35, 0x4a, 0x2d, 0x4f, 0x68, 0xc1, 0x0a, 0xb4, - 0x02, 0x70, 0x55, 0x6d, 0xeb, 0x4d, 0xd5, 0x31, 0x2d, 0x9b, 0xbf, 0x9c, 0x32, 0x08, 0xec, 0x8a, - 0x20, 0xdc, 0xec, 0x36, 0x55, 0x07, 0xf3, 0x20, 0xca, 0xc7, 0x8f, 0xee, 0x82, 0x09, 0xb5, 0xdb, - 0x55, 0x6c, 0x47, 0x75, 0xb0, 0xb2, 0xb5, 0xef, 0x60, 0x9b, 0xda, 0x8b, 0x92, 0x3c, 0xae, 0x76, - 0xbb, 0xeb, 0xa4, 0xb6, 0x41, 0x2a, 0xa5, 0xa6, 0x3b, 0xdb, 0x74, 0x69, 0xba, 0xb1, 0x5d, 0xca, - 0x8b, 0xed, 0x48, 0x1d, 0xbd, 0x5a, 0xc1, 0x64, 0x20, 0x6e, 0xa3, 0xe4, 0x76, 0xb0, 0xde, 0xda, - 0x71, 0xe8, 0xb0, 0x33, 0x32, 0x2f, 0x91, 0x89, 0xe9, 0x5a, 0xe6, 0x55, 0x76, 0x5b, 0x28, 0x2f, - 0xb3, 0x82, 0xf4, 0x6b, 0x69, 0x98, 0xec, 0x5b, 0xbe, 0x04, 0x97, 0x5e, 0xf0, 0xe7, 0x6d, 0x91, - 0xdf, 0xe8, 0x1c, 0xc1, 0x55, 0x9b, 0xfc, 0xa5, 0x95, 0xe2, 0xd9, 0xdb, 0x06, 0x48, 0xe0, 0x22, - 0x25, 0xe2, 0x03, 0xe7, 0x2c, 0x68, 0x13, 0x2a, 0x6d, 0xd5, 0x76, 0x14, 0xb6, 0x8a, 0xd8, 0x5b, - 0xc2, 0x99, 0xa1, 0x96, 0x60, 0x45, 0x15, 0xab, 0x8f, 0x28, 0x37, 0x87, 0x2b, 0xb7, 0x03, 0xb5, - 0xe8, 0x59, 0x98, 0xde, 0xda, 0x7f, 0x51, 0x35, 0x1c, 0xdd, 0xa0, 0x97, 0x8d, 0x82, 0x73, 0x54, - 0x1b, 0x00, 0xbd, 0x74, 0x55, 0x6f, 0x62, 0x43, 0x13, 0x93, 0x33, 0xe5, 0x42, 0xb8, 0x93, 0x67, - 0x4b, 0xcf, 0x42, 0x39, 0x68, 0x8b, 0x50, 0x19, 0xd2, 0xce, 0x1e, 0x97, 0x48, 0xda, 0xd9, 0x43, - 0x0f, 0xf3, 0x88, 0x3c, 0x4d, 0x6f, 0xcb, 0x0d, 0x72, 0x16, 0x9c, 0xdb, 0x7b, 0x97, 0x50, 0x92, - 0xdc, 0x95, 0xe0, 0x1a, 0x86, 0x30, 0xb6, 0x74, 0x1a, 0x26, 0x42, 0x46, 0xcc, 0x37, 0xad, 0x29, - 0xff, 0xb4, 0x4a, 0x13, 0x30, 0x1e, 0xb0, 0x55, 0xd2, 0x1f, 0xe7, 0x20, 0x2f, 0x63, 0xbb, 0x4b, - 0x94, 0x18, 0x5d, 0x84, 0x02, 0xde, 0xd3, 0x70, 0xd7, 0x11, 0x56, 0x61, 0x98, 0x11, 0x67, 0x3c, - 0x4b, 0x82, 0x9e, 0x98, 0x2b, 0x97, 0x19, 0x3d, 0x1a, 0x70, 0xc9, 0xa7, 0xe2, 0x40, 0xfc, 0x3e, - 0xf9, 0xb1, 0xa0, 0x4f, 0xbe, 0x23, 0x86, 0x37, 0xe4, 0x94, 0x1f, 0x0d, 0x38, 0xe5, 0xb8, 0x86, - 0x03, 0x5e, 0x79, 0x39, 0xc2, 0x2b, 0xc7, 0x0d, 0x7f, 0x80, 0x5b, 0x5e, 0x8e, 0x70, 0xcb, 0xb3, - 0xb1, 0x7d, 0x89, 0xf4, 0xcb, 0x8f, 0x05, 0xfd, 0x72, 0x9c, 0x38, 0x42, 0x8e, 0x79, 0x25, 0xca, - 0x31, 0x9f, 0x8e, 0xc1, 0x18, 0xe8, 0x99, 0x17, 0xfa, 0x3c, 0xf3, 0x5d, 0x31, 0x50, 0x11, 0xae, - 0x79, 0x39, 0xe0, 0x13, 0x21, 0x91, 0x6c, 0xa2, 0x9d, 0x22, 0x3a, 0xdf, 0xef, 0xe5, 0xef, 0x8e, - 0x53, 0xb5, 0x28, 0x37, 0xff, 0x44, 0xc8, 0xcd, 0xdf, 0x19, 0x37, 0xaa, 0x90, 0x9f, 0xf7, 0xbc, - 0xf3, 0x69, 0x62, 0x1f, 0x43, 0x2b, 0x83, 0xd8, 0x52, 0x6c, 0x59, 0xa6, 0xc5, 0x1d, 0x1f, 0x2b, - 0x48, 0xb3, 0xc4, 0x62, 0x7b, 0xfa, 0x3f, 0xc4, 0x93, 0xd3, 0x45, 0xeb, 0xd3, 0x76, 0xe9, 0x6b, - 0x29, 0x8f, 0x97, 0x5a, 0x36, 0xbf, 0xb5, 0x2f, 0x70, 0x6b, 0xef, 0x73, 0xf0, 0xe9, 0xa0, 0x83, - 0xaf, 0x41, 0x91, 0xf8, 0x94, 0x90, 0xef, 0x56, 0xbb, 0xc2, 0x77, 0xa3, 0x7b, 0x60, 0x92, 0xda, - 0x5f, 0x16, 0x06, 0x70, 0x43, 0x92, 0xa5, 0x86, 0x64, 0x82, 0x3c, 0x60, 0x12, 0x64, 0x8e, 0xe2, - 0x7e, 0x98, 0xf2, 0xd1, 0x12, 0x5c, 0xea, 0x0b, 0x98, 0x93, 0xaa, 0xb8, 0xd4, 0xf3, 0xdd, 0xee, - 0x45, 0xd5, 0xde, 0x91, 0x56, 0x3d, 0x01, 0x79, 0x71, 0x01, 0x82, 0xac, 0x66, 0x36, 0xd9, 0xb8, - 0xc7, 0x65, 0xfa, 0x9b, 0xc4, 0x0a, 0x6d, 0xb3, 0xc5, 0x6f, 0x40, 0x92, 0x9f, 0x84, 0xca, 0x5d, - 0xda, 0x05, 0xb6, 0x66, 0xa5, 0x2f, 0xa7, 0x3c, 0x3c, 0x2f, 0x54, 0x88, 0xf2, 0xea, 0xa9, 0x9b, - 0xe9, 0xd5, 0xd3, 0x6f, 0xce, 0xab, 0x4b, 0x6f, 0xa4, 0xbc, 0x29, 0x75, 0xfd, 0xf5, 0x8d, 0x89, - 0x80, 0x68, 0x17, 0x7b, 0x13, 0x9c, 0xdd, 0xd4, 0x65, 0x05, 0x11, 0x6a, 0xe5, 0x22, 0x12, 0x14, - 0x63, 0xbe, 0xa4, 0x06, 0x7a, 0x88, 0xfa, 0x79, 0x73, 0x9b, 0x9b, 0x86, 0x5a, 0x4c, 0xa2, 0x47, - 0x66, 0xd4, 0x3e, 0xff, 0x52, 0x08, 0x84, 0x0d, 0xb7, 0x42, 0x81, 0x74, 0x9d, 0xbd, 0xfe, 0x04, - 0x3c, 0xbd, 0x28, 0x2a, 0xa4, 0x26, 0xa0, 0x7e, 0x1b, 0x83, 0x2e, 0x41, 0x0e, 0x5f, 0xa5, 0xb7, - 0x51, 0x59, 0xb2, 0xe9, 0xd6, 0x81, 0x8e, 0x18, 0x1b, 0x4e, 0x63, 0x86, 0x08, 0xf3, 0xfb, 0x07, - 0xb5, 0x0a, 0xe3, 0xb9, 0xcf, 0xec, 0xe8, 0x0e, 0xee, 0x74, 0x9d, 0x7d, 0x99, 0xa3, 0x48, 0x1f, - 0x49, 0x13, 0x7f, 0x18, 0xb0, 0x3f, 0x91, 0xe2, 0x15, 0x8b, 0x26, 0xed, 0x0b, 0x91, 0x92, 0x89, - 0xfc, 0x36, 0x80, 0x96, 0x6a, 0x2b, 0xd7, 0x54, 0xc3, 0xc1, 0x4d, 0x2e, 0xf7, 0x42, 0x4b, 0xb5, - 0x9f, 0xa1, 0x15, 0x24, 0xde, 0x24, 0x8f, 0x7b, 0x36, 0x6e, 0xd2, 0x09, 0xc8, 0xc8, 0x63, 0x2d, - 0xd5, 0xde, 0xb4, 0x71, 0xd3, 0x37, 0xd6, 0xb1, 0x9b, 0x31, 0xd6, 0xa0, 0xbc, 0xf3, 0x61, 0x79, - 0x7f, 0x2c, 0xed, 0xad, 0x0e, 0x2f, 0x7c, 0xf8, 0xc9, 0x94, 0xc5, 0x67, 0xe9, 0x9e, 0x22, 0xe8, - 0x04, 0xd0, 0xfb, 0x61, 0xd2, 0x5d, 0x95, 0x4a, 0x8f, 0xae, 0x56, 0xa1, 0x85, 0x87, 0x5b, 0xdc, - 0x95, 0xab, 0xc1, 0x6a, 0x1b, 0xfd, 0x1c, 0x1c, 0x0b, 0xd9, 0x20, 0xb7, 0x81, 0xf4, 0xa1, 0x4c, - 0xd1, 0x91, 0xa0, 0x29, 0x12, 0xf8, 0x9e, 0xf4, 0x32, 0x37, 0x65, 0xd5, 0xdc, 0x41, 0x42, 0x58, - 0xbf, 0x7b, 0x8b, 0xd2, 0x09, 0xe9, 0x4f, 0x52, 0x30, 0x11, 0xea, 0x20, 0x7a, 0x0f, 0x8c, 0x32, - 0x0f, 0x9c, 0x1a, 0x9a, 0x08, 0xa1, 0x12, 0xe7, 0x63, 0x62, 0x0c, 0x68, 0x1e, 0xf2, 0x98, 0x47, - 0xd7, 0x5c, 0x28, 0x77, 0xc6, 0x04, 0xe1, 0x9c, 0xdf, 0x65, 0x43, 0x8b, 0x50, 0x70, 0x45, 0x1f, - 0xb3, 0x73, 0x73, 0x67, 0x8e, 0x83, 0x78, 0x8c, 0xd2, 0x02, 0x14, 0x7d, 0xdd, 0x63, 0xef, 0x02, - 0xee, 0xf1, 0xed, 0x16, 0x0b, 0xa0, 0xf3, 0x1d, 0x75, 0x8f, 0xee, 0xb4, 0xd0, 0x31, 0x18, 0x23, - 0x0f, 0x5b, 0xfc, 0x65, 0xa9, 0x8c, 0x9c, 0xeb, 0xa8, 0x7b, 0x17, 0x54, 0x5b, 0xfa, 0x78, 0x0a, - 0xca, 0xc1, 0x7e, 0xa2, 0x7b, 0x01, 0x11, 0x5a, 0xb5, 0x85, 0x15, 0xa3, 0xd7, 0x61, 0x3e, 0x52, - 0x20, 0x4e, 0x74, 0xd4, 0xbd, 0xf9, 0x16, 0xbe, 0xd4, 0xeb, 0xd0, 0xa6, 0x6d, 0xb4, 0x0a, 0x15, - 0x41, 0x2c, 0x92, 0x5d, 0x5c, 0x2a, 0xc7, 0xfb, 0xbf, 0x57, 0xc3, 0x09, 0xd8, 0x5e, 0xf7, 0x65, - 0xb2, 0xd7, 0x2d, 0x33, 0x3c, 0xf1, 0x44, 0x7a, 0x08, 0x26, 0x42, 0x23, 0x46, 0x12, 0x8c, 0x77, - 0x7b, 0x5b, 0xca, 0x2e, 0xde, 0xa7, 0xaf, 0xbf, 0x33, 0x55, 0x2f, 0xc8, 0xc5, 0x6e, 0x6f, 0xeb, - 0x29, 0xbc, 0x4f, 0x73, 0x87, 0x92, 0x06, 0xe5, 0xe0, 0x66, 0x8a, 0x38, 0x0e, 0xcb, 0xec, 0x19, - 0x4d, 0xf1, 0x61, 0x03, 0x5a, 0x40, 0xe7, 0x60, 0xf4, 0xaa, 0xc9, 0xb4, 0x79, 0xd8, 0xee, 0xe9, - 0x8a, 0xe9, 0x60, 0xdf, 0x96, 0x8c, 0xf1, 0x48, 0x36, 0x8c, 0x52, 0xbd, 0x8c, 0x3c, 0xa8, 0xb8, - 0x02, 0xa0, 0x3a, 0x8e, 0xa5, 0x6f, 0xf5, 0x3c, 0xf8, 0x99, 0xb9, 0xfe, 0xb4, 0xfe, 0xdc, 0x9a, - 0xaa, 0x5b, 0x8d, 0x5b, 0xb9, 0x66, 0x4f, 0x7b, 0x3c, 0x3e, 0xed, 0xf6, 0x21, 0x49, 0xaf, 0x67, - 0x21, 0xc7, 0xb6, 0x9b, 0xe8, 0xf1, 0x60, 0xf2, 0xa3, 0x78, 0xf6, 0xc4, 0xa0, 0xee, 0x33, 0x2a, - 0xde, 0x7b, 0x37, 0x82, 0xba, 0x2b, 0x9c, 0x51, 0x68, 0x14, 0x5f, 0x3d, 0xa8, 0x8d, 0xd1, 0xe8, - 0x63, 0x79, 0xd1, 0x4b, 0x2f, 0x0c, 0xda, 0x5d, 0x8b, 0x5c, 0x46, 0xf6, 0xd0, 0xb9, 0x8c, 0x8b, - 0x30, 0xee, 0x0b, 0xb7, 0xf4, 0x26, 0xdf, 0xa7, 0x9c, 0x18, 0xb6, 0xe8, 0x96, 0x17, 0x79, 0xff, - 0x8b, 0x6e, 0x38, 0xb6, 0xdc, 0x44, 0xb3, 0xc1, 0x4d, 0x36, 0x8d, 0xda, 0x58, 0xb8, 0xe0, 0xdb, - 0x37, 0xd3, 0x77, 0xf2, 0x6f, 0x81, 0x02, 0x7d, 0xb1, 0x99, 0x92, 0xb0, 0xe8, 0x21, 0x4f, 0x2a, - 0xe8, 0xc3, 0xbb, 0x61, 0xc2, 0x0b, 0x6c, 0x18, 0x49, 0x9e, 0xa1, 0x78, 0xd5, 0x94, 0xf0, 0x01, - 0x98, 0x36, 0xf0, 0x9e, 0xa3, 0x84, 0xa9, 0x0b, 0x94, 0x1a, 0x91, 0x67, 0x57, 0x82, 0x1c, 0x77, - 0x42, 0xd9, 0x33, 0xa1, 0x94, 0x16, 0x58, 0xea, 0xc3, 0xad, 0xa5, 0x64, 0xc7, 0x21, 0xef, 0x86, - 0x9d, 0x45, 0x4a, 0x30, 0xa6, 0xb2, 0x68, 0xd3, 0x0d, 0x64, 0x2d, 0x6c, 0xf7, 0xda, 0x0e, 0x07, - 0x29, 0x51, 0x1a, 0x1a, 0xc8, 0xca, 0xac, 0x9e, 0xd2, 0x9e, 0x82, 0x71, 0x61, 0x55, 0x18, 0xdd, - 0x38, 0xa5, 0x2b, 0x89, 0x4a, 0x4a, 0x74, 0x1a, 0x2a, 0x5d, 0xcb, 0xec, 0x9a, 0x36, 0xb6, 0x14, - 0xb5, 0xd9, 0xb4, 0xb0, 0x6d, 0xcf, 0x94, 0x19, 0x9e, 0xa8, 0x9f, 0x67, 0xd5, 0xd2, 0xbb, 0x60, - 0x4c, 0xc4, 0xd3, 0xd3, 0x30, 0xda, 0x70, 0x2d, 0x64, 0x56, 0x66, 0x05, 0xe2, 0x5f, 0xe7, 0xbb, - 0x5d, 0x9e, 0x5d, 0x23, 0x3f, 0xa5, 0x36, 0x8c, 0xf1, 0x09, 0x8b, 0xcc, 0xa9, 0xac, 0x42, 0xa9, - 0xab, 0x5a, 0x64, 0x18, 0xfe, 0xcc, 0xca, 0xa0, 0x1d, 0xe1, 0x9a, 0x6a, 0x39, 0xeb, 0xd8, 0x09, - 0x24, 0x58, 0x8a, 0x94, 0x9f, 0x55, 0x49, 0x8f, 0xc2, 0x78, 0x80, 0x86, 0x74, 0xd3, 0x31, 0x1d, - 0xb5, 0x2d, 0x16, 0x3a, 0x2d, 0xb8, 0x3d, 0x49, 0x7b, 0x3d, 0x91, 0xce, 0x41, 0xc1, 0x9d, 0x2b, - 0xb2, 0xd1, 0x10, 0xa2, 0x48, 0x71, 0xf1, 0xb3, 0x22, 0x4d, 0x22, 0x99, 0xd7, 0xf8, 0x27, 0x9a, - 0x32, 0x32, 0x2b, 0x48, 0xd8, 0x67, 0x98, 0x98, 0x37, 0x43, 0x8f, 0xc1, 0x18, 0x37, 0x4c, 0x7c, - 0x3d, 0x0e, 0x4a, 0x17, 0xad, 0x51, 0x4b, 0x25, 0xd2, 0x45, 0xcc, 0x6e, 0x79, 0xcd, 0xa4, 0xfd, - 0xcd, 0x7c, 0x10, 0xf2, 0xc2, 0xf8, 0x04, 0xbd, 0x04, 0x6b, 0xe1, 0x64, 0x9c, 0x97, 0xe0, 0x8d, - 0x78, 0x8c, 0x44, 0x9b, 0x6c, 0xbd, 0x65, 0xe0, 0xa6, 0xe2, 0x2d, 0x41, 0xfe, 0xc2, 0xec, 0x04, - 0x7b, 0xb0, 0x22, 0xd6, 0x97, 0xf4, 0x00, 0xe4, 0x58, 0x5f, 0x23, 0x4d, 0x5c, 0x94, 0x6b, 0xfd, - 0x6e, 0x0a, 0xf2, 0xc2, 0x7d, 0x44, 0x32, 0x05, 0x06, 0x91, 0xbe, 0xd1, 0x41, 0xdc, 0x7c, 0x93, - 0x74, 0x1f, 0x20, 0xaa, 0x29, 0xca, 0x55, 0xd3, 0xd1, 0x8d, 0x96, 0xc2, 0xe6, 0x82, 0xbf, 0x37, - 0x48, 0x9f, 0x5c, 0xa1, 0x0f, 0xd6, 0x48, 0xfd, 0x3d, 0xa7, 0xa0, 0xe8, 0xcb, 0x72, 0xa1, 0x31, - 0xc8, 0x5c, 0xc2, 0xd7, 0x2a, 0x23, 0xa8, 0x08, 0x63, 0x32, 0xa6, 0x39, 0x82, 0x4a, 0xea, 0xec, - 0xeb, 0x63, 0x30, 0x31, 0xdf, 0x58, 0x58, 0x9e, 0xef, 0x76, 0xdb, 0x3a, 0x7f, 0x9f, 0xee, 0x32, - 0x64, 0xe9, 0x3e, 0x39, 0xc1, 0xf9, 0x4e, 0x35, 0x49, 0xc2, 0x09, 0xc9, 0x30, 0x4a, 0xb7, 0xd3, - 0x28, 0xc9, 0xb1, 0x4f, 0x35, 0x51, 0x1e, 0x8a, 0x74, 0x92, 0x2a, 0x5c, 0x82, 0xd3, 0xa0, 0x6a, - 0x92, 0xe4, 0x14, 0xfa, 0x39, 0x28, 0x78, 0xfb, 0xe4, 0xa4, 0x67, 0x44, 0xd5, 0xc4, 0x69, 0x2b, - 0x82, 0xef, 0xed, 0x0c, 0x92, 0x1e, 0x4d, 0x54, 0x13, 0xe7, 0x6b, 0xd0, 0xb3, 0x30, 0x26, 0xf6, - 0x60, 0xc9, 0x4e, 0x71, 0xaa, 0x09, 0x53, 0x4a, 0x64, 0xfa, 0xd8, 0xd6, 0x39, 0xc9, 0x51, 0x55, - 0x35, 0x51, 0xde, 0x0c, 0x6d, 0x42, 0x8e, 0x07, 0xbf, 0x89, 0x4e, 0x7a, 0xaa, 0xc9, 0x12, 0x45, - 0x44, 0xc8, 0x5e, 0x72, 0x22, 0xe9, 0xf1, 0x5c, 0x35, 0x71, 0xc2, 0x10, 0xa9, 0x00, 0xbe, 0xfd, - 0x74, 0xe2, 0x73, 0xb7, 0x6a, 0xf2, 0x44, 0x20, 0xfa, 0x00, 0xe4, 0xdd, 0x5d, 0x53, 0xc2, 0x93, - 0xb4, 0x6a, 0xd2, 0x5c, 0x5c, 0x63, 0x33, 0xf1, 0x2d, 0x89, 0x7b, 0x63, 0x6f, 0x49, 0x78, 0x87, - 0xdc, 0xee, 0x31, 0xf8, 0x5f, 0xa6, 0xe0, 0x78, 0xf8, 0x38, 0x59, 0x35, 0xf6, 0x07, 0x5c, 0x08, - 0x18, 0x70, 0x5b, 0xe4, 0x31, 0xc8, 0xcc, 0x1b, 0xfb, 0x24, 0xd8, 0xa0, 0xdf, 0xf6, 0xeb, 0x59, - 0x6d, 0x91, 0xa6, 0x23, 0xe5, 0x4d, 0xab, 0x1d, 0x7d, 0x6b, 0xa4, 0x9e, 0xfd, 0xc1, 0xe7, 0x6b, - 0x23, 0x8d, 0xdd, 0x88, 0x51, 0xc5, 0xdc, 0x15, 0xc8, 0xcf, 0x1b, 0xfb, 0xe2, 0x9a, 0xc0, 0x28, - 0x1d, 0xd0, 0x61, 0x8f, 0xff, 0x5f, 0x2b, 0x11, 0x64, 0xbb, 0x63, 0xda, 0x67, 0xd8, 0x1f, 0x3e, - 0xe2, 0x1c, 0x2b, 0x0d, 0x38, 0xe1, 0x8f, 0xbf, 0x31, 0x50, 0x1d, 0x2c, 0x4d, 0xe9, 0x02, 0x64, - 0x17, 0x4c, 0x9d, 0x86, 0x3c, 0x4d, 0x6c, 0x98, 0x1d, 0x91, 0xf3, 0xa4, 0x05, 0x74, 0x0a, 0x72, - 0x6a, 0xc7, 0xec, 0x19, 0x8e, 0x88, 0x9a, 0x89, 0x2b, 0xf9, 0xaf, 0x07, 0xb5, 0xcc, 0xb2, 0xe1, - 0xc8, 0xfc, 0x51, 0x3d, 0xfb, 0xbd, 0x57, 0x6a, 0x29, 0xe9, 0x49, 0x18, 0x5b, 0xc4, 0xda, 0x8d, - 0x60, 0x2d, 0x62, 0x2d, 0x84, 0x75, 0x1a, 0xf2, 0xcb, 0x86, 0xc3, 0x3e, 0x1a, 0x76, 0x1b, 0x64, - 0x74, 0x83, 0x1d, 0x8b, 0x84, 0xda, 0x27, 0xf5, 0x84, 0x74, 0x11, 0x6b, 0x2e, 0x69, 0x13, 0x6b, - 0x61, 0x52, 0x02, 0x4f, 0xea, 0xa5, 0x06, 0x94, 0xae, 0xa8, 0x6d, 0x1e, 0xee, 0x61, 0x1b, 0xdd, - 0x07, 0x05, 0x55, 0x14, 0xe8, 0xce, 0xaa, 0xd4, 0x28, 0xff, 0xf0, 0xa0, 0x06, 0x1e, 0x91, 0xec, - 0x11, 0xd4, 0xb3, 0x2f, 0xfd, 0xb7, 0x93, 0x29, 0xc9, 0x84, 0xb1, 0x0b, 0xaa, 0x4d, 0x2d, 0xfd, - 0x83, 0x81, 0x44, 0x0a, 0x8d, 0x14, 0x1b, 0x47, 0xae, 0x1f, 0xd4, 0x26, 0xf7, 0xd5, 0x4e, 0xbb, - 0x2e, 0x79, 0xcf, 0x24, 0x7f, 0x7e, 0x65, 0xce, 0x97, 0x5f, 0xa1, 0x91, 0x64, 0x63, 0xea, 0xfa, - 0x41, 0x6d, 0xc2, 0xe3, 0x21, 0x4f, 0x24, 0x37, 0xe9, 0x22, 0x75, 0x21, 0xc7, 0x82, 0xde, 0xc8, - 0x13, 0x42, 0x9e, 0xf2, 0x49, 0x7b, 0x29, 0x9f, 0xfa, 0xa1, 0xd2, 0x0c, 0x3c, 0x2e, 0x63, 0x1c, - 0xf5, 0xec, 0x47, 0x5f, 0xa9, 0x8d, 0x48, 0x16, 0xa0, 0x75, 0xbd, 0xd3, 0x6b, 0xb3, 0x17, 0xbf, - 0xc5, 0x51, 0xd3, 0x83, 0xac, 0xdf, 0x34, 0x9d, 0xc4, 0x02, 0xb2, 0x89, 0x39, 0xae, 0xa4, 0x5c, - 0x20, 0x2c, 0xce, 0xf8, 0xd6, 0x41, 0x2d, 0x45, 0x7b, 0x4f, 0x65, 0x74, 0x17, 0xe4, 0x58, 0x28, - 0xcf, 0xe3, 0x9f, 0xb2, 0xe0, 0x61, 0x63, 0x92, 0xf9, 0x53, 0xe9, 0x71, 0x18, 0x5b, 0xb5, 0x5b, - 0x8b, 0x64, 0x48, 0xc7, 0x21, 0xdf, 0xb1, 0x5b, 0x8a, 0x2f, 0x9a, 0x1a, 0xeb, 0xd8, 0xad, 0x8d, - 0x01, 0x51, 0x18, 0x9f, 0x96, 0x77, 0x43, 0x6e, 0x63, 0x8f, 0xb2, 0x9f, 0x72, 0xa5, 0x94, 0xf1, - 0xf7, 0x91, 0xa3, 0x07, 0x98, 0x3e, 0x94, 0x01, 0xd8, 0xd8, 0x73, 0x47, 0x38, 0xe0, 0x08, 0x0e, - 0x49, 0x90, 0x73, 0xf6, 0xdc, 0x88, 0xba, 0xd0, 0x80, 0x57, 0x0f, 0x6a, 0xb9, 0x8d, 0x3d, 0xb2, - 0xbd, 0x90, 0xf9, 0x93, 0x60, 0x2a, 0x2b, 0x13, 0x4a, 0x65, 0xb9, 0x09, 0xbc, 0x6c, 0x44, 0x02, - 0x6f, 0xd4, 0x77, 0x02, 0x70, 0x0c, 0xc6, 0x2c, 0xf5, 0x9a, 0x42, 0x66, 0x94, 0x7d, 0x85, 0x34, - 0x67, 0xa9, 0xd7, 0x56, 0xcc, 0x16, 0x5a, 0x80, 0x6c, 0xdb, 0x6c, 0x89, 0xbc, 0xdb, 0x51, 0x31, - 0x28, 0x12, 0x71, 0xf1, 0xdb, 0xc4, 0x2b, 0x66, 0xab, 0x71, 0x8c, 0xc8, 0xff, 0x4b, 0x7f, 0x56, - 0x9b, 0x08, 0xd6, 0xdb, 0x32, 0x65, 0x76, 0x93, 0x81, 0xf9, 0x81, 0xc9, 0xc0, 0xc2, 0xb0, 0x64, - 0x20, 0x04, 0x93, 0x81, 0x77, 0xd0, 0x33, 0x4d, 0x76, 0x86, 0x33, 0xdd, 0x17, 0x7c, 0xce, 0x1b, - 0xfb, 0xf4, 0x14, 0xf5, 0x56, 0x28, 0xb8, 0x17, 0x85, 0xf8, 0x67, 0x9f, 0xbd, 0x0a, 0xae, 0x6f, - 0x1f, 0x4d, 0x41, 0x39, 0xd8, 0x63, 0x9a, 0xcf, 0xb1, 0x5b, 0xfc, 0x83, 0xa9, 0x2c, 0xed, 0x49, - 0x94, 0x62, 0x59, 0x64, 0xca, 0x43, 0x3a, 0x3f, 0x1f, 0xd2, 0xf9, 0x29, 0x21, 0x20, 0xf6, 0xee, - 0x0e, 0x53, 0xf5, 0x69, 0x2e, 0x9d, 0x92, 0xaf, 0xd2, 0xf6, 0x54, 0x9f, 0x6a, 0xc4, 0xcf, 0x43, - 0xd1, 0xf7, 0x34, 0x32, 0xa8, 0x7f, 0x24, 0x22, 0xd9, 0x31, 0xe9, 0x4e, 0x88, 0x78, 0x22, 0x8e, - 0x10, 0x3c, 0x52, 0x57, 0x51, 0x0b, 0x2e, 0x51, 0xd2, 0xeb, 0x15, 0x8d, 0xc5, 0x3f, 0xfd, 0xce, - 0x89, 0x91, 0x97, 0x5e, 0x3d, 0x31, 0x32, 0xf0, 0x7e, 0xa6, 0xff, 0x22, 0x6b, 0xc0, 0x83, 0xdc, - 0x6f, 0x37, 0x77, 0x43, 0xde, 0xf5, 0x63, 0xef, 0x83, 0x5b, 0x39, 0x8d, 0xed, 0xa8, 0xbb, 0xba, - 0xd1, 0x12, 0x7f, 0xb9, 0xbb, 0x29, 0xf3, 0xd1, 0xf0, 0xda, 0x1b, 0x77, 0x3b, 0x6f, 0xf6, 0xd2, - 0x58, 0x35, 0xca, 0x1b, 0x4a, 0x07, 0x59, 0x40, 0xab, 0x76, 0x6b, 0xc1, 0xc2, 0xec, 0x63, 0x23, - 0x7c, 0x9f, 0x14, 0x7c, 0xd9, 0x87, 0xdb, 0xa8, 0x5b, 0xe6, 0x82, 0x63, 0x71, 0xbf, 0x1b, 0xed, - 0xe5, 0x88, 0x02, 0xaf, 0x08, 0x2d, 0x01, 0xd0, 0xf4, 0x8a, 0x6d, 0x7b, 0xc9, 0xbc, 0x5a, 0x18, - 0x63, 0xc1, 0xa5, 0x90, 0x55, 0x07, 0xdb, 0x62, 0xae, 0x3d, 0x46, 0xf4, 0x41, 0x98, 0xea, 0xe8, - 0x86, 0x62, 0xe3, 0xf6, 0xb6, 0xd2, 0xc4, 0x6d, 0xfa, 0x29, 0x16, 0x7e, 0x70, 0x57, 0x68, 0xac, - 0x70, 0xc7, 0x74, 0x57, 0xfc, 0x9c, 0xcd, 0x2d, 0x1b, 0xce, 0xf5, 0x83, 0x5a, 0x95, 0x79, 0x87, - 0x08, 0x48, 0x49, 0x9e, 0xec, 0xe8, 0xc6, 0x3a, 0x6e, 0x6f, 0x2f, 0xba, 0x75, 0xe8, 0x45, 0x98, - 0xe4, 0x14, 0xa6, 0x97, 0xf4, 0x20, 0xb6, 0xa7, 0xd4, 0x58, 0xbd, 0x7e, 0x50, 0x9b, 0x61, 0x68, - 0x7d, 0x24, 0xd2, 0x0f, 0x0f, 0x6a, 0xf7, 0x27, 0xe8, 0xd3, 0xbc, 0xa6, 0x09, 0xf7, 0x58, 0x71, - 0x41, 0x78, 0x0d, 0x69, 0xdb, 0x4b, 0xd0, 0x8b, 0xb6, 0x47, 0xc3, 0x6d, 0xf7, 0x91, 0x24, 0x6d, - 0xdb, 0xe7, 0x9a, 0xbd, 0x0c, 0xbe, 0x68, 0xfb, 0x28, 0xe4, 0xba, 0xbd, 0x2d, 0x71, 0x8a, 0x56, - 0x90, 0x79, 0x09, 0xcd, 0xfa, 0x0f, 0xd2, 0x8a, 0x67, 0x4b, 0x62, 0x3e, 0x49, 0xac, 0xe2, 0xa6, - 0x39, 0x59, 0xec, 0x47, 0xa3, 0x8f, 0xaf, 0x65, 0xa0, 0xb2, 0x6a, 0xb7, 0x96, 0x9a, 0xba, 0x73, - 0x93, 0xd5, 0xab, 0x1b, 0x25, 0x1d, 0xea, 0xcd, 0x1a, 0x0b, 0xd7, 0x0f, 0x6a, 0x65, 0x26, 0x9d, - 0x9b, 0x29, 0x93, 0x0e, 0x4c, 0x78, 0x7a, 0xa9, 0x58, 0xaa, 0xc3, 0xdd, 0x53, 0x63, 0x31, 0xa1, - 0x06, 0x2e, 0x62, 0xed, 0xfa, 0x41, 0xed, 0x28, 0xeb, 0x59, 0x08, 0x4a, 0x92, 0xcb, 0x5a, 0x60, - 0x2d, 0xa0, 0xbd, 0x68, 0xc5, 0xa7, 0xe7, 0x4f, 0x8d, 0x8b, 0x6f, 0xa1, 0xd2, 0xf3, 0xa9, 0xfb, - 0x6a, 0x1a, 0x8a, 0xc4, 0xd5, 0xb3, 0x7a, 0x1c, 0xbd, 0x14, 0x52, 0x3f, 0xc6, 0xa5, 0x90, 0x7e, - 0x7b, 0x96, 0xc2, 0x3d, 0x6e, 0xac, 0x9d, 0x19, 0xa8, 0xf3, 0xc1, 0x90, 0xfb, 0x3f, 0x66, 0xa8, - 0x55, 0xa5, 0x3b, 0x48, 0x19, 0x37, 0xdf, 0x09, 0x02, 0xfc, 0xc5, 0x14, 0x1c, 0xf1, 0xc4, 0x63, - 0x5b, 0x5a, 0x48, 0x8a, 0x4f, 0x5f, 0x3f, 0xa8, 0xdd, 0x1a, 0x96, 0xa2, 0x8f, 0xec, 0x06, 0x24, - 0x39, 0xe5, 0x02, 0xad, 0x5b, 0x5a, 0x74, 0x3f, 0x9a, 0xb6, 0xe3, 0xf6, 0x23, 0x33, 0xb8, 0x1f, - 0x3e, 0xb2, 0x37, 0xd5, 0x8f, 0x45, 0xdb, 0xe9, 0x9f, 0xd4, 0x6c, 0xc2, 0x49, 0xfd, 0x7a, 0x1a, - 0xc6, 0x57, 0xed, 0xd6, 0xa6, 0xd1, 0xfc, 0xe9, 0x82, 0x38, 0xec, 0x82, 0xf8, 0x78, 0x0a, 0xca, - 0x17, 0x75, 0xdb, 0x31, 0x2d, 0x5d, 0x53, 0xdb, 0x74, 0x37, 0xe3, 0xdd, 0x91, 0x4c, 0x1d, 0xfe, - 0x8e, 0xe4, 0x23, 0x90, 0xbb, 0xaa, 0xb6, 0x6d, 0xec, 0xf0, 0xa0, 0xf1, 0x78, 0xd8, 0x77, 0x84, - 0x73, 0xc0, 0x9c, 0x9c, 0x77, 0xe7, 0x77, 0xd3, 0x30, 0x11, 0x0a, 0x3c, 0x50, 0x03, 0xb2, 0xd4, - 0xa2, 0xb3, 0x0d, 0xef, 0xdc, 0x21, 0xe2, 0x0a, 0xb2, 0x27, 0xa6, 0xbc, 0xe8, 0x67, 0x20, 0xdf, - 0x51, 0xf7, 0x98, 0x67, 0x60, 0xfb, 0x9b, 0xf9, 0xc3, 0xe1, 0x78, 0xbb, 0x57, 0x81, 0x23, 0xc9, - 0x63, 0x1d, 0x75, 0x8f, 0xfa, 0x83, 0x2e, 0x4c, 0x90, 0x5a, 0x6d, 0x47, 0x35, 0x5a, 0xd8, 0xef, - 0x7e, 0x2e, 0x1e, 0xba, 0x91, 0xa3, 0x5e, 0x23, 0x3e, 0x38, 0x49, 0x1e, 0xef, 0xa8, 0x7b, 0x0b, - 0xb4, 0x82, 0xb4, 0x58, 0xcf, 0xbf, 0xfc, 0x4a, 0x6d, 0x84, 0x4a, 0xec, 0xdf, 0xa7, 0x00, 0x3c, - 0x89, 0xa1, 0x0d, 0xa8, 0x84, 0xdc, 0x97, 0xb8, 0x63, 0x14, 0x1b, 0xe0, 0x79, 0x1b, 0xdb, 0x09, - 0x2d, 0x34, 0x05, 0x1f, 0x80, 0x22, 0xbb, 0x25, 0xa0, 0xd0, 0x64, 0x7c, 0x3a, 0x36, 0x19, 0x7f, - 0x82, 0x60, 0x5d, 0x3f, 0xa8, 0x21, 0x36, 0x1c, 0x1f, 0xb3, 0x44, 0x53, 0xf4, 0xc0, 0x6a, 0x08, - 0x43, 0x70, 0x2c, 0x45, 0x5f, 0x6c, 0x41, 0xef, 0x9e, 0x99, 0x86, 0xbe, 0x8b, 0x2d, 0x77, 0x8f, - 0xcc, 0x8a, 0xa8, 0x0a, 0x79, 0xf6, 0x55, 0x41, 0x67, 0x5f, 0xfc, 0xbb, 0x0a, 0x51, 0x26, 0x5c, - 0xd7, 0xf0, 0x96, 0xad, 0x8b, 0x59, 0x90, 0x45, 0x11, 0x9d, 0x87, 0x8a, 0x8d, 0xb5, 0x9e, 0xa5, - 0x3b, 0xfb, 0x8a, 0x66, 0x1a, 0x8e, 0xaa, 0x39, 0xdc, 0x69, 0xdf, 0x72, 0xfd, 0xa0, 0x76, 0x8c, - 0xf5, 0x35, 0x4c, 0x21, 0xc9, 0x13, 0xa2, 0x6a, 0x81, 0xd5, 0x90, 0x16, 0x9a, 0xd8, 0x51, 0xf5, - 0xb6, 0xcd, 0x37, 0xb6, 0xa2, 0xe8, 0x1b, 0xcb, 0xef, 0x8c, 0xf9, 0x0f, 0xa3, 0xae, 0x41, 0xc5, - 0xec, 0x62, 0x2b, 0xc2, 0x1e, 0xad, 0x78, 0x2d, 0x87, 0x29, 0x6e, 0xc0, 0x24, 0x4c, 0x08, 0x0c, - 0x61, 0x11, 0xce, 0x07, 0xee, 0x9c, 0xb1, 0xb8, 0x31, 0x1d, 0x1e, 0x72, 0x98, 0x42, 0xf2, 0x5f, - 0x34, 0x63, 0xd1, 0xe5, 0x51, 0xc8, 0x3d, 0xaf, 0xea, 0x6d, 0xf1, 0xa9, 0x55, 0x99, 0x97, 0xd0, - 0x32, 0xe4, 0x6c, 0x47, 0x75, 0x7a, 0x2c, 0xf4, 0x1e, 0x6d, 0xbc, 0x2b, 0x61, 0x9f, 0x1b, 0xa6, - 0xd1, 0x5c, 0xa7, 0x8c, 0x32, 0x07, 0x40, 0xe7, 0x21, 0xe7, 0x98, 0xbb, 0xd8, 0xe0, 0x42, 0x3d, - 0xd4, 0x4a, 0xa7, 0x89, 0x3a, 0xc6, 0x8d, 0x1c, 0xf0, 0x8c, 0xb2, 0x62, 0xef, 0xa8, 0x16, 0xb6, - 0x59, 0xa8, 0xdc, 0x58, 0x3e, 0xf4, 0x72, 0x3c, 0x16, 0xf6, 0x14, 0x0c, 0x4f, 0x92, 0x27, 0xdc, - 0xaa, 0x75, 0x5a, 0x13, 0x8e, 0x9c, 0xc7, 0x6e, 0x28, 0x72, 0x3e, 0x0f, 0x95, 0x9e, 0xb1, 0x65, - 0x1a, 0xf4, 0xb3, 0x88, 0x3c, 0x4d, 0x93, 0x3f, 0x99, 0x9a, 0xcd, 0xf8, 0x67, 0x2b, 0x4c, 0x21, - 0xc9, 0x13, 0x6e, 0x15, 0xbf, 0xfd, 0xd8, 0x84, 0xb2, 0x47, 0x45, 0x97, 0x6c, 0x21, 0x76, 0xc9, - 0xde, 0xce, 0x97, 0xec, 0x91, 0x70, 0x2b, 0xde, 0xaa, 0x1d, 0x77, 0x2b, 0x09, 0x1b, 0x7a, 0x5f, - 0x60, 0x1b, 0x09, 0xbc, 0x85, 0x81, 0x56, 0x26, 0xf9, 0x0e, 0xb2, 0xf8, 0xb6, 0xec, 0x20, 0xeb, - 0xa5, 0x8f, 0xbe, 0x52, 0x1b, 0x71, 0x17, 0xec, 0x2f, 0xa5, 0x21, 0xb7, 0x78, 0x85, 0xbe, 0x46, - 0xf9, 0x13, 0x1a, 0x3e, 0xf8, 0xac, 0xd7, 0x7b, 0x61, 0x8c, 0xc9, 0xc2, 0x46, 0x67, 0x61, 0xb4, - 0x4b, 0x7e, 0xf0, 0x5c, 0xe3, 0xd1, 0x3e, 0x95, 0xa6, 0x74, 0x62, 0x87, 0x49, 0x49, 0xa5, 0x2f, - 0x64, 0x00, 0x16, 0xaf, 0x5c, 0xd9, 0xb0, 0xf4, 0x6e, 0x1b, 0x3b, 0x3f, 0x0d, 0xaf, 0xdf, 0x39, - 0xe1, 0xb5, 0x6f, 0x8e, 0x9f, 0x82, 0xa2, 0x37, 0x47, 0x36, 0x7a, 0x0c, 0xf2, 0x0e, 0xff, 0xcd, - 0xa7, 0xba, 0xda, 0x3f, 0xd5, 0x82, 0x9c, 0x4f, 0xb7, 0xcb, 0x21, 0xfd, 0x97, 0x34, 0x40, 0x5c, - 0x72, 0xe6, 0x27, 0x20, 0x00, 0x3f, 0x0f, 0x39, 0xee, 0x71, 0x32, 0x37, 0x14, 0xad, 0x72, 0x6e, - 0xdf, 0x2c, 0x7d, 0x27, 0x0d, 0x53, 0x9b, 0xc2, 0xec, 0xfe, 0x54, 0xc2, 0xe8, 0x22, 0x8c, 0x61, - 0xc3, 0xb1, 0x74, 0x2c, 0xd2, 0xe0, 0xb3, 0x61, 0x2d, 0x8d, 0x90, 0x16, 0xfd, 0x77, 0x09, 0xe2, - 0xb6, 0x1c, 0x67, 0xf7, 0xc9, 0xf8, 0x13, 0x19, 0x98, 0x19, 0xc4, 0x85, 0x16, 0x60, 0x42, 0xb3, - 0x30, 0xad, 0x50, 0xfc, 0x27, 0x27, 0x8d, 0xaa, 0x2f, 0x63, 0x14, 0x24, 0x90, 0xe4, 0xb2, 0xa8, - 0xe1, 0x0e, 0xb9, 0x45, 0x13, 0x54, 0x64, 0xa9, 0x10, 0xaa, 0x84, 0x41, 0xb4, 0xc4, 0x3d, 0xb2, - 0x97, 0x96, 0xf2, 0x03, 0x30, 0x97, 0x5c, 0xf6, 0x6a, 0xa9, 0x4f, 0x7e, 0x01, 0x26, 0x74, 0x43, - 0x77, 0x74, 0xb5, 0xad, 0x6c, 0xa9, 0x6d, 0xd5, 0xd0, 0x6e, 0x64, 0x2b, 0xc2, 0xbc, 0x29, 0x6f, - 0x36, 0x04, 0x27, 0xc9, 0x65, 0x5e, 0xd3, 0x60, 0x15, 0x64, 0x46, 0x44, 0x53, 0xd9, 0x1b, 0x0a, - 0xdc, 0x04, 0xbb, 0x6f, 0x46, 0x7e, 0x39, 0x03, 0x93, 0x6e, 0x7e, 0xe6, 0xa7, 0x53, 0x91, 0x74, - 0x2a, 0x56, 0x01, 0x98, 0x01, 0x21, 0x9e, 0xe3, 0x06, 0x66, 0x83, 0x98, 0xa0, 0x02, 0x43, 0x58, - 0xb4, 0x1d, 0xdf, 0x7c, 0xfc, 0x45, 0x06, 0x4a, 0xfe, 0xf9, 0xf8, 0xa9, 0x4b, 0x7f, 0x07, 0x65, - 0xcc, 0xe6, 0x3d, 0x93, 0x98, 0xe5, 0xdf, 0x45, 0x09, 0x99, 0xc4, 0xbe, 0xa5, 0x34, 0xd8, 0x16, - 0xfe, 0x55, 0x1a, 0x72, 0xfc, 0x5e, 0xb6, 0xd6, 0xb7, 0x8b, 0x48, 0xc5, 0xdd, 0xfb, 0x1e, 0xbe, - 0x89, 0x78, 0x39, 0x72, 0x13, 0x51, 0xee, 0xa8, 0x7b, 0x4a, 0xe0, 0x2d, 0xa6, 0xd4, 0xec, 0x78, - 0xe3, 0xb8, 0x87, 0x12, 0x7c, 0xce, 0x72, 0x21, 0xde, 0x9d, 0x5c, 0xf4, 0x08, 0x14, 0x09, 0x85, - 0xe7, 0x15, 0x08, 0xfb, 0x51, 0x2f, 0xf9, 0xe0, 0x7b, 0x28, 0xc9, 0xd0, 0x51, 0xf7, 0x96, 0x58, - 0x01, 0xad, 0x00, 0xda, 0x71, 0x53, 0x5f, 0x8a, 0x27, 0x42, 0xc2, 0x7f, 0xdb, 0xf5, 0x83, 0xda, - 0x71, 0xc6, 0xdf, 0x4f, 0x23, 0xc9, 0x93, 0x5e, 0xa5, 0x40, 0x7b, 0x10, 0x80, 0x8c, 0x4b, 0x61, - 0x77, 0x42, 0xd8, 0x16, 0xd6, 0x77, 0x51, 0xc2, 0x7b, 0x26, 0xc9, 0x05, 0x52, 0x58, 0x24, 0xbf, - 0x7d, 0x82, 0xff, 0x95, 0x14, 0x20, 0xcf, 0xf7, 0xb8, 0xe7, 0xf5, 0xef, 0xa3, 0xef, 0x25, 0x8a, - 0x9d, 0x51, 0x2a, 0x7a, 0x93, 0xe5, 0xf1, 0x89, 0x4d, 0x96, 0x6f, 0xa9, 0xde, 0xe7, 0xd9, 0xe7, - 0xf4, 0xc0, 0xac, 0x60, 0x84, 0x0d, 0xfe, 0xd7, 0x29, 0x38, 0xde, 0xa7, 0x38, 0x6e, 0xbf, 0xae, - 0x00, 0xb2, 0x7c, 0x0f, 0xf9, 0x7f, 0x28, 0x4a, 0xf1, 0xff, 0xf8, 0x97, 0x50, 0xff, 0x26, 0xad, - 0x3e, 0x1b, 0x7f, 0xf3, 0xbc, 0x09, 0xcf, 0x28, 0xa6, 0x60, 0xda, 0xdf, 0xbc, 0x3b, 0x80, 0xf3, - 0x50, 0xf2, 0xb7, 0xce, 0xbb, 0x7e, 0xeb, 0xb0, 0xae, 0xf3, 0x5e, 0x07, 0xf8, 0xd0, 0xb2, 0xb7, - 0xfa, 0xc4, 0x3f, 0x9d, 0x8c, 0x1b, 0xbd, 0x7b, 0x91, 0x2d, 0xb4, 0x0a, 0x59, 0x8f, 0xff, 0x5f, - 0x0a, 0xb2, 0x6b, 0xa6, 0xd9, 0x46, 0x26, 0x4c, 0x1a, 0xa6, 0xa3, 0x10, 0x65, 0xc1, 0x4d, 0x85, - 0xe7, 0x46, 0x58, 0x16, 0x74, 0xe1, 0x70, 0x42, 0xf9, 0xfe, 0x41, 0xad, 0x1f, 0x4a, 0x9e, 0x30, - 0x4c, 0xa7, 0x41, 0x6b, 0x36, 0x58, 0xe6, 0xe4, 0x83, 0x30, 0x1e, 0x6c, 0x8c, 0x65, 0x8a, 0x9e, - 0x39, 0x74, 0x63, 0x41, 0x98, 0xeb, 0x07, 0xb5, 0x69, 0x6f, 0x11, 0xb8, 0xd5, 0x92, 0x5c, 0xda, - 0xf2, 0xb5, 0x5e, 0xcf, 0x93, 0xd1, 0xff, 0xe0, 0x95, 0x5a, 0xaa, 0x71, 0x7e, 0xe0, 0x0d, 0x80, - 0xfb, 0x86, 0x76, 0x61, 0xcf, 0x3d, 0xea, 0x0f, 0xde, 0x05, 0xf8, 0x52, 0x1a, 0x6e, 0xe3, 0xd4, - 0xf4, 0xfd, 0xe3, 0x33, 0x5d, 0xb5, 0xa5, 0x1b, 0xfe, 0xcf, 0xef, 0x94, 0xf8, 0x94, 0xd1, 0xc7, - 0x92, 0x01, 0xc5, 0x35, 0xb5, 0x85, 0xc5, 0x87, 0x5c, 0xfa, 0xbf, 0xaa, 0x74, 0x14, 0x72, 0xe6, - 0xf6, 0x36, 0xcb, 0x72, 0xa7, 0x66, 0xb3, 0x32, 0x2f, 0xa1, 0x69, 0x18, 0x6d, 0xeb, 0x1d, 0xdd, - 0xe1, 0x2f, 0xaf, 0xb2, 0x02, 0xaa, 0x41, 0x51, 0x33, 0x7b, 0x86, 0xa3, 0xb0, 0x6b, 0xec, 0x59, - 0xf1, 0x4d, 0xdf, 0x9e, 0xe1, 0x6c, 0x90, 0x1a, 0xe9, 0x09, 0x28, 0xb1, 0xf6, 0xb8, 0x6a, 0x1e, - 0x87, 0x3c, 0x7d, 0x27, 0xc1, 0x6b, 0x75, 0x8c, 0x94, 0xf9, 0xa5, 0x72, 0x86, 0xc2, 0x1a, 0x66, - 0x85, 0x46, 0x63, 0xa0, 0xc0, 0x66, 0xe3, 0xe7, 0x8c, 0xc9, 0xc4, 0x15, 0xd6, 0xf7, 0xce, 0x40, - 0x35, 0x74, 0x71, 0x82, 0x12, 0x0c, 0xb8, 0x36, 0x31, 0x5c, 0xb0, 0x03, 0x6e, 0x55, 0x0c, 0xbd, - 0x99, 0x21, 0xed, 0xc2, 0x51, 0x7a, 0xef, 0xd5, 0xb3, 0xf1, 0x62, 0x26, 0x8e, 0xba, 0xd9, 0xc6, - 0x14, 0xff, 0xe7, 0xea, 0x2c, 0x75, 0xf8, 0x28, 0x80, 0xd7, 0xb2, 0xfb, 0x76, 0x92, 0x7f, 0x4e, - 0xe7, 0x7c, 0x13, 0x2a, 0xfb, 0x88, 0xa5, 0x5f, 0x4f, 0xc1, 0xb1, 0xbe, 0xd6, 0xf8, 0x3c, 0x3c, - 0x11, 0x78, 0xbb, 0x36, 0x95, 0xec, 0x40, 0xc3, 0xff, 0x99, 0x8c, 0x7a, 0x44, 0xbf, 0xaa, 0x51, - 0xfd, 0x62, 0x0d, 0x06, 0x3a, 0xf6, 0x02, 0x1c, 0x09, 0xf6, 0x4b, 0x08, 0xe1, 0x59, 0x28, 0x07, - 0xb7, 0x56, 0x3c, 0xee, 0x7a, 0xd7, 0xe1, 0xc3, 0x89, 0xf1, 0xc0, 0xf6, 0x4a, 0x7a, 0x26, 0x2c, - 0x78, 0x57, 0x12, 0xef, 0xed, 0x7f, 0x53, 0x21, 0x56, 0x10, 0xbe, 0x17, 0xd9, 0xbe, 0x9a, 0x82, - 0x93, 0x41, 0x64, 0xcf, 0x63, 0xd9, 0x6f, 0xf9, 0xb8, 0xde, 0x8c, 0x7a, 0xfc, 0xa7, 0x14, 0xdc, - 0x3e, 0xa4, 0xe7, 0x5c, 0x3c, 0x16, 0x4c, 0xfb, 0x5c, 0xa1, 0xc5, 0xab, 0x85, 0xca, 0x48, 0x83, - 0xdd, 0xb5, 0xeb, 0x09, 0x6e, 0xe1, 0xf7, 0xb6, 0xa6, 0xfa, 0x9f, 0xd9, 0xf2, 0x54, 0xbf, 0xfb, - 0x7a, 0x73, 0xba, 0xf5, 0x8d, 0x14, 0x9c, 0x0e, 0x8e, 0x2a, 0x62, 0xfb, 0xfb, 0xce, 0x9e, 0x98, - 0x7f, 0x93, 0x82, 0x7b, 0x92, 0x0c, 0x81, 0xcf, 0xd0, 0x73, 0x30, 0xe5, 0x05, 0xa3, 0xe1, 0x09, - 0x3a, 0x95, 0x20, 0x85, 0xc0, 0x95, 0x1a, 0xb9, 0x28, 0x37, 0x67, 0x26, 0xfe, 0x38, 0xc5, 0xd7, - 0x9c, 0x7f, 0xde, 0x5d, 0xb1, 0x07, 0xf7, 0x4f, 0x87, 0x14, 0xbb, 0x6f, 0x0f, 0x35, 0x1e, 0xd8, - 0x43, 0x45, 0x4c, 0x68, 0xfa, 0x26, 0x59, 0x90, 0x0f, 0x0b, 0x6b, 0x1a, 0x11, 0xc9, 0xee, 0xc2, - 0x54, 0xc4, 0x22, 0x71, 0x5f, 0xcf, 0x8d, 0x5f, 0x23, 0x47, 0x7f, 0x78, 0x50, 0x8b, 0x08, 0x91, - 0x65, 0xd4, 0xbf, 0x3c, 0xa4, 0xff, 0x9c, 0x82, 0x1a, 0xed, 0x48, 0xc4, 0x54, 0xfe, 0x4d, 0x16, - 0x30, 0xe6, 0x86, 0x34, 0x72, 0x58, 0x5c, 0xd0, 0xf3, 0x90, 0x63, 0x5a, 0xca, 0x65, 0x7b, 0x08, - 0xf5, 0xe6, 0x8c, 0x9e, 0xc1, 0x5e, 0x14, 0xe3, 0x8a, 0xb6, 0x0b, 0x6f, 0x91, 0xfc, 0xde, 0x84, - 0x5d, 0xf8, 0x57, 0xc2, 0x60, 0x47, 0xf7, 0x9c, 0x8b, 0xe8, 0x03, 0x6f, 0xda, 0x60, 0xf3, 0xcf, - 0x2e, 0xbd, 0x65, 0x96, 0xd9, 0xed, 0x7e, 0x8c, 0x65, 0x7e, 0xe7, 0xcd, 0x80, 0x6b, 0x99, 0x63, - 0x86, 0xf0, 0x0e, 0xb7, 0xcc, 0xd7, 0xd3, 0x70, 0x9c, 0x0e, 0xc3, 0xbf, 0x7d, 0x7b, 0x1b, 0x24, - 0xaf, 0x00, 0xb2, 0x2d, 0x4d, 0xb9, 0x59, 0xf6, 0xa3, 0x62, 0x5b, 0xda, 0x95, 0x80, 0xd3, 0x55, - 0x00, 0x35, 0x6d, 0x27, 0xdc, 0x40, 0xe6, 0x86, 0x1b, 0x68, 0xda, 0xce, 0x95, 0x21, 0x5e, 0x3d, - 0x7b, 0x18, 0xdd, 0xf9, 0xc3, 0x14, 0x54, 0xa3, 0x84, 0xce, 0x75, 0x45, 0x85, 0xa3, 0x81, 0xa4, - 0x43, 0x58, 0x5d, 0xee, 0x18, 0xb6, 0xf5, 0x0e, 0x2d, 0xdd, 0x23, 0x16, 0xbe, 0xd9, 0x8b, 0xf7, - 0x2b, 0xc2, 0xe9, 0xb8, 0x9a, 0xdf, 0xbf, 0x85, 0x79, 0x47, 0x2e, 0xd9, 0xdf, 0xea, 0x33, 0xf7, - 0xef, 0xb4, 0xdd, 0xd0, 0x9f, 0xa4, 0xe0, 0xc4, 0x80, 0x1e, 0xfe, 0x4d, 0x76, 0xe7, 0x3f, 0x3f, - 0x50, 0x61, 0x6e, 0xd6, 0xd6, 0xeb, 0x41, 0xbe, 0xa0, 0x82, 0x97, 0xfc, 0x7c, 0x1b, 0xea, 0xc8, - 0x0f, 0xf2, 0x3d, 0x0d, 0xb7, 0x44, 0x72, 0xf1, 0x3e, 0x9d, 0x85, 0xec, 0x8e, 0x6e, 0x3b, 0xee, - 0x57, 0x2a, 0x42, 0xdd, 0x09, 0x71, 0x51, 0x5a, 0x09, 0x41, 0x85, 0x42, 0xae, 0x99, 0x66, 0x9b, - 0x37, 0x2f, 0x2d, 0xc0, 0xa4, 0xaf, 0x8e, 0x83, 0xcf, 0x41, 0xb6, 0x6b, 0x9a, 0x6d, 0x0e, 0x3e, - 0x1d, 0x06, 0x27, 0xb4, 0x7c, 0x98, 0x94, 0x4e, 0x9a, 0x06, 0xc4, 0x40, 0xd8, 0xf7, 0x53, 0x38, - 0xf4, 0x47, 0x52, 0x30, 0x15, 0xa8, 0x76, 0xdf, 0xf0, 0xca, 0x05, 0x3e, 0xbd, 0xd5, 0x77, 0x9f, - 0x81, 0xd1, 0xbb, 0xef, 0xf2, 0xb3, 0x54, 0xf8, 0x9b, 0x50, 0xdd, 0xb3, 0x7f, 0x54, 0x12, 0xaf, - 0x04, 0x2b, 0x00, 0xbe, 0xbc, 0xf5, 0x5d, 0xe1, 0x96, 0xa3, 0x93, 0x1e, 0xd5, 0xbb, 0x63, 0xe9, - 0x78, 0xcc, 0x3b, 0x82, 0x7e, 0xc6, 0x7f, 0xe7, 0xec, 0xce, 0xe1, 0x7c, 0x02, 0xfe, 0xae, 0x38, - 0x32, 0x17, 0xfd, 0x6f, 0xc1, 0x74, 0xd4, 0x2e, 0x18, 0x3d, 0x30, 0x1c, 0xa1, 0x3f, 0x6e, 0xa9, - 0xbe, 0xeb, 0x10, 0x1c, 0x6e, 0xf3, 0x2f, 0xa7, 0xe0, 0xb6, 0xa1, 0x9b, 0x3d, 0xf4, 0xe8, 0x70, - 0xd8, 0x21, 0x91, 0x54, 0xb5, 0x7e, 0x23, 0xac, 0x6e, 0xd7, 0x94, 0xc0, 0xe5, 0x87, 0x68, 0x89, - 0xf6, 0xed, 0x3f, 0x06, 0x4c, 0x6c, 0x7f, 0xac, 0x29, 0x8d, 0xa0, 0x17, 0xa3, 0x2f, 0x01, 0x9c, - 0x89, 0x44, 0x18, 0xbc, 0xe5, 0xa9, 0x3e, 0x90, 0x9c, 0xc1, 0x3f, 0xed, 0x51, 0xb1, 0xf4, 0x80, - 0x69, 0x1f, 0xb2, 0x61, 0x18, 0x30, 0xed, 0xc3, 0x02, 0x75, 0x3e, 0xed, 0x43, 0x23, 0xc9, 0x01, - 0xd3, 0x9e, 0x24, 0x80, 0x1e, 0x30, 0xed, 0x89, 0x02, 0x57, 0x69, 0x04, 0xed, 0xc0, 0x78, 0x20, - 0x4e, 0x41, 0xa7, 0x23, 0xe1, 0xa2, 0x02, 0xc8, 0xea, 0x3d, 0x49, 0x48, 0xfd, 0xf3, 0x1f, 0xe1, - 0x9a, 0x07, 0xcc, 0xff, 0xe0, 0xe8, 0xa3, 0xfa, 0x40, 0x72, 0x06, 0xb7, 0xed, 0x6b, 0xee, 0xb9, - 0x94, 0x8f, 0x00, 0xcd, 0x25, 0x44, 0x12, 0x2d, 0x9f, 0x49, 0x4c, 0xef, 0x36, 0xbc, 0xdb, 0x77, - 0x35, 0x3d, 0x5a, 0x68, 0x91, 0xae, 0xad, 0x7a, 0x6f, 0x22, 0x5a, 0xb7, 0xb1, 0x55, 0x7e, 0xe8, - 0x72, 0x32, 0x92, 0xcd, 0xe7, 0xb4, 0xaa, 0xb7, 0x0f, 0xa1, 0x70, 0xe1, 0xd6, 0xdd, 0x53, 0x54, - 0x29, 0x9a, 0xdc, 0xef, 0xac, 0xaa, 0xa7, 0x86, 0xd2, 0x08, 0xd0, 0x9b, 0x7e, 0x2e, 0xf2, 0xe5, - 0x7c, 0xdf, 0x3b, 0x92, 0x2d, 0x6c, 0x60, 0x5b, 0xb7, 0x0f, 0xf5, 0x8e, 0xe4, 0xf0, 0x6c, 0xfe, - 0x87, 0x73, 0x50, 0xba, 0xc0, 0x50, 0xe9, 0x87, 0xa1, 0xd1, 0xe3, 0x09, 0x3d, 0x70, 0x99, 0x78, - 0xe0, 0x1f, 0x1e, 0xd4, 0xb8, 0x20, 0x5d, 0x5f, 0x6c, 0xf3, 0x2f, 0x44, 0xb1, 0xaf, 0xbb, 0x78, - 0x9f, 0xd8, 0x29, 0x1d, 0xea, 0x7e, 0x2f, 0xbb, 0x58, 0xc1, 0xaf, 0xd4, 0x86, 0xf1, 0x24, 0xf6, - 0xb1, 0x29, 0x7a, 0x3a, 0x43, 0xbf, 0x0f, 0x83, 0x3e, 0x95, 0x82, 0x23, 0x94, 0xca, 0x0b, 0x04, - 0x29, 0xa5, 0xb8, 0x85, 0xd4, 0x37, 0xcb, 0x2b, 0xaa, 0x6f, 0x5b, 0x44, 0x31, 0x1a, 0x75, 0x7e, - 0x38, 0x7e, 0xab, 0xaf, 0xd1, 0x30, 0x9c, 0xf4, 0xc3, 0x83, 0x1a, 0xea, 0xe7, 0x95, 0xe9, 0xd7, - 0x4c, 0x83, 0x75, 0xd1, 0xdf, 0xf4, 0x1e, 0x12, 0x1b, 0x4e, 0x72, 0x81, 0x7a, 0x31, 0x42, 0x20, - 0x3c, 0x5f, 0x83, 0xa2, 0xcf, 0xf8, 0xcc, 0x8c, 0x0e, 0xb8, 0x03, 0xe8, 0xed, 0xbb, 0x11, 0xc7, - 0xf3, 0xf9, 0x3e, 0xd9, 0x0f, 0x81, 0x7e, 0x2d, 0x05, 0x47, 0xbc, 0xbd, 0xbd, 0x1f, 0x3c, 0x97, - 0x7c, 0x77, 0x7f, 0x2e, 0x28, 0xb5, 0x48, 0x3c, 0x22, 0xb5, 0x28, 0x07, 0x29, 0x4f, 0xf7, 0xa2, - 0x1c, 0xc6, 0xb3, 0x30, 0xee, 0xdf, 0xfc, 0x79, 0x5f, 0x7a, 0x1c, 0x76, 0xf6, 0x3b, 0xcd, 0x47, - 0x1b, 0xb8, 0x07, 0x23, 0x07, 0x81, 0x50, 0x15, 0xf2, 0x78, 0xaf, 0x6b, 0x5a, 0x0e, 0x6e, 0xd2, - 0x8b, 0xdb, 0x79, 0xd9, 0x2d, 0x4b, 0xd7, 0x20, 0x62, 0x62, 0xd1, 0x53, 0xa1, 0xcf, 0x54, 0xdd, - 0xc8, 0xa6, 0xa2, 0xff, 0xcb, 0x56, 0xfe, 0x4f, 0x4e, 0xdd, 0x6c, 0xb3, 0xf1, 0xff, 0x03, 0x00, - 0x00, 0xff, 0xff, 0x93, 0x55, 0x11, 0xf3, 0xb7, 0x9b, 0x00, 0x00, + 0x79, 0x1f, 0xf6, 0x81, 0xc5, 0xee, 0xb7, 0x8b, 0xdd, 0x45, 0x03, 0x77, 0xb7, 0xb7, 0x24, 0x6f, + 0x8f, 0x73, 0x7c, 0xe0, 0xf8, 0xc0, 0x51, 0x27, 0x3e, 0xf7, 0x28, 0x52, 0x58, 0x00, 0x77, 0x07, + 0x12, 0xb8, 0x03, 0x07, 0xc0, 0x91, 0xa2, 0x6c, 0xaf, 0x07, 0xb3, 0x8d, 0xc5, 0x10, 0xbb, 0x33, + 0xcb, 0x99, 0xd9, 0x3b, 0x80, 0xa5, 0x54, 0x31, 0x65, 0x59, 0x0f, 0x47, 0xb6, 0x64, 0xc7, 0x76, + 0x64, 0x45, 0x92, 0x29, 0xa5, 0x12, 0x39, 0x4a, 0xe2, 0x47, 0xa2, 0xe8, 0x61, 0xe7, 0x0f, 0xa5, + 0x9c, 0xc4, 0x4a, 0x95, 0x2b, 0x25, 0x25, 0x4e, 0xca, 0x95, 0x4a, 0xc1, 0x16, 0xa9, 0x2a, 0x2b, + 0x0a, 0x93, 0x28, 0x17, 0xda, 0xe5, 0x92, 0xfe, 0x48, 0xaa, 0x5f, 0xf3, 0xda, 0xd9, 0x9d, 0xc1, + 0xf1, 0x48, 0xd1, 0x25, 0xfd, 0x85, 0x9d, 0x9e, 0xef, 0xfb, 0x75, 0xf7, 0xd7, 0x5f, 0x7f, 0xdf, + 0xd7, 0x5f, 0x77, 0x0f, 0xe0, 0x8b, 0x49, 0xb8, 0x4d, 0x35, 0xac, 0xae, 0x61, 0x9d, 0x79, 0xb1, + 0x8f, 0xcd, 0xfd, 0x33, 0x3d, 0xa5, 0xad, 0xe9, 0x8a, 0xad, 0x19, 0xfa, 0x5c, 0xcf, 0x34, 0x6c, + 0x03, 0x15, 0xd8, 0xeb, 0x39, 0xfa, 0x5a, 0xd2, 0x21, 0xbf, 0xa6, 0xb4, 0xb1, 0x8c, 0x5f, 0xec, + 0x63, 0xcb, 0x46, 0x65, 0x48, 0xed, 0xe2, 0xfd, 0x4a, 0xe2, 0x64, 0x62, 0xb6, 0x20, 0x93, 0x9f, + 0xe8, 0x28, 0x64, 0x8c, 0xed, 0x6d, 0x0b, 0xdb, 0x95, 0xe4, 0xc9, 0xc4, 0x6c, 0x5a, 0xe6, 0x4f, + 0x68, 0x06, 0xc6, 0x3b, 0x5a, 0x57, 0xb3, 0x2b, 0x29, 0x5a, 0xcc, 0x1e, 0x50, 0x0d, 0xf2, 0xaa, + 0xd1, 0xd7, 0xed, 0xa6, 0x6d, 0xd8, 0x4a, 0xa7, 0x92, 0x3e, 0x99, 0x98, 0xcd, 0xca, 0x40, 0x8b, + 0x36, 0x48, 0x89, 0xf4, 0x24, 0x14, 0x58, 0x7d, 0x56, 0xcf, 0xd0, 0x2d, 0x8c, 0x8e, 0x43, 0x56, + 0xc7, 0x7b, 0x76, 0xd3, 0xad, 0x75, 0x82, 0x3c, 0x3f, 0x8d, 0xf7, 0x49, 0x0d, 0x0c, 0x85, 0x55, + 0xcc, 0x1e, 0x1a, 0x8d, 0x6f, 0xbc, 0x7a, 0x22, 0xf1, 0xcd, 0x57, 0x4f, 0x24, 0xfe, 0xfc, 0xd5, + 0x13, 0x89, 0x4f, 0xbc, 0x76, 0x62, 0xec, 0x9b, 0xaf, 0x9d, 0x18, 0xfb, 0xd3, 0xd7, 0x4e, 0x8c, + 0x3d, 0x3f, 0xdb, 0xd6, 0xec, 0x9d, 0xfe, 0xd6, 0x9c, 0x6a, 0x74, 0xcf, 0x70, 0x11, 0xb0, 0x3f, + 0xf7, 0x5b, 0xad, 0xdd, 0x33, 0xf6, 0x7e, 0x0f, 0x73, 0x99, 0x6c, 0x65, 0xa8, 0x24, 0xde, 0x0d, + 0x7f, 0x78, 0x0e, 0x4e, 0xb6, 0x0d, 0xa3, 0xdd, 0xc1, 0x67, 0x68, 0xc9, 0x56, 0x7f, 0xfb, 0x4c, + 0x0b, 0x5b, 0xaa, 0xa9, 0xf5, 0x6c, 0xc3, 0xe4, 0xf2, 0x2a, 0x31, 0x8a, 0x39, 0x41, 0x21, 0xad, + 0xc2, 0xd4, 0x79, 0xad, 0x83, 0x17, 0x1d, 0xc2, 0x75, 0x6c, 0xa3, 0x47, 0x21, 0xbd, 0xad, 0x75, + 0x70, 0x25, 0x71, 0x32, 0x35, 0x9b, 0x3f, 0x7b, 0xc7, 0x5c, 0x80, 0x69, 0xce, 0xcf, 0xb1, 0x46, + 0x8a, 0x65, 0xca, 0x21, 0x7d, 0x27, 0x0d, 0xd3, 0x21, 0x6f, 0x11, 0x82, 0xb4, 0xae, 0x74, 0x31, + 0x95, 0x4a, 0x4e, 0xa6, 0xbf, 0x51, 0x05, 0x26, 0x7a, 0x8a, 0xba, 0xab, 0xb4, 0x31, 0x15, 0x4a, + 0x4e, 0x16, 0x8f, 0xe8, 0x04, 0x40, 0x0b, 0xf7, 0xb0, 0xde, 0xc2, 0xba, 0xba, 0x5f, 0x49, 0x9d, + 0x4c, 0xcd, 0xe6, 0x64, 0x4f, 0x09, 0xba, 0x17, 0xa6, 0x7a, 0xfd, 0xad, 0x8e, 0xa6, 0x36, 0x3d, + 0x64, 0x70, 0x32, 0x35, 0x3b, 0x2e, 0x97, 0xd9, 0x8b, 0x45, 0x97, 0xf8, 0x6e, 0x28, 0x5d, 0xc3, + 0xca, 0xae, 0x97, 0x34, 0x4f, 0x49, 0x8b, 0xa4, 0xd8, 0x43, 0xb8, 0x00, 0x85, 0x2e, 0xb6, 0x2c, + 0xa5, 0x8d, 0x9b, 0x44, 0xbe, 0x95, 0x34, 0xed, 0xfd, 0xc9, 0x81, 0xde, 0x07, 0x7b, 0x9e, 0xe7, + 0x5c, 0x1b, 0xfb, 0x3d, 0x8c, 0xe6, 0x21, 0x87, 0xf5, 0x7e, 0x97, 0x21, 0x8c, 0x0f, 0x91, 0xdf, + 0x92, 0xde, 0xef, 0x06, 0x51, 0xb2, 0x84, 0x8d, 0x43, 0x4c, 0x58, 0xd8, 0xbc, 0xaa, 0xa9, 0xb8, + 0x92, 0xa1, 0x00, 0x77, 0x0f, 0x00, 0xac, 0xb3, 0xf7, 0x41, 0x0c, 0xc1, 0x87, 0x16, 0x20, 0x87, + 0xf7, 0x6c, 0xac, 0x5b, 0x9a, 0xa1, 0x57, 0x26, 0x28, 0xc8, 0x9d, 0x21, 0xa3, 0x88, 0x3b, 0xad, + 0x20, 0x84, 0xcb, 0x87, 0x1e, 0x86, 0x09, 0xa3, 0x47, 0xe6, 0x9a, 0x55, 0xc9, 0x9e, 0x4c, 0xcc, + 0xe6, 0xcf, 0xde, 0x1a, 0xaa, 0x08, 0x97, 0x19, 0x8d, 0x2c, 0x88, 0xd1, 0x32, 0x94, 0x2d, 0xa3, + 0x6f, 0xaa, 0xb8, 0xa9, 0x1a, 0x2d, 0xdc, 0xd4, 0xf4, 0x6d, 0xa3, 0x92, 0xa3, 0x00, 0xb5, 0xc1, + 0x8e, 0x50, 0xc2, 0x05, 0xa3, 0x85, 0x97, 0xf5, 0x6d, 0x43, 0x2e, 0x5a, 0xbe, 0x67, 0x32, 0x5f, + 0xad, 0x7d, 0xdd, 0x56, 0xf6, 0x2a, 0x05, 0xaa, 0x21, 0xfc, 0x49, 0xfa, 0x5a, 0x06, 0x4a, 0x71, + 0x54, 0xec, 0x1c, 0x8c, 0x6f, 0x93, 0x5e, 0x56, 0x92, 0x87, 0x91, 0x01, 0xe3, 0xf1, 0x0b, 0x31, + 0x73, 0x83, 0x42, 0x9c, 0x87, 0xbc, 0x8e, 0x2d, 0x1b, 0xb7, 0x98, 0x46, 0xa4, 0x62, 0xea, 0x14, + 0x30, 0xa6, 0x41, 0x95, 0x4a, 0xdf, 0x90, 0x4a, 0x3d, 0x07, 0x25, 0xa7, 0x49, 0x4d, 0x53, 0xd1, + 0xdb, 0x42, 0x37, 0xcf, 0x44, 0xb5, 0x64, 0x6e, 0x49, 0xf0, 0xc9, 0x84, 0x4d, 0x2e, 0x62, 0xdf, + 0x33, 0x5a, 0x04, 0x30, 0x74, 0x6c, 0x6c, 0x37, 0x5b, 0x58, 0xed, 0x54, 0xb2, 0x43, 0xa4, 0x74, + 0x99, 0x90, 0x0c, 0x48, 0xc9, 0x60, 0xa5, 0x6a, 0x07, 0x3d, 0xe6, 0xaa, 0xda, 0xc4, 0x10, 0x4d, + 0x59, 0x65, 0x93, 0x6c, 0x40, 0xdb, 0x36, 0xa1, 0x68, 0x62, 0xa2, 0xf7, 0xb8, 0xc5, 0x7b, 0x96, + 0xa3, 0x8d, 0x98, 0x8b, 0xec, 0x99, 0xcc, 0xd9, 0x58, 0xc7, 0x26, 0x4d, 0xef, 0x23, 0x3a, 0x05, + 0x4e, 0x41, 0x93, 0xaa, 0x15, 0x50, 0x2b, 0x54, 0x10, 0x85, 0x97, 0x94, 0x2e, 0xae, 0xbe, 0x04, + 0x45, 0xbf, 0x78, 0x88, 0x99, 0xb7, 0x6c, 0xc5, 0xb4, 0xa9, 0x16, 0x8e, 0xcb, 0xec, 0x81, 0x38, + 0x22, 0xac, 0xb7, 0xa8, 0x95, 0x1b, 0x97, 0xc9, 0x4f, 0xf4, 0x5e, 0xb7, 0xc3, 0x29, 0xda, 0xe1, + 0xbb, 0x06, 0x47, 0xd4, 0x87, 0x1c, 0xec, 0x77, 0xf5, 0x11, 0x98, 0xf4, 0x75, 0x20, 0x6e, 0xd5, + 0xd2, 0x07, 0xe0, 0x48, 0x28, 0x34, 0x7a, 0x0e, 0x66, 0xfa, 0xba, 0xa6, 0xdb, 0xd8, 0xec, 0x99, + 0x98, 0x68, 0x2c, 0xab, 0xaa, 0xf2, 0x17, 0x13, 0x43, 0x74, 0x6e, 0xd3, 0x4b, 0xcd, 0x50, 0xe4, + 0xe9, 0xfe, 0x60, 0xe1, 0x3d, 0xb9, 0xec, 0x77, 0x27, 0xca, 0x2f, 0xbf, 0xfc, 0xf2, 0xcb, 0x49, + 0xe9, 0x5f, 0x67, 0x60, 0x26, 0x6c, 0xce, 0x84, 0x4e, 0xdf, 0xa3, 0x90, 0xd1, 0xfb, 0xdd, 0x2d, + 0x6c, 0x52, 0x21, 0x8d, 0xcb, 0xfc, 0x09, 0xcd, 0xc3, 0x78, 0x47, 0xd9, 0xc2, 0xcc, 0x25, 0x17, + 0xcf, 0xde, 0x1b, 0x6b, 0x56, 0xce, 0xad, 0x10, 0x16, 0x99, 0x71, 0xa2, 0x27, 0x20, 0xcd, 0x4d, + 0x34, 0x41, 0xb8, 0x27, 0x1e, 0x02, 0x99, 0x4b, 0x32, 0xe5, 0x43, 0xb7, 0x40, 0x8e, 0xfc, 0x65, + 0xba, 0x91, 0xa1, 0x6d, 0xce, 0x92, 0x02, 0xa2, 0x17, 0xa8, 0x0a, 0x59, 0x3a, 0x4d, 0x5a, 0x58, + 0xb8, 0x36, 0xe7, 0x99, 0x28, 0x56, 0x0b, 0x6f, 0x2b, 0xfd, 0x8e, 0xdd, 0xbc, 0xaa, 0x74, 0xfa, + 0x98, 0x2a, 0x7c, 0x4e, 0x2e, 0xf0, 0xc2, 0x2b, 0xa4, 0x8c, 0x44, 0x1e, 0x6c, 0x56, 0x69, 0x7a, + 0x0b, 0xef, 0x51, 0xeb, 0x39, 0x2e, 0xb3, 0x89, 0xb6, 0x4c, 0x4a, 0x48, 0xf5, 0x2f, 0x58, 0x86, + 0x2e, 0x54, 0x93, 0x56, 0x41, 0x0a, 0x68, 0xf5, 0x8f, 0x04, 0x0d, 0xf7, 0x6d, 0xe1, 0xdd, 0x1b, + 0x98, 0x4b, 0x77, 0x43, 0x89, 0x05, 0x13, 0x7c, 0xe8, 0x95, 0x4e, 0x65, 0x8a, 0x06, 0x3d, 0x45, + 0x56, 0x7c, 0x99, 0x97, 0x4a, 0x5f, 0x4e, 0x42, 0x9a, 0x1a, 0x96, 0x12, 0xe4, 0x37, 0xde, 0xb7, + 0xb6, 0xd4, 0x5c, 0xbc, 0xbc, 0xd9, 0x58, 0x59, 0x2a, 0x27, 0x50, 0x11, 0x80, 0x16, 0x9c, 0x5f, + 0xb9, 0x3c, 0xbf, 0x51, 0x4e, 0x3a, 0xcf, 0xcb, 0x97, 0x36, 0x1e, 0x7e, 0xb0, 0x9c, 0x72, 0x18, + 0x36, 0x59, 0x41, 0xda, 0x4b, 0xf0, 0xee, 0xb3, 0xe5, 0x71, 0x54, 0x86, 0x02, 0x03, 0x58, 0x7e, + 0x6e, 0x69, 0xf1, 0xe1, 0x07, 0xcb, 0x19, 0x7f, 0xc9, 0xbb, 0xcf, 0x96, 0x27, 0xd0, 0x24, 0xe4, + 0x68, 0x49, 0xe3, 0xf2, 0xe5, 0x95, 0x72, 0xd6, 0xc1, 0x5c, 0xdf, 0x90, 0x97, 0x2f, 0x5d, 0x28, + 0xe7, 0x1c, 0xcc, 0x0b, 0xf2, 0xe5, 0xcd, 0xb5, 0x32, 0x38, 0x08, 0xab, 0x4b, 0xeb, 0xeb, 0xf3, + 0x17, 0x96, 0xca, 0x79, 0x87, 0xa2, 0xf1, 0xbe, 0x8d, 0xa5, 0xf5, 0x72, 0xc1, 0xd7, 0xac, 0x77, + 0x9f, 0x2d, 0x4f, 0x3a, 0x55, 0x2c, 0x5d, 0xda, 0x5c, 0x2d, 0x17, 0xd1, 0x14, 0x4c, 0xb2, 0x2a, + 0x44, 0x23, 0x4a, 0x81, 0xa2, 0x87, 0x1f, 0x2c, 0x97, 0xdd, 0x86, 0x30, 0x94, 0x29, 0x5f, 0xc1, + 0xc3, 0x0f, 0x96, 0x91, 0xb4, 0x00, 0xe3, 0x54, 0x0d, 0x11, 0x82, 0xe2, 0xca, 0x7c, 0x63, 0x69, + 0xa5, 0x79, 0x79, 0x6d, 0x63, 0xf9, 0xf2, 0xa5, 0xf9, 0x95, 0x72, 0xc2, 0x2d, 0x93, 0x97, 0x9e, + 0xd9, 0x5c, 0x96, 0x97, 0x16, 0xcb, 0x49, 0x6f, 0xd9, 0xda, 0xd2, 0xfc, 0xc6, 0xd2, 0x62, 0x39, + 0x25, 0xa9, 0x30, 0x13, 0x66, 0x50, 0x43, 0xa7, 0x90, 0x47, 0x17, 0x92, 0x43, 0x74, 0x81, 0x62, + 0x05, 0x75, 0x41, 0x7a, 0x2d, 0x09, 0xd3, 0x21, 0x4e, 0x25, 0xb4, 0x92, 0x27, 0x61, 0x9c, 0xe9, + 0x32, 0x73, 0xb3, 0xa7, 0x43, 0xbd, 0x13, 0xd5, 0xec, 0x01, 0x57, 0x4b, 0xf9, 0xbc, 0xa1, 0x46, + 0x6a, 0x48, 0xa8, 0x41, 0x20, 0x06, 0x14, 0xf6, 0xa7, 0x07, 0x8c, 0x3f, 0xf3, 0x8f, 0x0f, 0xc7, + 0xf1, 0x8f, 0xb4, 0xec, 0x70, 0x4e, 0x60, 0x3c, 0xc4, 0x09, 0x9c, 0x83, 0xa9, 0x01, 0xa0, 0xd8, + 0xc6, 0xf8, 0xe7, 0x12, 0x50, 0x19, 0x26, 0x9c, 0x08, 0x93, 0x98, 0xf4, 0x99, 0xc4, 0x73, 0x41, + 0x09, 0xde, 0x3e, 0x7c, 0x10, 0x06, 0xc6, 0xfa, 0x0b, 0x09, 0x38, 0x1a, 0x1e, 0x52, 0x86, 0xb6, + 0xe1, 0x09, 0xc8, 0x74, 0xb1, 0xbd, 0x63, 0x88, 0xb0, 0xea, 0xae, 0x10, 0x67, 0x4d, 0x5e, 0x07, + 0x07, 0x9b, 0x73, 0x79, 0xbd, 0x7d, 0x6a, 0x58, 0x5c, 0xc8, 0x5a, 0x33, 0xd0, 0xd2, 0x8f, 0x26, + 0xe1, 0x48, 0x28, 0x78, 0x68, 0x43, 0x6f, 0x03, 0xd0, 0xf4, 0x5e, 0xdf, 0x66, 0xa1, 0x13, 0xb3, + 0xc4, 0x39, 0x5a, 0x42, 0x8d, 0x17, 0xb1, 0xb2, 0x7d, 0xdb, 0x79, 0x9f, 0xa2, 0xef, 0x81, 0x15, + 0x51, 0x82, 0x47, 0xdd, 0x86, 0xa6, 0x69, 0x43, 0x4f, 0x0c, 0xe9, 0xe9, 0x80, 0x62, 0x3e, 0x00, + 0x65, 0xb5, 0xa3, 0x61, 0xdd, 0x6e, 0x5a, 0xb6, 0x89, 0x95, 0xae, 0xa6, 0xb7, 0xa9, 0xab, 0xc9, + 0xd6, 0xc7, 0xb7, 0x95, 0x8e, 0x85, 0xe5, 0x12, 0x7b, 0xbd, 0x2e, 0xde, 0x12, 0x0e, 0xaa, 0x40, + 0xa6, 0x87, 0x23, 0xe3, 0xe3, 0x60, 0xaf, 0x1d, 0x0e, 0xe9, 0x97, 0x73, 0x90, 0xf7, 0x04, 0xe0, + 0xe8, 0x76, 0x28, 0xbc, 0xa0, 0x5c, 0x55, 0x9a, 0x62, 0x51, 0xc5, 0x24, 0x91, 0x27, 0x65, 0x6b, + 0x7c, 0x61, 0xf5, 0x00, 0xcc, 0x50, 0x12, 0xa3, 0x6f, 0x63, 0xb3, 0xa9, 0x76, 0x14, 0xcb, 0xa2, + 0x42, 0xcb, 0x52, 0x52, 0x44, 0xde, 0x5d, 0x26, 0xaf, 0x16, 0xc4, 0x1b, 0xf4, 0x10, 0x4c, 0x53, + 0x8e, 0x6e, 0xbf, 0x63, 0x6b, 0xbd, 0x0e, 0x6e, 0x92, 0x65, 0x9e, 0x45, 0x5d, 0x8e, 0xd3, 0xb2, + 0x29, 0x42, 0xb1, 0xca, 0x09, 0x48, 0x8b, 0x2c, 0xb4, 0x08, 0xb7, 0x51, 0xb6, 0x36, 0xd6, 0xb1, + 0xa9, 0xd8, 0xb8, 0x89, 0x5f, 0xec, 0x2b, 0x1d, 0xab, 0xa9, 0xe8, 0xad, 0xe6, 0x8e, 0x62, 0xed, + 0x54, 0x66, 0x08, 0x40, 0x23, 0x59, 0x49, 0xc8, 0xc7, 0x09, 0xe1, 0x05, 0x4e, 0xb7, 0x44, 0xc9, + 0xe6, 0xf5, 0xd6, 0x45, 0xc5, 0xda, 0x41, 0x75, 0x38, 0x4a, 0x51, 0x2c, 0xdb, 0xd4, 0xf4, 0x76, + 0x53, 0xdd, 0xc1, 0xea, 0x6e, 0xb3, 0x6f, 0x6f, 0x3f, 0x5a, 0xb9, 0xc5, 0x5b, 0x3f, 0x6d, 0xe1, + 0x3a, 0xa5, 0x59, 0x20, 0x24, 0x9b, 0xf6, 0xf6, 0xa3, 0x68, 0x1d, 0x0a, 0x64, 0x30, 0xba, 0xda, + 0x4b, 0xb8, 0xb9, 0x6d, 0x98, 0xd4, 0x87, 0x16, 0x43, 0x4c, 0x93, 0x47, 0x82, 0x73, 0x97, 0x39, + 0xc3, 0xaa, 0xd1, 0xc2, 0xf5, 0xf1, 0xf5, 0xb5, 0xa5, 0xa5, 0x45, 0x39, 0x2f, 0x50, 0xce, 0x1b, + 0x26, 0x51, 0xa8, 0xb6, 0xe1, 0x08, 0x38, 0xcf, 0x14, 0xaa, 0x6d, 0x08, 0xf1, 0x3e, 0x04, 0xd3, + 0xaa, 0xca, 0xfa, 0xac, 0xa9, 0x4d, 0xbe, 0x18, 0xb3, 0x2a, 0x65, 0x9f, 0xb0, 0x54, 0xf5, 0x02, + 0x23, 0xe0, 0x3a, 0x6e, 0xa1, 0xc7, 0xe0, 0x88, 0x2b, 0x2c, 0x2f, 0xe3, 0xd4, 0x40, 0x2f, 0x83, + 0xac, 0x0f, 0xc1, 0x74, 0x6f, 0x7f, 0x90, 0x11, 0xf9, 0x6a, 0xec, 0xed, 0x07, 0xd9, 0x1e, 0x81, + 0x99, 0xde, 0x4e, 0x6f, 0x90, 0xef, 0x1e, 0x2f, 0x1f, 0xea, 0xed, 0xf4, 0x82, 0x8c, 0x77, 0xd2, + 0x95, 0xb9, 0x89, 0x55, 0xc5, 0xc6, 0xad, 0xca, 0x31, 0x2f, 0xb9, 0xe7, 0x05, 0x9a, 0x83, 0xb2, + 0xaa, 0x36, 0xb1, 0xae, 0x6c, 0x75, 0x70, 0x53, 0x31, 0xb1, 0xae, 0x58, 0x95, 0x1a, 0x25, 0x4e, + 0xdb, 0x66, 0x1f, 0xcb, 0x45, 0x55, 0x5d, 0xa2, 0x2f, 0xe7, 0xe9, 0x3b, 0x74, 0x0f, 0x4c, 0x19, + 0x5b, 0x2f, 0xa8, 0x4c, 0x23, 0x9b, 0x3d, 0x13, 0x6f, 0x6b, 0x7b, 0x95, 0x3b, 0xa8, 0x78, 0x4b, + 0xe4, 0x05, 0xd5, 0xc7, 0x35, 0x5a, 0x8c, 0x4e, 0x43, 0x59, 0xb5, 0x76, 0x14, 0xb3, 0x47, 0x4d, + 0xb2, 0xd5, 0x53, 0x54, 0x5c, 0xb9, 0x93, 0x91, 0xb2, 0xf2, 0x4b, 0xa2, 0x98, 0xcc, 0x08, 0xeb, + 0x9a, 0xb6, 0x6d, 0x0b, 0xc4, 0xbb, 0xd9, 0x8c, 0xa0, 0x65, 0x1c, 0x6d, 0x16, 0xca, 0x44, 0x12, + 0xbe, 0x8a, 0x67, 0x29, 0x59, 0xb1, 0xb7, 0xd3, 0xf3, 0xd6, 0x7b, 0x0a, 0x26, 0x09, 0xa5, 0x5b, + 0xe9, 0x69, 0x16, 0xb8, 0xf5, 0x76, 0x3c, 0x35, 0x3e, 0x08, 0x47, 0x09, 0x51, 0x17, 0xdb, 0x4a, + 0x4b, 0xb1, 0x15, 0x0f, 0xf5, 0x7d, 0x94, 0x9a, 0x88, 0x7d, 0x95, 0xbf, 0xf4, 0xb5, 0xd3, 0xec, + 0x6f, 0xed, 0x3b, 0x8a, 0x75, 0x3f, 0x6b, 0x27, 0x29, 0x13, 0xaa, 0xf5, 0x96, 0x05, 0xe7, 0x52, + 0x1d, 0x0a, 0x5e, 0xbd, 0x47, 0x39, 0x60, 0x9a, 0x5f, 0x4e, 0x90, 0x20, 0x68, 0xe1, 0xf2, 0x22, + 0x09, 0x5f, 0x9e, 0x5f, 0x2a, 0x27, 0x49, 0x18, 0xb5, 0xb2, 0xbc, 0xb1, 0xd4, 0x94, 0x37, 0x2f, + 0x6d, 0x2c, 0xaf, 0x2e, 0x95, 0x53, 0x9e, 0xc0, 0xfe, 0xa9, 0x74, 0xf6, 0xae, 0xf2, 0xdd, 0xd2, + 0xb7, 0x92, 0x50, 0xf4, 0xaf, 0xd4, 0xd0, 0xe3, 0x70, 0x4c, 0xa4, 0x55, 0x2c, 0x6c, 0x37, 0xaf, + 0x69, 0x26, 0x9d, 0x90, 0x5d, 0x85, 0x39, 0x47, 0x47, 0x7f, 0x66, 0x38, 0xd5, 0x3a, 0xb6, 0x9f, + 0xd5, 0x4c, 0x32, 0xdd, 0xba, 0x8a, 0x8d, 0x56, 0xa0, 0xa6, 0x1b, 0x4d, 0xcb, 0x56, 0xf4, 0x96, + 0x62, 0xb6, 0x9a, 0x6e, 0x42, 0xab, 0xa9, 0xa8, 0x2a, 0xb6, 0x2c, 0x83, 0x39, 0x42, 0x07, 0xe5, + 0x56, 0xdd, 0x58, 0xe7, 0xc4, 0xae, 0x87, 0x98, 0xe7, 0xa4, 0x01, 0xf5, 0x4d, 0x0d, 0x53, 0xdf, + 0x5b, 0x20, 0xd7, 0x55, 0x7a, 0x4d, 0xac, 0xdb, 0xe6, 0x3e, 0x8d, 0xcf, 0xb3, 0x72, 0xb6, 0xab, + 0xf4, 0x96, 0xc8, 0xf3, 0xdb, 0xb2, 0x4c, 0x7a, 0x2a, 0x9d, 0xcd, 0x96, 0x73, 0x4f, 0xa5, 0xb3, + 0xb9, 0x32, 0x48, 0xaf, 0xa6, 0xa0, 0xe0, 0x8d, 0xd7, 0xc9, 0xf2, 0x47, 0xa5, 0x1e, 0x2b, 0x41, + 0x6d, 0xda, 0xa9, 0x91, 0xd1, 0xfd, 0xdc, 0x02, 0x71, 0x65, 0xf5, 0x0c, 0x0b, 0x8e, 0x65, 0xc6, + 0x49, 0xc2, 0x08, 0xa2, 0x6c, 0x98, 0x05, 0x23, 0x59, 0x99, 0x3f, 0xa1, 0x0b, 0x90, 0x79, 0xc1, + 0xa2, 0xd8, 0x19, 0x8a, 0x7d, 0xc7, 0x68, 0xec, 0xa7, 0xd6, 0x29, 0x78, 0xee, 0xa9, 0xf5, 0xe6, + 0xa5, 0xcb, 0xf2, 0xea, 0xfc, 0x8a, 0xcc, 0xd9, 0xd1, 0x71, 0x48, 0x77, 0x94, 0x97, 0xf6, 0xfd, + 0x4e, 0x8f, 0x16, 0xc5, 0x1d, 0x84, 0xe3, 0x90, 0xbe, 0x86, 0x95, 0x5d, 0xbf, 0xab, 0xa1, 0x45, + 0x6f, 0xe1, 0x64, 0x38, 0x03, 0xe3, 0x54, 0x5e, 0x08, 0x80, 0x4b, 0xac, 0x3c, 0x86, 0xb2, 0x90, + 0x5e, 0xb8, 0x2c, 0x93, 0x09, 0x51, 0x86, 0x02, 0x2b, 0x6d, 0xae, 0x2d, 0x2f, 0x2d, 0x2c, 0x95, + 0x93, 0xd2, 0x43, 0x90, 0x61, 0x42, 0x20, 0x93, 0xc5, 0x11, 0x43, 0x79, 0x8c, 0x3f, 0x72, 0x8c, + 0x84, 0x78, 0xbb, 0xb9, 0xda, 0x58, 0x92, 0xcb, 0x49, 0xff, 0x50, 0xa7, 0xcb, 0xe3, 0x92, 0x05, + 0x05, 0x6f, 0x1c, 0xfe, 0xf6, 0x2c, 0xc6, 0xbf, 0x9e, 0x80, 0xbc, 0x27, 0xae, 0x26, 0x01, 0x91, + 0xd2, 0xe9, 0x18, 0xd7, 0x9a, 0x4a, 0x47, 0x53, 0x2c, 0xae, 0x1a, 0x40, 0x8b, 0xe6, 0x49, 0x49, + 0xdc, 0xa1, 0x7b, 0x9b, 0xa6, 0xc8, 0x78, 0x39, 0x23, 0x7d, 0x36, 0x01, 0xe5, 0x60, 0x60, 0x1b, + 0x68, 0x66, 0xe2, 0x47, 0xd9, 0x4c, 0xe9, 0xd3, 0x09, 0x28, 0xfa, 0xa3, 0xd9, 0x40, 0xf3, 0x6e, + 0xff, 0x91, 0x36, 0xef, 0xcf, 0x93, 0x30, 0xe9, 0x8b, 0x61, 0xe3, 0xb6, 0xee, 0x45, 0x98, 0xd2, + 0x5a, 0xb8, 0xdb, 0x33, 0x6c, 0xac, 0xab, 0xfb, 0xcd, 0x0e, 0xbe, 0x8a, 0x3b, 0x15, 0x89, 0x1a, + 0x8d, 0x33, 0xa3, 0xa3, 0xe4, 0xb9, 0x65, 0x97, 0x6f, 0x85, 0xb0, 0xd5, 0xa7, 0x97, 0x17, 0x97, + 0x56, 0xd7, 0x2e, 0x6f, 0x2c, 0x5d, 0x5a, 0x78, 0x5f, 0x73, 0xf3, 0xd2, 0xd3, 0x97, 0x2e, 0x3f, + 0x7b, 0x49, 0x2e, 0x6b, 0x01, 0xb2, 0xb7, 0x70, 0xda, 0xaf, 0x41, 0x39, 0xd8, 0x28, 0x74, 0x0c, + 0xc2, 0x9a, 0x55, 0x1e, 0x43, 0xd3, 0x50, 0xba, 0x74, 0xb9, 0xb9, 0xbe, 0xbc, 0xb8, 0xd4, 0x5c, + 0x3a, 0x7f, 0x7e, 0x69, 0x61, 0x63, 0x9d, 0xe5, 0x3d, 0x1c, 0xea, 0x0d, 0xdf, 0x04, 0x97, 0x3e, + 0x95, 0x82, 0xe9, 0x90, 0x96, 0xa0, 0x79, 0xbe, 0x62, 0x61, 0x8b, 0xa8, 0xfb, 0xe3, 0xb4, 0x7e, + 0x8e, 0xc4, 0x0c, 0x6b, 0x8a, 0x69, 0xf3, 0x05, 0xce, 0x69, 0x20, 0x52, 0xd2, 0x6d, 0x6d, 0x5b, + 0xc3, 0x26, 0xcf, 0x27, 0xb1, 0x65, 0x4c, 0xc9, 0x2d, 0x67, 0x29, 0xa5, 0xfb, 0x00, 0xf5, 0x0c, + 0x4b, 0xb3, 0xb5, 0xab, 0xb8, 0xa9, 0xe9, 0x22, 0xf9, 0x94, 0xa6, 0xbb, 0x51, 0x65, 0xf1, 0x66, + 0x59, 0xb7, 0x1d, 0x6a, 0x1d, 0xb7, 0x95, 0x00, 0x35, 0x31, 0xe6, 0x29, 0xb9, 0x2c, 0xde, 0x38, + 0xd4, 0xb7, 0x43, 0xa1, 0x65, 0xf4, 0x49, 0xac, 0xc7, 0xe8, 0x88, 0xef, 0x48, 0xc8, 0x79, 0x56, + 0xe6, 0x90, 0xf0, 0x28, 0xde, 0xcd, 0x7a, 0x15, 0xe4, 0x3c, 0x2b, 0x63, 0x24, 0x77, 0x43, 0x49, + 0x69, 0xb7, 0x4d, 0x02, 0x2e, 0x80, 0xd8, 0xba, 0xa4, 0xe8, 0x14, 0x53, 0xc2, 0xea, 0x53, 0x90, + 0x15, 0x72, 0x20, 0xae, 0x9a, 0x48, 0xa2, 0xd9, 0x63, 0x8b, 0xed, 0xe4, 0x6c, 0x4e, 0xce, 0xea, + 0xe2, 0xe5, 0xed, 0x50, 0xd0, 0xac, 0xa6, 0x9b, 0xc4, 0x4f, 0x9e, 0x4c, 0xce, 0x66, 0xe5, 0xbc, + 0x66, 0x39, 0x09, 0x50, 0xe9, 0x0b, 0x49, 0x28, 0xfa, 0x37, 0x21, 0xd0, 0x22, 0x64, 0x3b, 0x86, + 0x4a, 0x77, 0x19, 0xf9, 0x0e, 0xd8, 0x6c, 0xc4, 0xbe, 0xc5, 0xdc, 0x0a, 0xa7, 0x97, 0x1d, 0xce, + 0xea, 0x7f, 0x48, 0x40, 0x56, 0x14, 0xa3, 0xa3, 0x90, 0xee, 0x29, 0xf6, 0x0e, 0x85, 0x1b, 0x6f, + 0x24, 0xcb, 0x09, 0x99, 0x3e, 0x93, 0x72, 0xab, 0xa7, 0xe8, 0x54, 0x05, 0x78, 0x39, 0x79, 0x26, + 0xe3, 0xda, 0xc1, 0x4a, 0x8b, 0x2e, 0x7a, 0x8c, 0x6e, 0x17, 0xeb, 0xb6, 0x25, 0xc6, 0x95, 0x97, + 0x2f, 0xf0, 0x62, 0x74, 0x2f, 0x4c, 0xd9, 0xa6, 0xa2, 0x75, 0x7c, 0xb4, 0x69, 0x4a, 0x5b, 0x16, + 0x2f, 0x1c, 0xe2, 0x3a, 0x1c, 0x17, 0xb8, 0x2d, 0x6c, 0x2b, 0xea, 0x0e, 0x6e, 0xb9, 0x4c, 0x19, + 0x9a, 0xdc, 0x38, 0xc6, 0x09, 0x16, 0xf9, 0x7b, 0xc1, 0x2b, 0x7d, 0x2b, 0x01, 0x53, 0x62, 0x99, + 0xd6, 0x72, 0x84, 0xb5, 0x0a, 0xa0, 0xe8, 0xba, 0x61, 0x7b, 0xc5, 0x35, 0xa8, 0xca, 0x03, 0x7c, + 0x73, 0xf3, 0x0e, 0x93, 0xec, 0x01, 0xa8, 0x76, 0x01, 0xdc, 0x37, 0x43, 0xc5, 0x56, 0x83, 0x3c, + 0xdf, 0x61, 0xa2, 0xdb, 0x94, 0x6c, 0x61, 0x0f, 0xac, 0x88, 0xac, 0xe7, 0xd0, 0x0c, 0x8c, 0x6f, + 0xe1, 0xb6, 0xa6, 0xf3, 0xbc, 0x31, 0x7b, 0x10, 0xe9, 0x97, 0xb4, 0x93, 0x7e, 0x69, 0x7c, 0x3c, + 0x01, 0xd3, 0xaa, 0xd1, 0x0d, 0xb6, 0xb7, 0x51, 0x0e, 0x64, 0x17, 0xac, 0x8b, 0x89, 0xe7, 0x9f, + 0xf0, 0xec, 0xc8, 0xb6, 0x8d, 0x8e, 0xa2, 0xb7, 0xdd, 0x7d, 0x56, 0xfa, 0x43, 0xbd, 0xbf, 0x8d, + 0xf5, 0xfb, 0xdb, 0x86, 0x67, 0xd7, 0xf5, 0x9c, 0xfb, 0xf3, 0xaf, 0x13, 0x89, 0xcf, 0x27, 0x53, + 0x17, 0xd6, 0x1a, 0x5f, 0x4c, 0x56, 0x2f, 0xb0, 0xea, 0xd6, 0x84, 0x78, 0x64, 0xbc, 0xdd, 0xc1, + 0x2a, 0xe9, 0x32, 0x7c, 0xef, 0x5e, 0x98, 0x69, 0x1b, 0x6d, 0x83, 0x22, 0x9e, 0x21, 0xbf, 0xf8, + 0xce, 0x6d, 0xce, 0x29, 0xad, 0x46, 0x6e, 0xf3, 0xd6, 0x2f, 0xc1, 0x34, 0x27, 0x6e, 0xd2, 0xad, + 0x23, 0xb6, 0xb0, 0x41, 0x23, 0xb3, 0x6a, 0x95, 0xdf, 0xfb, 0x0e, 0x75, 0xe8, 0xf2, 0x14, 0x67, + 0x25, 0xef, 0xd8, 0xda, 0xa7, 0x2e, 0xc3, 0x11, 0x1f, 0x1e, 0x9b, 0xb6, 0xd8, 0x8c, 0x40, 0xfc, + 0xb7, 0x1c, 0x71, 0xda, 0x83, 0xb8, 0xce, 0x59, 0xeb, 0x0b, 0x30, 0x79, 0x18, 0xac, 0x7f, 0xc7, + 0xb1, 0x0a, 0xd8, 0x0b, 0x72, 0x01, 0x4a, 0x14, 0x44, 0xed, 0x5b, 0xb6, 0xd1, 0xa5, 0x36, 0x71, + 0x34, 0xcc, 0x1f, 0x7d, 0x87, 0xcd, 0xa3, 0x22, 0x61, 0x5b, 0x70, 0xb8, 0xea, 0x75, 0xa0, 0xbb, + 0x65, 0x2d, 0xac, 0x76, 0x22, 0x10, 0xbe, 0xc1, 0x1b, 0xe2, 0xd0, 0xd7, 0xaf, 0xc0, 0x0c, 0xf9, + 0x4d, 0x4d, 0x96, 0xb7, 0x25, 0xd1, 0x29, 0xb8, 0xca, 0xb7, 0x7e, 0x8e, 0x4d, 0xd5, 0x69, 0x07, + 0xc0, 0xd3, 0x26, 0xcf, 0x28, 0xb6, 0xb1, 0x6d, 0x63, 0xd3, 0x6a, 0x2a, 0x9d, 0xb0, 0xe6, 0x79, + 0x72, 0x18, 0x95, 0xdf, 0x78, 0xdd, 0x3f, 0x8a, 0x17, 0x18, 0xe7, 0x7c, 0xa7, 0x53, 0xdf, 0x84, + 0x63, 0x21, 0x5a, 0x11, 0x03, 0xf3, 0x53, 0x1c, 0x73, 0x66, 0x40, 0x33, 0x08, 0xec, 0x1a, 0x88, + 0x72, 0x67, 0x2c, 0x63, 0x60, 0xfe, 0x7d, 0x8e, 0x89, 0x38, 0xaf, 0x18, 0x52, 0x82, 0xf8, 0x14, + 0x4c, 0x5d, 0xc5, 0xe6, 0x96, 0x61, 0xf1, 0xbc, 0x51, 0x0c, 0xb8, 0x4f, 0x73, 0xb8, 0x12, 0x67, + 0xa4, 0x89, 0x24, 0x82, 0xf5, 0x18, 0x64, 0xb7, 0x15, 0x15, 0xc7, 0x80, 0xf8, 0x0c, 0x87, 0x98, + 0x20, 0xf4, 0x84, 0x75, 0x1e, 0x0a, 0x6d, 0x83, 0x7b, 0xad, 0x68, 0xf6, 0xcf, 0x72, 0xf6, 0xbc, + 0xe0, 0xe1, 0x10, 0x3d, 0xa3, 0xd7, 0xef, 0x10, 0x97, 0x16, 0x0d, 0xf1, 0x9b, 0x02, 0x42, 0xf0, + 0x70, 0x88, 0x43, 0x88, 0xf5, 0x15, 0x01, 0x61, 0x79, 0xe4, 0xf9, 0x24, 0xe4, 0x0d, 0xbd, 0xb3, + 0x6f, 0xe8, 0x71, 0x1a, 0xf1, 0x39, 0x8e, 0x00, 0x9c, 0x85, 0x00, 0x9c, 0x83, 0x5c, 0xdc, 0x81, + 0xf8, 0x87, 0xaf, 0x8b, 0xe9, 0x21, 0x46, 0xe0, 0x02, 0x94, 0x84, 0x81, 0xd2, 0x0c, 0x3d, 0x06, + 0xc4, 0x3f, 0xe2, 0x10, 0x45, 0x0f, 0x1b, 0xef, 0x86, 0x8d, 0x2d, 0xbb, 0x8d, 0xe3, 0x80, 0x7c, + 0x41, 0x74, 0x83, 0xb3, 0x70, 0x51, 0x6e, 0x61, 0x5d, 0xdd, 0x89, 0x87, 0xf0, 0x5b, 0x42, 0x94, + 0x82, 0x87, 0x40, 0x2c, 0xc0, 0x64, 0x57, 0x31, 0xad, 0x1d, 0xa5, 0x13, 0x6b, 0x38, 0xfe, 0x31, + 0xc7, 0x28, 0x38, 0x4c, 0x5c, 0x22, 0x7d, 0xfd, 0x30, 0x30, 0x5f, 0x14, 0x12, 0xf1, 0xb0, 0xf1, + 0xa9, 0x67, 0xd9, 0x34, 0xc9, 0x76, 0x18, 0xb4, 0x7f, 0x22, 0xa6, 0x1e, 0xe3, 0x5d, 0xf5, 0x22, + 0x9e, 0x83, 0x9c, 0xa5, 0xbd, 0x14, 0x0b, 0xe6, 0x9f, 0x8a, 0x91, 0xa6, 0x0c, 0x84, 0xf9, 0x7d, + 0x70, 0x3c, 0xd4, 0x4d, 0xc4, 0x00, 0xfb, 0x67, 0x1c, 0xec, 0x68, 0x88, 0xab, 0xe0, 0x26, 0xe1, + 0xb0, 0x90, 0xbf, 0x2d, 0x4c, 0x02, 0x0e, 0x60, 0xad, 0x91, 0x75, 0x84, 0xa5, 0x6c, 0x1f, 0x4e, + 0x6a, 0xbf, 0x23, 0xa4, 0xc6, 0x78, 0x7d, 0x52, 0xdb, 0x80, 0xa3, 0x1c, 0xf1, 0x70, 0xe3, 0xfa, + 0xbb, 0xc2, 0xb0, 0x32, 0xee, 0x4d, 0xff, 0xe8, 0xbe, 0x1f, 0xaa, 0x8e, 0x38, 0x45, 0xc0, 0x6a, + 0x35, 0xbb, 0x4a, 0x2f, 0x06, 0xf2, 0xef, 0x71, 0x64, 0x61, 0xf1, 0x9d, 0x88, 0xd7, 0x5a, 0x55, + 0x7a, 0x04, 0xfc, 0x39, 0xa8, 0x08, 0xf0, 0xbe, 0x6e, 0x62, 0xd5, 0x68, 0xeb, 0xda, 0x4b, 0xb8, + 0x15, 0x03, 0xfa, 0x9f, 0x07, 0x86, 0x6a, 0xd3, 0xc3, 0x4e, 0x90, 0x97, 0xa1, 0xec, 0xc4, 0x2a, + 0x4d, 0xad, 0xdb, 0x33, 0x4c, 0x3b, 0x02, 0xf1, 0x5f, 0x88, 0x91, 0x72, 0xf8, 0x96, 0x29, 0x5b, + 0x7d, 0x09, 0xd8, 0xce, 0x73, 0x5c, 0x95, 0xfc, 0x12, 0x07, 0x9a, 0x74, 0xb9, 0xb8, 0xe1, 0x50, + 0x8d, 0x6e, 0x4f, 0x31, 0xe3, 0xd8, 0xbf, 0x7f, 0x29, 0x0c, 0x07, 0x67, 0xe1, 0x86, 0xc3, 0xde, + 0xef, 0x61, 0xe2, 0xed, 0x63, 0x20, 0x7c, 0x59, 0x18, 0x0e, 0xc1, 0xc3, 0x21, 0x44, 0xc0, 0x10, + 0x03, 0xe2, 0x2b, 0x02, 0x42, 0xf0, 0x10, 0x88, 0x67, 0x5c, 0x47, 0x6b, 0xe2, 0xb6, 0x66, 0xd9, + 0x26, 0x0b, 0x93, 0x47, 0x43, 0x7d, 0xf5, 0x75, 0x7f, 0x10, 0x26, 0x7b, 0x58, 0x89, 0x25, 0xe2, + 0x69, 0x57, 0xba, 0x8a, 0x8a, 0x6e, 0xd8, 0xd7, 0x84, 0x25, 0xf2, 0xb0, 0x91, 0xb6, 0x79, 0x22, + 0x44, 0x22, 0x76, 0x95, 0xac, 0x1d, 0x62, 0xc0, 0xfd, 0x7e, 0xa0, 0x71, 0xeb, 0x82, 0x97, 0x60, + 0x7a, 0xe2, 0x9f, 0xbe, 0xbe, 0x8b, 0xf7, 0x63, 0x69, 0xe7, 0x1f, 0x04, 0xe2, 0x9f, 0x4d, 0xc6, + 0xc9, 0x6c, 0x48, 0x29, 0x10, 0x4f, 0xa1, 0xa8, 0x73, 0x46, 0x95, 0xbf, 0xfd, 0x06, 0xef, 0xaf, + 0x3f, 0x9c, 0xaa, 0xaf, 0x10, 0x25, 0xf7, 0x07, 0x3d, 0xd1, 0x60, 0x3f, 0xf7, 0x86, 0xa3, 0xe7, + 0xbe, 0x98, 0xa7, 0x7e, 0x1e, 0x26, 0x7d, 0x01, 0x4f, 0x34, 0xd4, 0x07, 0x39, 0x54, 0xc1, 0x1b, + 0xef, 0xd4, 0x1f, 0x82, 0x34, 0x09, 0x5e, 0xa2, 0xd9, 0x7f, 0x9e, 0xb3, 0x53, 0xf2, 0xfa, 0x7b, + 0x20, 0x2b, 0x82, 0x96, 0x68, 0xd6, 0x0f, 0x71, 0x56, 0x87, 0x85, 0xb0, 0x8b, 0x80, 0x25, 0x9a, + 0xfd, 0xc3, 0x82, 0x5d, 0xb0, 0x10, 0xf6, 0xf8, 0x22, 0xfc, 0xfa, 0xdf, 0x49, 0x73, 0xa7, 0x23, + 0x64, 0x77, 0x0e, 0x26, 0x78, 0xa4, 0x12, 0xcd, 0xfd, 0x51, 0x5e, 0xb9, 0xe0, 0xa8, 0x3f, 0x02, + 0xe3, 0x31, 0x05, 0xfe, 0x8b, 0x9c, 0x95, 0xd1, 0xd7, 0x17, 0x20, 0xef, 0x89, 0x4e, 0xa2, 0xd9, + 0x7f, 0x89, 0xb3, 0x7b, 0xb9, 0x48, 0xd3, 0x79, 0x74, 0x12, 0x0d, 0xf0, 0x71, 0xd1, 0x74, 0xce, + 0x41, 0xc4, 0x26, 0x02, 0x93, 0x68, 0xee, 0x4f, 0x08, 0xa9, 0x0b, 0x96, 0xfa, 0x93, 0x90, 0x73, + 0x9c, 0x4d, 0x34, 0xff, 0x2f, 0x73, 0x7e, 0x97, 0x87, 0x48, 0xc0, 0xe3, 0xec, 0xa2, 0x21, 0x7e, + 0x45, 0x48, 0xc0, 0xc3, 0x45, 0xa6, 0x51, 0x30, 0x80, 0x89, 0x46, 0xfa, 0xbb, 0x62, 0x1a, 0x05, + 0xe2, 0x17, 0x32, 0x9a, 0xd4, 0xe6, 0x47, 0x43, 0xfc, 0xaa, 0x18, 0x4d, 0x4a, 0x4f, 0x9a, 0x11, + 0x8c, 0x08, 0xa2, 0x31, 0xfe, 0x9e, 0x68, 0x46, 0x20, 0x20, 0xa8, 0xaf, 0x01, 0x1a, 0x8c, 0x06, + 0xa2, 0xf1, 0x3e, 0xc9, 0xf1, 0xa6, 0x06, 0x82, 0x81, 0xfa, 0xb3, 0x70, 0x34, 0x3c, 0x12, 0x88, + 0x46, 0xfd, 0x8d, 0x37, 0x02, 0x6b, 0x37, 0x6f, 0x20, 0x50, 0xdf, 0x70, 0x5d, 0x8a, 0x37, 0x0a, + 0x88, 0x86, 0xfd, 0xd4, 0x1b, 0x7e, 0xc3, 0xed, 0x0d, 0x02, 0xea, 0xf3, 0x00, 0xae, 0x03, 0x8e, + 0xc6, 0xfa, 0x34, 0xc7, 0xf2, 0x30, 0x91, 0xa9, 0xc1, 0xfd, 0x6f, 0x34, 0xff, 0x67, 0xc4, 0xd4, + 0xe0, 0x1c, 0x64, 0x6a, 0x08, 0xd7, 0x1b, 0xcd, 0xfd, 0x59, 0x31, 0x35, 0x04, 0x0b, 0xd1, 0x6c, + 0x8f, 0x77, 0x8b, 0x46, 0xf8, 0x9c, 0xd0, 0x6c, 0x0f, 0x57, 0xfd, 0x12, 0x4c, 0x0d, 0x38, 0xc4, + 0x68, 0xa8, 0xcf, 0x73, 0xa8, 0x72, 0xd0, 0x1f, 0x7a, 0x9d, 0x17, 0x77, 0x86, 0xd1, 0x68, 0xff, + 0x20, 0xe0, 0xbc, 0xb8, 0x2f, 0xac, 0x9f, 0x83, 0xac, 0xde, 0xef, 0x74, 0xc8, 0xe4, 0x41, 0xa3, + 0xcf, 0x06, 0x56, 0xfe, 0xfb, 0x0f, 0xb9, 0x74, 0x04, 0x43, 0xfd, 0x21, 0x18, 0xc7, 0xdd, 0x2d, + 0xdc, 0x8a, 0xe2, 0xfc, 0xde, 0x0f, 0x85, 0xc1, 0x24, 0xd4, 0xf5, 0x27, 0x01, 0x58, 0x6a, 0x84, + 0x6e, 0x0f, 0x46, 0xf0, 0xfe, 0x8f, 0x1f, 0xf2, 0xc3, 0x38, 0x2e, 0x8b, 0x0b, 0xc0, 0x8e, 0xf6, + 0x8c, 0x06, 0x78, 0xdd, 0x0f, 0x40, 0x47, 0xe4, 0x31, 0x98, 0x78, 0xc1, 0x32, 0x74, 0x5b, 0x69, + 0x47, 0x71, 0xff, 0x4f, 0xce, 0x2d, 0xe8, 0x89, 0xc0, 0xba, 0x86, 0x89, 0x6d, 0xa5, 0x6d, 0x45, + 0xf1, 0xfe, 0x2f, 0xce, 0xeb, 0x30, 0x10, 0x66, 0x55, 0xb1, 0xec, 0x38, 0xfd, 0xfe, 0xdf, 0x82, + 0x59, 0x30, 0x90, 0x46, 0x93, 0xdf, 0xbb, 0x78, 0x3f, 0x8a, 0xf7, 0xfb, 0xa2, 0xd1, 0x9c, 0xbe, + 0xfe, 0x1e, 0xc8, 0x91, 0x9f, 0xec, 0x84, 0x5d, 0x04, 0xf3, 0xff, 0xe1, 0xcc, 0x2e, 0x07, 0xa9, + 0xd9, 0xb2, 0x5b, 0xb6, 0x16, 0x2d, 0xec, 0xeb, 0x7c, 0xa4, 0x05, 0x7d, 0x7d, 0x1e, 0xf2, 0x96, + 0xdd, 0x6a, 0xf5, 0x79, 0x7c, 0x1a, 0xc1, 0xfe, 0x7f, 0x7f, 0xe8, 0xa4, 0x2c, 0x1c, 0x1e, 0x32, + 0xda, 0xd7, 0x76, 0xed, 0x9e, 0x41, 0xb7, 0x40, 0xa2, 0x10, 0xde, 0xe0, 0x08, 0x1e, 0x96, 0xfa, + 0x02, 0x14, 0x48, 0x5f, 0x4c, 0xdc, 0xc3, 0x74, 0xbf, 0x2a, 0x02, 0xe2, 0x2f, 0xb9, 0x00, 0x7c, + 0x4c, 0x8d, 0x9f, 0x1e, 0x76, 0x3f, 0x27, 0x3c, 0x6d, 0x0c, 0x17, 0x8c, 0x0b, 0x06, 0x4b, 0x18, + 0x3f, 0x2f, 0xf9, 0xd2, 0xc5, 0x6d, 0xc3, 0xcd, 0xd6, 0x3a, 0x8b, 0x1c, 0xf8, 0xfd, 0x24, 0xdc, + 0x49, 0x8f, 0x05, 0x9b, 0x5d, 0x4d, 0xb7, 0xcf, 0xa8, 0xe6, 0x7e, 0xcf, 0x36, 0xce, 0x74, 0xb1, + 0xb9, 0xdb, 0xc1, 0xfc, 0x0f, 0xcf, 0xfe, 0x56, 0x5c, 0xb2, 0x39, 0x46, 0x36, 0xc7, 0xde, 0x57, + 0x43, 0xb3, 0xc5, 0xd2, 0x02, 0x4c, 0xac, 0x99, 0x86, 0xb1, 0x7d, 0xb9, 0x87, 0x10, 0x3f, 0xe9, + 0xcc, 0x0f, 0xc6, 0x51, 0x35, 0xe4, 0x37, 0xa3, 0x92, 0xee, 0xcd, 0x28, 0x04, 0xe9, 0x96, 0x62, + 0x2b, 0x34, 0x61, 0x5e, 0x90, 0xe9, 0x6f, 0xa9, 0x01, 0xe3, 0x14, 0x04, 0x3d, 0x06, 0x29, 0xa3, + 0x67, 0xf1, 0xec, 0xfe, 0xed, 0x73, 0xc3, 0xda, 0x32, 0xc7, 0xab, 0x6c, 0xa4, 0xbf, 0x71, 0x50, + 0x1b, 0x93, 0x09, 0x4f, 0x63, 0xed, 0xaf, 0xbf, 0x7d, 0x22, 0xf1, 0x5b, 0xaf, 0x9e, 0x48, 0x0c, + 0xbd, 0xe9, 0x34, 0xe7, 0x11, 0x94, 0x47, 0x18, 0xc3, 0xe4, 0xe2, 0xdc, 0x77, 0xfa, 0x85, 0x24, + 0x9c, 0xf0, 0x10, 0x75, 0xb4, 0x2d, 0xeb, 0xcc, 0xee, 0x55, 0x76, 0x35, 0x8a, 0x4b, 0x0d, 0x79, + 0x5a, 0x4a, 0xde, 0xcf, 0xed, 0x5e, 0x1d, 0x22, 0xaf, 0x39, 0x48, 0xaf, 0x29, 0x9a, 0x19, 0x72, + 0x65, 0x6c, 0xc6, 0x3d, 0xdb, 0x4a, 0xca, 0xd8, 0x83, 0x74, 0x16, 0xb2, 0x4f, 0x2f, 0x3f, 0xfc, + 0x60, 0x1c, 0x9e, 0x14, 0xe7, 0x69, 0xc8, 0x42, 0x14, 0x5f, 0x0d, 0x11, 0xc7, 0xd7, 0x5f, 0x3b, + 0x91, 0x08, 0xbd, 0xfc, 0x15, 0x2e, 0x12, 0xde, 0x5b, 0x47, 0x18, 0x9f, 0x48, 0x42, 0x2d, 0xb8, + 0x2b, 0x40, 0xa6, 0xa2, 0x65, 0x2b, 0xdd, 0xde, 0xb0, 0xbb, 0x5f, 0xe7, 0x20, 0xb7, 0x21, 0x68, + 0x50, 0x05, 0x26, 0x2c, 0xac, 0x1a, 0x7a, 0xcb, 0xa2, 0x3d, 0x49, 0xc9, 0xe2, 0x91, 0xf4, 0x46, + 0x57, 0x74, 0xc3, 0xe2, 0x27, 0x4e, 0xd9, 0x43, 0xe3, 0xd7, 0x13, 0x87, 0x9b, 0x1b, 0x45, 0xa7, + 0x2a, 0x3a, 0x41, 0xd6, 0x12, 0xcf, 0xdf, 0x3b, 0x6a, 0x43, 0x85, 0xdd, 0x70, 0x73, 0xba, 0xe0, + 0xd9, 0x3d, 0x39, 0x11, 0xdc, 0x3d, 0x79, 0x16, 0x77, 0x3a, 0x4f, 0xeb, 0xc6, 0x35, 0x7d, 0x83, + 0xf0, 0x38, 0x22, 0xf9, 0x58, 0x12, 0x4e, 0x0c, 0x6c, 0x94, 0x70, 0xf3, 0x32, 0x4c, 0x22, 0x75, + 0xc8, 0x2e, 0x0a, 0xab, 0x75, 0x58, 0x81, 0xfc, 0xea, 0x21, 0x05, 0x32, 0x29, 0x6a, 0x12, 0xf2, + 0xb8, 0x27, 0x5a, 0x1e, 0xa2, 0xfd, 0x37, 0x20, 0x8e, 0x0f, 0x3e, 0x01, 0xb7, 0x7b, 0x14, 0x48, + 0xd9, 0x52, 0x35, 0x7e, 0x8d, 0xd0, 0x3b, 0x63, 0x8e, 0x78, 0x66, 0x0c, 0x21, 0x99, 0xa3, 0x2f, + 0xc3, 0x27, 0x4d, 0x35, 0x9e, 0xed, 0xaa, 0x46, 0xcc, 0xd2, 0x6a, 0x94, 0xe2, 0x56, 0x23, 0x86, + 0x51, 0xfa, 0xab, 0x71, 0x98, 0x10, 0x77, 0x3e, 0x1f, 0x85, 0x34, 0x56, 0x77, 0x0c, 0x7e, 0xd8, + 0x5d, 0x9a, 0x0b, 0xed, 0xcf, 0x1c, 0xa7, 0x5e, 0x52, 0x77, 0x8c, 0x8b, 0x63, 0x32, 0xe5, 0xa0, + 0x77, 0xc5, 0x3a, 0x7d, 0x6b, 0x87, 0x9f, 0x49, 0x3e, 0x35, 0x9a, 0xf5, 0x3c, 0x21, 0xbd, 0x38, + 0x26, 0x33, 0x1e, 0x52, 0x2d, 0xbd, 0xe7, 0x96, 0x8e, 0x53, 0xed, 0xb2, 0xbe, 0x4d, 0xab, 0x25, + 0x1c, 0xe8, 0x22, 0x80, 0x85, 0x6d, 0x71, 0x94, 0x61, 0x9c, 0xf2, 0xdf, 0x3d, 0x9a, 0x7f, 0x1d, + 0xdb, 0xcc, 0x6d, 0x5d, 0x1c, 0x93, 0x73, 0x96, 0x78, 0x20, 0x48, 0x9a, 0xae, 0xd9, 0x4d, 0x75, + 0x47, 0xd1, 0x74, 0xba, 0x07, 0x1f, 0x89, 0xb4, 0xac, 0x6b, 0xf6, 0x02, 0x21, 0x27, 0x48, 0x9a, + 0x78, 0x20, 0xa2, 0xa0, 0x77, 0x4b, 0xf9, 0x65, 0xac, 0x08, 0x51, 0x3c, 0x43, 0x48, 0x89, 0x28, + 0x28, 0x0f, 0x7a, 0x1a, 0xf2, 0x74, 0xbb, 0xb5, 0xb9, 0xd5, 0x31, 0xd4, 0x5d, 0x7e, 0x03, 0x65, + 0x76, 0x34, 0x44, 0x83, 0x30, 0x34, 0x08, 0xfd, 0xc5, 0x31, 0x19, 0xb6, 0x9c, 0x27, 0xd4, 0x80, + 0x2c, 0x3b, 0xf5, 0x6b, 0xef, 0xf1, 0x3b, 0x84, 0x77, 0x8e, 0x46, 0xa2, 0x07, 0x80, 0x37, 0xf6, + 0x2e, 0x8e, 0xc9, 0x13, 0x2a, 0xfb, 0x89, 0x96, 0x20, 0x87, 0xf5, 0x16, 0x6f, 0x4e, 0x9e, 0xdf, + 0xb6, 0x1a, 0xad, 0x17, 0x7a, 0x4b, 0x34, 0x26, 0x8b, 0xf9, 0x6f, 0xf4, 0x04, 0x64, 0x54, 0xa3, + 0xdb, 0xd5, 0x6c, 0x7a, 0x17, 0x31, 0x7f, 0xf6, 0x8e, 0x88, 0x86, 0x50, 0xda, 0x8b, 0x63, 0x32, + 0xe7, 0x22, 0xc3, 0xd3, 0xc2, 0x1d, 0xed, 0x2a, 0x36, 0x49, 0x67, 0xa6, 0xe3, 0x0c, 0xcf, 0x22, + 0xa3, 0xa7, 0xdd, 0xc9, 0xb5, 0xc4, 0x43, 0x63, 0x82, 0xbb, 0x17, 0xe9, 0x6e, 0xc8, 0x7b, 0x34, + 0x99, 0x58, 0x2c, 0xbe, 0x02, 0xe1, 0xce, 0x5e, 0x3c, 0x4a, 0x45, 0x28, 0x78, 0xf5, 0x56, 0xea, + 0x3a, 0x8c, 0x74, 0x13, 0xbf, 0x02, 0x13, 0x57, 0xb1, 0x69, 0xb1, 0x1d, 0x7c, 0xca, 0xc8, 0x1f, + 0xd1, 0x29, 0x98, 0xa4, 0x72, 0x6b, 0x8a, 0xf7, 0xec, 0xfa, 0x72, 0x81, 0x16, 0x5e, 0xe1, 0x44, + 0x35, 0xc8, 0xf7, 0xce, 0xf6, 0x1c, 0x12, 0x76, 0x87, 0x1a, 0x7a, 0x67, 0x7b, 0x9c, 0x40, 0xaa, + 0x43, 0x39, 0xa8, 0xba, 0x5e, 0xaf, 0x99, 0x0b, 0xf1, 0x9a, 0x39, 0xe1, 0x69, 0x7f, 0x37, 0xe9, + 0x30, 0x3b, 0xda, 0x4a, 0xa6, 0x1b, 0x31, 0x12, 0x94, 0x3b, 0x7f, 0xb6, 0x3a, 0x10, 0xda, 0x39, + 0xbe, 0xa6, 0x91, 0x25, 0xa1, 0xc8, 0x27, 0xfe, 0xac, 0x96, 0x90, 0x29, 0x07, 0x3a, 0x4e, 0x14, + 0x4a, 0xd1, 0xf4, 0xa6, 0xd6, 0x12, 0xb7, 0x8e, 0xe9, 0xf3, 0x72, 0x0b, 0x3d, 0x03, 0x65, 0xd5, + 0xd0, 0x2d, 0xac, 0x5b, 0x7d, 0xab, 0xd9, 0x53, 0x4c, 0xa5, 0xeb, 0x5e, 0xce, 0x0b, 0x1f, 0xa6, + 0x05, 0x41, 0xbe, 0x46, 0xa9, 0xe5, 0x92, 0xea, 0x2f, 0x40, 0x2b, 0x00, 0x57, 0x95, 0x8e, 0xd6, + 0x52, 0x6c, 0xc3, 0xb4, 0xf8, 0xdd, 0x94, 0x61, 0x60, 0x57, 0x04, 0xe1, 0x66, 0xaf, 0xa5, 0xd8, + 0x98, 0x07, 0x51, 0x1e, 0x7e, 0x74, 0x17, 0x94, 0x94, 0x5e, 0xaf, 0x69, 0xd9, 0x8a, 0x8d, 0x9b, + 0x5b, 0xfb, 0x36, 0xb6, 0xa8, 0xbd, 0x28, 0xc8, 0x93, 0x4a, 0xaf, 0xb7, 0x4e, 0x4a, 0x1b, 0xa4, + 0x50, 0x6a, 0x39, 0xa3, 0x4d, 0xa7, 0xa6, 0x13, 0xdb, 0x25, 0xdc, 0xd8, 0x8e, 0x94, 0xd1, 0xa3, + 0x15, 0x4c, 0x06, 0xe2, 0x34, 0x4a, 0x66, 0x07, 0x6b, 0xed, 0x1d, 0x76, 0x0d, 0x3e, 0x25, 0xf3, + 0x27, 0x32, 0x30, 0x3d, 0xd3, 0xb8, 0x8a, 0xf9, 0x0d, 0x78, 0xf6, 0x20, 0xfd, 0x5a, 0x12, 0xa6, + 0x06, 0xa6, 0x2f, 0xc1, 0xa5, 0xe7, 0xfb, 0x79, 0x5d, 0xe4, 0x37, 0x3a, 0x47, 0x70, 0x95, 0x16, + 0xbf, 0xb3, 0x92, 0x3f, 0x7b, 0xdb, 0x10, 0x09, 0x5c, 0xa4, 0x44, 0xbc, 0xe3, 0x9c, 0x05, 0x6d, + 0x42, 0xb9, 0xa3, 0x58, 0x76, 0x93, 0xcd, 0x22, 0x76, 0x9b, 0x38, 0x35, 0xd2, 0x12, 0xac, 0x28, + 0x62, 0xf6, 0x11, 0xe5, 0xe6, 0x70, 0xc5, 0x8e, 0xaf, 0x14, 0x3d, 0x07, 0x33, 0x5b, 0xfb, 0x2f, + 0x29, 0xba, 0xad, 0xe9, 0xf4, 0xb0, 0x91, 0x7f, 0x8c, 0x6a, 0x43, 0xa0, 0x97, 0xae, 0x6a, 0x2d, + 0xac, 0xab, 0x62, 0x70, 0xa6, 0x1d, 0x08, 0x67, 0xf0, 0x2c, 0xe9, 0x39, 0x28, 0xfa, 0x6d, 0x11, + 0x2a, 0x42, 0xd2, 0xde, 0xe3, 0x12, 0x49, 0xda, 0x7b, 0xe8, 0x61, 0x1e, 0x91, 0x27, 0xe9, 0x69, + 0xb9, 0x61, 0xce, 0x82, 0x73, 0xbb, 0x77, 0x0e, 0x25, 0xc9, 0x99, 0x09, 0x8e, 0x61, 0x08, 0x62, + 0x4b, 0xa7, 0xa1, 0x14, 0x30, 0x62, 0x9e, 0x61, 0x4d, 0x78, 0x87, 0x55, 0x2a, 0xc1, 0xa4, 0xcf, + 0x56, 0x49, 0x7f, 0x9c, 0x81, 0xac, 0xf3, 0x2d, 0x83, 0x8b, 0x90, 0xc3, 0x7b, 0x2a, 0xee, 0xd9, + 0xc2, 0x2a, 0x8c, 0x32, 0xe2, 0x8c, 0x67, 0x49, 0xd0, 0x13, 0x73, 0xe5, 0x30, 0xa3, 0xc7, 0x7c, + 0x2e, 0xf9, 0x54, 0x14, 0x88, 0xd7, 0x27, 0x3f, 0xee, 0xf7, 0xc9, 0x77, 0x44, 0xf0, 0x06, 0x9c, + 0xf2, 0x63, 0x3e, 0xa7, 0x1c, 0x55, 0xb1, 0xcf, 0x2b, 0x2f, 0x87, 0x78, 0xe5, 0xa8, 0xee, 0x0f, + 0x71, 0xcb, 0xcb, 0x21, 0x6e, 0x79, 0x36, 0xb2, 0x2d, 0xa1, 0x7e, 0xf9, 0x71, 0xbf, 0x5f, 0x8e, + 0x12, 0x47, 0xc0, 0x31, 0xaf, 0x84, 0x39, 0xe6, 0xd3, 0x11, 0x18, 0x43, 0x3d, 0xf3, 0xc2, 0x80, + 0x67, 0xbe, 0x2b, 0x02, 0x2a, 0xc4, 0x35, 0x2f, 0xfb, 0x7c, 0x22, 0xc4, 0x92, 0x4d, 0xb8, 0x53, + 0x44, 0xe7, 0x07, 0xbd, 0xfc, 0xdd, 0x51, 0xaa, 0x16, 0xe6, 0xe6, 0x9f, 0x0c, 0xb8, 0xf9, 0x3b, + 0xa3, 0x7a, 0x15, 0xf0, 0xf3, 0xae, 0x77, 0x3e, 0x4d, 0xec, 0x63, 0x60, 0x66, 0x10, 0x5b, 0x8a, + 0x4d, 0xd3, 0x30, 0xb9, 0xe3, 0x63, 0x0f, 0xd2, 0x2c, 0xb1, 0xd8, 0xae, 0xfe, 0x8f, 0xf0, 0xe4, + 0x74, 0xd2, 0x7a, 0xb4, 0x5d, 0xfa, 0x6a, 0xc2, 0xe5, 0xa5, 0x96, 0xcd, 0x6b, 0xed, 0x73, 0xdc, + 0xda, 0x7b, 0x1c, 0x7c, 0xd2, 0xef, 0xe0, 0x6b, 0x90, 0x27, 0x3e, 0x25, 0xe0, 0xbb, 0x95, 0x9e, + 0xf0, 0xdd, 0xe8, 0x1e, 0x98, 0xa2, 0xf6, 0x97, 0x85, 0x01, 0xdc, 0x90, 0xa4, 0xa9, 0x21, 0x29, + 0x91, 0x17, 0x4c, 0x82, 0xcc, 0x51, 0xdc, 0x0f, 0xd3, 0x1e, 0x5a, 0x82, 0x4b, 0x7d, 0x01, 0x73, + 0x52, 0x65, 0x87, 0x7a, 0xbe, 0xd7, 0xbb, 0xa8, 0x58, 0x3b, 0xd2, 0xaa, 0x2b, 0x20, 0x37, 0x2e, + 0x40, 0x90, 0x56, 0x8d, 0x16, 0xeb, 0xf7, 0xa4, 0x4c, 0x7f, 0x93, 0x58, 0xa1, 0x63, 0xb4, 0xf9, + 0x09, 0x48, 0xf2, 0x93, 0x50, 0x39, 0x53, 0x3b, 0xc7, 0xe6, 0xac, 0xf4, 0xa5, 0x84, 0x8b, 0xe7, + 0x86, 0x0a, 0x61, 0x5e, 0x3d, 0x71, 0x33, 0xbd, 0x7a, 0xf2, 0xcd, 0x79, 0x75, 0xe9, 0x8d, 0x84, + 0x3b, 0xa4, 0x8e, 0xbf, 0xbe, 0x31, 0x11, 0x10, 0xed, 0x62, 0x37, 0xc6, 0xd9, 0x49, 0x5d, 0xf6, + 0x20, 0x42, 0xad, 0x4c, 0x48, 0x82, 0x62, 0xc2, 0x93, 0xd4, 0x40, 0x0f, 0x51, 0x3f, 0x6f, 0x6c, + 0x73, 0xd3, 0x50, 0x8b, 0x48, 0xf4, 0xc8, 0x8c, 0xda, 0xe3, 0x5f, 0x72, 0xbe, 0xb0, 0xe1, 0x56, + 0xc8, 0x91, 0xa6, 0xb3, 0xeb, 0x4f, 0xc0, 0xd3, 0x8b, 0xa2, 0x40, 0x6a, 0x01, 0x1a, 0xb4, 0x31, + 0xe8, 0x12, 0x64, 0xf0, 0x55, 0x7a, 0x1a, 0x95, 0x25, 0x9b, 0x6e, 0x1d, 0xea, 0x88, 0xb1, 0x6e, + 0x37, 0x2a, 0x44, 0x98, 0xdf, 0x3b, 0xa8, 0x95, 0x19, 0xcf, 0x7d, 0x46, 0x57, 0xb3, 0x71, 0xb7, + 0x67, 0xef, 0xcb, 0x1c, 0x45, 0xfa, 0x70, 0x92, 0xf8, 0x43, 0x9f, 0xfd, 0x09, 0x15, 0xaf, 0x98, + 0x34, 0x49, 0x4f, 0x88, 0x14, 0x4f, 0xe4, 0xb7, 0x01, 0xb4, 0x15, 0xab, 0x79, 0x4d, 0xd1, 0x6d, + 0xdc, 0xe2, 0x72, 0xcf, 0xb5, 0x15, 0xeb, 0x59, 0x5a, 0x40, 0xe2, 0x4d, 0xf2, 0xba, 0x6f, 0xe1, + 0x16, 0x1d, 0x80, 0x94, 0x3c, 0xd1, 0x56, 0xac, 0x4d, 0x0b, 0xb7, 0x3c, 0x7d, 0x9d, 0xb8, 0x19, + 0x7d, 0xf5, 0xcb, 0x3b, 0x1b, 0x94, 0xf7, 0x47, 0x93, 0xee, 0xec, 0x70, 0xc3, 0x87, 0x1f, 0x4f, + 0x59, 0x7c, 0x86, 0xae, 0x29, 0xfc, 0x4e, 0x00, 0xbd, 0x0f, 0xa6, 0x9c, 0x59, 0xd9, 0xec, 0xd3, + 0xd9, 0x2a, 0xb4, 0xf0, 0x70, 0x93, 0xbb, 0x7c, 0xd5, 0x5f, 0x6c, 0xa1, 0x9f, 0x81, 0x63, 0x01, + 0x1b, 0xe4, 0x54, 0x90, 0x3c, 0x94, 0x29, 0x3a, 0xe2, 0x37, 0x45, 0x02, 0xdf, 0x95, 0x5e, 0xea, + 0xa6, 0xcc, 0x9a, 0x3b, 0x48, 0x08, 0xeb, 0x75, 0x6f, 0x61, 0x3a, 0x21, 0xfd, 0x49, 0x02, 0x4a, + 0x81, 0x06, 0xa2, 0x47, 0x61, 0x9c, 0x79, 0xe0, 0xc4, 0xc8, 0x44, 0x08, 0x95, 0x38, 0xef, 0x13, + 0x63, 0x40, 0xf3, 0x90, 0xc5, 0x3c, 0xba, 0xe6, 0x42, 0xb9, 0x33, 0x22, 0x08, 0xe7, 0xfc, 0x0e, + 0x1b, 0x5a, 0x84, 0x9c, 0x23, 0xfa, 0x88, 0x95, 0x9b, 0x33, 0x72, 0x1c, 0xc4, 0x65, 0x94, 0x16, + 0x20, 0xef, 0x69, 0x1e, 0xbb, 0x0b, 0xb8, 0xc7, 0x97, 0x5b, 0x2c, 0x80, 0xce, 0x76, 0x95, 0x3d, + 0xba, 0xd2, 0x42, 0xc7, 0x60, 0x82, 0xbc, 0x6c, 0xf3, 0xcb, 0x52, 0x29, 0x39, 0xd3, 0x55, 0xf6, + 0x2e, 0x28, 0x96, 0xf4, 0xb1, 0x04, 0x14, 0xfd, 0xed, 0x44, 0xf7, 0x02, 0x22, 0xb4, 0x4a, 0x1b, + 0x37, 0xf5, 0x7e, 0x97, 0xf9, 0x48, 0x81, 0x58, 0xea, 0x2a, 0x7b, 0xf3, 0x6d, 0x7c, 0xa9, 0xdf, + 0xa5, 0x55, 0x5b, 0x68, 0x15, 0xca, 0x82, 0x58, 0x24, 0xbb, 0xb8, 0x54, 0x8e, 0x0f, 0x7e, 0xd7, + 0x86, 0x13, 0xb0, 0xb5, 0xee, 0x27, 0xc9, 0x5a, 0xb7, 0xc8, 0xf0, 0xc4, 0x1b, 0xe9, 0x21, 0x28, + 0x05, 0x7a, 0x8c, 0x24, 0x98, 0xec, 0xf5, 0xb7, 0x9a, 0xbb, 0x78, 0x9f, 0xde, 0x7e, 0x67, 0xaa, + 0x9e, 0x93, 0xf3, 0xbd, 0xfe, 0xd6, 0xd3, 0x78, 0x9f, 0xe6, 0x0e, 0x25, 0x15, 0x8a, 0xfe, 0xc5, + 0x14, 0x71, 0x1c, 0xa6, 0xd1, 0xd7, 0x5b, 0xe2, 0xbb, 0x06, 0xf4, 0x01, 0x9d, 0x83, 0xf1, 0xab, + 0x06, 0xd3, 0xe6, 0x51, 0xab, 0xa7, 0x2b, 0x86, 0x8d, 0x3d, 0x4b, 0x32, 0xc6, 0x23, 0x59, 0x30, + 0x4e, 0xf5, 0x32, 0x74, 0xa3, 0xe2, 0x0a, 0x80, 0x62, 0xdb, 0xa6, 0xb6, 0xd5, 0x77, 0xe1, 0x2b, + 0x73, 0x83, 0x69, 0xfd, 0xb9, 0x35, 0x45, 0x33, 0x1b, 0xb7, 0x72, 0xcd, 0x9e, 0x71, 0x79, 0x3c, + 0xda, 0xed, 0x41, 0x92, 0x5e, 0x4f, 0x43, 0x86, 0x2d, 0x37, 0xd1, 0x13, 0xfe, 0xe4, 0x47, 0xfe, + 0xec, 0x89, 0x61, 0xcd, 0x67, 0x54, 0xbc, 0xf5, 0x4e, 0x04, 0x75, 0x57, 0x30, 0xa3, 0xd0, 0xc8, + 0xbf, 0x7a, 0x50, 0x9b, 0xa0, 0xd1, 0xc7, 0xf2, 0xa2, 0x9b, 0x5e, 0x18, 0xb6, 0xba, 0x16, 0xb9, + 0x8c, 0xf4, 0xa1, 0x73, 0x19, 0x17, 0x61, 0xd2, 0x13, 0x6e, 0x69, 0x2d, 0xbe, 0x4e, 0x39, 0x31, + 0x6a, 0xd2, 0x2d, 0x2f, 0xf2, 0xf6, 0xe7, 0x9d, 0x70, 0x6c, 0xb9, 0x85, 0x66, 0xfd, 0x8b, 0x6c, + 0x1a, 0xb5, 0xb1, 0x70, 0xc1, 0xb3, 0x6e, 0xa6, 0x57, 0xf2, 0x6f, 0x81, 0x1c, 0xbd, 0xd8, 0x4c, + 0x49, 0x58, 0xf4, 0x90, 0x25, 0x05, 0xf4, 0xe5, 0xdd, 0x50, 0x72, 0x03, 0x1b, 0x46, 0x92, 0x65, + 0x28, 0x6e, 0x31, 0x25, 0x7c, 0x00, 0x66, 0xe8, 0x87, 0xf2, 0x82, 0xd4, 0x39, 0x4a, 0x8d, 0xc8, + 0xbb, 0x2b, 0x7e, 0x8e, 0x3b, 0xa1, 0xe8, 0x9a, 0x50, 0x4a, 0x0b, 0x2c, 0xf5, 0xe1, 0x94, 0x52, + 0xb2, 0xe3, 0x90, 0x75, 0xc2, 0xce, 0x3c, 0xfb, 0x02, 0x9f, 0xc2, 0xa2, 0x4d, 0x27, 0x90, 0x35, + 0xb1, 0xd5, 0xef, 0xd8, 0x1c, 0xa4, 0x40, 0x69, 0x68, 0x20, 0x2b, 0xb3, 0x72, 0x4a, 0x7b, 0x0a, + 0x26, 0x85, 0x55, 0x61, 0x74, 0x93, 0x94, 0xae, 0x20, 0x0a, 0x29, 0xd1, 0x69, 0x28, 0xf7, 0x4c, + 0xa3, 0x67, 0x58, 0xd8, 0x6c, 0x2a, 0xad, 0x96, 0x89, 0x2d, 0xab, 0x52, 0x64, 0x78, 0xa2, 0x7c, + 0x9e, 0x15, 0x4b, 0xef, 0x82, 0x09, 0x11, 0x4f, 0xcf, 0xc0, 0x78, 0xc3, 0xb1, 0x90, 0x69, 0x99, + 0x3d, 0x10, 0xff, 0x3a, 0xdf, 0xeb, 0xf1, 0xec, 0x1a, 0xf9, 0x29, 0x75, 0x60, 0x82, 0x0f, 0x58, + 0x68, 0x4e, 0x65, 0x15, 0x0a, 0x3d, 0xc5, 0x24, 0xdd, 0xf0, 0x66, 0x56, 0x86, 0xad, 0x08, 0xd7, + 0x14, 0xd3, 0x5e, 0xc7, 0xb6, 0x2f, 0xc1, 0x92, 0xa7, 0xfc, 0xac, 0x48, 0x7a, 0x0c, 0x26, 0x7d, + 0x34, 0xee, 0xf7, 0x0a, 0xf9, 0x44, 0xa7, 0x0f, 0x4e, 0x4b, 0x92, 0x6e, 0x4b, 0xa4, 0x73, 0x90, + 0x73, 0xc6, 0x8a, 0x2c, 0x34, 0x84, 0x28, 0xf8, 0x07, 0x10, 0xf9, 0x23, 0x4d, 0x22, 0x19, 0xd7, + 0xf8, 0xa7, 0x9c, 0x52, 0x32, 0x7b, 0x90, 0xb0, 0xc7, 0x30, 0x31, 0x6f, 0x86, 0x1e, 0x87, 0x09, + 0x6e, 0x98, 0xf8, 0x7c, 0x1c, 0x96, 0x2e, 0x5a, 0xa3, 0x96, 0x4a, 0xa4, 0x8b, 0x98, 0xdd, 0x72, + 0xab, 0x49, 0x7a, 0xab, 0xf9, 0x00, 0x64, 0x85, 0xf1, 0xf1, 0x7b, 0x09, 0x56, 0xc3, 0xc9, 0x28, + 0x2f, 0xc1, 0x2b, 0x71, 0x19, 0x89, 0x36, 0x59, 0x5a, 0x5b, 0xc7, 0xad, 0xa6, 0x3b, 0x05, 0xf9, + 0x85, 0xd9, 0x12, 0x7b, 0xb1, 0x22, 0xe6, 0x97, 0xf4, 0x00, 0x64, 0x58, 0x5b, 0x43, 0x4d, 0x5c, + 0x98, 0x6b, 0xfd, 0x4e, 0x02, 0xb2, 0xc2, 0x7d, 0x84, 0x32, 0xf9, 0x3a, 0x91, 0xbc, 0xd1, 0x4e, + 0xdc, 0x7c, 0x93, 0x74, 0x1f, 0x20, 0xaa, 0x29, 0xcd, 0xab, 0x86, 0xad, 0xe9, 0xed, 0x26, 0x1b, + 0x0b, 0x7e, 0x6f, 0x90, 0xbe, 0xb9, 0x42, 0x5f, 0xac, 0x91, 0xf2, 0x7b, 0x4e, 0x41, 0xde, 0x93, + 0xe5, 0x42, 0x13, 0x90, 0xba, 0x84, 0xaf, 0x95, 0xc7, 0x50, 0x1e, 0x26, 0x64, 0x4c, 0x73, 0x04, + 0xe5, 0xc4, 0xd9, 0xd7, 0x27, 0xa0, 0x34, 0xdf, 0x58, 0x58, 0x9e, 0xef, 0xf5, 0x3a, 0x1a, 0xbf, + 0x4f, 0x77, 0x19, 0xd2, 0x74, 0x9d, 0x1c, 0x63, 0x7f, 0xa7, 0x1a, 0x27, 0xe1, 0x84, 0x64, 0x18, + 0xa7, 0xcb, 0x69, 0x14, 0x67, 0xdb, 0xa7, 0x1a, 0x2b, 0x0f, 0x45, 0x1a, 0x49, 0x15, 0x2e, 0xc6, + 0x6e, 0x50, 0x35, 0x4e, 0x72, 0x0a, 0xfd, 0x0c, 0xe4, 0xdc, 0x75, 0x72, 0xdc, 0x3d, 0xa2, 0x6a, + 0xec, 0xb4, 0x15, 0xc1, 0x77, 0x57, 0x06, 0x71, 0xb7, 0x26, 0xaa, 0xb1, 0xf3, 0x35, 0xe8, 0x39, + 0x98, 0x10, 0x6b, 0xb0, 0x78, 0xbb, 0x38, 0xd5, 0x98, 0x29, 0x25, 0x32, 0x7c, 0x6c, 0xe9, 0x1c, + 0x67, 0xab, 0xaa, 0x1a, 0x2b, 0x6f, 0x86, 0x36, 0x21, 0xc3, 0x83, 0xdf, 0x58, 0x3b, 0x3d, 0xd5, + 0x78, 0x89, 0x22, 0x22, 0x64, 0x37, 0x39, 0x11, 0x77, 0x7b, 0xae, 0x1a, 0x3b, 0x61, 0x88, 0x14, + 0x00, 0xcf, 0x7a, 0x3a, 0xf6, 0xbe, 0x5b, 0x35, 0x7e, 0x22, 0x10, 0xbd, 0x1f, 0xb2, 0xce, 0xaa, + 0x29, 0xe6, 0x4e, 0x5a, 0x35, 0x6e, 0x2e, 0xae, 0xb1, 0x19, 0xfb, 0x94, 0xc4, 0xbd, 0x91, 0xa7, + 0x24, 0xdc, 0x4d, 0x6e, 0x67, 0x1b, 0xfc, 0x2f, 0x13, 0x70, 0x3c, 0xb8, 0x9d, 0xac, 0xe8, 0xfb, + 0x43, 0x0e, 0x04, 0x0c, 0x39, 0x2d, 0xf2, 0x38, 0xa4, 0xe6, 0xf5, 0x7d, 0x12, 0x6c, 0xd0, 0x6f, + 0x00, 0xf6, 0xcd, 0x8e, 0x48, 0xd3, 0x91, 0xe7, 0x4d, 0xb3, 0x13, 0x7e, 0x6a, 0xa4, 0x9e, 0xfe, + 0xfe, 0xe7, 0x6a, 0x63, 0x8d, 0xdd, 0x90, 0x5e, 0x45, 0x9c, 0x15, 0xc8, 0xce, 0xeb, 0xfb, 0xe2, + 0x98, 0xc0, 0x38, 0xed, 0xd0, 0x61, 0xb7, 0xff, 0x5f, 0x2b, 0x10, 0x64, 0xcf, 0x77, 0x84, 0x79, + 0x8f, 0x33, 0xec, 0x69, 0xc8, 0x0e, 0x7f, 0xf4, 0x89, 0x81, 0xea, 0x70, 0x69, 0x4a, 0x17, 0x20, + 0xbd, 0x60, 0x68, 0x34, 0xe4, 0x69, 0x61, 0xdd, 0xe8, 0x8a, 0x9c, 0x27, 0x7d, 0x40, 0xa7, 0x20, + 0xa3, 0x74, 0x8d, 0xbe, 0x6e, 0x8b, 0xa8, 0x99, 0xb8, 0x92, 0xff, 0x7a, 0x50, 0x4b, 0x2d, 0xeb, + 0xb6, 0xcc, 0x5f, 0xd5, 0xd3, 0xdf, 0x7d, 0xa5, 0x96, 0x90, 0x9e, 0x82, 0x89, 0x45, 0xac, 0xde, + 0x08, 0xd6, 0x22, 0x56, 0x03, 0x58, 0xa7, 0x21, 0xbb, 0xac, 0xdb, 0xec, 0x9b, 0x61, 0xb7, 0x41, + 0x4a, 0xd3, 0xd9, 0xb6, 0x48, 0xa0, 0x7e, 0x52, 0x4e, 0x48, 0x17, 0xb1, 0xea, 0x90, 0xb6, 0xb0, + 0x1a, 0x24, 0x25, 0xf0, 0xa4, 0x5c, 0x6a, 0x40, 0xe1, 0x8a, 0xd2, 0xe1, 0xe1, 0x1e, 0xb6, 0xd0, + 0x7d, 0x90, 0x53, 0xc4, 0x03, 0x5d, 0x59, 0x15, 0x1a, 0xc5, 0x1f, 0x1c, 0xd4, 0xc0, 0x25, 0x92, + 0x5d, 0x82, 0x7a, 0xfa, 0xe5, 0xff, 0x76, 0x32, 0x21, 0x19, 0x30, 0x71, 0x41, 0xb1, 0xa8, 0xa5, + 0x7f, 0xd0, 0x97, 0x48, 0xa1, 0x91, 0x62, 0xe3, 0xc8, 0xf5, 0x83, 0xda, 0xd4, 0xbe, 0xd2, 0xed, + 0xd4, 0x25, 0xf7, 0x9d, 0xe4, 0xcd, 0xaf, 0xcc, 0x79, 0xf2, 0x2b, 0x34, 0x92, 0x6c, 0x4c, 0x5f, + 0x3f, 0xa8, 0x95, 0x5c, 0x1e, 0xf2, 0x46, 0x72, 0x92, 0x2e, 0x52, 0x0f, 0x32, 0x2c, 0xe8, 0x0d, + 0xdd, 0x21, 0xe4, 0x29, 0x9f, 0xa4, 0x9b, 0xf2, 0xa9, 0x1f, 0x2a, 0xcd, 0xc0, 0xe3, 0x32, 0xc6, + 0x51, 0x4f, 0x7f, 0xe4, 0x95, 0xda, 0x98, 0x64, 0x02, 0x5a, 0xd7, 0xba, 0xfd, 0x0e, 0xbb, 0xf8, + 0x2d, 0xb6, 0x9a, 0x1e, 0x64, 0xed, 0xa6, 0xe9, 0x24, 0x16, 0x90, 0x95, 0xe6, 0xb8, 0x92, 0x72, + 0x81, 0xb0, 0x38, 0xe3, 0x9b, 0x07, 0xb5, 0x04, 0x6d, 0x3d, 0x95, 0xd1, 0x5d, 0x90, 0x61, 0xa1, + 0x3c, 0x8f, 0x7f, 0x8a, 0x82, 0x87, 0xf5, 0x49, 0xe6, 0x6f, 0xa5, 0x27, 0x60, 0x62, 0xd5, 0x6a, + 0x2f, 0x92, 0x2e, 0x1d, 0x87, 0x6c, 0xd7, 0x6a, 0x37, 0x3d, 0xd1, 0xd4, 0x44, 0xd7, 0x6a, 0x6f, + 0x0c, 0x89, 0xc2, 0xf8, 0xb0, 0xbc, 0x1b, 0x32, 0x1b, 0x7b, 0x94, 0xfd, 0x94, 0x23, 0xa5, 0x94, + 0xb7, 0x8d, 0x1c, 0xdd, 0xc7, 0xf4, 0xc1, 0x14, 0xc0, 0xc6, 0x9e, 0xd3, 0xc3, 0x21, 0x5b, 0x70, + 0x48, 0x82, 0x8c, 0xbd, 0xe7, 0x44, 0xd4, 0xb9, 0x06, 0xbc, 0x7a, 0x50, 0xcb, 0x6c, 0xec, 0x91, + 0xe5, 0x85, 0xcc, 0xdf, 0xf8, 0x53, 0x59, 0xa9, 0x40, 0x2a, 0xcb, 0x49, 0xe0, 0xa5, 0x43, 0x12, + 0x78, 0xe3, 0x9e, 0x1d, 0x80, 0x63, 0x30, 0x61, 0x2a, 0xd7, 0x9a, 0x64, 0x44, 0xd9, 0xd7, 0x4a, + 0x33, 0xa6, 0x72, 0x6d, 0xc5, 0x68, 0xa3, 0x05, 0x48, 0x77, 0x8c, 0xb6, 0xc8, 0xbb, 0x1d, 0x15, + 0x9d, 0x22, 0x11, 0x17, 0x3f, 0x4d, 0xbc, 0x62, 0xb4, 0x1b, 0xc7, 0x88, 0xfc, 0xbf, 0xf8, 0x67, + 0xb5, 0x92, 0xbf, 0xdc, 0x92, 0x29, 0xb3, 0x93, 0x0c, 0xcc, 0x0e, 0x4d, 0x06, 0xe6, 0x46, 0x25, + 0x03, 0xc1, 0x9f, 0x0c, 0xbc, 0x83, 0xee, 0x69, 0xb2, 0x3d, 0x9c, 0x99, 0x81, 0xe0, 0x73, 0x5e, + 0xdf, 0xa7, 0xbb, 0xa8, 0xb7, 0x42, 0xce, 0x39, 0x28, 0xc4, 0x3f, 0x0f, 0xed, 0x16, 0x70, 0x7d, + 0xfb, 0x48, 0x02, 0x8a, 0xfe, 0x16, 0xd3, 0x7c, 0x8e, 0xd5, 0xe6, 0x1f, 0x56, 0x65, 0x69, 0x4f, + 0xa2, 0x14, 0xcb, 0x22, 0x53, 0x1e, 0xd0, 0xf9, 0xf9, 0x80, 0xce, 0x4f, 0x0b, 0x01, 0xb1, 0xbb, + 0x3b, 0x4c, 0xd5, 0x67, 0xb8, 0x74, 0x0a, 0x9e, 0x42, 0xcb, 0x55, 0x7d, 0xaa, 0x11, 0x3f, 0x0b, + 0x79, 0xcf, 0xdb, 0xd0, 0xa0, 0xfe, 0x91, 0x90, 0x64, 0xc7, 0x94, 0x33, 0x20, 0xe2, 0x8d, 0xd8, + 0x42, 0x70, 0x49, 0x1d, 0x45, 0xcd, 0x39, 0x44, 0x71, 0x8f, 0x57, 0x34, 0x16, 0xff, 0xf4, 0xdb, + 0x27, 0xc6, 0x5e, 0x7e, 0xf5, 0xc4, 0xd8, 0xd0, 0xf3, 0x99, 0x52, 0xf4, 0x97, 0xe8, 0x1d, 0x2f, + 0xf3, 0xd1, 0xf7, 0xc2, 0xad, 0x9c, 0xc6, 0xb2, 0x95, 0x5d, 0x4d, 0x6f, 0x8b, 0xbf, 0xdc, 0xdd, + 0x14, 0x79, 0x6f, 0x78, 0xe9, 0x8d, 0xbb, 0x9d, 0x37, 0x7b, 0x68, 0xac, 0x1a, 0xe6, 0x0d, 0xa5, + 0x83, 0x34, 0xa0, 0x55, 0xab, 0xbd, 0x60, 0x62, 0xf6, 0xb1, 0x11, 0xbe, 0x4e, 0xf2, 0x5f, 0xf6, + 0xe1, 0x36, 0xea, 0x96, 0x39, 0x7f, 0x5f, 0x9c, 0xef, 0x4b, 0xbb, 0x39, 0x22, 0xdf, 0x15, 0xa1, + 0x25, 0x00, 0x9a, 0x5e, 0xb1, 0x2c, 0x37, 0x99, 0x57, 0x0b, 0x62, 0x2c, 0x38, 0x14, 0xb2, 0x62, + 0x63, 0x4b, 0x8c, 0xb5, 0xcb, 0x88, 0x3e, 0x00, 0xd3, 0x5d, 0x4d, 0x6f, 0x5a, 0xb8, 0xb3, 0xdd, + 0x6c, 0xe1, 0x0e, 0xfd, 0x14, 0x0b, 0xdf, 0xb8, 0xcb, 0x35, 0x56, 0xb8, 0x63, 0xba, 0x2b, 0x7a, + 0xcc, 0xe6, 0x96, 0x75, 0xfb, 0xfa, 0x41, 0xad, 0xca, 0xbc, 0x43, 0x08, 0xa4, 0x24, 0x4f, 0x75, + 0x35, 0x7d, 0x1d, 0x77, 0xb6, 0x17, 0x9d, 0x32, 0xf4, 0x12, 0x4c, 0x71, 0x0a, 0xc3, 0x4d, 0x7a, + 0x10, 0xdb, 0x53, 0x68, 0xac, 0x5e, 0x3f, 0xa8, 0x55, 0x18, 0xda, 0x00, 0x89, 0xf4, 0x83, 0x83, + 0xda, 0xfd, 0x31, 0xda, 0x34, 0xaf, 0xaa, 0xc2, 0x3d, 0x96, 0x1d, 0x10, 0x5e, 0x42, 0xea, 0x76, + 0x13, 0xf4, 0xa2, 0xee, 0xf1, 0x60, 0xdd, 0x03, 0x24, 0x71, 0xeb, 0xf6, 0xb8, 0x66, 0x37, 0x83, + 0x2f, 0xea, 0x3e, 0x0a, 0x99, 0x5e, 0x7f, 0x4b, 0xec, 0xa2, 0xe5, 0x64, 0xfe, 0x84, 0x66, 0xbd, + 0x1b, 0x69, 0xf9, 0xb3, 0x05, 0x31, 0x9e, 0x24, 0x56, 0x71, 0xd2, 0x9c, 0x2c, 0xf6, 0xa3, 0xd1, + 0xc7, 0x57, 0x53, 0x50, 0x5e, 0xb5, 0xda, 0x4b, 0x2d, 0xcd, 0xbe, 0xc9, 0xea, 0xd5, 0x0b, 0x93, + 0x0e, 0xf5, 0x66, 0x8d, 0x85, 0xeb, 0x07, 0xb5, 0x22, 0x93, 0xce, 0xcd, 0x94, 0x49, 0x17, 0x4a, + 0xae, 0x5e, 0x36, 0x4d, 0xc5, 0xe6, 0xee, 0xa9, 0xb1, 0x18, 0x53, 0x03, 0x17, 0xb1, 0x7a, 0xfd, + 0xa0, 0x76, 0x94, 0xb5, 0x2c, 0x00, 0x25, 0xc9, 0x45, 0xd5, 0x37, 0x17, 0xd0, 0x5e, 0xb8, 0xe2, + 0xd3, 0xfd, 0xa7, 0xc6, 0xc5, 0xb7, 0x50, 0xe9, 0xf9, 0xd0, 0x7d, 0x25, 0x09, 0x79, 0xe2, 0xea, + 0x59, 0x39, 0x0e, 0x9f, 0x0a, 0x89, 0x1f, 0xe1, 0x54, 0x48, 0xbe, 0x3d, 0x53, 0xe1, 0x1e, 0x27, + 0xd6, 0x4e, 0x0d, 0xd5, 0x79, 0x7f, 0xc8, 0xfd, 0x1f, 0x53, 0xd4, 0xaa, 0xd2, 0x15, 0xa4, 0x8c, + 0x5b, 0xef, 0x04, 0x01, 0xfe, 0x7c, 0x02, 0x8e, 0xb8, 0xe2, 0xb1, 0x4c, 0x35, 0x20, 0xc5, 0x67, + 0xae, 0x1f, 0xd4, 0x6e, 0x0d, 0x4a, 0xd1, 0x43, 0x76, 0x03, 0x92, 0x9c, 0x76, 0x80, 0xd6, 0x4d, + 0x35, 0xbc, 0x1d, 0x2d, 0xcb, 0x76, 0xda, 0x91, 0x1a, 0xde, 0x0e, 0x0f, 0xd9, 0x9b, 0x6a, 0xc7, + 0xa2, 0x65, 0x0f, 0x0e, 0x6a, 0x3a, 0xe6, 0xa0, 0x7e, 0x2d, 0x09, 0x93, 0xab, 0x56, 0x7b, 0x53, + 0x6f, 0xfd, 0x64, 0x42, 0x1c, 0x76, 0x42, 0x7c, 0x2c, 0x01, 0xc5, 0x8b, 0x9a, 0x65, 0x1b, 0xa6, + 0xa6, 0x2a, 0x1d, 0xba, 0x9a, 0x71, 0xcf, 0x48, 0x26, 0x0e, 0x7f, 0x46, 0xf2, 0x11, 0xc8, 0x5c, + 0x55, 0x3a, 0xec, 0xdf, 0x1a, 0xa5, 0xe8, 0x1e, 0x61, 0xc0, 0x77, 0x04, 0x73, 0xc0, 0x9c, 0x9c, + 0x37, 0xe7, 0x77, 0x92, 0x50, 0x0a, 0x04, 0x1e, 0xa8, 0x01, 0x69, 0x6a, 0xd1, 0xd9, 0x82, 0x77, + 0xee, 0x10, 0x71, 0x05, 0x59, 0x13, 0x53, 0x5e, 0xf4, 0x53, 0x90, 0xed, 0x2a, 0x7b, 0xcc, 0x33, + 0xb0, 0xf5, 0xcd, 0xfc, 0xe1, 0x70, 0xdc, 0xd5, 0xab, 0xc0, 0x91, 0xe4, 0x89, 0xae, 0xb2, 0x47, + 0xfd, 0x41, 0x0f, 0x4a, 0xa4, 0x54, 0xdd, 0x51, 0xf4, 0x36, 0xf6, 0xba, 0x9f, 0x8b, 0x87, 0xae, + 0xe4, 0xa8, 0x5b, 0x89, 0x07, 0x4e, 0x92, 0x27, 0xbb, 0xca, 0xde, 0x02, 0x2d, 0x20, 0x35, 0xd6, + 0xb3, 0x9f, 0x7c, 0xa5, 0x36, 0x46, 0x25, 0xf6, 0xef, 0x13, 0x00, 0xae, 0xc4, 0xd0, 0x06, 0x94, + 0x03, 0xee, 0x4b, 0x9c, 0x31, 0x8a, 0x0c, 0xf0, 0xdc, 0x85, 0x6d, 0x49, 0x0d, 0x0c, 0xc1, 0xfb, + 0x21, 0xcf, 0x4e, 0x09, 0x34, 0x69, 0x32, 0x3e, 0x19, 0x99, 0x8c, 0x3f, 0x41, 0xb0, 0xae, 0x1f, + 0xd4, 0x10, 0xeb, 0x8e, 0x87, 0x59, 0xa2, 0x29, 0x7a, 0x60, 0x25, 0x84, 0xc1, 0xdf, 0x97, 0xbc, + 0x27, 0xb6, 0xa0, 0x67, 0xcf, 0x0c, 0x5d, 0xdb, 0xc5, 0xa6, 0xb3, 0x46, 0x66, 0x8f, 0xa8, 0x0a, + 0x59, 0xf6, 0x55, 0x41, 0x7b, 0x5f, 0xfc, 0x5b, 0x0b, 0xf1, 0x4c, 0xb8, 0xae, 0xe1, 0x2d, 0x4b, + 0x13, 0xa3, 0x20, 0x8b, 0x47, 0x74, 0x1e, 0xca, 0x16, 0x56, 0xfb, 0xa6, 0x66, 0xef, 0x37, 0x55, + 0x43, 0xb7, 0x15, 0xd5, 0xe6, 0x4e, 0xfb, 0x96, 0xeb, 0x07, 0xb5, 0x63, 0xac, 0xad, 0x41, 0x0a, + 0x49, 0x2e, 0x89, 0xa2, 0x05, 0x56, 0x42, 0x6a, 0x68, 0x61, 0x5b, 0xd1, 0x3a, 0x16, 0x5f, 0xd8, + 0x8a, 0x47, 0x4f, 0x5f, 0x7e, 0x7b, 0xc2, 0xbb, 0x19, 0x75, 0x0d, 0xca, 0x46, 0x0f, 0x9b, 0x21, + 0xf6, 0x68, 0xc5, 0xad, 0x39, 0x48, 0x71, 0x03, 0x26, 0xa1, 0x24, 0x30, 0x84, 0x45, 0x38, 0xef, + 0x3b, 0x73, 0xc6, 0xe2, 0xc6, 0x64, 0xb0, 0xcb, 0x41, 0x0a, 0xc9, 0x7b, 0xd0, 0x8c, 0x45, 0x97, + 0x47, 0x21, 0xf3, 0x82, 0xa2, 0x75, 0xc4, 0xa7, 0x56, 0x65, 0xfe, 0x84, 0x96, 0x21, 0x63, 0xd9, + 0x8a, 0xdd, 0x67, 0xa1, 0xf7, 0x78, 0xe3, 0x5d, 0x31, 0xdb, 0xdc, 0x30, 0xf4, 0xd6, 0x3a, 0x65, + 0x94, 0x39, 0x00, 0x3a, 0x0f, 0x19, 0xdb, 0xd8, 0xc5, 0x3a, 0x17, 0xea, 0xa1, 0x66, 0x3a, 0x4d, + 0xd4, 0x31, 0x6e, 0x64, 0x83, 0x6b, 0x94, 0x9b, 0xd6, 0x8e, 0x62, 0x62, 0x8b, 0x85, 0xca, 0x8d, + 0xe5, 0x43, 0x4f, 0xc7, 0x63, 0x41, 0x4f, 0xc1, 0xf0, 0x24, 0xb9, 0xe4, 0x14, 0xad, 0xd3, 0x92, + 0x60, 0xe4, 0x3c, 0x71, 0x43, 0x91, 0xf3, 0x79, 0x28, 0xf7, 0xf5, 0x2d, 0x43, 0xa7, 0x9f, 0x45, + 0xe4, 0x69, 0x9a, 0xec, 0xc9, 0xc4, 0x6c, 0xca, 0x3b, 0x5a, 0x41, 0x0a, 0x49, 0x2e, 0x39, 0x45, + 0xfc, 0xf4, 0x63, 0x0b, 0x8a, 0x2e, 0x15, 0x9d, 0xb2, 0xb9, 0xc8, 0x29, 0x7b, 0x3b, 0x9f, 0xb2, + 0x47, 0x82, 0xb5, 0xb8, 0xb3, 0x76, 0xd2, 0x29, 0x24, 0x6c, 0xe8, 0xbd, 0xbe, 0x65, 0x24, 0xf0, + 0x1a, 0x86, 0x5a, 0x99, 0xf8, 0x2b, 0xc8, 0xfc, 0xdb, 0xb2, 0x82, 0xac, 0x17, 0x3e, 0xf2, 0x4a, + 0x6d, 0xcc, 0x99, 0xb0, 0xbf, 0x90, 0x84, 0xcc, 0xe2, 0x15, 0x7a, 0x8d, 0xf2, 0xc7, 0x34, 0x7c, + 0xf0, 0x58, 0xaf, 0xf7, 0xc0, 0x04, 0x93, 0x85, 0x85, 0xce, 0xc2, 0x78, 0x8f, 0xfc, 0xe0, 0xb9, + 0xc6, 0xa3, 0x03, 0x2a, 0x4d, 0xe9, 0xc4, 0x0a, 0x93, 0x92, 0x4a, 0x9f, 0x4f, 0x01, 0x2c, 0x5e, + 0xb9, 0xb2, 0x61, 0x6a, 0xbd, 0x0e, 0xb6, 0x7f, 0x12, 0x5e, 0xbf, 0x73, 0xc2, 0x6b, 0xcf, 0x18, + 0x3f, 0x0d, 0x79, 0x77, 0x8c, 0x2c, 0xf4, 0x38, 0x64, 0x6d, 0xfe, 0x9b, 0x0f, 0x75, 0x75, 0x70, + 0xa8, 0x05, 0x39, 0x1f, 0x6e, 0x87, 0x43, 0xfa, 0x2f, 0x49, 0x80, 0xa8, 0xe4, 0xcc, 0x8f, 0x41, + 0x00, 0x7e, 0x1e, 0x32, 0xdc, 0xe3, 0xa4, 0x6e, 0x28, 0x5a, 0xe5, 0xdc, 0x9e, 0x51, 0xfa, 0x76, + 0x12, 0xa6, 0x37, 0x85, 0xd9, 0xfd, 0x89, 0x84, 0xd1, 0x45, 0x98, 0xc0, 0xba, 0x6d, 0x6a, 0x58, + 0xa4, 0xc1, 0x67, 0x83, 0x5a, 0x1a, 0x22, 0x2d, 0xfa, 0xef, 0x12, 0xc4, 0x69, 0x39, 0xce, 0xee, + 0x91, 0xf1, 0xc7, 0x53, 0x50, 0x19, 0xc6, 0x85, 0x16, 0xa0, 0xa4, 0x9a, 0x98, 0x16, 0x34, 0xbd, + 0x3b, 0x27, 0x8d, 0xaa, 0x27, 0x63, 0xe4, 0x27, 0x90, 0xe4, 0xa2, 0x28, 0xe1, 0x0e, 0xb9, 0x4d, + 0x13, 0x54, 0x64, 0xaa, 0x10, 0xaa, 0x98, 0x41, 0xb4, 0xc4, 0x3d, 0xb2, 0x9b, 0x96, 0xf2, 0x02, + 0x30, 0x97, 0x5c, 0x74, 0x4b, 0xa9, 0x4f, 0x7e, 0x11, 0x4a, 0x9a, 0xae, 0xd9, 0x9a, 0xd2, 0x69, + 0x6e, 0x29, 0x1d, 0x45, 0x57, 0x6f, 0x64, 0x29, 0xc2, 0xbc, 0x29, 0xaf, 0x36, 0x00, 0x27, 0xc9, + 0x45, 0x5e, 0xd2, 0x60, 0x05, 0x64, 0x44, 0x44, 0x55, 0xe9, 0x1b, 0x0a, 0xdc, 0x04, 0xbb, 0x67, + 0x44, 0x7e, 0x31, 0x05, 0x53, 0x4e, 0x7e, 0xe6, 0x27, 0x43, 0x11, 0x77, 0x28, 0x56, 0x01, 0x98, + 0x01, 0x21, 0x9e, 0xe3, 0x06, 0x46, 0x83, 0x98, 0xa0, 0x1c, 0x43, 0x58, 0xb4, 0x6c, 0xcf, 0x78, + 0xfc, 0x45, 0x0a, 0x0a, 0xde, 0xf1, 0xf8, 0x89, 0x4b, 0x7f, 0x07, 0x65, 0xcc, 0xe6, 0x5d, 0x93, + 0x98, 0xe6, 0xdf, 0x45, 0x09, 0x98, 0xc4, 0x81, 0xa9, 0x34, 0xdc, 0x16, 0xfe, 0x55, 0x12, 0x32, + 0xfc, 0x5c, 0xb6, 0x3a, 0xb0, 0x8a, 0x48, 0x44, 0x9d, 0xfb, 0x1e, 0xbd, 0x88, 0xf8, 0x64, 0xe8, + 0x22, 0xa2, 0xd8, 0x55, 0xf6, 0x9a, 0xbe, 0x5b, 0x4c, 0x89, 0xd9, 0xc9, 0xc6, 0x71, 0x17, 0xc5, + 0xff, 0x9e, 0xe5, 0x42, 0xdc, 0x33, 0xb9, 0xe8, 0x11, 0xc8, 0x13, 0x0a, 0xd7, 0x2b, 0x10, 0xf6, + 0xa3, 0x6e, 0xf2, 0xc1, 0xf3, 0x52, 0x92, 0xa1, 0xab, 0xec, 0x2d, 0xb1, 0x07, 0xb4, 0x02, 0x68, + 0xc7, 0x49, 0x7d, 0x35, 0x5d, 0x11, 0x12, 0xfe, 0xdb, 0xae, 0x1f, 0xd4, 0x8e, 0x33, 0xfe, 0x41, + 0x1a, 0x49, 0x9e, 0x72, 0x0b, 0x05, 0xda, 0x83, 0x00, 0xa4, 0x5f, 0x4d, 0x76, 0x26, 0x84, 0x2d, + 0x61, 0x3d, 0x07, 0x25, 0xdc, 0x77, 0x92, 0x9c, 0x23, 0x0f, 0x8b, 0xe4, 0xb7, 0x47, 0xf0, 0xbf, + 0x94, 0x00, 0xe4, 0xfa, 0x1e, 0x67, 0xbf, 0xfe, 0xbd, 0xf4, 0x5e, 0xa2, 0x58, 0x19, 0x25, 0xc2, + 0x17, 0x59, 0x2e, 0x9f, 0x58, 0x64, 0x79, 0xa6, 0xea, 0x7d, 0xae, 0x7d, 0x4e, 0x0e, 0xcd, 0x0a, + 0x86, 0xd8, 0xe0, 0x3f, 0x4c, 0xc0, 0xf1, 0x01, 0xc5, 0x71, 0xda, 0x75, 0x05, 0x90, 0xe9, 0x79, + 0xc9, 0xff, 0x43, 0x51, 0x82, 0xff, 0xc3, 0xbf, 0x98, 0xfa, 0x37, 0x65, 0x0e, 0xd8, 0xf8, 0x9b, + 0xe7, 0x4d, 0x78, 0x46, 0x31, 0x01, 0x33, 0xde, 0xea, 0x9d, 0x0e, 0x9c, 0x87, 0x82, 0xb7, 0x76, + 0xde, 0xf4, 0x5b, 0x47, 0x35, 0x9d, 0xb7, 0xda, 0xc7, 0x87, 0x96, 0xdd, 0xd9, 0x27, 0xfe, 0xe7, + 0x64, 0x54, 0xef, 0x9d, 0x83, 0x6c, 0x81, 0x59, 0xc8, 0x5a, 0xfc, 0xff, 0x12, 0x90, 0x5e, 0x33, + 0x8c, 0x0e, 0x32, 0x60, 0x4a, 0x37, 0xec, 0x26, 0x51, 0x16, 0xdc, 0x6a, 0xf2, 0xdc, 0x08, 0xcb, + 0x82, 0x2e, 0x1c, 0x4e, 0x28, 0xdf, 0x3b, 0xa8, 0x0d, 0x42, 0xc9, 0x25, 0xdd, 0xb0, 0x1b, 0xb4, + 0x64, 0x83, 0x65, 0x4e, 0x3e, 0x00, 0x93, 0xfe, 0xca, 0x58, 0xa6, 0xe8, 0xd9, 0x43, 0x57, 0xe6, + 0x87, 0xb9, 0x7e, 0x50, 0x9b, 0x71, 0x27, 0x81, 0x53, 0x2c, 0xc9, 0x85, 0x2d, 0x4f, 0xed, 0xf5, + 0x2c, 0xe9, 0xfd, 0xf7, 0x5f, 0xa9, 0x25, 0x1a, 0xe7, 0x87, 0x9e, 0x00, 0xb8, 0x6f, 0x64, 0x13, + 0xf6, 0x9c, 0xad, 0x7e, 0xff, 0x59, 0x80, 0xef, 0x9e, 0x81, 0x6a, 0xe0, 0x2c, 0x00, 0xbd, 0x87, + 0x3c, 0xe4, 0x24, 0xc0, 0xe8, 0x7f, 0xf4, 0x3f, 0xe4, 0xa0, 0xc0, 0xc8, 0xc3, 0x06, 0xd2, 0x2e, + 0x1c, 0xa5, 0x47, 0x39, 0x5d, 0xb3, 0x25, 0xbe, 0x12, 0x73, 0xd4, 0x49, 0xa0, 0x25, 0xf8, 0xff, + 0x15, 0x67, 0xd9, 0xb0, 0xc7, 0x00, 0xdc, 0x9a, 0x9d, 0x0b, 0x37, 0xbc, 0xa5, 0xac, 0xf5, 0xec, + 0x1f, 0xfe, 0x53, 0x18, 0xd9, 0x43, 0x2c, 0xfd, 0x7a, 0x02, 0x8e, 0x0d, 0xd4, 0xc6, 0xb5, 0xfe, + 0x49, 0xdf, 0x85, 0xd1, 0x44, 0xbc, 0x1c, 0xbd, 0xf7, 0xcb, 0x0f, 0xf5, 0x90, 0x76, 0x55, 0xc3, + 0xda, 0xc5, 0x2a, 0xf4, 0x35, 0xec, 0x45, 0x38, 0xe2, 0x6f, 0x97, 0x10, 0xc2, 0x73, 0x50, 0xf4, + 0xaf, 0x16, 0x78, 0x28, 0xf1, 0xae, 0xc3, 0x7b, 0xc8, 0x49, 0xdf, 0x8a, 0x41, 0x7a, 0x36, 0x28, + 0x78, 0x47, 0x12, 0xef, 0x19, 0x3c, 0x7c, 0x1f, 0x29, 0x08, 0xcf, 0xdd, 0xac, 0xaf, 0x24, 0xe0, + 0xa4, 0x1f, 0xd9, 0x35, 0xc2, 0xd6, 0x5b, 0xde, 0xaf, 0x37, 0xa3, 0x1e, 0xff, 0x29, 0x01, 0xb7, + 0x8f, 0x68, 0x39, 0x17, 0x8f, 0x09, 0x33, 0x1e, 0xeb, 0x6e, 0xf2, 0x62, 0xa1, 0x32, 0xd2, 0x70, + 0x0f, 0xe4, 0x18, 0xb7, 0x5b, 0xf8, 0x51, 0xa4, 0xe9, 0xc1, 0x77, 0x96, 0x3c, 0x3d, 0x68, 0x91, + 0xdf, 0x9c, 0x6e, 0x7d, 0x3d, 0x01, 0xa7, 0xfd, 0xbd, 0x0a, 0x59, 0xd1, 0xbd, 0xb3, 0x07, 0xe6, + 0xdf, 0x24, 0xe0, 0x9e, 0x38, 0x5d, 0xe0, 0x23, 0xf4, 0x3c, 0x4c, 0xbb, 0xf1, 0x55, 0x70, 0x80, + 0x4e, 0xc5, 0x58, 0x15, 0x73, 0xa5, 0x46, 0x0e, 0xca, 0xcd, 0x19, 0x89, 0x3f, 0x4e, 0xf0, 0x39, + 0xe7, 0x1d, 0x77, 0x47, 0xec, 0xfe, 0x25, 0xc1, 0x21, 0xc5, 0xee, 0x59, 0x16, 0x4c, 0xfa, 0x96, + 0x05, 0x21, 0x03, 0x9a, 0xbc, 0x49, 0x16, 0xe4, 0x43, 0xc2, 0x9a, 0x86, 0x04, 0x67, 0xbb, 0x30, + 0x1d, 0x32, 0x49, 0x9c, 0x1b, 0xa7, 0xd1, 0x73, 0xe4, 0xe8, 0x0f, 0x0e, 0x6a, 0x21, 0x51, 0x9f, + 0x8c, 0x06, 0xa7, 0x87, 0xf4, 0x9f, 0x13, 0x50, 0xa3, 0x0d, 0x09, 0x19, 0xca, 0xbf, 0xc9, 0x02, + 0xc6, 0xdc, 0x90, 0x86, 0x76, 0x8b, 0x0b, 0x7a, 0x1e, 0x32, 0x4c, 0x4b, 0xb9, 0x6c, 0x0f, 0xa1, + 0xde, 0x9c, 0xd1, 0x35, 0xd8, 0x8b, 0xa2, 0x5f, 0xe1, 0x76, 0xe1, 0x2d, 0x92, 0xdf, 0x9b, 0xb0, + 0x0b, 0xff, 0x4a, 0x18, 0xec, 0xf0, 0x96, 0x73, 0x11, 0xbd, 0xff, 0x4d, 0x1b, 0x6c, 0xfe, 0x25, + 0xa1, 0xb7, 0xcc, 0x32, 0x3b, 0xcd, 0x8f, 0xb0, 0xcc, 0xef, 0xbc, 0x11, 0x70, 0x2c, 0x73, 0x44, + 0x17, 0xde, 0xe1, 0x96, 0xf9, 0x7a, 0x12, 0x8e, 0xd3, 0x6e, 0x78, 0x57, 0x24, 0x6f, 0x83, 0xe4, + 0x9b, 0x80, 0x2c, 0x53, 0x6d, 0xde, 0x2c, 0xfb, 0x51, 0xb6, 0x4c, 0xf5, 0x8a, 0xcf, 0xe9, 0x36, + 0x01, 0xb5, 0x2c, 0x3b, 0x58, 0x41, 0xea, 0x86, 0x2b, 0x68, 0x59, 0xf6, 0x95, 0x11, 0x5e, 0x3d, + 0x7d, 0x18, 0xdd, 0xf9, 0x83, 0x04, 0x54, 0xc3, 0x84, 0xce, 0x75, 0x45, 0x81, 0xa3, 0xbe, 0x75, + 0x74, 0x50, 0x5d, 0xee, 0x18, 0xb5, 0x9a, 0x0c, 0x4c, 0xdd, 0x23, 0x26, 0xbe, 0xd9, 0x93, 0xf7, + 0xcb, 0xc2, 0xe9, 0x38, 0x9a, 0x3f, 0xb8, 0x84, 0x79, 0x47, 0x4e, 0xd9, 0xdf, 0x1c, 0x30, 0xf7, + 0xef, 0xb4, 0xd5, 0xd0, 0x9f, 0x24, 0xe0, 0xc4, 0x90, 0x16, 0xfe, 0x4d, 0x76, 0xe7, 0x3f, 0x3b, + 0x54, 0x61, 0x6e, 0xd6, 0xd2, 0xeb, 0x41, 0x3e, 0xa1, 0xfc, 0xe7, 0xd6, 0x3c, 0x0b, 0xea, 0xd0, + 0x6f, 0xcc, 0x3d, 0x03, 0xb7, 0x84, 0x72, 0xf1, 0x36, 0x9d, 0x85, 0xf4, 0x8e, 0x66, 0xd9, 0xce, + 0x87, 0x17, 0x02, 0xcd, 0x09, 0x70, 0x51, 0x5a, 0x09, 0x41, 0x99, 0x42, 0xae, 0x19, 0x46, 0x87, + 0x57, 0x2f, 0x2d, 0xc0, 0x94, 0xa7, 0x8c, 0x83, 0xcf, 0x41, 0xba, 0x67, 0x18, 0x1d, 0x0e, 0x3e, + 0x13, 0x04, 0x27, 0xb4, 0xbc, 0x9b, 0x94, 0x4e, 0x9a, 0x01, 0xc4, 0x40, 0xd8, 0x27, 0x41, 0x38, + 0xf4, 0x87, 0x13, 0x30, 0xed, 0x2b, 0x76, 0x2e, 0x2d, 0x65, 0x7c, 0x5f, 0x93, 0x1a, 0xd8, 0xa2, + 0x67, 0xf4, 0xce, 0xf5, 0x74, 0x96, 0xdd, 0x7d, 0x13, 0xaa, 0x7b, 0xf6, 0x8f, 0x0a, 0xe2, 0x96, + 0x6b, 0x13, 0xc0, 0x93, 0x8a, 0xbd, 0x2b, 0x58, 0x73, 0x78, 0xd2, 0xa3, 0x7a, 0x77, 0x24, 0x1d, + 0x8f, 0x79, 0xc7, 0xd0, 0x4f, 0x79, 0x8f, 0x51, 0xdd, 0x39, 0x9a, 0x4f, 0xc0, 0xdf, 0x15, 0x45, + 0xe6, 0xa0, 0xff, 0x2d, 0x98, 0x09, 0x5b, 0x05, 0xa3, 0x07, 0x46, 0x23, 0x0c, 0xc6, 0x2d, 0xd5, + 0x77, 0x1d, 0x82, 0xc3, 0xa9, 0xfe, 0x93, 0x09, 0xb8, 0x6d, 0xe4, 0x62, 0x0f, 0x3d, 0x36, 0x1a, + 0x76, 0x44, 0x24, 0x55, 0xad, 0xdf, 0x08, 0xab, 0xd3, 0xb4, 0xa6, 0x6f, 0x3f, 0x3f, 0x5c, 0xa2, + 0x03, 0xeb, 0x8f, 0x21, 0x03, 0x3b, 0x18, 0x6b, 0x4a, 0x63, 0xe8, 0xa5, 0xf0, 0x7d, 0xed, 0x33, + 0xa1, 0x08, 0xc3, 0x97, 0x3c, 0xd5, 0x07, 0xe2, 0x33, 0x78, 0x87, 0x3d, 0x2c, 0x96, 0x1e, 0x32, + 0xec, 0x23, 0x16, 0x0c, 0x43, 0x86, 0x7d, 0x54, 0xa0, 0xce, 0x87, 0x7d, 0x64, 0x24, 0x39, 0x64, + 0xd8, 0xe3, 0x04, 0xd0, 0x43, 0x86, 0x3d, 0x56, 0xe0, 0x2a, 0x8d, 0xa1, 0x1d, 0x98, 0xf4, 0xc5, + 0x29, 0xe8, 0x74, 0x28, 0x5c, 0x58, 0x00, 0x59, 0xbd, 0x27, 0x0e, 0xa9, 0x77, 0xfc, 0x43, 0x5c, + 0xf3, 0x90, 0xf1, 0x1f, 0x1e, 0x7d, 0x54, 0x1f, 0x88, 0xcf, 0xe0, 0xd4, 0x7d, 0xcd, 0xd9, 0x6a, + 0xf1, 0x10, 0xa0, 0xb9, 0x98, 0x48, 0xa2, 0xe6, 0x33, 0xb1, 0xe9, 0x9d, 0x8a, 0x77, 0x07, 0x4e, + 0x5b, 0x87, 0x0b, 0x2d, 0xd4, 0xb5, 0x55, 0xef, 0x8d, 0x45, 0xeb, 0x54, 0xb6, 0xca, 0xf7, 0x11, + 0x4e, 0x86, 0xb2, 0x79, 0x9c, 0x56, 0xf5, 0xf6, 0x11, 0x14, 0x0e, 0xdc, 0xba, 0xb3, 0x31, 0x28, + 0x85, 0x93, 0x7b, 0x9d, 0x55, 0xf5, 0xd4, 0x48, 0x1a, 0x01, 0x7a, 0xd3, 0x53, 0xfd, 0x5f, 0xca, + 0x0e, 0x5c, 0xfb, 0x6b, 0x63, 0x1d, 0x5b, 0x9a, 0x75, 0xa8, 0x6b, 0x7f, 0xa3, 0xb3, 0xf9, 0x1f, + 0xca, 0x40, 0xe1, 0x02, 0x43, 0xa5, 0xdf, 0x3a, 0x46, 0x4f, 0xc4, 0xf4, 0xc0, 0x45, 0xe2, 0x81, + 0x7f, 0x70, 0x50, 0xe3, 0x82, 0x74, 0x7c, 0xb1, 0xc5, 0x3f, 0x7a, 0xc4, 0x3e, 0x58, 0xe2, 0x7e, + 0x35, 0xa6, 0x70, 0xa8, 0x23, 0xab, 0xec, 0xac, 0x00, 0x3f, 0x25, 0x1a, 0xc4, 0x93, 0xd8, 0xf7, + 0x93, 0x36, 0x48, 0x09, 0xfd, 0xe4, 0x09, 0xfa, 0x95, 0x04, 0x1c, 0xa1, 0x54, 0x6e, 0x20, 0x48, + 0x29, 0xc5, 0xc1, 0x9a, 0x81, 0x51, 0x5e, 0x51, 0x3c, 0xcb, 0x22, 0x8a, 0xd1, 0xa8, 0xf3, 0xfd, + 0xde, 0x5b, 0x3d, 0x95, 0x06, 0xe1, 0xa4, 0x1f, 0x1c, 0xd4, 0xd0, 0x20, 0xaf, 0x4c, 0x3f, 0xd0, + 0xe9, 0x2f, 0x0b, 0xff, 0x4c, 0xf5, 0x88, 0xd8, 0x70, 0x8a, 0x0b, 0xd4, 0x8d, 0x11, 0x7c, 0xe1, + 0xf9, 0x1a, 0xe4, 0x3d, 0xc6, 0xa7, 0x32, 0x3e, 0xe4, 0x58, 0x9b, 0xbb, 0xee, 0x46, 0x1c, 0xcf, + 0xe3, 0xfb, 0x64, 0x2f, 0x04, 0xfa, 0xb5, 0x04, 0x1c, 0x71, 0xd7, 0xf6, 0x5e, 0xf0, 0x4c, 0xfc, + 0xd5, 0xfd, 0x39, 0xbf, 0xd4, 0x42, 0xf1, 0x88, 0xd4, 0xc2, 0x1c, 0xa4, 0x3c, 0xd3, 0x0f, 0x73, + 0x18, 0xcf, 0xc1, 0xa4, 0x77, 0xf1, 0xe7, 0x7e, 0xbc, 0x70, 0xd4, 0x76, 0xe6, 0x0c, 0xef, 0xad, + 0xef, 0x68, 0x87, 0xec, 0x07, 0x42, 0x55, 0xc8, 0xe2, 0xbd, 0x9e, 0x61, 0xda, 0xb8, 0x45, 0xcf, + 0x22, 0x67, 0x65, 0xe7, 0x59, 0xba, 0x06, 0x21, 0x03, 0x8b, 0x9e, 0x0e, 0x7c, 0x79, 0xe9, 0x46, + 0x16, 0x15, 0x83, 0x1f, 0x6b, 0xf2, 0x7e, 0x45, 0xe9, 0x66, 0x9b, 0x8d, 0xff, 0x1f, 0x00, 0x00, + 0xff, 0xff, 0x4c, 0x9f, 0xbf, 0xb3, 0xdf, 0x9b, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) From d145ca1901497f2e4e90ad0f178e5860d6a4a370 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Mon, 17 Aug 2020 11:52:24 -0400 Subject: [PATCH 5/7] Update Account --- go.sum | 10 --- proto/cosmos/auth/v1beta1/auth.proto | 4 - x/auth/types/account.go | 43 +++++++--- x/auth/types/auth.pb.go | 121 ++++++++++++++------------- 4 files changed, 98 insertions(+), 80 deletions(-) diff --git a/go.sum b/go.sum index 95c4fc39b085..8b0b98c6b6da 100644 --- a/go.sum +++ b/go.sum @@ -179,8 +179,6 @@ github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4er github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.3 h1:GV+pQPG/EUUbkh47niozDcADz6go/dUwhVzdUQHIVRw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -237,8 +235,6 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.14.6 h1:8ERzHx8aj1Sc47mu9n/AksaKCSWrMchFtkdrS4BIj5o= -github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod h1:zdiPV4Yse/1gnckTHtghG4GkDEdKCRJduHpTxT3/jcw= github.com/grpc-ecosystem/grpc-gateway v1.14.7 h1:Nk5kuHrnWUTf/0GL1a/vchH/om9Ap2/HnVna+jYZgTY= github.com/grpc-ecosystem/grpc-gateway v1.14.7/go.mod h1:oYZKL012gGh6LMyg/xA7Q2yq6j8bu0wa+9w14EEthWU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= @@ -432,8 +428,6 @@ github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt2 github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.11.1 h1:0ZISXCMRuCZcxF77aT1BXY5m74mX2vrGYl1dSwBI0Jo= -github.com/prometheus/common v0.11.1/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.12.0 h1:mj4ewtVukAfkS37JU7IXPJPr7zwLEjwgWO6nZo8ROvk= github.com/prometheus/common v0.12.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -661,7 +655,6 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1 h1:ogLJMz+qpzav7lGMh10LMvAkM golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae h1:Ih9Yo4hSPImZOpfGuA4bR/ORKTAbhZo2AbWNRCnevdo= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= @@ -736,7 +729,6 @@ google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= @@ -785,7 +777,5 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/proto/cosmos/auth/v1beta1/auth.proto b/proto/cosmos/auth/v1beta1/auth.proto index 41fddbe532a4..ef4af52d2539 100644 --- a/proto/cosmos/auth/v1beta1/auth.proto +++ b/proto/cosmos/auth/v1beta1/auth.proto @@ -13,10 +13,6 @@ option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; message BaseAccount { option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_stringer) = false; - // NOTE: this disables the generation of the BaseAccount struct and uses a hand-written struct - // so that we can deal with PublicKey encoding. This should likely be replaced with something - // less hacky in the future. - option (gogoproto.typedecl) = false; option (cosmos_proto.implements_interface) = "AccountI"; bytes address = 1 [(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"]; diff --git a/x/auth/types/account.go b/x/auth/types/account.go index 55072f573a6b..79c3fc28692d 100644 --- a/x/auth/types/account.go +++ b/x/auth/types/account.go @@ -1,16 +1,22 @@ package types import ( + "bytes" "encoding/json" "errors" "fmt" "strings" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + codectypes "github.com/cosmos/cosmos-sdk/codec/types" + "github.com/gogo/protobuf/proto" "github.com/tendermint/tendermint/crypto" yaml "gopkg.in/yaml.v2" + "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -27,7 +33,11 @@ func NewBaseAccount(address sdk.AccAddress, pubKey crypto.PubKey, accountNumber, Address: address, AccountNumber: accountNumber, Sequence: sequence, - decodedPubKey: pubKey, + } + + err := acc.SetPubKey(pubKey) + if err != nil { + panic(err) } return acc @@ -62,12 +72,27 @@ func (acc *BaseAccount) SetAddress(addr sdk.AccAddress) error { // GetPubKey - Implements sdk.AccountI. func (acc BaseAccount) GetPubKey() (pk crypto.PubKey) { - panic("TODO") + content, ok := acc.PubKey.GetCachedValue().(crypto.PubKey) + if !ok { + return nil + } + return content } // SetPubKey - Implements sdk.AccountI. func (acc *BaseAccount) SetPubKey(pubKey crypto.PubKey) error { - panic("TODO") + protoMsg, ok := pubKey.(proto.Message) + if !ok { + return sdkerrors.ErrInvalidPubKey + } + + any, err := codectypes.NewAnyWithValue(protoMsg) + if err != nil { + return nil + } + + acc.PubKey = any + return nil } @@ -95,6 +120,11 @@ func (acc *BaseAccount) SetSequence(seq uint64) error { // Validate checks for errors on the account fields func (acc BaseAccount) Validate() error { + if acc.PubKey != nil && acc.Address != nil && + !bytes.Equal(acc.GetPubKey().Address().Bytes(), acc.Address.Bytes()) { + return errors.New("account address and pubkey address do not match") + } + return nil } @@ -103,13 +133,6 @@ func (acc BaseAccount) String() string { return out.(string) } -type baseAccountPretty struct { - Address sdk.AccAddress `json:"address" yaml:"address"` - PubKey string `json:"public_key" yaml:"public_key"` - AccountNumber uint64 `json:"account_number" yaml:"account_number"` - Sequence uint64 `json:"sequence" yaml:"sequence"` -} - // MarshalYAML returns the YAML representation of an account. func (acc BaseAccount) MarshalYAML() (interface{}, error) { bz, err := codec.MarshalYAML(codec.NewProtoCodec(codectypes.NewInterfaceRegistry()), acc) diff --git a/x/auth/types/auth.pb.go b/x/auth/types/auth.pb.go index f216413a43b8..ac56b5a2ed94 100644 --- a/x/auth/types/auth.pb.go +++ b/x/auth/types/auth.pb.go @@ -5,6 +5,7 @@ package types import ( fmt "fmt" + types "github.com/cosmos/cosmos-sdk/codec/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" @@ -30,7 +31,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // type for additional functionality (e.g. vesting). type BaseAccount struct { Address github_com_cosmos_cosmos_sdk_types.AccAddress `protobuf:"bytes,1,opt,name=address,proto3,casttype=github.com/cosmos/cosmos-sdk/types.AccAddress" json:"address,omitempty"` - PubKey []byte `protobuf:"bytes,2,opt,name=pub_key,json=pubKey,proto3" json:"public_key,omitempty" yaml:"public_key"` + PubKey *types.Any `protobuf:"bytes,2,opt,name=pub_key,json=pubKey,proto3" json:"public_key,omitempty" yaml:"public_key"` AccountNumber uint64 `protobuf:"varint,3,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty" yaml:"account_number"` Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` } @@ -191,49 +192,50 @@ func init() { func init() { proto.RegisterFile("cosmos/auth/v1beta1/auth.proto", fileDescriptor_7e1f7e915d020d2d) } var fileDescriptor_7e1f7e915d020d2d = []byte{ - // 657 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0xbf, 0x6f, 0xd3, 0x40, - 0x14, 0x8e, 0x9b, 0xd0, 0x1f, 0x97, 0xb6, 0x52, 0xdd, 0xb4, 0x4d, 0x03, 0xf2, 0x59, 0x9e, 0x8a, - 0x44, 0x12, 0xa5, 0xa8, 0x48, 0xcd, 0x80, 0xa8, 0x0b, 0x48, 0x55, 0x69, 0x55, 0xb9, 0x12, 0x03, - 0x8b, 0x39, 0x3b, 0x47, 0x6a, 0x35, 0x97, 0x73, 0x7d, 0xe7, 0x2a, 0xee, 0x5f, 0xc0, 0xc8, 0x84, - 0x18, 0xfb, 0x47, 0xf0, 0x1f, 0xb0, 0x30, 0x56, 0x4c, 0x4c, 0x06, 0xa5, 0x0b, 0x62, 0xf4, 0xc8, - 0x84, 0x7c, 0xe7, 0xa6, 0x4e, 0x15, 0x98, 0x7c, 0xef, 0x7b, 0xdf, 0xf7, 0xbd, 0xe7, 0xf7, 0x74, - 0x07, 0x34, 0x97, 0x32, 0x42, 0x59, 0x13, 0x85, 0xfc, 0xa4, 0x79, 0xde, 0x72, 0x30, 0x47, 0x2d, - 0x11, 0x34, 0xfc, 0x80, 0x72, 0xaa, 0x2e, 0xcb, 0x7c, 0x43, 0x40, 0x59, 0xbe, 0xb6, 0x2e, 0x41, - 0x5b, 0x50, 0x9a, 0x19, 0x43, 0x04, 0xb5, 0x4a, 0x97, 0x76, 0xa9, 0xc4, 0xd3, 0x93, 0x44, 0x8d, - 0x8f, 0x53, 0xa0, 0x6c, 0x22, 0x86, 0x77, 0x5c, 0x97, 0x86, 0x7d, 0xae, 0xee, 0x83, 0x19, 0xd4, - 0xe9, 0x04, 0x98, 0xb1, 0xaa, 0xa2, 0x2b, 0x1b, 0xf3, 0x66, 0xeb, 0x4f, 0x0c, 0xeb, 0x5d, 0x8f, - 0x9f, 0x84, 0x4e, 0xc3, 0xa5, 0x24, 0xf3, 0xcc, 0x3e, 0x75, 0xd6, 0x39, 0x6d, 0xf2, 0xc8, 0xc7, - 0xac, 0xb1, 0xe3, 0xba, 0x3b, 0x52, 0x68, 0xdd, 0x38, 0xa8, 0x2f, 0xc1, 0x8c, 0x1f, 0x3a, 0xf6, - 0x29, 0x8e, 0xaa, 0x53, 0xc2, 0xac, 0xfe, 0x3b, 0x86, 0x15, 0x3f, 0x74, 0x7a, 0x9e, 0x9b, 0xa2, - 0x8f, 0x28, 0xf1, 0x38, 0x26, 0x3e, 0x8f, 0x92, 0x18, 0x2e, 0x45, 0x88, 0xf4, 0xda, 0xc6, 0x6d, - 0xd6, 0xb0, 0xa6, 0xfd, 0xd0, 0xd9, 0xc7, 0x91, 0xfa, 0x0c, 0x2c, 0x22, 0xd9, 0x9f, 0xdd, 0x0f, - 0x89, 0x83, 0x83, 0x6a, 0x51, 0x57, 0x36, 0x4a, 0xe6, 0x7a, 0x12, 0xc3, 0x15, 0x29, 0x1b, 0xcf, - 0x1b, 0xd6, 0x42, 0x06, 0x1c, 0x8a, 0x58, 0xad, 0x81, 0x59, 0x86, 0xcf, 0x42, 0xdc, 0x77, 0x71, - 0xb5, 0x94, 0x6a, 0xad, 0x51, 0xdc, 0xae, 0xbc, 0xbf, 0x84, 0x85, 0x4f, 0x97, 0xb0, 0xf0, 0xed, - 0x73, 0x7d, 0x36, 0x9b, 0xc3, 0x9e, 0xf1, 0x45, 0x01, 0x0b, 0x07, 0xb4, 0x13, 0xf6, 0x46, 0xa3, - 0x79, 0x0b, 0xe6, 0x1d, 0xc4, 0xb0, 0x9d, 0x39, 0x8b, 0xf9, 0x94, 0x37, 0xf5, 0xc6, 0x84, 0x3d, - 0x34, 0x72, 0x23, 0x35, 0xef, 0x5f, 0xc5, 0x50, 0x49, 0x62, 0xb8, 0x2c, 0x3b, 0xcd, 0x7b, 0x18, - 0x56, 0xd9, 0xc9, 0x0d, 0x5f, 0x05, 0xa5, 0x3e, 0x22, 0x58, 0x0c, 0x6b, 0xce, 0x12, 0x67, 0x55, - 0x07, 0x65, 0x1f, 0x07, 0xc4, 0x63, 0xcc, 0xa3, 0x7d, 0x56, 0x2d, 0xea, 0xc5, 0x8d, 0x39, 0x2b, - 0x0f, 0xb5, 0x6b, 0xb9, 0xfe, 0x17, 0xc7, 0x5a, 0xde, 0x33, 0x7e, 0x14, 0xc1, 0xf4, 0x11, 0x0a, - 0x10, 0x61, 0xea, 0x21, 0x58, 0x26, 0x68, 0x60, 0x13, 0x4c, 0xa8, 0xed, 0x9e, 0xa0, 0x00, 0xb9, - 0x1c, 0x07, 0x72, 0xcb, 0x25, 0x53, 0x4b, 0x62, 0x58, 0x93, 0xfd, 0x4d, 0x20, 0x19, 0xd6, 0x12, - 0x41, 0x83, 0x03, 0x4c, 0xe8, 0xee, 0x08, 0x53, 0xb7, 0xc1, 0x3c, 0x1f, 0xd8, 0xcc, 0xeb, 0xda, - 0x3d, 0x8f, 0x78, 0x5c, 0x34, 0x5d, 0x32, 0xd7, 0x6e, 0x7f, 0x34, 0x9f, 0x35, 0x2c, 0xc0, 0x07, - 0xc7, 0x5e, 0xf7, 0x55, 0x1a, 0xa8, 0x16, 0x58, 0x11, 0xc9, 0x0b, 0x6c, 0xbb, 0x94, 0x71, 0xdb, - 0xc7, 0x81, 0xed, 0x44, 0x1c, 0x67, 0x6b, 0xd5, 0x93, 0x18, 0x3e, 0xc8, 0x79, 0xdc, 0xa5, 0x19, - 0xd6, 0x52, 0x6a, 0x76, 0x81, 0x77, 0x29, 0xe3, 0x47, 0x38, 0x30, 0x23, 0x8e, 0xd5, 0x33, 0xb0, - 0x96, 0x56, 0x3b, 0xc7, 0x81, 0xf7, 0x2e, 0x92, 0x7c, 0xdc, 0xd9, 0xdc, 0xda, 0x6a, 0x6d, 0xcb, - 0x85, 0x9b, 0xed, 0x61, 0x0c, 0x2b, 0xc7, 0x5e, 0xf7, 0xb5, 0x60, 0xa4, 0xd2, 0x17, 0xcf, 0x45, - 0x3e, 0x89, 0xa1, 0x26, 0xab, 0xfd, 0xc3, 0xc0, 0xb0, 0x2a, 0x6c, 0x4c, 0x27, 0x61, 0x35, 0x02, - 0xeb, 0x77, 0x15, 0x0c, 0xbb, 0xfe, 0xe6, 0xd6, 0x93, 0xd3, 0x56, 0xf5, 0x9e, 0x28, 0xfa, 0x74, - 0x18, 0xc3, 0xd5, 0xb1, 0xa2, 0xc7, 0x37, 0x8c, 0x24, 0x86, 0xfa, 0xe4, 0xb2, 0x23, 0x13, 0xc3, - 0x5a, 0x65, 0x13, 0xb5, 0xed, 0xd9, 0x74, 0xdf, 0xbf, 0x2e, 0xa1, 0x62, 0xee, 0x7e, 0x1d, 0x6a, - 0xca, 0xd5, 0x50, 0x53, 0x7e, 0x0e, 0x35, 0xe5, 0xc3, 0xb5, 0x56, 0xb8, 0xba, 0xd6, 0x0a, 0xdf, - 0xaf, 0xb5, 0xc2, 0x9b, 0x87, 0xff, 0xbd, 0xb5, 0x03, 0xf9, 0xb0, 0x88, 0xcb, 0xeb, 0x4c, 0x8b, - 0xc7, 0xe0, 0xf1, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x11, 0x68, 0xfa, 0x1e, 0x74, 0x04, 0x00, - 0x00, + // 687 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0x3f, 0x6f, 0xd3, 0x5e, + 0x14, 0x8d, 0x9b, 0xfc, 0xfa, 0xe7, 0xa5, 0xad, 0x54, 0x37, 0x6d, 0x93, 0xfc, 0x90, 0x6d, 0x79, + 0x0a, 0x12, 0x71, 0x94, 0xa0, 0x22, 0x35, 0x03, 0x22, 0x2e, 0x0c, 0x55, 0x69, 0x55, 0xb9, 0x12, + 0x03, 0x42, 0x32, 0xcf, 0xce, 0xab, 0x6b, 0x35, 0x2f, 0xcf, 0xf5, 0x7b, 0xae, 0xe2, 0x7e, 0x02, + 0x46, 0x46, 0xc6, 0x7e, 0x00, 0x46, 0xbe, 0x01, 0x0b, 0x63, 0xc5, 0xc4, 0x64, 0x50, 0xba, 0x20, + 0xc6, 0x8c, 0x4c, 0xc8, 0xef, 0xb9, 0x69, 0x52, 0x05, 0xa6, 0xbc, 0x7b, 0xce, 0xb9, 0xf7, 0x9e, + 0xdc, 0xab, 0x6b, 0xa0, 0xb8, 0x84, 0x62, 0x42, 0x1b, 0x30, 0x62, 0xa7, 0x8d, 0x8b, 0xa6, 0x83, + 0x18, 0x6c, 0xf2, 0xc0, 0x08, 0x42, 0xc2, 0x88, 0xbc, 0x2e, 0x78, 0x83, 0x43, 0x19, 0x5f, 0xad, + 0x08, 0xd0, 0xe6, 0x92, 0x46, 0xa6, 0xe0, 0x41, 0xb5, 0xe4, 0x11, 0x8f, 0x08, 0x3c, 0x7d, 0x65, + 0x68, 0xc5, 0x23, 0xc4, 0xeb, 0xa1, 0x06, 0x8f, 0x9c, 0xe8, 0xa4, 0x01, 0xfb, 0xb1, 0xa0, 0xf4, + 0x8f, 0x73, 0xa0, 0x68, 0x42, 0x8a, 0x3a, 0xae, 0x4b, 0xa2, 0x3e, 0x93, 0xf7, 0xc1, 0x02, 0xec, + 0x76, 0x43, 0x44, 0x69, 0x59, 0xd2, 0xa4, 0xda, 0xb2, 0xd9, 0xfc, 0x9d, 0xa8, 0x75, 0xcf, 0x67, + 0xa7, 0x91, 0x63, 0xb8, 0x04, 0x67, 0xed, 0xb2, 0x9f, 0x3a, 0xed, 0x9e, 0x35, 0x58, 0x1c, 0x20, + 0x6a, 0x74, 0x5c, 0xb7, 0x23, 0x12, 0xad, 0xdb, 0x0a, 0xf2, 0x1b, 0xb0, 0x10, 0x44, 0x8e, 0x7d, + 0x86, 0xe2, 0xf2, 0x9c, 0x26, 0xd5, 0x8a, 0xad, 0x92, 0x21, 0x9c, 0x18, 0xb7, 0x4e, 0x8c, 0x4e, + 0x3f, 0x36, 0xeb, 0xbf, 0x12, 0xb5, 0x14, 0x44, 0x4e, 0xcf, 0x77, 0x53, 0xed, 0x23, 0x82, 0x7d, + 0x86, 0x70, 0xc0, 0xe2, 0x51, 0xa2, 0xae, 0xc5, 0x10, 0xf7, 0xda, 0xfa, 0x1d, 0xab, 0x5b, 0xf3, + 0x41, 0xe4, 0xec, 0xa3, 0x58, 0x7e, 0x06, 0x56, 0xa1, 0x70, 0x6d, 0xf7, 0x23, 0xec, 0xa0, 0xb0, + 0x9c, 0xd7, 0xa4, 0x5a, 0xc1, 0xac, 0x8c, 0x12, 0x75, 0x43, 0xa4, 0x4d, 0xf3, 0xba, 0xb5, 0x92, + 0x01, 0x87, 0x3c, 0x96, 0xab, 0x60, 0x91, 0xa2, 0xf3, 0x08, 0xf5, 0x5d, 0x54, 0x2e, 0xa4, 0xb9, + 0xd6, 0x38, 0x6e, 0x97, 0xde, 0x5d, 0xa9, 0xb9, 0x0f, 0x57, 0x6a, 0xee, 0xeb, 0xa7, 0xfa, 0x62, + 0x36, 0x9d, 0x3d, 0xfd, 0xb3, 0x04, 0x56, 0x0e, 0x48, 0x37, 0xea, 0x8d, 0x07, 0xf6, 0x16, 0x2c, + 0x3b, 0x90, 0x22, 0x3b, 0xab, 0xcc, 0xa7, 0x56, 0x6c, 0x69, 0xc6, 0x8c, 0xc5, 0x19, 0x13, 0x83, + 0x36, 0xff, 0xbf, 0x4e, 0x54, 0x69, 0x94, 0xa8, 0xeb, 0xc2, 0xe9, 0x64, 0x0d, 0xdd, 0x2a, 0x3a, + 0x13, 0x2b, 0x91, 0x41, 0xa1, 0x0f, 0x31, 0xe2, 0x23, 0x5c, 0xb2, 0xf8, 0x5b, 0xd6, 0x40, 0x31, + 0x40, 0x21, 0xf6, 0x29, 0xf5, 0x49, 0x9f, 0x96, 0xf3, 0x5a, 0xbe, 0xb6, 0x64, 0x4d, 0x42, 0xed, + 0xea, 0x84, 0xff, 0xd5, 0x29, 0xcb, 0x7b, 0xfa, 0xf7, 0x3c, 0x98, 0x3f, 0x82, 0x21, 0xc4, 0x54, + 0x3e, 0x04, 0xeb, 0x18, 0x0e, 0x6c, 0x8c, 0x30, 0xb1, 0xdd, 0x53, 0x18, 0x42, 0x97, 0xa1, 0x50, + 0xec, 0xbe, 0x60, 0x2a, 0xa3, 0x44, 0xad, 0x0a, 0x7f, 0x33, 0x44, 0xba, 0xb5, 0x86, 0xe1, 0xe0, + 0x00, 0x61, 0xb2, 0x3b, 0xc6, 0xe4, 0x1d, 0xb0, 0xcc, 0x06, 0x36, 0xf5, 0x3d, 0xbb, 0xe7, 0x63, + 0x9f, 0x71, 0xd3, 0x05, 0x73, 0xeb, 0xee, 0x8f, 0x4e, 0xb2, 0xba, 0x05, 0xd8, 0xe0, 0xd8, 0xf7, + 0x5e, 0xa6, 0x81, 0x6c, 0x81, 0x0d, 0x4e, 0x5e, 0x22, 0xdb, 0x25, 0x94, 0xd9, 0x01, 0x0a, 0x6d, + 0x27, 0x66, 0x28, 0x5b, 0xab, 0x36, 0x4a, 0xd4, 0x07, 0x13, 0x35, 0xee, 0xcb, 0x74, 0x6b, 0x2d, + 0x2d, 0x76, 0x89, 0x76, 0x09, 0x65, 0x47, 0x28, 0x34, 0x63, 0x86, 0xe4, 0x73, 0xb0, 0x95, 0x76, + 0xbb, 0x40, 0xa1, 0x7f, 0x12, 0x0b, 0x3d, 0xea, 0xb6, 0xb6, 0xb7, 0x9b, 0x3b, 0x62, 0xe1, 0x66, + 0x7b, 0x98, 0xa8, 0xa5, 0x63, 0xdf, 0x7b, 0xc5, 0x15, 0x69, 0xea, 0x8b, 0xe7, 0x9c, 0x1f, 0x25, + 0xaa, 0x22, 0xba, 0xfd, 0xa5, 0x80, 0x6e, 0x95, 0xe8, 0x54, 0x9e, 0x80, 0xe5, 0x18, 0x54, 0xee, + 0x67, 0x50, 0xe4, 0x06, 0xad, 0xed, 0x27, 0x67, 0xcd, 0xf2, 0x7f, 0xbc, 0xe9, 0xd3, 0x61, 0xa2, + 0x6e, 0x4e, 0x35, 0x3d, 0xbe, 0x55, 0x8c, 0x12, 0x55, 0x9b, 0xdd, 0x76, 0x5c, 0x44, 0xb7, 0x36, + 0xe9, 0xcc, 0xdc, 0xf6, 0x62, 0xba, 0xef, 0x9f, 0x57, 0xaa, 0x64, 0xee, 0x7e, 0x19, 0x2a, 0xd2, + 0xf5, 0x50, 0x91, 0x7e, 0x0c, 0x15, 0xe9, 0xfd, 0x8d, 0x92, 0xbb, 0xbe, 0x51, 0x72, 0xdf, 0x6e, + 0x94, 0xdc, 0xeb, 0x87, 0xff, 0xbc, 0xe5, 0x81, 0xf8, 0x12, 0xf1, 0x93, 0x76, 0xe6, 0xf9, 0x95, + 0x3e, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0x5d, 0x49, 0xdd, 0xa9, 0xa5, 0x04, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -302,10 +304,15 @@ func (m *BaseAccount) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x18 } - if len(m.PubKey) > 0 { - i -= len(m.PubKey) - copy(dAtA[i:], m.PubKey) - i = encodeVarintAuth(dAtA, i, uint64(len(m.PubKey))) + if m.PubKey != nil { + { + size, err := m.PubKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintAuth(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x12 } @@ -439,8 +446,8 @@ func (m *BaseAccount) Size() (n int) { if l > 0 { n += 1 + l + sovAuth(uint64(l)) } - l = len(m.PubKey) - if l > 0 { + if m.PubKey != nil { + l = m.PubKey.Size() n += 1 + l + sovAuth(uint64(l)) } if m.AccountNumber != 0 { @@ -572,7 +579,7 @@ func (m *BaseAccount) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field PubKey", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowAuth @@ -582,24 +589,26 @@ func (m *BaseAccount) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthAuth } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthAuth } if postIndex > l { return io.ErrUnexpectedEOF } - m.PubKey = append(m.PubKey[:0], dAtA[iNdEx:postIndex]...) if m.PubKey == nil { - m.PubKey = []byte{} + m.PubKey = &types.Any{} + } + if err := m.PubKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex case 3: From a6c6d5c5604ebff35ee0600a27a99119bd6de0bf Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Mon, 17 Aug 2020 11:54:27 -0400 Subject: [PATCH 6/7] Docs --- codec/yaml.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/codec/yaml.go b/codec/yaml.go index 9ddec8d3080f..20a9564ba48f 100644 --- a/codec/yaml.go +++ b/codec/yaml.go @@ -6,6 +6,8 @@ import ( "gopkg.in/yaml.v2" ) +// MarshalYAML marshals the provided toPrint content with the provided JSON marshaler +// by encoding JSON, decoding JSON, and then encoding YAML. func MarshalYAML(jsonMarshaler JSONMarshaler, toPrint interface{}) ([]byte, error) { bz, err := jsonMarshaler.MarshalJSON(toPrint) if err != nil { From 8138eca5e72bb68f91c68336100b9a510da38eb9 Mon Sep 17 00:00:00 2001 From: Amaury Martiny Date: Wed, 26 Aug 2020 15:05:27 +0200 Subject: [PATCH 7/7] Fix MarshalYaml --- client/context.go | 11 ++++------- codec/yaml.go | 13 ++++--------- codec/yaml_test.go | 6 +++--- x/auth/types/account.go | 3 ++- 4 files changed, 13 insertions(+), 20 deletions(-) diff --git a/client/context.go b/client/context.go index dad5f56b57b8..27159c85df08 100644 --- a/client/context.go +++ b/client/context.go @@ -229,13 +229,10 @@ func (ctx Context) PrintOutputLegacy(toPrint interface{}) error { } func (ctx Context) printOutput(out []byte) error { + var err error + if ctx.OutputFormat == "text" { - out, err = codec.MarshalYAML(ctx.JSONMarshaler, toPrint) - if err != nil { - return err - } - } else { - out, err = ctx.JSONMarshaler.MarshalJSON(toPrint) + out, err = codec.MarshalYAML(out) if err != nil { return err } @@ -246,7 +243,7 @@ func (ctx Context) printOutput(out []byte) error { writer = os.Stdout } - _, err := writer.Write(out) + _, err = writer.Write(out) if err != nil { return err } diff --git a/codec/yaml.go b/codec/yaml.go index 20a9564ba48f..39fbae4d2c2a 100644 --- a/codec/yaml.go +++ b/codec/yaml.go @@ -6,18 +6,13 @@ import ( "gopkg.in/yaml.v2" ) -// MarshalYAML marshals the provided toPrint content with the provided JSON marshaler -// by encoding JSON, decoding JSON, and then encoding YAML. -func MarshalYAML(jsonMarshaler JSONMarshaler, toPrint interface{}) ([]byte, error) { - bz, err := jsonMarshaler.MarshalJSON(toPrint) - if err != nil { - return nil, err - } - +// MarshalYAML marshals the provided bytes content by decoding the bytes to +// JSON, and then encoding YAML. +func MarshalYAML(bz []byte) ([]byte, error) { // generate YAML by decoding and re-encoding JSON as YAML var j interface{} - err = json.Unmarshal(bz, &j) + err := json.Unmarshal(bz, &j) if err != nil { return nil, err } diff --git a/codec/yaml_test.go b/codec/yaml_test.go index fc9488997cb1..70fbf5c73fd6 100644 --- a/codec/yaml_test.go +++ b/codec/yaml_test.go @@ -25,7 +25,7 @@ func TestMarshalYAML(t *testing.T) { // proto protoCdc := codec.NewProtoCodec(NewTestInterfaceRegistry()) - bz, err := codec.MarshalYAML(protoCdc, hasAnimal) + bz, err := codec.MarshalYAML(protoCdc.MustMarshalJSON(hasAnimal)) require.NoError(t, err) require.Equal(t, `animal: '@type': /testdata.Dog @@ -35,8 +35,8 @@ x: "0" `, string(bz)) // amino - aminoCdc := &codec.Codec{testdata.NewTestAmino()} - bz, err = codec.MarshalYAML(aminoCdc, hasAnimal) + aminoCdc := &codec.LegacyAmino{testdata.NewTestAmino()} + bz, err = codec.MarshalYAML(aminoCdc.MustMarshalJSON(hasAnimal)) require.NoError(t, err) require.Equal(t, `type: testdata/HasAnimal value: diff --git a/x/auth/types/account.go b/x/auth/types/account.go index 79c3fc28692d..29d8c0a43211 100644 --- a/x/auth/types/account.go +++ b/x/auth/types/account.go @@ -135,7 +135,8 @@ func (acc BaseAccount) String() string { // MarshalYAML returns the YAML representation of an account. func (acc BaseAccount) MarshalYAML() (interface{}, error) { - bz, err := codec.MarshalYAML(codec.NewProtoCodec(codectypes.NewInterfaceRegistry()), acc) + protoCdc := codec.NewProtoCodec(codectypes.NewInterfaceRegistry()) + bz, err := codec.MarshalYAML(protoCdc.MustMarshalJSON(&acc)) if err != nil { return nil, err }