From 71b21db0d9e846ceae006aa764c4e82240a62afa Mon Sep 17 00:00:00 2001 From: zenground0 Date: Fri, 3 Mar 2023 11:14:52 -0500 Subject: [PATCH 1/6] chain prune hot -- hotstore online gc --- api/api_full.go | 11 +++- api/mocks/mock_full.go | 14 +++++ api/proxy_gen.go | 13 ++++ api/v0api/gomock_reflect_637439595/prog.go | 64 ++++++++++++++++++++ api/version.go | 2 +- blockstore/badger/blockstore.go | 60 ++++++++++++++++-- blockstore/badger/blockstore_test.go | 4 +- blockstore/blockstore.go | 16 ++++- blockstore/splitstore/splitstore_compact.go | 2 +- blockstore/splitstore/splitstore_gc.go | 20 +++++- blockstore/splitstore/splitstore_prune.go | 13 ++++ build/openrpc/full.json.gz | Bin 33490 -> 33602 bytes build/openrpc/gateway.json.gz | Bin 8480 -> 8480 bytes build/openrpc/miner.json.gz | Bin 16042 -> 16043 bytes build/openrpc/worker.json.gz | Bin 5226 -> 5225 bytes cli/chain.go | 33 +++++++++- documentation/en/api-v1-unstable-methods.md | 22 ++++++- documentation/en/cli-lotus.md | 38 +++++++++++- node/impl/full/chain.go | 11 ++++ 19 files changed, 305 insertions(+), 18 deletions(-) create mode 100644 api/v0api/gomock_reflect_637439595/prog.go diff --git a/api/api_full.go b/api/api_full.go index 99955e537..a3ff77978 100644 --- a/api/api_full.go +++ b/api/api_full.go @@ -183,10 +183,14 @@ type FullNode interface { // nodes. ChainExportRangeInternal(ctx context.Context, head, tail types.TipSetKey, cfg ChainExportConfig) error //perm:admin - // ChainPrune prunes the stored chain state and garbage collects; only supported if you + // ChainPrune forces compaction on cold store and garbage collects; only supported if you // are using the splitstore ChainPrune(ctx context.Context, opts PruneOpts) error //perm:admin + // ChainHotGC does online (badger) GC on the hot store; only supported if you are using + // the splitstore + ChainHotGC(ctx context.Context, opts HotGCOpts) error //perm:admin + // ChainCheckBlockstore performs an (asynchronous) health check on the chain/state blockstore // if supported by the underlying implementation. ChainCheckBlockstore(context.Context) error //perm:admin @@ -1354,6 +1358,11 @@ type PruneOpts struct { RetainState int64 } +type HotGCOpts struct { + Threshold float64 + Periodic bool +} + type EthTxReceipt struct { TransactionHash ethtypes.EthHash `json:"transactionHash"` TransactionIndex ethtypes.EthUint64 `json:"transactionIndex"` diff --git a/api/mocks/mock_full.go b/api/mocks/mock_full.go index 87da67179..7567c7171 100644 --- a/api/mocks/mock_full.go +++ b/api/mocks/mock_full.go @@ -394,6 +394,20 @@ func (mr *MockFullNodeMockRecorder) ChainHead(arg0 interface{}) *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChainHead", reflect.TypeOf((*MockFullNode)(nil).ChainHead), arg0) } +// ChainHotGC mocks base method. +func (m *MockFullNode) ChainHotGC(arg0 context.Context, arg1 api.HotGCOpts) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ChainHotGC", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// ChainHotGC indicates an expected call of ChainHotGC. +func (mr *MockFullNodeMockRecorder) ChainHotGC(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChainHotGC", reflect.TypeOf((*MockFullNode)(nil).ChainHotGC), arg0, arg1) +} + // ChainNotify mocks base method. func (m *MockFullNode) ChainNotify(arg0 context.Context) (<-chan []*api.HeadChange, error) { m.ctrl.T.Helper() diff --git a/api/proxy_gen.go b/api/proxy_gen.go index b5163f558..17be4088d 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -172,6 +172,8 @@ type FullNodeMethods struct { ChainHead func(p0 context.Context) (*types.TipSet, error) `perm:"read"` + ChainHotGC func(p0 context.Context, p1 HotGCOpts) error `perm:"admin"` + ChainNotify func(p0 context.Context) (<-chan []*HeadChange, error) `perm:"read"` ChainPrune func(p0 context.Context, p1 PruneOpts) error `perm:"admin"` @@ -1617,6 +1619,17 @@ func (s *FullNodeStub) ChainHead(p0 context.Context) (*types.TipSet, error) { return nil, ErrNotSupported } +func (s *FullNodeStruct) ChainHotGC(p0 context.Context, p1 HotGCOpts) error { + if s.Internal.ChainHotGC == nil { + return ErrNotSupported + } + return s.Internal.ChainHotGC(p0, p1) +} + +func (s *FullNodeStub) ChainHotGC(p0 context.Context, p1 HotGCOpts) error { + return ErrNotSupported +} + func (s *FullNodeStruct) ChainNotify(p0 context.Context) (<-chan []*HeadChange, error) { if s.Internal.ChainNotify == nil { return nil, ErrNotSupported diff --git a/api/v0api/gomock_reflect_637439595/prog.go b/api/v0api/gomock_reflect_637439595/prog.go new file mode 100644 index 000000000..39ca2319d --- /dev/null +++ b/api/v0api/gomock_reflect_637439595/prog.go @@ -0,0 +1,64 @@ +package main + +import ( + "encoding/gob" + "flag" + "fmt" + "os" + "path" + "reflect" + + "github.com/golang/mock/mockgen/model" + + pkg_ "github.com/filecoin-project/lotus/api/v0api" +) + +var output = flag.String("output", "", "The output file name, or empty to use stdout.") + +func main() { + flag.Parse() + + its := []struct { + sym string + typ reflect.Type + }{ + + {"FullNode", reflect.TypeOf((*pkg_.FullNode)(nil)).Elem()}, + } + pkg := &model.Package{ + // NOTE: This behaves contrary to documented behaviour if the + // package name is not the final component of the import path. + // The reflect package doesn't expose the package name, though. + Name: path.Base("github.com/filecoin-project/lotus/api/v0api"), + } + + for _, it := range its { + intf, err := model.InterfaceFromInterfaceType(it.typ) + if err != nil { + fmt.Fprintf(os.Stderr, "Reflection: %v\n", err) + os.Exit(1) + } + intf.Name = it.sym + pkg.Interfaces = append(pkg.Interfaces, intf) + } + + outfile := os.Stdout + if len(*output) != 0 { + var err error + outfile, err = os.Create(*output) + if err != nil { + fmt.Fprintf(os.Stderr, "failed to open output file %q", *output) + } + defer func() { + if err := outfile.Close(); err != nil { + fmt.Fprintf(os.Stderr, "failed to close output file %q", *output) + os.Exit(1) + } + }() + } + + if err := gob.NewEncoder(outfile).Encode(pkg); err != nil { + fmt.Fprintf(os.Stderr, "gob encode: %v\n", err) + os.Exit(1) + } +} diff --git a/api/version.go b/api/version.go index 9c2113578..dc03c4a97 100644 --- a/api/version.go +++ b/api/version.go @@ -55,7 +55,7 @@ func VersionForType(nodeType NodeType) (Version, error) { // semver versions of the rpc api exposed var ( FullAPIVersion0 = newVer(1, 5, 0) - FullAPIVersion1 = newVer(2, 3, 0) + FullAPIVersion1 = newVer(2, 4, 0) MinerAPIVersion0 = newVer(1, 5, 0) WorkerAPIVersion0 = newVer(1, 7, 0) diff --git a/blockstore/badger/blockstore.go b/blockstore/badger/blockstore.go index da4f9f67d..3087c01f7 100644 --- a/blockstore/badger/blockstore.go +++ b/blockstore/badger/blockstore.go @@ -20,6 +20,7 @@ import ( pool "github.com/libp2p/go-buffer-pool" "github.com/multiformats/go-base32" "go.uber.org/zap" + "golang.org/x/xerrors" "github.com/filecoin-project/lotus/blockstore" ) @@ -44,7 +45,8 @@ const ( // MemoryMap is equivalent to badger/options.MemoryMap. MemoryMap = options.MemoryMap // LoadToRAM is equivalent to badger/options.LoadToRAM. - LoadToRAM = options.LoadToRAM + LoadToRAM = options.LoadToRAM + defaultGCThreshold = 0.125 ) // Options embeds the badger options themselves, and augments them with @@ -439,7 +441,7 @@ func (b *Blockstore) deleteDB(path string) { } } -func (b *Blockstore) onlineGC() error { +func (b *Blockstore) onlineGC(ctx context.Context, threshold float64) error { b.lockDB() defer b.unlockDB() @@ -448,6 +450,9 @@ func (b *Blockstore) onlineGC() error { if nworkers < 2 { nworkers = 2 } + if nworkers > 7 { // max out at 1 goroutine per badger level + nworkers = 7 + } err := b.db.Flatten(nworkers) if err != nil { @@ -455,7 +460,12 @@ func (b *Blockstore) onlineGC() error { } for err == nil { - err = b.db.RunValueLogGC(0.125) + select { + case <-ctx.Done(): + err = ctx.Err() + default: + err = b.db.RunValueLogGC(threshold) + } } if err == badger.ErrNoRewrite { @@ -468,7 +478,7 @@ func (b *Blockstore) onlineGC() error { // CollectGarbage compacts and runs garbage collection on the value log; // implements the BlockstoreGC trait -func (b *Blockstore) CollectGarbage(opts ...blockstore.BlockstoreGCOption) error { +func (b *Blockstore) CollectGarbage(ctx context.Context, opts ...blockstore.BlockstoreGCOption) error { if err := b.access(); err != nil { return err } @@ -485,8 +495,48 @@ func (b *Blockstore) CollectGarbage(opts ...blockstore.BlockstoreGCOption) error if options.FullGC { return b.movingGC() } + threshold := options.Threshold + if threshold == 0 { + threshold = defaultGCThreshold + } + return b.onlineGC(ctx, threshold) +} - return b.onlineGC() +// GCOnce runs garbage collection on the value log; +// implements BlockstoreGCOnce trait +func (b *Blockstore) GCOnce(ctx context.Context, opts ...blockstore.BlockstoreGCOption) error { + if err := b.access(); err != nil { + return err + } + defer b.viewers.Done() + + var options blockstore.BlockstoreGCOptions + for _, opt := range opts { + err := opt(&options) + if err != nil { + return err + } + } + if options.FullGC { + return xerrors.Errorf("FullGC option specified for GCOnce but full GC is non incremental") + } + + threshold := options.Threshold + if threshold == 0 { + threshold = defaultGCThreshold + } + + b.lockDB() + defer b.unlockDB() + + // Note no compaction needed before single GC as we will hit at most one vlog anyway + err := b.db.RunValueLogGC(threshold) + if err == badger.ErrNoRewrite { + // not really an error in this case, it signals the end of GC + return nil + } + + return err } // Size returns the aggregate size of the blockstore diff --git a/blockstore/badger/blockstore_test.go b/blockstore/badger/blockstore_test.go index fc81be43e..bf85104bb 100644 --- a/blockstore/badger/blockstore_test.go +++ b/blockstore/badger/blockstore_test.go @@ -145,7 +145,7 @@ func testMove(t *testing.T, optsF func(string) Options) { return nil }) g.Go(func() error { - return db.CollectGarbage(blockstore.WithFullGC(true)) + return db.CollectGarbage(ctx, blockstore.WithFullGC(true)) }) err = g.Wait() @@ -230,7 +230,7 @@ func testMove(t *testing.T, optsF func(string) Options) { checkPath() // now do another FullGC to test the double move and following of symlinks - if err := db.CollectGarbage(blockstore.WithFullGC(true)); err != nil { + if err := db.CollectGarbage(ctx, blockstore.WithFullGC(true)); err != nil { t.Fatal(err) } diff --git a/blockstore/blockstore.go b/blockstore/blockstore.go index f2fb00e8a..be1f1199f 100644 --- a/blockstore/blockstore.go +++ b/blockstore/blockstore.go @@ -36,7 +36,12 @@ type BlockstoreIterator interface { // BlockstoreGC is a trait for blockstores that support online garbage collection type BlockstoreGC interface { - CollectGarbage(options ...BlockstoreGCOption) error + CollectGarbage(ctx context.Context, options ...BlockstoreGCOption) error +} + +// BlockstoreGCOnce is a trait for a blockstore that supports incremental online garbage collection +type BlockstoreGCOnce interface { + GCOnce(ctx context.Context, options ...BlockstoreGCOption) error } // BlockstoreGCOption is a functional interface for controlling blockstore GC options @@ -45,6 +50,8 @@ type BlockstoreGCOption = func(*BlockstoreGCOptions) error // BlockstoreGCOptions is a struct with GC options type BlockstoreGCOptions struct { FullGC bool + // fraction of garbage in badger vlog before its worth processing in online GC + Threshold float64 } func WithFullGC(fullgc bool) BlockstoreGCOption { @@ -54,6 +61,13 @@ func WithFullGC(fullgc bool) BlockstoreGCOption { } } +func WithThreshold(threshold float64) BlockstoreGCOption { + return func(opts *BlockstoreGCOptions) error { + opts.Threshold = threshold + return nil + } +} + // BlockstoreSize is a trait for on-disk blockstores that can report their size type BlockstoreSize interface { Size() (int64, error) diff --git a/blockstore/splitstore/splitstore_compact.go b/blockstore/splitstore/splitstore_compact.go index cb24a3991..59bdd515d 100644 --- a/blockstore/splitstore/splitstore_compact.go +++ b/blockstore/splitstore/splitstore_compact.go @@ -794,7 +794,7 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error { // we are done; do some housekeeping s.endTxnProtect() - s.gcHotstore() + s.gcHotAfterCompaction() err = s.setBaseEpoch(boundaryEpoch) if err != nil { diff --git a/blockstore/splitstore/splitstore_gc.go b/blockstore/splitstore/splitstore_gc.go index c9be94d2e..3b53b8042 100644 --- a/blockstore/splitstore/splitstore_gc.go +++ b/blockstore/splitstore/splitstore_gc.go @@ -7,7 +7,7 @@ import ( bstore "github.com/filecoin-project/lotus/blockstore" ) -func (s *SplitStore) gcHotstore() { +func (s *SplitStore) gcHotAfterCompaction() { var opts []bstore.BlockstoreGCOption if s.cfg.HotStoreFullGCFrequency > 0 && s.compactionIndex%int64(s.cfg.HotStoreFullGCFrequency) == 0 { opts = append(opts, bstore.WithFullGC(true)) @@ -23,7 +23,7 @@ func (s *SplitStore) gcBlockstore(b bstore.Blockstore, opts []bstore.BlockstoreG log.Info("garbage collecting blockstore") startGC := time.Now() - if err := gc.CollectGarbage(opts...); err != nil { + if err := gc.CollectGarbage(s.ctx, opts...); err != nil { return err } @@ -33,3 +33,19 @@ func (s *SplitStore) gcBlockstore(b bstore.Blockstore, opts []bstore.BlockstoreG return fmt.Errorf("blockstore doesn't support garbage collection: %T", b) } + +func (s *SplitStore) gcBlockstoreOnce(b bstore.Blockstore, opts []bstore.BlockstoreGCOption) error { + if gc, ok := b.(bstore.BlockstoreGCOnce); ok { + log.Debug("gc blockstore once") + startGC := time.Now() + + if err := gc.GCOnce(s.ctx, opts...); err != nil { + return err + } + + log.Debugw("gc blockstore once done", "took", time.Since(startGC)) + return nil + } + + return fmt.Errorf("blockstore doesn't support gc once: %T", b) +} diff --git a/blockstore/splitstore/splitstore_prune.go b/blockstore/splitstore/splitstore_prune.go index 4a38045e8..2ff5e435f 100644 --- a/blockstore/splitstore/splitstore_prune.go +++ b/blockstore/splitstore/splitstore_prune.go @@ -47,6 +47,19 @@ var ( PruneThreshold = 7 * build.Finality ) +// GCHotstore runs online GC on the chain state in the hotstore according the to options specified +func (s *SplitStore) GCHotStore(opts api.HotGCOpts) error { + gcOpts := []bstore.BlockstoreGCOption{bstore.WithThreshold(opts.Threshold)} + + var err error + if opts.Periodic { + err = s.gcBlockstore(s.hot, gcOpts) + } else { + err = s.gcBlockstoreOnce(s.hot, gcOpts) + } + return err +} + // PruneChain instructs the SplitStore to prune chain state in the coldstore, according to the // options specified. func (s *SplitStore) PruneChain(opts api.PruneOpts) error { diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 9f3cec62820512793813f9de645be73b91bb7069..0b63bc6b992e59adba09f600b184e74c9a933f7b 100644 GIT binary patch delta 31268 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 delta 31111 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

* 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 delta 12482 zcmV;zFg?$!eX4!15ds448fY`~!@K)Gx> z!~37;Eh2ALbWOO)V`6Ln1Y4#2nd+c`NqvabxidS4d=^ck18tk$dw@}J@4o>v|JB^3 zE3o1-1|aW-H=_6Ar)11)a^)Zs&o=;ySpm=k*GB)^NPwHKZ99Ou4?Zoi2jqSW$l-9( ze_kQag9`*s&Q7lhBo?qJ@&KU>+(XR3oVsBX^nlDYU*&7kmbgi-t)95)Kb@rU=^}%7 z^t?p22tp#1SNBV7e=Y$g7Um-stG>1wHu>8<2b#CY3VY#m_Y>fR z0KrGzY6-pNep2*(GhXxchV#vE_7$24j_y5cIo*ulXv$_I?-s3`|I&xQo%M#Uod3>N zbF`U{#&bMcZ>H-t8V~Qr#$!xsdd$US@tsS}gOOTlzC{Ghv5BF(X+w7AgKJfSf97}7 zvK%cOPrfuQz%LN2O9W<7D?sO*@P$y-k-43S?L=%RVs}f#9*)%__GF37+Y6W8!I@o8 zswN;53DQfnz#KnhUC=9b;Zi#90cQxl+<1(-cn(eE?>;Wk{3q~g1)VR^jzn%MZscMV ziQfc11roOad?hKI9zP#1AJ=wwf1B$0+}f6{{zfet#W2&Wa^j96XxjhjiWpC>tR5HVAHj$NnkEj; zkOGwR9e=AMZN!os5Bj5Ff6ox#o=Bb0hLKtE94g*@p$(rBay@?#_4LGdEDneLX`wg_ zY^K`6Pyomigq|P)JN}z+FOO(G?M~6wXLIK3PIc z-Z|7<_JA|yj|gJ-)VwH?n zs%~x+7pliBgX_7H-roQ7pGIQE>KFhSb>Do5BjpeyVYNjIX3!tBV8V=514xP1?G2*# zURq`FACxit|r9&Tlym|AsRxzma@m6O*gEPox6QtfFDcgpBgA>K!Sf^M@+=Dfv`(4^O3NSyL~RsQ zQ1(fL^5ZKKotol@2MDzgn8|09SjZJY7M_Tcz{mo8`T?KBeeh|Cu1OdQAqc|*Yzdk8 zL@djmjJCiYaMy%jvJhbv{QWgK|NYbFtAGEzeRJ~b=ZpWmeRK8hKNoL4{Q?lV!!9K& zzK_0xE*7Vw9%6t|;L#NV4rI%oI9um^T@&6Je-=aXeu)S$p>6XX6T`%wzyK2&I|4oV zZELX@6%L5}w%`uhYh=_t$5-j(-`2LRu%*PqnC%tXO}71=Gxz97&D^JO;W6r>50h;P zxdF+uCkn>_0g#jL3w{BZlWq(~eMO7Bk_92|qx0t?5Wwa3Fr6m^(5jz-p1wt{30ZF?jAe^r+MmHZ{m zEXU6-==kWn=A%JQ%EKvwws%5_hb`p(KA+o|pv%CuCtlWLs#36O@5+o)yKsk73Rlf* zav`d)oX!BYQiYFCL1xbVhvh88=`zMB!Fkp9O}xXLNLAG$`PA4h>BfP!N4RmQTO`{Q z@*UAW4bhHrLZFgMM7APuD-}@NAX^34tm^WA9Kk2w>QxMIsY5+zr;8W0Qy(R&nB|ve3Ty;{qEFl> zHb#UQ$3dxmk@t7UEsFTFb2vk`9Lp7hZYl}&9kG%Rd@8zdv578_>%TPmG3Y1M7Js4B z924KeP7>?`OL|haUUvSezMCXxPwOCLaY;aAHHeGLHKVYQDr5uS$ZgKjBp` z?a0ngRS3~C>7;-9OJ22;`Zc&>XT_@6cr>`6-Jy4wUUCB98tB`Bm)=Z;v_MZ z{8NEOvmB*Y)hNxNT3^MORHuE4gMaH32YvbBKI48~xDVHol1H)i)~4pI-N-D+fXcHG zH0r{u0Tvnyb*jSW;=LuSA+HR1{LPcq`M6Qm%X&fEqs->vg)#OZFARuN^%Y`UieM;% zoadC_s;SHkQ3kse=Y+-pwtfZH)40gGo$&c&JS>Xx$*Dgh_;*(7%e9jm+?Ryin&$chm|yD=>#fLme{{m_>B zOp=3s$09F>MGlK%zOE2!(SKX5f|h?fNmzZLlp{2q*45cSh3(d9zjI9QvSYfF8RwJn zQBJs>DASDGH-ykNG0_{lfy*KXmhylrS3=|fX(}J`aZ^i%JTzpf5ieG!%=N1kiNYh$ zwq;2-1T5aZd6l9cjZ!E5oRF;4iYQ}>YEUVMQ(8?&ms&ZnmMPW8FMnT$sZa>0G)bYN z8V&>m-3#Ib_s|0_G7-K*R_~g4qB7S8n2-RA-V>Wb3t;92WgNQ@)bBq8wUaRClgS__ z)I)|NoBbZ+|yX2r*9z`ULzFc=fa5 ztD;!A!tT`4k6^n>7+l$a@=dg2+=AN29_4^yelNfC4c`x*XB|TGd1BKk>|mMVkLg(*24vAGBv>z2uc-q zmod2TFShmn`tr^AO;Ts7`%^{QSNKw1fn$Bb;>&)&KY!R0|9tBAkHtU#HhP91XkOgt zoGv65=X8vm;-RjyF2q=y)T|8x?QkSE-qL7uO{?rpl## zr+O(RG0IaEjg9eFe&N`7qE?EDDj*!=s%p7Y3GT_}1;u$u^)_T6#qeW1q^_vzb3>Ke z(!-BxQGY|6ajIreC0J519?47f5EJaDfSKUH_AiB$vgfJ$%}X^~dwM(Dn5&w5fuqHX>w?dDUE8@vgyQeCyqOD+==5(96z}@ zR^=dn&z{&(PQsOR7JfkNjd$C?@hSnRlZ$`$?|<}@mn!XF;ROi;2H$wMg_Z*En8cgv&*b!Icx0 z6?t$lM=Gf1f&TuD@;x{gZFoVToVjntC&5R^6eNE+$#j&Hs3dvx9D9kFm?mLH8Cdx@Fh`Aik4L!$lYw4xGis)bO69il zN3^ASTMC4g7iOwjX{9@Lr{X`*sd(-3pxxm?cX-ep9z5CM!HX^BIqm1r=h?HtDx zjD`iiQ_!|j<~xgVSM0kh_T3fxPDAL5eRsvayJFuzM6rMG=^!V^JkphC#H3smu?Cfe za-ro}4as9?0ZZS4NcB-@OXPG^)2_&lZc7$M4%!N9Bfn*5d9-AC$mbQ~3VPwxo?xrJ z8GU0}@7KigS_OKsp4r%2whA){;;89G3W=iT_rA6hM~9pUFCgRVzb~ZbisSZr?y;3K z7>)=>E2C8exo zu56cp;(R_F_l!$;FX~dsXCf}=%^k!xoZ09-bu&}Ou$0UsFtVZ&h-_(_oKAOntqVXc(>#RDaBvm5YhQY z&ou%!HicHZK^uIJ!$p`agct{W3Gee92<`i0vhlZ7qit0YyPP=?$CJO_;TjfVLeI#Y zZpYgtB?;fXCAYIuVe#KbJ>&QJ+(Rtzhn;^TvS3U3>+vRbw%+ggMG_i?;!p$~*Y7M@I6Wa+`@ZCqSKicVjx@b4 zRfB($qOPK0`SkJh%{EYh0I1@jkeppFUZ{$nAdm+-Z39W7eojjUk>rK#7)FKVA}?fpjHY{qI2iRV zA=ZM+sq!5`9Av>>AO*LE-JimJD;9qW%gjt?-|J+ZMRr+t+PS6EPA(06PuK-=F|`EN z`DZtYw#M%c9LM#_-(~R`O#7vr<0Ss7&d>Wg+*#E5py@b zE~Wm4qqqMS zFU|-P#!l+N2*4TMKUqRd#9prloUwRx0WAwz;a;}~oQdjrsU*27sEAlqeuP7fTSOdV zj@?$JNPO1x^nKqb^Gtu$+g=tKB)f=Z*8WHm+}3P9;p=R{?i(uykYa-^j$$-yVGxt= zb`YHkIiF0A3M-jiwN~u#sjq_4&+w(!Gwejp`Q)IV zSE39POcrnX>erGp;paJ(RHY5`2|HJa6&`1YfZC~>8pmrp#ZrIcBg;ya)LR{Ka)K?- zIOeq0Geq=#`0E#h7fWUwmmiP5q%)3#K~8-eVc~cm5IZ?LRR#*^P;MGXsf*>+&yM(n zQ5Ws|9~Dt_x`S5eT7h-va{19*E($`-3Ls@0Eiu%3P>c{}=hPJ0mcg}&b`ZeG?V&`r zaQmU}m2ar4A4q?Y9&5eOl#0n$^@AT`>(EAM=nFe#KN#lJPYK0v6jIzs2Zdm&X`%2l zEj<*rZdVhJtU}(6K`P+eIJj!8o5WPjwx7_-0novm<^V$;!(>q@j8w(Uag>z@+p(8AI|jdC z)u7++_l$qA{8~k$J*s+DY98wsqj_lt>@+7j{1Tb;4!Q3kU+6k)69QL@W=iWKzF( zO&Aps-=b(GfI>uwFmMYoh;0whc>oGoz!OvE2|0f+@%O~nCugU;VE|Qhw4{VLWlMBT zR`B5hx=e78cY$1g02{xy0GPXUB>s^C(yS2oE#CJ7I~|k5%@XT z?wx-W*117P$-bLL8)ZgPo|Ds(EKARhrb%-Z7P81OZe+C>qkka(zo+hUY43nEBJ6G0S=};V}(iVSK3>6Ri}u@cFniucdQo0{U(@2mq22L2iiYAtrn72 z`!rJb#IuE2&&DyU1d{HNIkk`|+LcpJtLlI0vjC@cn|p3mr!H8ofet;)N%4?s;}kNe zve)!gs1M;eG^pQoI|?)!N4frtko}Xow|w)!A+)wf==5r*S3AAh>D5lJ?yg=v?C0dY z_}YZt6PrS-fwx@+sFIegr&AOCwWM0pV|bE_{W~q%Y0)w*+R5`yp8N8Akdss-Mc99P z#6&)DT`?}c-@fz~-LxaL1B^Ra-O1`sR(G;`mt^%YCz;NdT$n%`e?^zbv9Sr|t-noV zw+h}9$Z}P;Ey?zr5p}Y@ll7gf?_~Wh$@)=F+FDYQHTJV40X>~`Z`03`8AB(}J9*y8 z^G=@ck~|;h0*Js0NorF?GJ?Fjs$k#(}all`6S z?_~cj$^J=BYN3>7AL$+PrFa8rAA_=e`5x=69f_XAzLVjd4DV!kC&PD1hEH>{OQrm} zaOqvrt(+A&`m$UBt&&WS9{NE3fCSq%yl^Rwxhq|L+G?t zr?qxQYdy_XnVl}_bcv2GIVzLq9w&cY%Jic_VTN;C*%kG(DsuMizpq)7-9zii7I{e) z-7caN_s=fw^La>pme+mG0c zb=Hn%PGa9hYIZ7lCscAL!#f%7%kYD|njCAw@Cse6XWqsWtW!&dr=h6tewW{bjSBCq zPD3oXxH<*4+V#~6%yaIq&R`V3OxlYcvn6Bzx(FZwXEyI06Tp_(1DJn!3=$LVH@-tY zHRQ~qW#8-6T=<9y=QL?P2Y+#y8P(kS2;E!6ymU2&=k!4BD90VUkt~l+lJcxr)*t5+>_sXW>Gto*Od@CXd!zg?4}J)SV_5j&d@Ld_uEiC7n<74cRnd!#JEGKKx7^Xjw?MzQSKoDiq)p zGAM!oM1xZV?K3i`KY>@WpWo+m53yohnZc*PlNE_Dq;L_Z!XBWm zbc1ox;lH)1c?;HrVH>Qdi>^t~TOeiRx78eGWnv<;=v$K&gZ^+_S6pZww);1qG}iXb zPmB{RqUnjbSkG+iEl+TZXa53)Q{#9t9u4I$K33{MoA)8GJds|QcKVCR=y=fQUH*Yw zJjcl5T?c=2d17Nkm~m{(`-9Cux$$S`aE5F-VOI>g?43i+B?mj`4|>Ks zVkIB=0`S7cCb~eb|I+Bkpr26Nh77qJ6Y)YKl6vgV+LdoEiy(&5{vUhBuLwC&)Pf+R zYTmG5t#mv~>6NT<{N&Gm$ww)7lxni7LWt%}XNZ6P`d95FPSe#wPGYpHgI`3ml~GjC zV^tV&lGMRg%^p>IO>%R1Dj96$6mHBcGgTnfY6MelN>r#OSvWhqUP?wkMPQQ3QjVKO z8P$_|S>+7isAu@!3F%!?eg&UutySoG*IuU=vh^P4BxL%5f+C*vy}kD8U7w$UqCR~7 zawC7dLa{vPw~(33OH_CcodI58z32B(!aZ@Pa?F8!lzzT*UV9(@cw@(;#ASKGO(I68m2GGtKLRO4hj zV0U4Y4@bR$Fw5UVY$Gdt^UW9xN5-*XLOy>)XbNrvE`k=|+Y}L;;w{><8)Z07Caxyo zy04-*B)Cl2jAEP)WSrJ665sFtToiK?(-{6FR5LVUy|;VznLOWANzNA)S1|2Qaxw(t z!r%fCOU7?B6Q@3$Jb@bd+|EvQg{Tj*P>jam))t)+?&ZQWKq`pnfxyNd19T1?|BWs$ zL_=RE1v4bXVBqZ}=z&GzG!U3A2+8G?;Zep*vi5#Hr-$Qgemq)*XHMigf`YajfHZ5zxX7GVmI zYycIJ$gwtH2|Zv^+s2mgH%cfT-~izY?Sm`Cz?`}=2%6I%|1Z5mu8S=MJUB;e1I#5d zZ@v9%@&~lB1Vg0Cz~1+(W{bTzwd9Jh$;&M9 z_Dg?RbuOnTlZcbTNUw;$Pw1M|%|cc{(vXd7OxSe%6L{6cLXo`{SSYQUCE?hL{mN<_ zH3g`UUVoYVlfRO!xU8FPfQ9C8Z8IR&UuJCtP6A-ld*rb_cn7f!XEsU!5aM)+67u?* zyqEhB=3-MCQj~zdIKA-xQD%K#r~sAZxHS>q{dm}BmRh;VxpVqpN9E(RlbR??0Sc4m zC@KN4vk@tb0)N3#VQ#&=j-=5^8VAr?8G8SEl$OrXeALPknNoMMh^y9QkfFSkMGk%+ zoH1ZgBtmZ(a#xr@CW=i^vS%(KCOvS!#O4y1kX(})0v08HppWe5Q}EHgIAOfQWC0+t z0HF~;{>;XAC{_~Nwt)%P9s-e61P&t5<|44&s@1!l^MBv*^Z9hxFHE?DsjCf5Y68C^k! zIUjGrO)qAN&2Gn>KNfRN3abo+wAeIfED1=RMStb+VUxezbD(*Ptgsi( zx*0zS=Nkkcd8;M#mitMG(oW=K?abaCl@!yHvMne9gOl4WK>=Zt9WF?JCg&d&<{o>O zXx@n9`S+z2E;+SA8(EiVuEEvvk@PKwcu|3Y$k{_S4`VFP{P~kz->Mes(O#Q2SMX2cXB^xtUsUTQ5hD ztk3brWcV&w6hl!bgOl2y2rrgFEsHqABwm~m%rLYsY-EY<`Lo{%M>>KJU3(J{OT~*x zV%X}Ko6nMxU#IY1d>*T2$N2hT>seKD*>tA8Y64b@XsS*?$VrMclNX$C9k7*F-ffqg z-Q{L?x!GNAc9)xfT{$9WUNs!gQRt5@gBAO$u%;cW#J# zz8}~B1u&V@=$^55E)`1+L3yT=ZKLCj3>=TggJHkqh^7U9)_rMQGb~J2^Q289t&Ikp z69bcfg${M)odQ8Z_FNo|M9)7H2U-@g-fkE=BNloPw~oOX4&Q`!cn>&Z|D;8h5TPrA zJg*0w2?#=3O9TJoSho}VpPGmGb!8l5j^0*FJuBu|lgXt0kz3bU*fV}{=Zc;t33+EC z`;wcjU{KqCt4~pQTvR~&TRZp~^vC_t;kbq4uj~bBN?zUKNQP|;W1Mpc85b;iw>=3T z{_e!yL_?f(asN9N_ur)>oli%j!jxT4ZrK|dB?3aFIE_RQW~uog;J0Nt1jrVLV{~B_ zB%Zje8Ri*9d3Fq2pJ69?$-R;V-&mF`>|2XvlQ8NOUzVSQ)0jCkXl?zvmhKw-=b-Ir zvvV;N0RbSBh%!h4%#+bF|9{Lb7Sq{j%1ROsMnyK& z*iU&b^H(M?X~}Jw9$h*N=ZQjaG;3q&$?Mt`=JXW3Ca(EqyefHeo~(9Pi#Eh}WYJ{< zTAnX0{YUdHjr)0(WdhmM^dLz>&=%UdC#Di?YZ6%N;OGYwxjW(B`hVe=a*$UNCQh!6 zgBN08n#M20K()$}T@=HMrt@K5ii}SKE_GViJcLl%-#KV-M%a5>j1eDBxv%sG)LGp& z;pJ=-Ix%@Z9gp&IqNGH4kBQY>Oh!=3BalN|J=dQy%AQdLE|%oEksldbJ;0xoEQZ7JnU7B@d<&$5!Y8du;!jT$8i8IHtOPkC?gS{N^FnOMzq5zw_6!n@S@nN8&lEw3y}{=tCHQWC5%6b0ZJ z5*Q&%-ttlbuK1i#CU6xeV#tb4!^)1ulD(vn3vtT=R>A{kbAOq%;n?V!0D-AEFZ9H* zUbs{}fcQ>SoFoQan3Q-}9wB04;X7=t`S^N%mdBc4Nr7MQ|H&~;4U*a)^#Ze59JsTK}e=@=}sZB#SZ$SWc+7>+oLi0H@TFa2J> zH|X_y{hOX~iJ)a1e;M{h{6VjO^H?>T!AGKAMLyYm+kfSMR`B6W0-W@W6(-S-wA6^^ zZD&lpScwFG!Jcb+ez@ZG<7sh@rP3g(AT#;*I$qnP0IlRr;LY@eXEXnSKa?jp$=E4R zZHb&OAd@bcu1lutq6uGUov-mhaRPJwd;OyCi*7WEWaLeJe}0NgTSI4*T=Q4jMIHT7 zcO!%dC@E? z#+PDQhu!nzTGagRht1UCav%SvVe>HRrG&XFM91i|wDH=448C?CTN)+on$n^#jU|qX z(+$t5dE1a9ZreH0tsex#acC+0#UIX-1-^8rVt+r#so3{3j4meTd^+hDrygA*OJ>zH zwkVR2@+9fcnHWO7e4-@umSkiG+ldkEGEAO~QwPNvCYOkl^)Cq8tWlmx98QI7li-2;Py*3m+o-eFm^Oib zmw$l7GB=PWdW{TsVUT~)Kue}MLO|)KAjAUbCLWq zY_-KU|6cQiFH!nU!)?Qx6?koul`3oaYJAkY6TNIzzOH89OA@3n!_hVw6=$1$ayLzV zZ9a%?yW3vzU5JJN^wCkvK)Ei}rCv0~&VL8j`QSPqT%-hjpTcuE8g^CWj&m~C{-o|L za!)8BoB`@c+ysQ$>FWt7O*issl=2P3WVa02wkMLc2(=Jkl#fNeq2OLL^}yxDNsD#= zx@7mK=Y>g5h`A(&f6-aJ=gj`mZ@p ziEEKxbNl0RP5y+K8OMG9x@zOt7=QMM{k_3pZ!rASKRO-`kNXGzHhRV{)MNg%FR90j zt;FX3LPT|rLP7G!9T z;T2L{wJn(>KSxL{OI zpyHG$m#DbBZ`xCF-wYAdpOD{DN%V}f1)(mwL>^tcW=t-`o_sStqSeK6<6#rp#_{lA ze0Xqh)Sn)W$36Z^db);#@xl0TG#wv`hgbK|F^&hr!^81We{gts*bg6P+n-!~_Kf4{ zxMzG2e|<6Fhl|f(Fd7{gH-9Ny9O^NyDDN?`=)DtMso(d-*GIIXeA0$}fe3s^KKO9) z`7^^d{tD$<3`Cm?=tA2@HuhGEM;|Ue3kCcZdPvp72_@#*brIou`mtvWQm7n`4iBgO zBsSr*77>c~lg4S7!fDVy7#)lUhr@9Kt-*BApALoxqiL&{MZNWv*nf>u*o}t6!EiVk z9}N3R^!lUz!O?Iq8T7|m2=1vdoMteLrO_)f9H%gxj>p6Cq<=IXr!Y(qe47|f4-W=M zgpo`GcD*#>0Dt{_~okFe!<9~a|wWk0Y zQ+?YCpbe_ujsj?D?ONCcY!A5>_5j;LE~@~Bozv$>IS&ZY>$mJ|Z0kH=*dO-?{iE@8 zGVRU-c8LLA$a%oCF@WxQz;iJ`Of6WDK@(dlt*}$OthAokDdf@$W2cb&u3Sbtg=bfoy|GisrGFL3P9gVQd6RYsxtP`v7n-Pa#-KkwoE%J38z28!i@P4RWsp`9&x=iV z8}XdjWF1G(iA~m1^qknF1^x44la}nyi%oVf@SNCW9YN2DP1f`CeAvXKbCf30vb+C> zIPX2|Pe%P|u(hk{z0+5?5yg~A>}h{6JerJ$gK=^jo`2ZuwU3*o03Y^;lcWCOczBqa zxY5CQba*rwjSt#B`6@uKJMFFH;Mp0PPs{h6qWO%t-zAz?%Ks+beg&F2?x$x|0NNOB z+27v;wW=q+ky|qdy_S866G@=q&; z-6H>lR)3&($VHBgO}KU}$WRvz)S`0eqJg?-pxsakT{O^hBKLhn11Xe27a8;RG&}- zu}wm!1v)LzX@O1)bXwpC(*kSa`FE&y;=hX~>VKk%I^o|%6TRqYqQ^(Svan|yleKO4 zjCTai?5HfTU)%H}_Hpok!Uys5gR_>EO#40KMEouO@N|J$6+(&ERc1t#i`AKr4}QzA+IR-hban7V(Oa#H zq;G<%w-p-e-Vzlnw5xelRjgueKJm3fmnojpT#f{bD+n>gu$otSRY4*xRH}a?q>k2S zRi;O$8hpJcNg-B&?1T)|X&)DVh4j@zwSU$4e0i?V=4YN8Y`(sieiR=95Ax`pem#dVLh9M^3>63d2WFczViae47n0lZVmiEUf{ zym0}Yn`9y;C}aC~$roR312O@5-G55l#*iSZW1<)Bv&4BVfz& zAxP?&?^QCtl1inrCoGS(9qQ}LuMrOyruJQ&hoFVY%tP)2HqeRZSLmI1ovG4OwN6jf z^u8oZ|3uJ4t|y(6rDd&|E;^7h4t=pCx!A6ek|3WKYivp$bsEf&r>DZsp zTB3|MS^Ahn%CLXuws|+Bz7D&wM4?r+R*)e4A9|<#OlaQdtI5@{nl!M7dmfeRSbrj@ksVepQ*{bvpM2$J8BKdiE*>fIZ`;2<` z@&eL%_&B-^^U?4-{+n$gP9p6K+Z1=+^n}=l5tO;a>QFFT^P5}es$r2UO}o=JT1xAr zkR?kIp+fdo>!wM>LzI(iVLzbCLJ77h*yd|vo9ZBwx&$h5e82Ghm3+TG%J%(V5J4`ap~L$ZTK&Vd7ZrBpbIajfUNo@TJ;Np^ zI^S_>;Kpmkjl#vlP_Or|75YX(C^$C}p?Hcj)(y|F30zjahX`d3+C$c~ z6Qr47G7AiUj!*zi(?y<#On|qgb-_7hZhdOI3uJ=H3PA8@@coAjAULy4WPo>%b8O53 zCMIT0WOXc-7R3g8+i{?AkIZc?th3$&NK631HZ$(*$e0I$zqCDQ%#?LVr{t^ESE@EA9QIgR`~>?3q%hP zy+1BS^uI7M?Z*rIidKa3T>(WA)0b$5nT*I}DSbcd<2ZZwk!b@1Zbt(*k%*oP+oOT1 zoXw$SAui_Wiu9v`a`#dqI%r#pu9JuuI>l%MgQIo>Gh;Sw$so5bMC?&LV4Q zqXZ#;XK)(ZtQs{EksVQ^2E)k}rIDSsJvv|R11^Rrz8AHp(&=d9W4CZ3`>&CC7Wn=; zP*#?9BA(vp>YXfwdj&yAd;D`U4o@E`wr-S4Bhj|c$^c8O4-1)CD$FiE9%U-qbY?ob zE(@a$|I#kK+lmQo&YD!M24m`HdV)A8l-nME{`C0agVdT2Ad8u35_SqWX-3jA>~xC* zzUl2yfq54HuTLw=l1l$WEaiW%KFtmC-*fcu4m?Ma^#eqgvqZv(0|v&hfPo;i0mZ2op?y zW`{B1O$pCMg)=Ge&7H#v?M8|(#e6ry7f|0+(N!65q@$iSm`>1LL3ah+6?8X??!I2? zm~z`0Mww1g$_%-& zwm2>Z5=z?0S14J+70t||iOS5${%L!EbXyfuQ}Ez_x+hELGh(~w5_$I0H8w{I$Wr9N zlk^QOF6Ju_`ycG-s>~i-drT$6A6JjiiT&8UJ-fK}g1^4_f8E3dxJy*!*d9H3P);8G zxu>%+TP2*#d_xPHHC0vgkt}_KKjII*TwGsMY~i25cbum^Kg|Vn8A@8%TVyq&N~g+NmU;9mA&nyU6xwXY9VB`%(#DZ{ba>-QABlz^RV2?r?&HC^kE zhuTORWcQz*kZ_>us@_+|x}K1KP#ul*vCkVMsasyb)QDh*P%mg%4gNEk2hZhd=Y&G)um{{=4;t3$A6$p;6?n&q0GIdXS z{#L2`TJ}E)Wo{pursJOlT;1g>ZFBht2vo;xpkPQ3kStN#KJTxqV|_e-7^>qzOt|Rd z=MygJ`$zrJc&zFDu^J!H$m8b|uA=8}LhBFm{0(V+*(tzLv_1&}tW?4y`Xq9kDz-X0lFKWrCRl+4vqE*5raidkjB>|*W!o8@~q!tMm zL5-<@mTd-R^b~#69}W@|pYU0Yvz}~bkOYb2N|T;O98;R~!qG8*rAe<89aEa5qd%@R zNzZ;6M@3NfYtTj*FUE?tc^ey(6WsDTB?_uHx!ldBELi%s!7j zP^3xFkptM8{ulFA!8t;zpZdo%&yqeb%IhSzqmSbbj zpHaU0px|)zuNw<$QU4lN`x{jM6ytB1`X@o5UFsi01^WTH!O8hc|BGJ{4OAmIh-e@Y z4b%=$5Ya%#6z*k217(1Lhzxp`nSzK6YH?tMhzt^uK_W7LD1ZnT%@7H0+P)7iuofE$ z;={3Li2`cTCp2O!L3}v&Orbt4()t(-L?#IW1q2ER6c8vNP~eTBz>=`Pg!|`q|E-Cv z5Ya>;nn*+wwMggN9Zj@ebKVoNJ0tZeeI|A4nAG%9(}|Nzc~0^6Pev_sIPsS-<@TuW zl%UCDyJKffx0b15dz>pr;^4T~k{QY;j-Lz*DMc>1i1l3emp!jIMj@eFC5I!X%1;>$ zjw@!VKH6DM$>cHP;m_k+SE+0~-BWNsUbQE$SP2%Y@W3U8*$ERqYJHWD{-Jw%Rxh1Vm+)0Mi9#dib4!L&CXjV2v5 z)s&8I4pC>KA)_;f19dpnC$JAkk}Um&@N7$SDR}f-4ZI+~3})fIc4nB+ zT7kzoB4N5);so^pk3yGvx8y)ivTbx~c%pAgTwGO(Eq^p}vDJS3e;sC~_H)hb0bK^0 z+QG$V>6y!3TT7O}J8v|w**(Lif7#^jZ+-JO=kzf{pr)pg*=>K;dnCoQ@?}jcL!I6~ zi_E;XcV*kErv4m9qOxvhozOFfX70D^BU)f{^B zZhVqk&lQ*v4iwU=8me6dlUD5`VLJnDfhuQ4^5?Kg( z=-LnNMTJA!+r%xOfZypHxm+O@MF1FWXGv?%v2i}LZPo%f^*zg1{xiaOvz{o)7WNLHs)=1UOvDSF|1ZQoB z{kM#>#`L%>W8H96O_e1-^I6czbu2$sXT4EL3K#lP(W!z13l1!QIPk$RJyNn^`U*ko z%)gF+H_$SYlNX``_6V&@KPs3Y&+~Ve*<&9gp+WHjN~O?~*q+#X4k|grChv}Oq$y27 ze!RED4zmFNLhw&pNV&-MPmdoyG!vO#Df+xtM@h%H z-Iu9pI2a$Qvpi0JZ@jCVZ$zWrz>~AiMHfNN1v!7omQv4GYx3vC03&Qj!;$SVcn3B-G4h&NVp&WU1f{lZ1nSEP2CYg&{#Y&$6~ zQj=g9Yj|{hNnm12Y`6`W_y*RM#7c|UHxoof5S4m}N-yUw;IA0uR+*jeGFP9V?=ZjG z9DOIlvoI4eQ*WWcwtSwi^;4=k>ceXtWPPi@;z^D^JsrHu@s|-osC`R;cjnEs|Pus zD~1a28Bu7=KW21FDYf2a=k$t++%;))RGLOkmw$8GGtBuOFV^7)xWz~ThkC|HQMIa* z@Q<%r!^e4_vIIJCfNtk$^?QHtZULQ}-7?+z=euCs3YRG&g%+$;}auJum5l@;U zXR4?3)0J7%EOkT2sdQpO3QrtJ=l;TF!6kV$g&nuk7>0_H7djef#3eG3VL|s0tB9A8 z=k$Mxj=8^2wQo5htMr<1ASLp%Y&*repd2dnwDA~1MenEswcpY8Nw0r1fu`P>n96X{ zA5T=(&?}=w;hu|F)_67>?d1f!{Q(5rd zT~!myHts#JBoteK&XJ1%bP*syu%-vxB_V!@r-<_4Q>x)eTCeZc{~rJV|Nn4=1~@~l GE&%{jvwxZZ delta 3897 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 Htu6ro)@PUE diff --git a/cli/chain.go b/cli/chain.go index c762faa8c..34f497e5b 100644 --- a/cli/chain.go +++ b/cli/chain.go @@ -1591,7 +1591,38 @@ func createExportFile(app *cli.App, path string) (io.WriteCloser, error) { var ChainPruneCmd = &cli.Command{ Name: "prune", - Usage: "prune the stored chain state and perform garbage collection", + Usage: "splitstore gc", + Subcommands: []*cli.Command{ + chainPruneColdCmd, + chainPruneHotGCCmd, + }, +} + +var chainPruneHotGCCmd = &cli.Command{ + Name: "hot", + Usage: "run online (badger vlog) garbage collection on hotstore", + Flags: []cli.Flag{ + &cli.Float64Flag{Name: "threshold", Value: 0.01, Usage: "Threshold of vlog garbage for gc"}, + &cli.BoolFlag{Name: "periodic", Value: false, Usage: "Run periodic gc over multiple vlogs. Otherwise run gc once"}, + }, + Action: func(cctx *cli.Context) error { + api, closer, err := GetFullNodeAPIV1(cctx) + if err != nil { + return err + } + defer closer() + ctx := ReqContext(cctx) + opts := lapi.HotGCOpts{} + opts.Periodic = cctx.Bool("periodic") + opts.Threshold = cctx.Float64("threshold") + + return api.ChainHotGC(ctx, opts) + }, +} + +var chainPruneColdCmd = &cli.Command{ + Name: "compact-cold", + Usage: "force splitstore compaction on cold store state and run gc", Flags: []cli.Flag{ &cli.BoolFlag{ Name: "online-gc", diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index 93f78f573..d2daa8ffc 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -29,6 +29,7 @@ * [ChainGetTipSetByHeight](#ChainGetTipSetByHeight) * [ChainHasObj](#ChainHasObj) * [ChainHead](#ChainHead) + * [ChainHotGC](#ChainHotGC) * [ChainNotify](#ChainNotify) * [ChainPrune](#ChainPrune) * [ChainPutObj](#ChainPutObj) @@ -1074,6 +1075,25 @@ Response: } ``` +### ChainHotGC +ChainHotGC does online (badger) GC on the hot store; only supported if you are using +the splitstore + + +Perms: admin + +Inputs: +```json +[ + { + "Threshold": 12.3, + "Periodic": true + } +] +``` + +Response: `{}` + ### ChainNotify ChainNotify returns channel with chain head updates. First message is guaranteed to be of len == 1, and type == 'current'. @@ -1098,7 +1118,7 @@ Response: ``` ### ChainPrune -ChainPrune prunes the stored chain state and garbage collects; only supported if you +ChainPrune forces compaction on cold store and garbage collects; only supported if you are using the splitstore diff --git a/documentation/en/cli-lotus.md b/documentation/en/cli-lotus.md index 7800503aa..f8214749e 100644 --- a/documentation/en/cli-lotus.md +++ b/documentation/en/cli-lotus.md @@ -2117,7 +2117,7 @@ COMMANDS: decode decode various types encode encode various types disputer interact with the window post disputer - prune prune the stored chain state and perform garbage collection + prune splitstore gc help, h Shows a list of commands or help for one command OPTIONS: @@ -2465,10 +2465,28 @@ OPTIONS: ### lotus chain prune ``` NAME: - lotus chain prune - prune the stored chain state and perform garbage collection + lotus chain prune - splitstore gc USAGE: - lotus chain prune [command options] [arguments...] + lotus chain prune command [command options] [arguments...] + +COMMANDS: + compact-cold force splitstore compaction on cold store state and run gc + hot run online (badger vlog) garbage collection on hotstore + help, h Shows a list of commands or help for one command + +OPTIONS: + --help, -h show help (default: false) + +``` + +#### lotus chain prune compact-cold +``` +NAME: + lotus chain prune compact-cold - force splitstore compaction on cold store state and run gc + +USAGE: + lotus chain prune compact-cold [command options] [arguments...] OPTIONS: --moving-gc use moving gc for garbage collecting the coldstore (default: false) @@ -2477,6 +2495,20 @@ OPTIONS: ``` +#### lotus chain prune hot +``` +NAME: + lotus chain prune hot - run online (badger vlog) garbage collection on hotstore + +USAGE: + lotus chain prune hot [command options] [arguments...] + +OPTIONS: + --periodic Run periodic gc over multiple vlogs. Otherwise run gc once (default: false) + --threshold value Threshold of vlog garbage for gc (default: 0.01) + +``` + ## lotus log ``` NAME: diff --git a/node/impl/full/chain.go b/node/impl/full/chain.go index ddaae4c98..465b680ef 100644 --- a/node/impl/full/chain.go +++ b/node/impl/full/chain.go @@ -748,3 +748,14 @@ func (a *ChainAPI) ChainPrune(ctx context.Context, opts api.PruneOpts) error { return pruner.PruneChain(opts) } + +func (a *ChainAPI) ChainHotGC(ctx context.Context, opts api.HotGCOpts) error { + pruner, ok := a.BaseBlockstore.(interface { + GCHotStore(api.HotGCOpts) error + }) + if !ok { + return xerrors.Errorf("base blockstore does not support hot GC (%T)", a.BaseBlockstore) + } + + return pruner.GCHotStore(opts) +} From 649bcad1bb86d0ef23d19433852d6d6103d1a114 Mon Sep 17 00:00:00 2001 From: zenground0 Date: Fri, 3 Mar 2023 11:23:28 -0500 Subject: [PATCH 2/6] remove accidental add --- api/v0api/gomock_reflect_637439595/prog.go | 64 ---------------------- 1 file changed, 64 deletions(-) delete mode 100644 api/v0api/gomock_reflect_637439595/prog.go diff --git a/api/v0api/gomock_reflect_637439595/prog.go b/api/v0api/gomock_reflect_637439595/prog.go deleted file mode 100644 index 39ca2319d..000000000 --- a/api/v0api/gomock_reflect_637439595/prog.go +++ /dev/null @@ -1,64 +0,0 @@ -package main - -import ( - "encoding/gob" - "flag" - "fmt" - "os" - "path" - "reflect" - - "github.com/golang/mock/mockgen/model" - - pkg_ "github.com/filecoin-project/lotus/api/v0api" -) - -var output = flag.String("output", "", "The output file name, or empty to use stdout.") - -func main() { - flag.Parse() - - its := []struct { - sym string - typ reflect.Type - }{ - - {"FullNode", reflect.TypeOf((*pkg_.FullNode)(nil)).Elem()}, - } - pkg := &model.Package{ - // NOTE: This behaves contrary to documented behaviour if the - // package name is not the final component of the import path. - // The reflect package doesn't expose the package name, though. - Name: path.Base("github.com/filecoin-project/lotus/api/v0api"), - } - - for _, it := range its { - intf, err := model.InterfaceFromInterfaceType(it.typ) - if err != nil { - fmt.Fprintf(os.Stderr, "Reflection: %v\n", err) - os.Exit(1) - } - intf.Name = it.sym - pkg.Interfaces = append(pkg.Interfaces, intf) - } - - outfile := os.Stdout - if len(*output) != 0 { - var err error - outfile, err = os.Create(*output) - if err != nil { - fmt.Fprintf(os.Stderr, "failed to open output file %q", *output) - } - defer func() { - if err := outfile.Close(); err != nil { - fmt.Fprintf(os.Stderr, "failed to close output file %q", *output) - os.Exit(1) - } - }() - } - - if err := gob.NewEncoder(outfile).Encode(pkg); err != nil { - fmt.Fprintf(os.Stderr, "gob encode: %v\n", err) - os.Exit(1) - } -} From c81a51af5b6e3239c7858b354705468d66b4f657 Mon Sep 17 00:00:00 2001 From: zenground0 Date: Sun, 5 Mar 2023 18:48:02 -0700 Subject: [PATCH 3/6] make gen --- build/openrpc/gateway.json.gz | Bin 8480 -> 8482 bytes build/openrpc/worker.json.gz | Bin 5225 -> 5225 bytes documentation/en/api-v0-methods-miner.md | 2 +- documentation/en/api-v0-methods-worker.md | 2 +- documentation/en/api-v0-methods.md | 2 +- documentation/en/api-v1-unstable-methods.md | 2 +- 6 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/openrpc/gateway.json.gz b/build/openrpc/gateway.json.gz index 1014728087d1d85caa4eafb298b5805431dcb7fa..582d03f6efcb40ad7733b04a3037ccd8b1fe04f2 100644 GIT binary patch literal 8482 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 Q00030|6_@X*HP2~0Bx?6+yDRo literal 8480 zcmV+*A>ZB~iwFP!00000|LlEfbKADo@L$pJ{gPx9N1Hdz-kbvh z7hrWmoViY3w=#jevO6u^!UQhK&I$d0yJdGP@VDy9FJ`a$dK7eZ$`f z8n@h?3rwJcftfwa*8BG@j7-}88*w0+JJ@^DZk;*KrA2P$wrx2C8eW43??0?f8RS=X z$D8WwZ}{OG{^y^6w6^BXXEWfew4ru8g$`^12ez<9S}RCe0IyoQHJd?9+}7A~T4ajc z7Txt7t*zO>0W-Q+bI05L(dw;jxyavK_B!@;>~87{uw9GI#QUL7;SBId;cqo2tqTKU zg2o6sDOe}SXgSb!pzF^Vv|MP8-_kZCgeUZ~VbTJI;Xv1gMhk_|c3Kyth5U8SpwSww zTA=kOMZ9(kv`#Do>aACcDblAcgbkzv0=+S2bCV$5d;8V~`W-aFQOL@MuUh~cEztVx zwVDEV>g^j`f|+eXx;5{-eFNiFZ}b!B5cC(WG2L7BL4S{o`tBW^**~o1zxI4(&Fmke z*%+?I{lOUZ=c~Q>91eQ-1MT5^Tk{6fhJR}=aS)zp-yhnV1OJ^P2O8RtICJQ2mhC`q z+J-h91Ji|GKL@&VlXx4=zR{avib=iB`E0Q@9-D61!~6YbK+uC;Tf4Qip*HSxd;Njd z);>7ajQ@RUVI9(je*$yv&9I}jwR7NpLNi3P;i3QI1B55Qj$U3laE9hH_TaORvf8lQ z)~*;*YX8G#=dYXNsgD0Mg@3$%ueG(4i&Jmv@h>tO*#?~4JAE|JEf+4xbmdNVmv>A1 z-!bkj#`@2_*?n(1v+l@ZWGwH%a^PwY-qzkg-M)*hoBi+xc>!C{)^5-Q1IinIX}3Ox z_S)JhARue>huXiu2{LLVG7lm!44=IL^UASo=n&+6TA!NQn$0~*ApI{55jgYzkN`n3 zp`;6?e9apDfI9Iuk;8=wT^UYAj2F*mBcIu_*6jB~9LZ!y3h+^697X^lO#|HirOlv$ zd`>h%7&xmltXqc189hXB;oiV&&AKz5`9KL#b|s7^rMm?TpnO>m8Qs|f;5cCAQ;v`7 z9GX2%(O4+$Q=coj2?>r{jp#Tgtw>do>iVP_lY$Z`Mdf7G?eQN}nQ%F`d5F|a)RM~oD z-81Y)&sOwy(%rd5_6;N=rXqt@tC1MZaNDL~rUk-pN!kEOycMxOsBpw{(`;+L{SyBA z2+?Fpv|*=IxqDU^?=g)cj1OdBMT}?N1w1A6W3u)l=+BzgivH1bm3QRvRlsI@M`8$@ z$DE?qBHZZ(xB}!XXQfLkUD|nmYUciKvCzE&4#Z^Lvx+#BauNLZcM0hm2c9j2-(a|i zpuVmmkW*_=a#_jcLb)8`TWWjxH|5fp8VhN;S8avu7v}MQ`2M{e_}u=M@^!FHmvjGB z^VF?5RFTJo6I2{>Q?JR>mR$#XBC_im>JZsvP1zMd5s_VSg`4#hmt?_Eg_10Dj5XvM zw>~A;lw2#3Ynj-WA?5Pg3CX;(B_iIQYQs)jyY}%nTUwk0_lxUI`LL~>-FqMQ+OkMp z^0K=8h|fiiw?~T?wEpN0h%^qivXWi)0>sMUewkPy)9S*6O!Gtt??e6#uG%fTmwZOW z%SQ-|lPSQW<`J0|i;@UlMFHZk$yCdqP zji3ADB_2$E?DqRc-x~DEzqn`jkiA?^oqK(H4>h0pY~TnW+O(e9wDm+`L_JvoF!okx zA8&bv+q(BnE#Kr~c0%c)QFVb8p3f$w5gT2`tM>c_MYnTMEGTjg3k5|5?JX!QsvO$V zmbD&Qg>!D24WW3N^l_3p>fRjZ=pKr2j-xSw4%?x%m3+v#??oQP#@lt!qy=kwy8{f-Ft zJYLnoIs+(=!8e1kH^4NxWhsuSIHuy5&zoZox&<8bBXEBo{iwtyY1i^Iv5{q&rF@S9 z%Vu_TD`nYTIK8Hsqv}YjVMkgXf~IzsJuK%q-bmbRynYbiC(bi=dqq400;3wofWW9D z>A-_ipI*dfr4kKZgf!eMO0Bt?ld95?cFmK9BY*36{4emDqIWKKQ%KqPEs5IUq?#rJ z`TY>XT;00Qz|0bE6736kw zuu$|@71w&okN&-_&A{@40_}C$+6-atS27srdBq3yx;gPdXJqPIJ(t;ATTY2w?`&e^ zG3N`yWN%PHi5$cNVoZaTrNsEmn?Q`|HKjgCW|PgFNO_d2RX&kwC>`{2qFv6&^aNzs z-sJ?~b<49d`LE@*^Uq|dmYtxC;}t2cgvlTXQiKmqmLS+lns^AC+(@2ivssB9P%#Rf2oU&wP1ivq9HtC3<{h2$T! z5SXz~W-*F}vh= zLC;;AVV9J#fdZt=Z6+duEz^K5y?-SXk|W^44-j5K$5Xwi3Fqz9gcg;!1_W8!@b7MK zr|(aD0UX2Apd}?{Vi?gn=xK40mQdU@Ik2VDHMSWdGA>v;O>k} z&jYnVp7#b_%kAA`G`T1a58%LwdV77CvYeHhbJHwdx}ah=P|!ro52U@MsM6j+PWfu@ zt3z@OOn|GQdDvORuniC1a}Pa)XdxVPv(&&Zt?5S~GAHm-2k@KFNn}plpP@rrv9h&T z*-$tP}tdmgcqd`Ps;_l1@7xlmIh}Migaeewcm*eimC>(|H>E zhC(#Z-`_jz=wqnw>D|$Ip!Y|Iy@LaNAM6_Y2Yq;Wu;1^(!_KG!26}gYU+;nb{y^Uc zho1hoy9+nX==wdL(RsgWXLQ?12rK1oEMua8xryggXj2abhIM>jAO9dGA8Ul@PC@?* z*8R!W1965hbYy+XE&&A6LXP#!f;a%XK=;0#TPIwHm2s^TrfE&wW7A^3`_8_HdT2aG z`rIU|(2GDU0?gC&b4IM3N1m07jvmm`l>r<~u(lr7xvsB8&O5<>UJ<_t_k}inA~KP>6=Nb(7nO3t z&7DN#38-js9Hnh~9~m2b%yXBJh#zyyad4l>rlxSf&)^_q0*pV3U??wNA9K^{D9j;eb65mE^kYkDNYRW;Ekv2_okGV_(0ugrX9<|{K_nfc1h zS7yF4^Oc#e%zS0$D>MJm&HQeD@shxry^V0=#F}HWb}&LVK+)iYDv3nJBX2afsC3ay zi}+R%3o4_eacruWU)&|1z}EIo=7AJpRg7EI%B;3fGDcwOO=eh4rY*%f9))%E^XuW9 zLwf6LB@W^BtS3fXpfC;_Z+YmV{|Eq%#DK}(Tq zq{{DZiXS6U;I;Ygo|{8zFTZ9@NUWc%$y&V2>%VQr<&9Z8*J2A%EK9L0#j+laW$ove zJ2{7>I08kLyv!|&V8=1MhUZU{S(-tcl66-?QT;}BkSUpwH4xT(cNE( zy;PTiJ>sQcP35YGg$0Lhh~}#-?x6l%IMn;&as5B_(0{Uzl3w{i-wB zl=Irv2#^J0W@PqJ_87d_&Xoo6TM3vih)w`udrqQ^Nd9tz8Ca$h7H432U*S?nGIW>@QjOF*m(Nx;7i)L5^XtNQO>Gts;$|(47;HpUTO|bK_~8 zF;bV!^UdZ7vQWYlN`X4*^3bc)P=DlmL()P+C|k~dAky+)eoMA{$z4P3qHbZGn6&0j zQKfFnC=OLTKVy^DQG8C@wU1K!(R2%`$!fl`Rg|rwY!zjzC|gC@D#}(-wu-V6J!3#&&ZOC7DP_WMw3DGei9FDg0srb|R+EVk(f3@U#2$rO!Ig|Ifl1qX$N zuo5{=$E&Q=7+FpjLdxTYEY&9I`JjQT5?n7FXfy5)ejQEofT(PxN6c0#^{-_55tY;G zNixvA!pd44ySS#M+}CEG430!)Fdi~b{#a*~taUgHUPwdoqC6P-2nMclKkK;H%CxPK4IWv7eo11{3dw8C>j3{|I z5gd=9&Kh1hNRRy98J8q^k9?#7)uv^{t~?5AeAGqJp8UCw2+Fi3am>p_$qkXf7BD?h zox-0ocPc$q|9O%)9@FiZL25!5Or_~g*1OnNw2^1eT@;6C@fx1WS@+GFR3#Bkoz$6)s~9nSq)rI_xR3qkevx|IK{l$1+#B z^EvFB$9#Uc7ItiX=Nc@oe7Z_79|pi5u~f|tM-${eap2N?h+A9J*iUL(#i;Oj@&5hO zVL$QDSICG`O%+ROJWCqnXCQvT2)hKBW@W2C0YUO+(~)JFCA=sxKsHCBn=Qw7(lc)w z^HIin70%}2RBDFoVfog1BXMjt2+Mlf9AGy;`|b;N*HBBi-XfHr&=Umd-!0Zgs?omN zV5LI|Tt)pgQvZHV>exAO&s>6LfIxQPV1>A=Odz>O+!U=@L%;OE8}{P{V&le!x_^fl zZFY<78%TbGtJkep$)5QvBXdHvWR~SEwW&9V#rI6`*gNnc4+p)rc57)vZQSYh`U9=4 zeV|!I;qOaYg2ik2XHYUqYisAg{e)(SXv0JQ#|H>cfE~TOa^MWjXY9def63ag+t!$Y zHPrrx&CXvp$5S2uXA1v#|6XfrCl{yQRO9KkqmgaE$-UD@1Ko1rf=pNLWOsSDwErFB z-eRo(+?(C^rZek~EJnui4lD<*_8@us{(+?#$R#Im>#oq1?Vm_EDZinzBL#aeGR~!V zy`A7Y{?ca9Kt76%5C+cb4C|JG@WlU!F5DY%2iwtk{H-Owl0U0dnrTPKzQJ(ZqUsk( z<|jy_pZ)qv0Rg#_FLUH)wC&S>Z!`WA{FBX*3WkzKtzcH0i=pW5@j8U}tDYE%!rS-~ zl1cEA=~~JJv{UTQ?z>as;6eXxf6||02O2;3$4fkz{MhaHjlMPLlYeo~?jd`*oI3aV z^d4&E_g&W(Sdx-IN<1m?q{LIR#8X3UmV=yZkqr%@tEiJ*!ii0dB1eF>C0WjWi`wnsL@a_!oqS=w(@8cmf9aY57br_SWI2r~cb!eF z5S!R$v9lef5N#$)w#ZkdJRjn`pGV-Fjg(4@eo;x$d!3vFOh(--4Wl9tWWCp8eSd#{ zz{(nGfW+wK2|tp?F%+7{qA(`06LWaSn^mfIhL$3z)wrWUP;dR#f3lY^>dQi zFCqDaTmo?g2N>TsyTC(PHUDpV*zsx4T#7hwd zdtw*$&dT)?PG5O$;_EOc)zD|&pO8yFBMhBtc2m?nPlRO!m&$sLqEQNiOV{=r#a7d_ zj6@|FWI{E|{4iN91oksj48$WUpLxXJekUijhf~Mpi#ix}lMZTb zWlCjMDzkD=KRK?~&B@{M$@?>K?jWg{%b13+X0#d)s+9Z1S{KEt@$KXpU~+wm3o0(S z#YnY6`b@qRaUGnwx??SvN&d;w@1Rk|LmPmRwWEU(U$mcgzn7DH!f~7%VmV;qpK7ha zmpLd!hlAexi_<)(Ed}MZ5oF5TsP#E-vli4yW*qM4#?J9}2OB!aQ>>^j`P}!I`Cps`_N3qvc_@)9?AkWY8Ev!=E8r_KArgCVWBh)%MQZhuAJAK!%?A3 z+7LITrN z)l_Y=pOcqH)h2|YbAiWJH7zpey{2U!fGJlXgO)`WebA{Wcw-}MSc@y`hFm$8HKtVq4?>CJ>jeElfA?^|f6(7Mh;;xC@xLBz>(ao36AQZ# zyL0ygn49Fx1h(sa9k!rjh~XINh;DSaKiuP6==iebkGbX72KBVkFD^9r-)Bo3#Z&pb zt?~>0WI(!vi=1IE;erQy2^T5IQL&WcRSXJ6!06?rHA5Ie`a)KrjX{o zxujO1YEXi#(wcQ9k!3YY(z)!46XY*c?KWf}>mxPKaYe>1V#JdDBhD|>u_7X7h`ARR zXSF}b$!U&Mksh(l74DF+5h8sV28cAJ7$S7w$)lQ(iJbGL<@*LG zB-}HFvEn`B82$2W^Sz>4I+u_vEa$FbrKb!K;<-@3M)YAEK&hS)Z(fwDkUfC>8DDCJ zDnIJ!%J3YlNNaJq?KV_OVH$$Z|HlMi`N+fl^=VRXQSyZeo&JH$M@2=bF){rPOc%*`N*@uGxzsxurt6 zaao7CJetXr*u?78Y~$-~Z2j9O<>W{r!^TvX!y42URU~&UA59KHr`4|fh9XK>44phB=!O=u zw#F<60+`UKH5-^_r*nzqM>;|G@q~kn90af1SEgt9o+dsWG4_JpQgmfPV*;ae38)ij zoPyOgTmZ*NJP$G?`99asHh~Tex}l`Fa$id7%*h ztU1)DEa$9Hg)6EO1;kL)XXgqO~;n*h`(@G~)y(&Dbe|Z_NEMsH47_I(Jg%PU_rAoja*>Cw1f+7JNPtNaozgCZt0RV>u3M~Kt delta 25 hcmaE<@ls<0uL#Rp^Gj1F3yK7A6tq}4uhnB@004m$2%Z1{ diff --git a/documentation/en/api-v0-methods-miner.md b/documentation/en/api-v0-methods-miner.md index d18be03f5..970383843 100644 --- a/documentation/en/api-v0-methods-miner.md +++ b/documentation/en/api-v0-methods-miner.md @@ -252,7 +252,7 @@ Response: ```json { "Version": "string value", - "APIVersion": 131840, + "APIVersion": 132096, "BlockDelay": 42 } ``` diff --git a/documentation/en/api-v0-methods-worker.md b/documentation/en/api-v0-methods-worker.md index dab251a7c..f9d39f24f 100644 --- a/documentation/en/api-v0-methods-worker.md +++ b/documentation/en/api-v0-methods-worker.md @@ -1477,7 +1477,7 @@ Perms: admin Inputs: `null` -Response: `131840` +Response: `132096` ## Add diff --git a/documentation/en/api-v0-methods.md b/documentation/en/api-v0-methods.md index d254c14e7..97bac24ea 100644 --- a/documentation/en/api-v0-methods.md +++ b/documentation/en/api-v0-methods.md @@ -301,7 +301,7 @@ Response: ```json { "Version": "string value", - "APIVersion": 131840, + "APIVersion": 132096, "BlockDelay": 42 } ``` diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index d2daa8ffc..879e00211 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -358,7 +358,7 @@ Response: ```json { "Version": "string value", - "APIVersion": 131840, + "APIVersion": 132096, "BlockDelay": 42 } ``` From 394a7dbb34bccbb17f049d99176728387dadd86c Mon Sep 17 00:00:00 2001 From: zenground0 Date: Mon, 6 Mar 2023 08:37:28 -0700 Subject: [PATCH 4/6] Unbump api version as its not necessary --- api/version.go | 2 +- build/openrpc/gateway.json.gz | Bin 8482 -> 8480 bytes build/openrpc/worker.json.gz | Bin 5225 -> 5225 bytes documentation/en/api-v0-methods-miner.md | 2 +- documentation/en/api-v0-methods-worker.md | 2 +- documentation/en/api-v0-methods.md | 2 +- documentation/en/api-v1-unstable-methods.md | 2 +- 7 files changed, 5 insertions(+), 5 deletions(-) diff --git a/api/version.go b/api/version.go index dc03c4a97..9c2113578 100644 --- a/api/version.go +++ b/api/version.go @@ -55,7 +55,7 @@ func VersionForType(nodeType NodeType) (Version, error) { // semver versions of the rpc api exposed var ( FullAPIVersion0 = newVer(1, 5, 0) - FullAPIVersion1 = newVer(2, 4, 0) + FullAPIVersion1 = newVer(2, 3, 0) MinerAPIVersion0 = newVer(1, 5, 0) WorkerAPIVersion0 = newVer(1, 7, 0) diff --git a/build/openrpc/gateway.json.gz b/build/openrpc/gateway.json.gz index 582d03f6efcb40ad7733b04a3037ccd8b1fe04f2..1014728087d1d85caa4eafb298b5805431dcb7fa 100644 GIT binary patch literal 8480 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 Q00030|6_@X*HP2~0Bx?6+yDRo diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 8ea16a3d2a42acc9f9ea33505a7b4826d52bc5f0..1495059f96c61edbfefa4082c11a9776a8161700 100644 GIT binary patch delta 25 hcmaE<@ls<0uL#Rp^Gj1F3yK7A6tq}4uhnB@004m$2%Z1{ delta 25 hcmaE<@ls<0uLz58=&|O>f+7JNPtNaozgCZt0RV>u3M~Kt diff --git a/documentation/en/api-v0-methods-miner.md b/documentation/en/api-v0-methods-miner.md index 970383843..d18be03f5 100644 --- a/documentation/en/api-v0-methods-miner.md +++ b/documentation/en/api-v0-methods-miner.md @@ -252,7 +252,7 @@ Response: ```json { "Version": "string value", - "APIVersion": 132096, + "APIVersion": 131840, "BlockDelay": 42 } ``` diff --git a/documentation/en/api-v0-methods-worker.md b/documentation/en/api-v0-methods-worker.md index f9d39f24f..dab251a7c 100644 --- a/documentation/en/api-v0-methods-worker.md +++ b/documentation/en/api-v0-methods-worker.md @@ -1477,7 +1477,7 @@ Perms: admin Inputs: `null` -Response: `132096` +Response: `131840` ## Add diff --git a/documentation/en/api-v0-methods.md b/documentation/en/api-v0-methods.md index 97bac24ea..d254c14e7 100644 --- a/documentation/en/api-v0-methods.md +++ b/documentation/en/api-v0-methods.md @@ -301,7 +301,7 @@ Response: ```json { "Version": "string value", - "APIVersion": 132096, + "APIVersion": 131840, "BlockDelay": 42 } ``` diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index 879e00211..d2daa8ffc 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -358,7 +358,7 @@ Response: ```json { "Version": "string value", - "APIVersion": 132096, + "APIVersion": 131840, "BlockDelay": 42 } ``` From 5534755f2d1fbfe1a02ffa202b7c09999866bbd4 Mon Sep 17 00:00:00 2001 From: zenground0 Date: Mon, 6 Mar 2023 11:59:08 -0700 Subject: [PATCH 5/6] Add command to trigger moving GC of hotstore manually --- api/api_full.go | 1 + blockstore/splitstore/splitstore_prune.go | 6 +++++- cli/chain.go | 16 ++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/api/api_full.go b/api/api_full.go index a3ff77978..f0009e4a1 100644 --- a/api/api_full.go +++ b/api/api_full.go @@ -1361,6 +1361,7 @@ type PruneOpts struct { type HotGCOpts struct { Threshold float64 Periodic bool + Moving bool } type EthTxReceipt struct { diff --git a/blockstore/splitstore/splitstore_prune.go b/blockstore/splitstore/splitstore_prune.go index 2ff5e435f..08d5b8cca 100644 --- a/blockstore/splitstore/splitstore_prune.go +++ b/blockstore/splitstore/splitstore_prune.go @@ -49,8 +49,12 @@ var ( // GCHotstore runs online GC on the chain state in the hotstore according the to options specified func (s *SplitStore) GCHotStore(opts api.HotGCOpts) error { - gcOpts := []bstore.BlockstoreGCOption{bstore.WithThreshold(opts.Threshold)} + if opts.Moving { + gcOpts := []bstore.BlockstoreGCOption{bstore.WithFullGC(true)} + return s.gcBlockstore(s.hot, gcOpts) + } + gcOpts := []bstore.BlockstoreGCOption{bstore.WithThreshold(opts.Threshold)} var err error if opts.Periodic { err = s.gcBlockstore(s.hot, gcOpts) diff --git a/cli/chain.go b/cli/chain.go index 34f497e5b..81f679c74 100644 --- a/cli/chain.go +++ b/cli/chain.go @@ -1620,6 +1620,22 @@ var chainPruneHotGCCmd = &cli.Command{ }, } +var chainPruneHotMovingGCCmd = &cli.Command{ + Name: "hot-moving", + Usage: "run moving gc on hotstore", + Action: func(cctx *cli.Context) error { + api, closer, err := GetFullNodeAPIV1(cctx) + if err != nil { + return err + } + defer closer() + ctx := ReqContext(cctx) + opts := lapi.HotGCOpts{} + opts.Moving = true + return api.ChainHotGC(ctx, opts) + }, +} + var chainPruneColdCmd = &cli.Command{ Name: "compact-cold", Usage: "force splitstore compaction on cold store state and run gc", From a2d331536b19b7831a72c880ed6d51da2f75f355 Mon Sep 17 00:00:00 2001 From: zenground0 Date: Mon, 6 Mar 2023 12:05:04 -0700 Subject: [PATCH 6/6] Timing info and updated docs --- build/openrpc/full.json.gz | Bin 33602 -> 33611 bytes cli/chain.go | 14 ++++++++++++-- documentation/en/api-v1-unstable-methods.md | 3 ++- documentation/en/cli-lotus.md | 14 ++++++++++++++ 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 0b63bc6b992e59adba09f600b184e74c9a933f7b..bb1567be5e8c8f42cc72492e907c0c0c2cae9b06 100644 GIT binary patch delta 32821 zcmaf)Q*dT&(5_?Kwrv{|+qP}zjcuC~CllM5*tTt(d%j(@|N77NSwCx4ty%|N{dC{= z)dOK56Ja0;B!G!pvTY}n+ACRi&gp9*GBP7sU_6kf8mXhsoq^z+aG|IMGh7$>DNV9j z%K)L5THM&-8G+p{KbpC zVjmNEQ_P)w_!}j(|K0k;>(YenhF(BNy!HFw01J84@-8={4RE%xz zragii__@94`6M48e~OMBJ_yW+<@qG=*fp~#j>!jw|BaF|>$!&*APOzv;d`L?^+N8+ z9Q^Gu3@S?@$h1d=B?|fVxdcfCWqFJ8*+rs(7Z1F_h3o+RIKB${^UX=Ls!~$x8Q_V9 zbQ@K$0f2dD{MhA!5>W9+eiwk}au%O5*f;2K_6uhG?4O{$zli#LJIU|%j}L9chCA-= z*2i{+z502L57L|f@3>Gq!q2hOPgh6lY1{q?XSV5aF0 z@}=$DPxz%Dpn2-VjQlu4cjLats*WM!P3F&~0$>Xc;^_!x-4V6k?n_+Q*x1DRekab@ zGj5s&IWG<{QQEg~I7ofvbk!SUd7O9fLMrl)pYiLb$Nvh&+x~c>^}gr#emqD&-P|EY zNWfKdP9!9PbiOl%;}7#s<-2&9&3*TmSWMhB_4x*Vu;Ky%&QgjC2p@B+-GK$IZC%NB z23$9G@AzkrlHelbesL_@95fRu_OCePXHWg zY~^#TgrMQqWSGQf4^(y|Z~{=;E%Ag80Gz|bGYmv?OA!W4SrZM!PD;B|%$Y!R$9HhZ z448Yv^RU-0r(U57<%AR$lv!J1U7njRJ}#Q9t?>!rT<DIPOOVa7gDQNCnI=NKQ%E-2I#p0e_Q=f1xrFxB(iO0Daz; zm1dq`=!c#t2=cmOTm&X)XqNcKm|(`w%wk-iNKA*Z230Ji^-*|opdI!BSfUJl%+2tQ z1Hk4&bmmJ&P~VD2Mmja<;Mq@LqXM_@r#Cd+KhflLRAE*zWdqER9 z0fXg>RZyEQ#Oe!HrTL>CK#V-p0OkZ|g&jR7HqWMgp~886*-Td~kAK8(zMubc=e_}A z%}v+{5nD$*v8Fu+kn9|`Y+pitMW=UDaISj5+#JVr+1ep`z9Nac3zC zQA}+@GMV6Ds0ReT-dJu!eyfi)8f9G*lbi5qkr_yPo{G(#L9^{QqU!G^Ae&?ZxCI6LCU{92UPSVfF9&0|U&Vx)&bC|@uoE^JAyXV4l@6-rFcUn zZP%h8Si_XOQPZYfy9Lcja^XtpmeQW?^u7<(>*!Y0xY-F$ogF_v%fpwy1+=jlZV+dd zKZ}^04AGM3nV!Wf6Vkh;h!0LUK_kC60EoGy>O1>jqBi3A4C|9=OS&Jz6g^;OwMA^q zq0!46jB;e6GftBfG71V>S8x$ITEjNF{clisS0r1$N8Uaf1LmC^YF~B+aX)8<`WK0R zn8knIZUC@S-j~D@O@AgnFa7==CWM8&Ja0c?stE|q79M8Y0@?hUwvyc3-hNi^1$cmQ z)788bGvaU;W9lw^e>bMTKeg;61Mnx?iL~W+;UJ7@+}{e(#~h#(O1u93!sB~){QJnU zp-UZhYJ^)RR*if?JVo`AopzzSs6fp~XQ8K~cfDXHm?cQNYEQaz;-a4`Gr2{C6W7Di zV?y#Lh=OcYZ&@Ifd;w)zAz5J<;0lQ4k%0JZ3}-*bmlH=-E$91kDk1uakW|)?Nst1; zjXby;+0;@ZF6|eIc2GoN0wRuKnrD1L-Ld~OlLV`K{^kYycAVcA5Cm|}#P#peeiN+k zpf1}!R}wiLmb}qp_sNsx1nBuVu>z^Jm~O>z1{nN>cbk4ojQ3p%dN%3ien%qprPaC(y~))_l-*8;Qmt z>yag5PKz2-nRs{ABH{)3_{X^K@5*R4?F?rzYs!7kj`0jADcI)h z%Wo`~(8~`@&{-3-*A!;H`-I1F%rQ{;ezffZ+Wr0d&67hZgJIy@3j0265IAH^aG?7` z#n2tH z=g$$IFIP_&-`gj!FHcX~>W`x@u)IL9pQDqzujl>uArfAWKli7eBHufR0H7W1iN%z$ z7YgQVJ-o~yJ}w>&kU5du7=7^XrcN#Nq&9VBy#OsSG_7@w0CTiNBBI1b!4x-;cb|Dz z$}1-<(O<^U&wf=v;7bcwxe@dMhy?}@Om_XYni>BHn4a$yj4r8y`3CMrvRdhf9F@O= zqvafj9Ni{$h59-?(h4x=$~l9~Hx)8=P~gTs{7r|`|Fyjb7*m=HBaHRMl(P>a-gc)F zZT01`Napld@%Y{`X>j9p|6a@7vX!%V%-V_D?6mQ0o$~G-oYf~9>79Pm`AHZ(Jwp`k zrHmye$DQm#!UqJ3Ub?r9W_b(FC->mrs%=xleNiYJD zUe=tr>#TqS?6y(6DR4ES!Gt*D2-uhM+henm+paM5q$M{>tkci$W!Q_sS9YL3KD!Wk z9WJ^NM>yv}SC_8}DjA)+~A*lwcn5wfx$-T9Q`Ma&XV zpKvb$9bmvEoA#rER-!DdZ!n@c02?%D55B)S#RaW^R&Fe~_wL8(S06-qO$Ue8oe%se z6DcVB--9y)*gK`ne_wtz@ElKyJm1bl#jdPe7utZD@C&z8_H%8I+jF%eh9CE>}G8?A7T9i`kW_Nus?}Z}v?P zmW;yzB-KI`KbHsFOXwI;yz{p0;{oE?ox!1b!Ia=-+wkXymmz#kl?$}FP#tbD z>35UrWz=iuJuDg=Q3yURBcfnjwC(1TCw1S)>P;u566FPlm|=z8l0OHN`D52kJ_a!a zk72|OHST_Cww2Q#-=_E^4jdOKE51Uy<%!Ghzxb-=na@$7{@xD0Y%)4~%B4gXtW`(> z$}_9g@$jYm_)la*)Rv9bD>9Sd+~o{$WAVqi2Ln#nskl=1uw@wMHalX&EP4QgtTY51lG=q)Si z=$IU-6HAZ_OE=f1KI__RiNXO+9+*>Pz$AHaMc;qU7KcexNLLK@?GUs6Re~i*a!Mdi z%*+n*)}#+j@u*!XuvSJzen3((QdVDydatqW3fv(K`~&~q!wG2&Kc?aXhZLflO70lc z28Y{5B4R;aMn_!e8x?1u!p{qnne1r(2b8X911 z3$~H$0t|Znzs{d7ewNUm0B>*YrJu23c~zaj-=BY00sV;22G4<)gRnh-gm<5xqj7WxfF1K=yKf{A$kdy_HxWBkX zgQ!Pk%bKLqBu<^aZ2^oJ7z%=*rD1*Cnzo8Cz1m;LBjSP7w8jBIs^W&}uoFl1gdwdf zUadP>S#L{YY4VJrdEQ~>Kvn^D?cnT%W1-Q>c^^TUG9sOnghg!O#-LYlFa z?KUzlp!~g8ck~FrP^(J$?fW)#VmlY>-C#)RaVq{vHy_m?oK6Bkb;l&UI|S8%iq-{2 zh)~RHUY1gIy7_}SYT7h5)Zhts%$Ab&Ym_Nd>`sc{c#6^ak4nxR6wdU=gjK+5inqOk zgNu#H>P>DTkP0U6T+El4gXyMd^hAA8rP+%n`BX}`oYNDavFaiF*}HOKDz~Nsl-EL7 zQk!5UQLRe7+1IL}(yU)z-ED9tNUa73Z=p{Zj?48})XOYXa|Yo_w>g7cJ-g2kj8c;C zIpMF?5KJ%09SS6^_THUk*0v{^#$Nbe%Z5Bs1m?tarpM>)X6^YP&9#Q9gci)H8dq|M zl_84!(5_|xcGbChjhWeHMRY3$gN0N@_7fg+v!!qq#g`(E_qe^93#{RQ)w_ASJf@kq z=H#;3(?D|8@*mK@ZnvcjWOsPNtxqDesdD>w5-vSl+lmWSv7BfjS&%psISiTv$gnij z$j|&5`dl-U4Jcyd*V z_`JMc!YcUw6~AalgHwQJxBK!UkJ1dZ1uU52VtL5s!7M5gjuXa5REmUGR6!?j4~rkr zNZ>sI1}^wB60hn0O?{BpjHlsBm33A8a=NSZJj8^t2XGVfSx>BNF{d@>wD%hDJ-AQyE{v zApDE^c)*)OR1@Mo?a zSf07ve19hF53SzJAy$F)++Zr+Nc^SxzB3Dlo&soo$l*ZSY%+8sx&`>nF422A^X0s@u{rPz)i9^iN9)OoR zZK^zUTT6H9*OnCE!LKwac5%Esck3bD>-Tzcoxk&Q()&-Q_}Tvs&-KIb{fY-Y+1MHh ze!3;j_eQoQW;WP4i6`IRg9`WpG?^HwAP1i0uiGak~61suv-#=wT z_QjS~OJW2>z)TrB#=eG8`8b zxxs8T&u$-&Hf63K&+?t#WCs?M;269IP(&lhgXRI$O~03&qsUMF9RRY}$<*|>aJ*JJ zrNKSd>!m!gH0^_LeGHzDskK|!W@mwB{lwPmOx|zJ#Lql`e_*B9Q56>(p09Ep$b@xJ z+LCq5ma$WE4jj}M(Y1-gj6BasO!~9@U#$DWusx z7=Hr@S+%78R6U}ZE8EU1u76C5bf1~?EZi%%b~B+J{-lpkkm8Iv1PmHu9OQPW3Ll4* zB0L_#qMwXcAkn!D&sFPC`trFW?jH%P{}halo5k@RI^sM&FRH&e=w$c$h1kAlzc+W2 z1D@WqP86uxo@cd$&bYYoo&^dTRhZqwKTZHcDPilMTRsbl2vi&!TXnftT2iHdleW>~ zTj+Yec+PU?%(gR~X!a_nI7Dm$)lViCC)PB-AFS>=^O@GBFestirshFI8Y%{6*I316 z$`iIKXU(X&c1-r8juw?8#g^m-2n|XQH9jpOg5J{au)w2<-4-RUh@(RcVKsBl!y*AK zk=Rkfl*u|2aJSTlhA<9D0e!;2;Te)!^D{Y>lAdO};N(!R-ZMuf@aDcKj$P{SJq`Kh zQ*MCnE8Jf9IE0_q%2>76Gc}!eoLwS8JJ(UPS)g!iq_qYR|4z28yN&lW)hih z-GU*bSoHe)cFef!x6=eg|CVUSub@j8mUm7vLp1v$@8qbXjJ(ZG17~^kz4;>E) zLeHn`j3fU7MKX5}COsQ6t@_gc0JyO($9{g|nJ#=ioC;NVlzj8%rRwoPQF{G9---7a zy8G>yxBnF&82bM{I|P=#li38)*uDUru!gX;e*H4NS0js!mbuv50pJu`c=k4xDVN64h%psTVuAa)pKvbyGTvFpVhMF*dVJ%^*KeE4dVt zL-$YIre`VLWdw@hUhZfh<{Ue{DsMex;yYTG@vjYY~#)srK_Q%1Fn4mI>| zv6d{4q(;XttbHhs8b)iUApWLnS5K`@(v7qD&}kK!IjCqfU`m#ynU8IlCbFNJD_2a# zd7ATcJW-mddrJWpQS3%CbeG84SYbO$;w#K|^dp-->|3kF0KeU3(@eBY*r^$ZI;BE2 zp)={%A^H)uB0kuT{gACUhUTvJM`JDrxYa2W)1hjo_fJZbsVr1E?08vXvN&x19K^D| zs0Vyf^eBiLDV3(H7%4|e8IqNvsFY9)Usw$W_uwy zbSdr(t@f9f1JXLNYP~hOmj#A1^h6np&B=0S=uFr1p#nv>u8V}1G;1z>cc0bMA;Avp zf+4r%G*_Nl)v`BsNljURnvUk9D?J=HRKxT&Fy)Ujb(@y=pHW{Puh7Q8K&4za_r?-4 zHd(kfvM&0=6*vrtV$!jR#e5yy_0Az5+{%DQLU2fy(p(vX5JprT1 zLz2KEoncnDanWC>At2Pp`_R6lW#`rbuTA0bjHibb6P{UUoCou@*FTHV)_T{@bUh2S zoWGrx)Y@h9v(OtBygBm`#S?@$b}0{=nu0yns^X(t{Goi2&Qt6~ux!)dz53%;I1x%#T_+n61_c z;bK_Ai`XD(2hWCqum9iUUyytS&0W+7m+l(554WhyZ8?MCg%WDjw~j>{R)us5wTla7 zGi~n<6n)IM4ia^~Nv?%{2p%cmKk)Zex6|78+wdWdLJLj&^Ucm&46e z0f6u=oWT-{i@dZb!}3TN@n3~EV@#`CCJ8c=?jV_wAJ89@;r6d$O(-JviL-z4Xx360 zY>2*j(fmb1E>;<$tUIs?n~zk3u7EvGU!ofJBOXLEq|t04APJ+^e$0zxnAwv)TL0<8 zO4u!pzE$IKUEca)4nUV*O{%sWTC_@B;w*Q1D#1IX=l2T&caOshaUe0s_jQG+|Ija> zy*o^DK8>WzV!v2ymfv!7KY#Wa;f!$1wCr$0k}^lnpnBg_W^wk?%s)POy3%Z&dU&+5 zUNb%{VLEJErcV{-pmztPIa@VP@MOA6r;Y(XDC85xm-6w+0~AuG%CtZ> zFV!(~ARL39*PfD1@s!p2JNFy;7TX3{2f1?IiUyAjRentw^=E#21%7|aK1D)#LHY@C zyOnDsiIkrWC23hx8`ulGp6FFn6nZ(McxYy~pW;oO!fVqkNoI+q9xi3_a>&PFB*Ws< zU_G0EtsCJ%WDX+Kq$>t0FG)KShbwi2$0p0+(}~+N=Sw#g-@gsbD8&692^ohoHBR8s z89+BMF}v_ub?06QDwGJ^i}LUJkRmV#-#a_*2ZY`>Kk)?o`OBcjoO_N8MPxs_b#^zj?PzMkF8yn96TXy2@nUKpK@Xb|+p>Yk^LTkaH@(EO~6^$xC4YrpzV8vEpB=~$F;c-V$; zGX%GDl*&WFj+k6VwBCsBxA5B<39T`W5BKrtt*UA)S4!o}I_cwgnyJ$r%swP!3)Bfq z`HqzUYQdNtRS!4NmF7U0gaYnn+ac^Dz}R!FVPnKi6gU}1vP{deZ`^HM>VGBQ;SOGX zbwEc}lH<>;VZ;4F-ch_?^)!Q>-(oPDsy@?Bh1(RFG>efRr#L{1L2@k5nCa@|B_1EK zal1CS_|h{D?XH=^@+8(vDSs+Kbo#1nexhLjI8l@>%iQj(;iYtp9wDz>&7LG4d(MH# ztiPCvfMG8mNA1i@!FFzkO(UjJUx(-l_`a{5^gt&l-Q*@ic|VQw@v33w)*b;T})hhUCh~bOQS896Zt${Sew+DVsSX?NrZMei=11uobvkw z%&S-qS(&>|m*z&7***wE|x`FfFST78Z{uU-Mw&m_i zp4CJ@mC`=Ncs1qX1QMhc80HeHC3Z51w_+0hbOVWiDmbVQkCZN?vqgxFCX*~8hNQz| ze)OO!a|g<`k)^<3)tWSAP9Bo|F94V_FMt}C*7O(9w5Cp~IsxTg%sL>XDW_H`CgF7R zaN0zT&Lb?-iL&ofZk3Y)n1srs`y}~`$u*wG`m~t?aCe=f{*1!iQKMgo%ELgsqB-Zb zMTNt)Ax%*s!xBM3BS(|Nymyk688Gzff9~{u@7);8eBT)U?7#j@KQjt~hym;!g(5e_ z+XI2aND+a<+WK^2rW3l@>uOOyh5g0FZ0;%gLnbz;N&5a7V%n3BsH|gwaZA|3rRVMt z^VeSx`WNr~TR67rhZJ1L3w|So#8!y{tZJ<^68QTn%n`CJs7EB_E#As#HmHlK33e&w zL=#?b`@K0uKx1}NBHS6I2mqo?(C}$<<*^DfkPP7F9?mp*K8^XZq(_&d61b$O)^3 z@db9>tqJQA{gDdMF?g7^M^mz+MeweKfV<~oAThT9|BXyz+s-E3n#*rc#*-G9POOId zV`BUZnt&Es`5F9&il$z{bOi{|%;ZXa1ju>RPg)9J3!gwSDWz&;67dGPBgwP}>H0)- zO25!6w7szuP#*OsV?X&bee4bad?A~No+8QrrHHL7%W2U6DoJQoe)R)pX`l$&2 zJw@K9laNJsHw8@n&Owt^EVOB5)H|`r}AdL}N2xMnf zV4K1i*j5GCJC)cKnz6I;COy-fOQp5MsDg?P^|=g}zILis+cOcXSL^=hD04mmYn(+w zF=Acn51HB)8lbB=^SHuXooA_WtKvCU^U-`RTigLLa=V(s3rX(2W&d)HIlo8Zl=L5y z@xT#9R-soS@ok&}*3;;O;BWxd|9B!xMW;w1B`m6!q-t5Iz|yVV&O;rOkjd`o_;CZM zjc2d3G+L2u95<$rPW5Im*6m<0Y32-q>y|i$0|z0X2K<$ZSp;jSg=;@aFj?RD=xJ|e zPO;q?=tHM!Eku}PH}S@lQUXSElaHD**6yPhbW<7o)Kr|L%^WT)}@-W?Wi;mAon z;A)yWd|TX9*n=-Xf;zqRHNr!0nngtF&}L`qyY@6? zmcf$(aYmf4tfy2{)fhV5d)b|oC;iEh?E(6?U~MEP$y2C$cVogNq3B6ZmM%qTDw%Gs zM6a|kd9F-NlUn=%9Z&wN;|Jy)iT@}uU_}PtM%N|ha@!IDOiw6hZmHcXa9Cj0JSpm& zGz^J29)72Fj+Wvn8Kz>r9C8ul&RLnF6b;M22!qJzu83K%AR1?)nd6K2s+8Yw=33FTf636*kF0}vfWLA56)6Rti3^b zApXN1h%of>R!A}fVwEj%OAHlE_#%jWRC0@dd&AS;Bvuz$kxVx6ovG$*i5{Z{|7k_D zBKJ}z5G${Fcy9#k9|;dm$h)PbBSsJ^x7tOtmaohCwhDJ(Zf(=B_K@i{IBl8N9cT@^ zZJ-gn(D%Dnsd)MdeeyqZ!61|+$Vv;uWKvDcG9_A74vfwHcaPt_wdV*$lWUi*$uo3O z-N>_-a~IQ4Hpp-Al?HZ9{B!CEi?LmUp&$uznF>&nRRAN{gQL7jl(+wzVB)( zof(F`rN4zcw)1=a**4~s2YFpc1=x31H_la=>pi(jl8**Uh#Yqsl$+Mt3l{M!(vnWZ zg}H(^GXXGT6=oT-CbfS)hyJ7nt0QQ0w?R1H>bVsqBStV117DaLjN!H2CN}20UTEIZ zli#OgEQmzEjh@}gH{RFVBq-C4f7P?&+1lIvE2>ml?k)?NDumG$G9oiJSWc*|UWmAX z(W12Xy%NST1OoO%Pwg--o{@94K4m?!Yo~uE`~fx^4NEk?%Zd|PAlNgFk$!%2z#!E7 zFezLy)74w)iOxy-o$1*m^YUSGtQNjk-Yk!+xT1%Ridg!v=XYn-igLGWWoMlREda^S z`YUZ^N)5I7FI-h6>Cpn(7E9G9$D=%2=Jn!QTEQONqc8ef+wz9DmFE8zZVfhOdxA&y zr~$HPsKNIUjv*7hIutfh_lr8yjC=Adi>no2gYy|~Fecu;{o&C2j`U#9dL7AZ&p4ADR{UWpatwM%PJGye7U!lT$-yZ~4xc&2A@W`XJ_qZ&jTKh2B3+JwvRb<5$+0t6LL^?KPDq@dC15wtY3R%mif zDa3P5R7zS3wm@?@5J>bu_d_ojV>)CGiCyCN{}aT+kKHUDhmM~RX%mdfu;h}tGEae} zI`}S)~*d^!RzqF5wyxuZSP zSa`x26VtO`M`1o29X~46(}@LF_nt-zRlBZ<{F`^IEJaXPV%@`N%`kYF~UQC-C zb@8V{!GZqs?wB8-K44;mfqHN$__Dn*(xJQQ)6PYQ-1-X_II%j;1zFsKi$U_&-kt6GbR@@K}2o09hJt_Ga=?8IeWY4e)4cTVGsZ~jHal|XluJn=_`En!Qj zL{W@MO?nsGm5My><$0Mp=`uxj3c^mck>gdao(2k%=>BHB=x);S6yeMR#}AEZ z@^`l03Dgl9()gVxf_+&86m-0OAXwNxl&43yS_@)MJenkRZM9U;ABEt4&)jW)aOTv# zg8W~jf@unPuxoX`v6&n0u5^!H`Ll*>Itre$YTL`P;Xrx2Vg7MNLNQd?LRq%nQt6`S z|Etv^qAf#KnKw^{x|7CPFKD5XL%sIV+Pjs{7QKMIXIyD-`Sh2>7uIWvH^%t-lYZxR z_);d)49IweC_nz@qIv9zB%S`sul^41N?Q0u`e#GHkv`Lr|BO%>ZmSZy z_d-dqw6rZ<4LcptINf6wlilXVx_J6fV5-aKSb{W+g(h&@Pbub^MslXnRrILAri4(+ z2S$$oOwgcAtN#QiiMP4wk#ba&?m2UzPYqVi$k`;{;&CBNZHU(}L*3!hInN zr(dBbG(RefwRwwTJi}V{{LaHBfvi2kS9fw#Vs&dq&lmY~-3o%l1$<1^cN;~ONlghf z7!o*04t7X8s6;dj+t1+-Y6NK$pa6;V5>!E9;oDJO{yaD+6xRd<3+^<*y4J}e9t?vG{ zS|h;rmYRG*Plv`-tuOla7EzYvwaB*X@7?71zOl7SyUK9$qsKmloOsRj++P2E)( zeFQhi6)w_jSZ=j2s~D4IPr`lfqfP(oyv>cOT^QH`2!&~T8xN|{kuL%gUF?VpojfTj zS1M<-l?j#gp#ON;(T9D{F}gaX(#x7vs=AeFoj^5Y%0J*T!-+2#?_ZaT^d2j&7${;k zn3P5Q9;b?sSwb#-DWLi%J67h>fGGKnffeAhq4Tv(esv`dQo7?)I}I4_6|6#2E7~Pg zlJ3?waD70VVY<2MP8NI=i!#Uqw+#E6>3<7-NA2e0ll_(Ve0=%zo$VR?)6SK_b0}DP zD){qtqu=Y{=}e|MRmy|)|0j|F{~Jld`6buA0y&U{Pb%}&DXzxvPZ9WY25h&k%=S!i z<;yW6f#Elj-;M2DpJV+0z&hs4(fHBXX?GeT>d4}b-%~#K64|o4U#1PUx4U9`424Vf z%RLvnX`%b{ncQ=>p29wqQqu3>z`KZRDUhZ@YH+Yr)O~-Uj}+iz&xbgtO;_ zAGwxK`pcayxnNui?_lrfo2VN&+7fixAt4T)=i6!oep?51Ja5UfIZbs2U=&E3A}}s7 zRzSPxk-K1J|2aq*`(tRHuQ*t*41 z$L0%X9~<)Yy_#Ic_T_S2jk)w&U9=VTJuT5!f3~f<{ZlpRRqMaya#7LBH1IKd8t)_E zB-f$wIWUm^J*A12GFazi^cHFwxNp}gd}dST_>j~onvz)i^;&efA6Q=Y9y+1R1b~+3 zy5{heHG=7A@xScvQrrBf^h6wQIL4V8t{PuAZezVgKkQSg*z8N5*5bM~*Sa6a^4>3c zpXbM$9b0RsP_yWd@oEa{{8~><`sY@1Q<+y$$w&GBd8R!V1VV^W3fqfGW2j6qUe%8q zX1Z9N@ z8~jxv+c34Vh^Bw1gtL125aUY>0ARQSfI;N3z#<$S5Q56*GaxFbUErKr0o&(h>W}i` zEuieIGl}6uqBlcuw(Y+c$g+gG=yH;)I=q$2aH$QJc%%oHsvkolGJ;eUt&6~b>1t5Nul8n|{>l)_N|bFlntNm40Wk1z z;2^w;oR8R4kvJhU$!uSrNb?>@ZfTOG!vh6dW!hI4J6Dtv^?}!MfJ&t~WIvm_I8)Yk znqY9CW^C@%)1Lv7_imX>T~g}eZ!Q1;Ly?DJB9vFMFX4)uj0cidddIMhet>Ru`Dia)d!;x>1!K252?KLa%Q_E#mepPk{8)< zy+W?lKdPmUdliipU>b%M&T0^Q#3>6!k<9Ad{}lf7KlE_L=iie2R-+~fcZBB7`6tO8 z>2;cS;h8mihR(%c8^-g%`24Z1)(IDj|*8RsG z(=e0`J1h=l5*$M|{86khwwjEBkdI_Bvx9_raSDJ+S9#TX|^nFp-~o%Q$Ml9$$Qd;JRQ88rp=MdA<-o*@;v+-o9=1Ye*f9fw<$_NB-1J!vMa*j zcssy9kg{}XXJJ>n5?kSqt*{9E2Cyj=PYaRegXVCvaE2Mnr-_?DjFY?))YaTx#DQLQhvg zBf@4@pn`N61SWIYon4bXTLtU)zF^Jf!62&MK4HKeaQlx&y3k$zd62fn7{w(E;UkJ4|& z*-9wCA6PoZqUA>-Dlr2Be}ucc_nvR3I=A*V_TpS;3bO~PQvF!(KIr!t`JQjV;`tu) zAkG^r+vly*AI7le$%9csZ%1C1#QK_oW;s4 zgVoI`K$c;Wto!A1OOj1)tbr=ZWowJx)|%c`Bpa`k`N}sy&KBMnX`7>6NKzJ+8hfWV zf{)h=|8oA&+U1Je^X@BL>eZ< zX4<2#uyLUBFBc(tvKQzj96(T$MZl!CC@HKn-Dt%q)~b5dDqd?m-H07`X%$m+&6917 zMU`f?asBcGYC~HK?KSL}@lS0CB=LbA3vJp$JK~A^=4w>;=9zqEMV;@*~;dZA9JJ$i@Q>A%3E%`LnZoXbbW?IREfEL`P~tbe@*;HVWQ22ZviKK-vv ze#c_$`FZ^o6--lQ;5sDMftqHaU*2zExt|i&?g@vz)k@RM-M|QVFVCD?9B2*H?&Ml6#r!t7&EWZh;`iVOr%U9AVVf6&J1ew z@KqK7J=DC(A+Nm)2-@B**!j5kSzI|FiV*DSU~XKw@f$pMCCB6L?w+bCtP5j_?peBD z(X+xZsnFz*)+zgMDLK36J^e-DceB}R^e592_LNd zfkP$^<`GikmOg%oqyw#Xj@`!Wp?O{cGe63#5z%1*Za)DA7^KGEr8!3kGyPjh;+vU} zsLp6L-i~_f%GjytP^G}&KN)=~2Pa?WITuvPV7$plUz z2N9{U4~&P^i`NJ=7&Gt2%n+@!#++gIyk+aNW!bzaY?g)R8;bt+!9wAk&j921rpO2x z995S& zysHSUbPf%_2?||CnbBuB!@jn)kWgGDD^BKh<~KI52Y<+z9wy*nkPbW{)Fi~F!ibO6 ze*32x{f%YYgPq*fEj_{^2I9^&vHKv+})u^%4mn>WX+$U7ppAbx!Qt)dNfsv$1 z-r34J;uy>3=QS6dvJ*;uBHmDR@o}dEcMNm0nq9XLs*>?ncjB3Rv|SC#v8b5|$|UDa zuGz5&Yh2b|rdj*wF`TznuhOb9x2w^*dOCQ1ze_#Hz3R9$m7%0y9hEXqORUbVvQVM{ zG;rvs#U{s=v@7OmoqD+dWdg~}yHE{!7#LG7rzdj_tKdlLCBh|Tjr|rd23Ojj5~fmL zxk5umvT4~tSppr#@?rpG5;`>CyQ4Hnq`j9@l`dx<1UJQfjMhKUx%4tbAsGgG3>}1H zI)sWr?jR8%>Ig{ke3;46w1qps_9Frw80vp>fSPm7wKu-5-3t)_d*1Yb=rXgbZuu< zQ2j;*L1aZZZ99BLfd`_9!;A_AVoEfcVL|aeR61E7=KI5ST)&)OMp-szXlHK+w=vAS z(KlfM9A~#%GBk!k`R{-t)}oU>dTHFwT8GJQVaO^BHFh^8Zqdhhj@ZxfOC35GmQO|M zFPu|a&c|}N9&lNxXg%GdA0jQFv+&GIGx^HX=X8m{yE|XBmP4oSY%t+u%U|W*R-$a%Q%Uk)asgRnTvLqG3L+#n)4r4Q zkns><{Xv@7iYs`ptqb@9+A_ppaX<)RDuin{+;J;eLm?~Fr^Ivgj7>qXBvhFxZXM89 zNAW_`4NXqvCr8CQ1JNK;A)#`JE6{0XMKR6akx!oDCjcnCL^#(>bx&_15Y8c=hg|IU z-?$MRaK=Y%Oke?XP0|I2X3u2eP@L~tg!WZ?IM$YZcSDC8p7xh zi0l^>O_@O5s$HQUe2~|5?bpgs5x%s+jja@UPDPXcG$LT>JIzB3=p@(+cYvSKf}LSJ zYp>cE)dE7hF`ipOyLHqmNYSx)Rj|tFua}n6!Fz@*HYN)6rqt3MInOK!ZkCO=B2eMU zGfyjkYIx51BSacWRy#yes^7a>dMR^_5*Z?3zkX8IkT#>z5uCwdJ7I6B00Lbsd^QEqUEAV0X=CV4-! z_5G+jXnk1X^imTM8;xB55U9%sg7P!o4*-rk6Alaz!pcb%mOILOvc%^xq-sZDJEk`= zUTzo0hhvudLBUr4JY-x8jH^Aj9ICblAe)Qo)RnHAPtXNVCn{ znnng3AJ0v0b=>pDsWZT<{o#PJ*-x&z61r$=EgdFhXQvZt02%`!gH6aI5n8X1J^7w=)2_1`s*?W7#X!Gui6T>cM+{sQ70% z2XMnxBF6sBDHZK<$qb9*If=F&7Jw14;#oeO+~dK-pGZbLB#aUIN4`P$tCZI|J?C$E zYy@r_QSgq@5*=0y+c~4h9>>qJYEH+yGswe7yhhNbS;K`T5r^Bv zlg84~XiH+I6k@EH*`PWZaWU<=vQFiB77sBG+6KpiJWTImxN@>cb2jgp94~%1&nAoJqqbE|3qvqo^oip$J?dvyC;1A=fBaY1Lvky+g7M?H zVMSHQL&GpOajiL~3TMz#7MY;a=HiEFwKsCI$-xc*QmALhoS$8S;>&Dc)}tzkl!j7Mq{ni0$S4JeNBLDDjp{T!w{ z>DC`vrSjpUGu4yLu)qO}*{|7~o!2kjIJfR?32Z;1vILxUp^-L2$; zi*m#e*0K52v7~Kb1YcO=d(_b1AV|OahCoXO+dweLKjOzBn`HunVixtijI~z?RS6 z3t05B`d+ln08=&maq^*FapsWC?&-C1wGp(w!6Aesys}e65-cFW zwn9QrfPH(V~AnpckNep%@5&qBMx z`sfj?(nh0cpo0E2mQ%+(riEbElKuc=yy9{Kd_dJ!iiD!$YC4YTv;N&)E>vGNGV zVW8s2y?G6oL_Ct)p_uYw8th#4mw0rlZN~>@y6L_5k(>_B!Cg7LK2UnSSD-9IgJ^)C z_Jn*~5=zf1DKD%Tp6P;|b-$-qrWRnp_j<@*EX(TYT&;)v;f|bTae^6D+c1aF7Y1_& z2Tph|+Mwt1%1b&o^i3P>Z3#*CMAJ^bA!05^ghpe+CC?jEd?LmPlx{+78wx1Zd(st( znL9ZHt}fe>>=LUaoWk*Skm0(cD&o@hhq91<;f;lfkt4LY2Bno}cns(UqX*>6{Id*J zAkeL5hmb)P!5mn6-!E%_9(NY$y!lXX4qS1rgQsS)FH6TL(gNV4v~Utp=NWYG>f*{0 z5{^zR>vaM#4{@&vQQU;+gv{4yz9&aaFO?gT$;+->T|GIQPNdJASaKH(He@_?;3+Z< z_rbM&FjsdKb1}N!?=q8~gaPt)iz}4}?f0hG!`{G&aHN*G#;=w>W{`p{*uHb~m__G%_qopeJ9HuI*2ee!udGTBFlUwI^^S#t4Li>I{=C~$kY{z1!dLC zW)S89ju&BZmlT8PH}Z-;Ln_{wF!N9VZ)>7c;arLSN4d*j%BtHz@k(o5G8jip8Y zk7Og|Lzp@F3jhVub+rbGgrkVTxjS@)%B_@}NKHDXgM0VfgqUS@I9wH0=T-K=r2^>97#COxSl<^mdp)FTo$nAgZR`19&(`%Bd84LA%--WOeI9qpJ9Wg`BaQ08B7 zXc~Z&1HtlF8kn>ui*is{7mS|WU?dO8g}|7t)Ag%W=OC)bm4i?W=6$cG%(E;QlN`^0gaqS|HjIZ!(OwgiJhal{;keryM~De1EE7KCN(T$6 zD<1^wBtY$rTfjVAjqemaAQ3}Sy3gEKr}1I(0AN1hgdNfEfI>z9|0dim;2&7gnk->C zRJ?#WggpS=jw|IvjrOxvlmR-l^_ww-9?x8xg(uooebjP|8+Re}#03;OuRO`j5ywix z@nnpcZT}L*%)P&rD^6`enxHA#9~d^uQLcLvS&7|Xg@A4{vzrfCLP8R*=vq39E_8Iu z13aUHYoIoQ!FXyp=(1^I8CFjJ=trvd{r z+dyaDd+}x=RmtQd$KAG)A2K2`-OwOw51F`!DvOp#EmLx0-o6XUGe(aG`1F+S2N}3bRGTiJp0A@^EZsyZiCZ)fI4#!ZTB?%tBxdlxuP zR^vZN#45YX8YfFJ$6un8_kOX#;DY9uT17>j1I?!rf&3%O6fVgQ?F}b!0tRfX8GY0nM=}QnW#Sg| zMJSH}*$GCkYhs=~A!mLWpXkyKD?a8ngU3n*E^%={UBgVe@@yF~znYVvA`ez_6fE6q z0cP?-BWnZjQ~KzNq=bL{?Wvnd(pxr8E9bxho{LVYRcIZ5?<6!X$3pmMf7?uVkc}RH z<-}hIl?Evd_@~g_V-2B>Q5-?x^1FGcuHB5S9ZTYmZ?GNx&9&VXNF!gbC|~afpQxQc z3^*tHA&+L#Ff~ zxE~wV4iCJuPQbYWHorjw%Q^)@Nxz%3bd=W%VdN84pyhCb9^_DB>He~TPq1%zOaV7S zR(vtnOr`|cbNaS9LAxQNqQ8`M2L5p1|AUeO{vRxkY2LcZSk{zVl_mbZMkb0Fx|~m-r{zUym+8MgtD1Cj@i2e6&y60mVj3<)Db5`jduvZYz<}jhu;-F7ZX8?!NOLN1!Tg^ zbGm7$(#AF^Shw|c0KJ0Jc@CZM50kjvePNDnugk?Wf#K6;5-+xt`jGX0MmN_fc>Bm8h(XO5L~+7Axi^bDe?|B&)A~(owWlK!f_?fC;^~m@;_I?@gIkU(A#DR~4fqM`gylz| z#l^#EnN3nFp08*d^ONXLfmp%DBK+B~rn8A6^31FX1B+ROG~WKn;LLX2S4?SbuavNG z$>@v>Rl;7wewTF|``HeHM^o%*;mC>L@6aebqEYxMiB9ytsGeO|vk zJ83H?W=rE8vF~Nqj1r&a$>~laIl&&SJTzEc{xZb1=o*3WNY;q`AQ|FtiqqQ1KW-g2 z$}dHHW0wTGpU$OqqLcy!Ajg;E&D+?z5`#fk< z-s}$eqP0o(`DVTo8_IUg7RfTG{P0TJMJgahJi&-^Nkpx1w3rYwZqlE=7XARFMw&34 zpxHsBT3itGy*o6X2rvFf`CD1>OAqdq0g3+yZTR2Vfw(d%Ge3Z0MOmAF%u4oaMU(SX z5Kce8vs&J-ZY50{S;VV=IXV7oyI9Pxz$g2Pwy7s+6rrgr^;338`do$-lPTSLylcYx zT7>?9mjg{d9n4ZR)4(J?yT6ipQJ0v~;j0+w`q1Da+#Q%$P%9k^AgCp8U6_kMR?ojIehyWz>wM zx2lx}w3j{c+U3iuuq>?DS7_Nk`|bbTXBZ_$+Z*-I#;DQbM)D$g?9>x1#e*%>Ep$hP zkRKZb;DnPgaxlXGx~jo^(@?$~8r$>>e|&A?w#y6Y45BwPTxK>^kI7774saJW<3hEf z7Hg6LI!K^kXn>23QQpL`rs+!IK}VM9q^M(IJkukw)r>I{C2ES=i!73@2ZBwkt2C5k zW&fQWm0@EbOc}l99Wk<+Hx^>0yToqGCJHV?Ze0YGRDDjn?+*_-KNtEp2hy<|oGpilZxr=Vc##45#1E5pex)B|UO0#Gc0(>gOT0 zqI9#zJ|i12qd5GOHQ{#AFPKn0vhMZDyYWeLhod)`V|nJIJV z_J?KP$}6Y2LSHQ|)PwCekNhk;FrUM9=CDs-@+%W`hRdf1C7>6Mv(b*10ycG47NBT^ zC3)DOgptP)Mv|AsJqMl)wmg?Q^25v>%$zvgG-ryS9{}{HfA(*IW3AduLX70p|7u{F zrvKR1Wy(yn(h7`FcDF>EPseW_wT`RaB%pf!h!s>{s->xvR7$DxhHk^h8s%0g8UU(j zb&IU29JMDH5E;R1ANav|et;Um-ci3*=SpQVBq{M6M}riYfB;|+0dXKyFmsOdaV&s0 zNQ+>*1;FAI@)4qA6kI92P7=b(CzA*S=hS2L%8U=Ubtt>VO++_P31-XMXGjQtmOo74 zZ5kRBbL1$j2BsLQ9VoUaH`)?f5&4P)L|QAGtCV^r;F9y{pruT{jvD0W#vdRrA>)d~ z+{YZd|6rYC{(|`{Sw*$^R8Mxx@gIz88`` zi*3mtpV7sF^d1)<)?l(iUvb%w z9L1uhD44XC3d4v?R5Erx|6}|E^0n38Lr>gO#R0}l{8rUQk3NrYBdYJJ2Uesv?>23u z8;Y7jm_ZfXd_NfU^%69o?m`Ba*zM zR$u~?MSQ<0H9nQR=?Njh@ja!Bv|)Q`N&cSIkQ4_eCI}{!`7)77w{?k%CmcLR(BRmu zJ;BWf>J)8l%FUS|;4*eC0-R*ZB3Zp{zmu@$Eh<;K6k1 zkXj8W>^pv^x=%MlZ#2z~u)VK};%}T9Vf$DY#M(U8xd>NQ5%-JY??^p5kRo{)&T(sH zqP<8Kx^V+y2|}xww@oZq#-iZF+z)VMYIkwlFvO=7xt3eH!&}6lJjuoGuUqy_TP>P9 zX#y)olhuBMG+6D9w=Q%r!wDn)Xxqlr6%bB;%in8WF?K+C&alck4s~j*P0L=e_`=f3 zN}9H&|9PEywx{mcn=3X7&ZfD!q1)~={@P-zJ179e@an0#bgMXE#J01FhWBG%=I_RN z;vG`>Z3DxHZ`?mB;10FlHZz~LkMa(T3ShkACzDzWm#HDIkY$V|>XoisxL3^Go7k|b zy}?2ZGcZ**!=BadV3IkuP442_?*|y-I$`xn;BcdBBSWJ2VZz31H{Y$FUpf<8EqLzRjm~=`k}p(X@hG`o(Ax>XQ0_L+H=aXjfWPEk(h?YLr}Y z;goo-Apz{1$e~FH$WAi!RB{VVa8{--N}ETOX5vRho7am<_({!HutS*4`xND)Q{*}? zG(o?BHyx`gSDS^XDut9aq6-$51`Dq=QANb?mBNFaX*5ydWCt}Imr*TlwzDo&Iu1kL zvT;$(YhkB4ype)qF;{{nsVjZeE4kS%K@Lth>Hj`UDSdVXuxE5zCg@RE)^i7vEkOq! z3OIaNKx&b|JYn_#7+u&TbY#j=RC&}Q2Mtdl%rMRq<~uF3BaY8Vb1jak8h*OB9c=nC zXzR9HPsW0LUU)9K=w-A`n$r2SPL8u6--RZOALyE4rjJ52JIIiY$_?4 zjiy0k2aNClpvCmx^D!OD@reZ|0W|E?0Z_qo*qXB{+F1OMnBn=?fg!zWE=L3K_SIIAG5dFD z;oHR&XN{CbSST$U{K+D9X;PL}nB8p=uc#HZRsGE{8&sE}imNy0io0gcA`|elG|@-e zOU!^%Kn>fHuX8~gM$wdAAOFMDQhzDy(j`sJq?2TpNn<p}sD&+%g|ZX^6W? zvw>GVPKse@QU%3tq&>LT|wxY>aKQmkXwZ$Rb7eb_LjzlzmIi%)+6+VIsrxOVBkRT_&WL< zi_dR&G&zB@H7Yy*!3$MMd_$Q*M6+HZEe>B)^9s!?-)^drw+hCe=nXKP?#n>eY6ClP zV0?hEjG4gkkMT?n`87xRcmhLM33%5ThE-=?g7*eIHRYs@%$yII9pd0DAN>$luVyY4 z(@bJ;56Y5{#kC>KCeo<7#eyZz_SsvWtSLuAO3`$h5w@g?FlF)QR87?9Jz{%J;k0=d zrz|^;>pxym&{(b&vC+T>SQ68dXH~sX#1JUh^vU6O=$~{U^#m&tyN)nxxkB>bFLzif5pD`j0G#F1)TyEbTxXoU{GI5ch|;( zhwdpoyhBE^BM0}XA5nR0qnW8aykZAP9!EEHd3t@*H+z>iNcZ=tX27nql%}7sPa4%> z=Le9ZbbFH{#tDU3GxHol06bT7@E>*ojyhyt3TUh_;6ey7#3LlX8iKImblMDSGhf0a zFx7yeT>tT4Q_LTGH9@Ap9rGCcR85GewJ&ly zMQORn@?)*US-EAu*U=*LnaGf#r95j#C${orbuby)!$XC{)}y8cK%Sm?1Z!!cCK)36 zVZKga=`V?uJTtj7_9BgV5`;^GV4lQKl)kk*Be`wnB8?Il{JEKnQeXro=4zp?WI0<| z%JLcfdC`+qqNRn-QlYMQp0GCq7U{!Q3lVLKYT0q;(*)VdJfHYlPEwr#zsy&LC!Pw?~Cjouh zq$Li!ouPIzW5+JjN1-J3iNVk<%P4{B5S!_kP5u0}1f=CpwmP6y)ops{oW8Z*rf2Cd zkUQKQKAY2OqRWvfsgy_e^P^Q@thapy-=!x>wT9YOt5T{vppw9nzRoGy-3!rxvPmo- zm$l`k3@;H_Q}mB$R4TQ&3ue$#tm+@lFY~8@rC83dR;^TyD^%uWsLCQy>2tNS-h8Z& z?*b%`dj3Sxs>S1-$#|RUZl*2`B+ZYQBZCn$>K`SPT0x@RCc1gWd-NE>8# zu6wmJFZji3!1!f|d3YhF8-%$A(et`y$ z3Flg2opP@b0Z(x}`J@L0lpw&!6fOMNsIuNnLll4kYZGG)YN_m-;5KgX77raPT3#hK zt6PeJsw|XvfilX~6XkT$Qax=g(DJ^7JHN*7br^7S(z<=sQf(!vP^D*?*aFIXEU^We z>OHXuucQ5=b3HWmi6@0AdrRUb9-5dcaoT!IS}53XjlJRH*g{zeDuM5k;KQy2bhxsV zBx{5KJy$wY3Rg!lLoDcW?MqxIAM^Q?XX$-?DQN{jcR&T$J|g>L3f=@MF-q!se;PwI zEB|UAp6L*fuG~!2lp$?aN`>X8+;HLsN2x_SgLkM(|^rsoh5P> z&1)3c5mAMf#8-Le)qtrbRlPRuJNds>>aD)DkYWF_JU$l+wY+X_qu?f5aMmKSywlJF zq;~OEO4a6dpCbq8N}c{C(!XB+EAX%5p7@`8G7>}5c6}9i8*{|q2FzWl8SLg?i)AAI zsIfE%=Hx2881vDl0;S_Fy{foo!x{~ch<$I$DHa9INnxb>zU66qGm7lUYIz9WH+E5k zpJK{69dJ@%+BC=$B+Tt^Vl}3U5z=ufK>Q^pxd%ytS&4lR&k}WdkiZq<@Yz9lrcbU} zJ=pQ586*!a77zy^0GgD^ zv0|3_hxt=f{WBDcbxT)~5pp!K|Ge1u1JQQ@mJDK%QjK|(N97Z4UaH+1(z{*+l8 z9B}mydk(Y}>kFN#TgbYFn&FKC7JciPUS+n*Tv%}*HEjVdI{wlhuoqa^2W6@qQWq-A zghm*a83mS7JYFjuwWC*Pj;g>c6WBTjH0IZYwYL7DZm=v5l3EKp8Q;r~fW_i}zkt&_ zT+Z-~Z=bpc?%);iORMtqavL^>zh3ZbjGbpf@}Gl8g(%34r7?tNK&YDlch@RcjrKrE z(f-g(v`l|Pim?)zz9d6>#mW{{lsowY>f71X#+Jqgk5yZcTpU_`mp19cH)<#?S^CTK znRGn8Zi4vYx(W`qx3!*N+p_XCO-zd5h}s70CEQ?Fa4IZ!oU8f6*%vHXANGUvWAfaN z3Ecu78xFYfIdR&=?0sVZwg$V$*_vbmgEUsUzHi;^iUi03qh@iSb7zH%fJA~r(V$0e z?Wjg(Pi-Y`! zhio}3$|>n7H9;5vTM0s-jPc@73WZIov^AJ%1MVS$K4SR1tWQZ+4nDqT&T zA>-)FaAMmQcneJNL z{B14M_f4bbbRiML_xTYqz{-vfn9RDs<7`O$Afn;{%R!6)Z4`c^Ui7d>+3zlM9dga9 za6RU@GpSI!?iLk)g_)NOe!;_eJ|TuE1`F7WH(aXw8JsEnam*fBQK!k@#ljinp&xpo zfy|TW&=?zlZWgz{^FgXbuFYs^2H>G-Y zZ92g`)#$`MV`KCz?WB_2;J*hCH+&{aHPZY+onSAXvkH7q%;75kJp0L(jCb4YhbTP*$b zjqe8{03R^~G~9xU%+)3)iassK`7K`efkh+7RX^_9W?ta#_Vo5`LJv_72d`&T#g8#n zZ^m8oNQqHu=~xB~L)sfRk?l7!%P_DiXjV+@(<{W#{M^+J^pX4rq_-hOBOrAXCnzRX zJnZLQH&3d$%;FWE!nP*WSZSZ@-i35xi<(^ta8zCdo7B}+B#eoBX1t` zmxGHsnd-n}&?BpoYqeOEzQS>mHq=%RPYDdsOO43>{cP9}Hmwk5QX`hu>;4o1rYx;Y zDS*kvS1)d|awD>yqI_qfG(lt6V?gU!o)EZ9$BG}Cac-h=#3o-iS{{M6(q**T__7M?nF z*LIOEZ1$cz*Ku4Pay5jEg?24f;$x0%Vn% zO@aT8$M$uB-B!Q8JLs)-zuQpU%Qr#r*1HFBM#iSFaoP+7c2jAO!L5YosDn`obW?jY z$B%imYh9V=P$zfj*VWwIj_oryAeEj;?#pqq$B8jh9ZmO(w>4lQ5l!s9rIX~t4TN}7 zt!Cg~DsQrc0%w%wq8H*CI9VH#4*h^gweM0Df42}`k`$cR4Rf2o>SqAKpTR%2a@iRY z|5}lsWM%&t_3#KO+V&J>+U2m4;HN6|#7u-XowG;DteE;R;+rTDDBC<813tI^?qoiA zIr-X611>$C?51~w&phhTgRcrAR4d?F@8?_`lh|0W#IZWAv*&`BJJ|4(-jA)tDQ?kv zDa47=?{!b{hYb-4Afu*{`2|BHpTLUagJ4mOu(nae`~PYhQQZtuBn(3d;VAWc(lqO~ zR31bSk%joB!3=s08c7ShrT2%W>hIkD2T>k?6v8@GEbi{!DW&c$go>D1iUY!fD z*68j*2a&FV2On-I!%0=<^5dQL)!{SLV(UTx5?HV)gFX2;Er;8DSuUY^P`car8-O? zIW&`2ZH{MiEBY9^#vTMV?doNo%v;2Zl)z|plJOfg9CGatR>^Ya#dIL(rOTG+--^2d zHN)~zIF0@m!x>7!4KCBFfLs0x{F~TM0*Q3*nd&nZ-l}8e`s0z`$1|6YS3U=C)W`jQ zzDh9DT>##zV7wmTuL;8qQg_wK)wal`@=E}SKf#hmwc}MwbyfB7RIcf@J(gJ~-2$1- z8snHMgP=Y>;>ws$?C|kOL)Ic7s35Xk&IeRBg_~RRkQFrhxttRoEVad5y3K!{JO5aM z$j%!*Vh&YO`K_3pTVc6CF5RE~qO-pivH+=`5CmY@sbjLjH|pYPAd18;*Psj-*yf!M zIh5=Oe1MJL2hqk8si)~EJ*XPpk{dtD{FSyu*yEw&kjIxW`3Ix>s@C} z-~vJBD)P>NO?5 zF-<;c(qyvJKpvO8_oU|IwGVZkIPWe|$bM?m%PIeZFe>j1Y z?3W*>x?sw-NNLBFf^eV)W~O9WW=G3miZ|dlXel5NQxn=pc-uRa0%zRIzH}Wy7`t7? z16h#s=b#JnLqU=zBpc8o(o84jDPcym&^qIHR@{E80Mfau24_>HWLB8EG8by2?OXu z=oOYvC_}@Xmu<|qq5xYKUhmRRRI2=-gD^+%U`QSsGHPo(zYaG8jv_)0BqjL^EDKCT z6Yc^d=8Oo6SLLh(APbZ5`&B`FiU$rYmWTC>*81w~Q=q+w8Vu9T0D3wDCYoQz!kv*u zUBa>1MXJY;Qy$4U$x`%_p9euS)CX8Zk*D=in3yA|?I#la1|7A9mI?r3WRuM|PiD$M zctoNp;Yb^o+>i8!nnCg-C>)~@BC&G(WpeejN3uV4LQ}c`I z;~wqBjY1hbv~DHUU<@G#g8?^(5`|td&WDoc6RCTb4Xdyo;z^4*1{ku0g909FkQiga z8!Hg(pz}!hg;f0Ef%p5aXTAup{n1iIZRDh0pGxY-zqsY3XfO$>kc13_1$*ULwiQf7 z4HdyMLR7y-4{!_L`K{sKiHlrX;N`yv-DHw4@xPLoGlN8F>^M9wf6YZI}I83)GI_}Zg7j<=Qo zj@Qy)0nW8idwCBZb}U*!mbOU5I|Y7B&HJ+mne3gJYYaflSf3-#C%}cLhdXWhEQ(%i z?+b1lpRr6;w{}d0;LmiX*JQG22Rn}TSXE_)zgwJ7LORip(9Q08kgGL6$t`4#0Gp#o zTCr1Jv8%%_lZig`6O8E*J@40&+TGy`H)@Xo&P)+ci*Bj8fpD&K&^X@Ku81cow`^D* zjX{VqJ*w~mcH5DGB*50N6am{a1MNi7w|H$~%psuEO)*2frB)SRqpKl2tcEH0PME%3 zswpLzK|Zsb<4XFl5o+;|^w+@K?$Vv^drlnm%9wa5*V+3O+0X(5rDga?xsgF$SL)p{BaIO`#rH~6oXYyjhk<7U%eC1EQx9F4gJ z{u=PuKKY5^6<33lIHlccT_f6t+ryMRDKEplk7u#S(5bsUCgi>3?=kUTso$6m3ywTa zC}mrf6NR$PKvIcy<@rslUK*>FHp?#)#oW#RP~}`8|G?__R=n7EWM)OZ(gR;TSD$1vPnjx1Thq zUN@DV&=wl(j9i>hYy#Eo@S*YWT4YbLx1Mb$VFA(1PmXZz1u8{ECw8;}D0C*t$K4#c zYu<<;91!6Fq4K7ce`z+Hhmc;7>LI`H_R@F#>lpgr*+1JbN zXX6H_XaAJDk6!sig~3Z$L=*fXd4X4MB^B6n2H>OJf?s~eY_W+9$x12At%a`>KC-vl z6+>$QTKUQsEu{f?wy+tl>$U}eR5GBNEKH7|(PqYHLZW?*noXz5%uZ3&PDHd=c|1-k zc>rlw>k)Aavs;bt@n_V`9XHcRkP(z9EL^%Cm}dE4T=eFGO1qJdanp$VPRZpmzv$ zq33t&kS$OU>tLI}v&R^hpU{(@R;>OpZm!<3m;I?5%+N^PG{?|BYbOaO@{>3=tYoK^ zfY?BoA1BH1B!~p*SeE4or9SiF5d?w|0H6rPfa#>q^COuF#W5&XxdO@df!#Ik(+aF{ zw>3RuoAo&G-9;~;J(?1aX5!r)i-~mJiEUpP*m|aA;vFB?^=*ERmiT><4Z3GB*Ryf= zjBpZ=-tRt_I$^!47bp(5^FgojK6Aku<3uw;Yh)l_>P0>VclJ)@Ks0j=S=1=o0b&(( z+E!Oq^D7PMU|cdd6d=q@?q~4nISUR?vn@2&`Meeder@}>Jnuhu#LJxK*(g~UeT$ak zVzcXFvV@0?uxr5dhaJ64pINQuJF zmotu2UHC*L(^da>f7I|UkSRPo1>n{f?f4p4j~@pbROF_tx@KJ$!2v3TN{lr71`+`} z%J3vS`A{2_ETIEL<~N+@s2!=01_s6OsTSd%irz^ILA0JrEEU^o7%Rg3yh%bU^9MYw4lT2Z!_|7SG6=6&*QK!7XEOne;8##jn}1K{mhu4)?h zvH2;-#NK0aMkPn2r={W0ZIk2bvzlan_%K8nqmtmjgsf@Y$OL1=P21t0%iV4jKB!sL zmbV5Gx1xv(a9=t8uI}@++2@k!mqb-u>WX<_(KL)(0+UunvzuJ0>JQoKB2}CllGI8C z1|<+J&(SX==0@qi!vUsw1^gZWf+j_yqGic72>l(`C3sLhn^Y_j3<+opitN8f7t1ke zjNH!I**^vO^>HGB@+J#KklQI-g8~ZnC+dt2pVhkBF-DuE!p>v; zkFv&_)-pw`3LN=?wdKR{pcJ}xXA?Y2^fxjc9w}{uwTi+z5}!Jr65uJCOef#{Ygw&N z$PJ<(1COg$R`uQ_Gg5Gr5K13ivW$(IS=QqsjtOcAivxwA{~#GUUK-kgBO;E_O^QiU z%i{KwT^%t}z+o+!77UFPr~7*w)aO-<$}NYTG>QRb4@QRJ;O;y^k(ZGjsSDf?kCG(f zepO)_9m{&0Fy1b22(Xvm9D9L)&f2-YujXVn{i_&;!6lm!Nr|e@$t&xhmvJ(M4O^@a zvu7dGSu3SQQ1-I}q^AC-&Qs5;KTA(*@HEEDx^B%Cui@OfmDiT|vR>vrled3bONhdJ z@`bSlM4B@YiuCK9g4?P@``I;^#WDusCdq(^)?%Sf7Knh@Cjbukm?{|*6nc+ioK()w zA?gOHfgp|mx(|#JiGWh4A&DQD)Ch+Ng#alZJm>luNs4z+5wY%ZlrY7!F?YltU0HQ= z@%u@CTU-nhaX)6!2SoT6y}A1eIIIH|EadOrOUPGwspu`BMm zL{t)7%ecuIhP_maL^}zEO(rZI*Dbs!KipGT#tH}?%sa${JVh8XB%KD*?nnDQ;*7v> z(*@KMy7tZ#KCavLo<~}|P@stVwM*^YgHUQI5&-+VWtrT0tLa?$AY)m$U40hw&s4=4 zi-zvFqL#UOUjdpvHOlB|jhysG`z&v4ys&e^@q})&dwu!fvP8^4d)z)6ba~=J$0)o; zgCM~26VCUY)TihAmJrs(sl&KVnVv=2>siG+ZgAYb%J%H3Di}wdk`zdbG3MC!K6idz z<C;>eKFCK96=&kh!W2EX4pVqcv8%9YF*7`_yJcG`FZQL z>UV~e)r4~;R|8PTR&ckSn?&?|xZ&X*;xp9IgWRDhxl(4h$S_y%O4 z33Z(P*tG-+kTZ}<{KnLPKmtwr(*THmhU2#0#))G<_v$gm*zd8>uo zOXO%{KSZK|kP_)(_vR693}K~6TX%^5R{Tm3ccHtZ@0TZ2_?&PlMa?(frg+=>`xLy4M0aG?h1waB%q!AvaIKj zOAWi~U%_9PFS>~cF96w>H$*LigO5DQ;ih#akuslo$s=l^HFuK>@pY5(ji^}z#&;~k zXA$mv;FoNCc>=vVL0#=L48Qad(0|5DMvxdsHySyW@57Vu?c)|hN2+>YWJb$uYO%}3UI2(X7jBx?NVZ;e z*+>_*lwH~~r!r*3x4x{8q;VxE$Z!OIA?DFp0{`XT+!=dztCtgX{M5tjJSQ zQPiNmiznZU0cFf*(R4G*EYYD=U*z{1Peoan5-jc&YvxH&A}NS=MAp?#HI(cH!U7fa zxM_dF)oyWa9D9Kh@Bmcq?~2IW-eUX~3Crn)O6c8@Ay(T!j@UE1P3->L|5MOshYrMf zgE+;=%*MEuivQ>75ob2^eDnLvY`u;cvQgiUFdA_bwT~e<>91?K0}t0{PSNy60= zQdt$QqbCiX%4+u9%(F!wnfS_h1$!tXUhIdTtG?{)TFOqfvCPCvh5cK#(dt}~_bJwg zbAd@`1h+nYitj75-fXlt5r{<&V3pb4j0|6KOfMb3*35lYc!#fAHaV|5bK9TL(s$oF zpQGKt9wZueivtid2%*&WYszC=BmMbw90$yE)ihoX@2d!54Up6GK)O1K&`)@x{!6AD)>J?DLTAlbEe zpTaX26}c$?;x0H|3VnmXt}pK#-qM6UU_0Rw`6n>rWC6ffrsbcKiUJ|&TOtsDf^lj? z7M7scQTJ*=cu!5njB9&jaa3EmXxRDiRNlTJH_2WJaxEQliqX)*{85->hJU}F)5?R@ zK{zPpuL|ax`(_G<9}@LPP0%DXb3)lPda23WDyB;2`N^ER2tnXajLa9_Hs@i?zd!zGea zPZy86xkVhKP|hZd(-f{otkVvywpUuw)M6D8QnGJ7!jUValxGYsTLqb`U4(C+w?~m! z|A=_4Zi5W|xisz@I(?Cbslm#+)i4L`x@=TXtmg@6G;IHE@3TzbgRa9! zIt4(1LMzoW9TmdMxd^ZlJ(u5H3>%**ZyrHtXXqU<`-(un7=33TorqztKMOAgq(z4WGPgTIJ{SriDL$RLv4@Yful*TDPW70;o|qFi$OX=*I)P#NEP9-4!1|@XIUzB*%@Fc@5uo#j^Ek zT4KL_NsHzXn!N{n!h>UUkxUFK_J&-hQf^@)R~MowNx;>(f%gT!s{EgD-(&3aGnP(; z48g2v_YydjODNEj$GSE;Dwg|fWT2zjGA2soW;(;a6^mzEG{O zLSumurVBZMiyO_`sq|%g{GT87d+r>*cCqZ!Ot6jGbBn@wWjHBze1lo0WwX*rb0fKH z_295brTeaZ$^#KTh&j1wqQjDNOp<`o$EvdDNYT&OuCXmGMKJyO|2K!d-_h62Kd0+1qqD}E&Lj+1z8&t!Mw>>h}OB#bG5hX8GBQu*$;@ZkF)kfLl^ z#+*|#76~*OAkh8mMx*hwM}0&B-{~Fnwzqb+_ImvuCS%$=_}Sx_d#HENJEJ^g;NtuU zygxtf^?SD{V3-nBV|#1x+C{g$U;W+;@hNp#@8J8-9)UAa^#k^QkV7%qI+{XE4n6AJ zFirz>Dw^o`T*RCJ`&?1`*T4QXq1R*_5(m6s;MIrF^S)3QUGgAw_)Abi!$zkHimuXNqP}P)GN0=6guZ8#r=$ z2irTtUq1vhT#VLvKz$T&EK2W2GfM%2<;9+vp z>-WOI>mBrerkwli;J4o`CFLlTFQtZyrN~vyYRNO; zqd+VU1|R`1Ae$3s8c;$*_7Y4H^!OAwq6VNuE*eLF(D;pU$g>MbbT#4^jOMazNL&|g$ERruJJai&y%KIkzB6t@) zyw=E`GNyQdCleGfDRYo40O%M%r9H37(ff;1sx+-9!tS;TiT| zAReb0>R%Id?~_#oB7Y_`#2B22R_!KdeYDe^YgnvLNL?ovG6U;I6@ZShT z%j22|6~USzkvc_?o8d;Fz9aG3&yyMXLpJ3B*&W{OPlh20ko))k_@3-e{(3VUx_s8It<5S z6kOuJku)azy?-y^>>CYkP{8zqQ?=4QYZ(zSsUKfxDUy49DTK&{5F+ZuuSLV+XH3^Z zn~{d@jVSdHB)wlH9Mlv_^HWwV-RlISk#IJWxJ*~jzkl_MW4E|cTkG0_nzQZQ-Mt!6 z^AT}rz_vp&QSF7s&Wl${Jjv3Zq&`~cD2s@f;}RnDWq(6(l45s(6%@A}dB9>PS4w;5 z4WaH7ptXe7%n~Y2-@-VT7BSH!pD{r}@1QpxZ0`(rd;Q)Oc5aYt{m+XJ=K-bT-a+rb zi8uJ4%fqQd{$q;%^Pm3|lJvwwj%Zz%`Puu1$q@|+?;X7BFRFZqphL+C;Q`i+T+ooX zy@TDIet+*6a#&jLM_)8@PA|Ep{rzVz_3LfFC;vK}b3wG6z&Q-WRP6FYE0W(3o=kb~ zpf~9Cd!O`=?ZNh7J1Pk9R}y@a*#aWD=kW8h^G!$j}Fb>zZOM2do7*v;TSF#DI}(8=Wi$3d9l9uVOzW=&qgm)rP5`v4 zUVkEXn=xOa7TOT_7LRnBUSvhV(}Zu$MlCN%63Fv#OR{W{rSzPUDVu>p?ZkP8z~Uy; z@T#+JXFtcL?Pb5&H!y%>`L~oI98obah%@Dljp3+5_eODwbwlGg<|Q(cV_&%3$aVqF z`@5wDy>(5l$rsAe0XQ9t0s#UrKuYNNUVpR~E^0%-vCk0i1I+)yfQN68H&>o-MrSDH zeZRw=2Sy0Eq3=mC<_g*O4+fyeDDWv`c;q4Jl`oP9oPsI5Mc2f|W4X`ClfH}tI#b<% zGXxkSE(!qT$sMDfp@d-<1>z$L&e1(`LNP7n2!6dfIRICmPA|ddldDf(kHO`quYa5!gRfuC z{u>;gfIluzj=_ho7vST`)z#^jkKpsk<>mX2CzswRGM&rgm{Kb#(c!?UkPzYB`T zU%{8JSE62q?A2F6Azl0E?2qGh%2bPM-UwT0Iv{*yzGCE)e@&)%O=;Gi%wuV~t{@*$wJ^zScX>8gT% zLN7$xb?_0gGd#n}jq(w)4+tGWKY4i`pcxKl`oU)zkk~s=P6jzCi$-w2cYkzxT(sdw zBi}`n+hB-y9m>!hpU&Cj&Hc^2|L-x`xf?rw@6B#^rZalO??&$Z4ZPoFy$%<5b$>yd_e8JB#?>ML(2b)D9mpa|ETPsvbhek>);`(lTK z<|e%zkJO`38RSI$2Jb&#fq+tOH{>_kkjzZJ!Vu@*8b!jL%rNID=zkq-4+evNFTFGV z!GjalJJ|2{en<0I5`tSP@%ueF>RB7AWaC@Lw`t7qy^*YrIWy6GOYSb}zL>P6N5!P5 z9JZfDMH1`G2XkbnCZQ_zw6)9ryL#>NQAPH)Rxi4K`3cBZ>6lX!oua9A>by=ktk)n> z+i4XN#XT!G@bX8gGJgY76(JPAHF0h!%Zr4br?=bVU(x37V4>$=qu|uLLH&e}46L>j zUe`B{Xw>CRX1^}l>FiI~U5ufk_5%c6i3#H0`LkWgj?K~Oal8X^P1F&Bf4TEC9<>nw4+VNG@Po58k`j%KIiN`C^cWtDYI$nY4YbcZxo z+;KCtP7z(Wl|!VYKgMc3;Vu`Bp`tNlz=IP8GPptEU3*?{#YfM|9T!z9HT}kD`~+U= zI?nu=>>juG#ppqA7$Vzh*JsJ5>b&n8>kxUfU6;7#BjQ4hwAMG`S(T1apFkLfr@rTY zmBVYITm;QdO@BhoWVPbxNb2i3XCkb!4%1G}lw`1rHcIB5p|_j(SEvM%qGA4R1>wgf|HO;kN)Ksn3D{W&59hmB$ zsSb?!jC5d>3Q8U=i4|grCcGwPXJKT5rkI94Fymnsd2xi2VSp0!n$y>mAa!0uD%Dw5 z9Y%tRVU=HwCMtLivs=|^nGs*#2S*P z_81@txhhNG1aTQQa7~2HN={iqLirR0eV~prN`C=zAe+A?K>fpM{3rO|Ya)XW0O0T6 zi^u;PJ?4k+W#RXS*983U>({Sey?*__x}yFszqrtpztPZhbvMAjzAN@$@Wb~n`#^T$ z1%H2-`uqLMAOEtOBQ}}g`VCrzf=@(3nOe`hH5$jOv>J)ST>pfgw%Znlq_tPW@zH{k zP=C>;oAA#-{k>U`+^-@O(NqDd>gL<(jUz%;$xin_VxAY;ydT->M5v;t_ilsu{CS0IG4oil^n zMZP>rZbwST^i zOx0byeLJGmTPSfAv2ro1#I<#`O?F@QBf^HWlzy+P|V4CKtPHu?y($2l;{L56l zP{D~xV%VeKPhfU$*BvYSMES>~mVeV*RIO5y^5s{bvqd-R$%38Sp%?M9NGr+)U5Xf> z#KQ!E7bECSQ1B9bJc{m^ol>r%bN^o;lhGy@%i=MZ(@bbpx?VYV*zjuxTOkM1>x(+L;Ty}R=s;!@0oyxSAPMvMmE zhaAo-*6lTk7cN-Qx{XKE^d2L6i^=5UQ8ZaE5Qmt^s}*_&?;0-Kgjm_K&5*X&$E|cF z@76^epNG7)ajNQ8tz~7xsekLV7A|K=shjm2F|}wxt0w(Wns3S)RdWkq!fE=xxK0;k zdRWZXW%a_7+SINC!*%ecF3|7-LAUin(3MT1>_>CHIEqlytBoQQgqnvBCY&x<9uW&F z)e!bQS6(B}%yJFstDO@sj?|2C#67$Ng8dFJ9JaolHS_JL30e}&rhgwB962t8p10+1 zT?Nu!UFg>(;_dxCy0UTDSG{)D)H+em31oNA3o*kgruZy%2woPk5p(`%{6mlCr0T*9Ke~Eev(S;^ngDy0s=I|on z+hDsr;v<3uj6;qY$A1n3a7073Wj+a@Kh1%Tf6&oi|4^Il{}@4r{vmguJw_8KB4eVI z11&yWC+NpFGeO|u@%WmI5WhpZB)_BD1hB|tGmuGb41xVJYla!M*eMKd^4!FWb&3Dh zC;rbcxnbhZhOR4J&*X5QYV6r12;6&H7o4Wx(zhkz($W;n&j~K5Cx>`)YH&f5?hzP& zQ@_VF$XVNMa$Z}k+YQ!DPm79yj9(gq+4_qU zy~$!13j!aqM7s%pC@@+h8glJB&~rjhLI5ET)I$}Wn#cz6VLB5G>yale`c}ozjMN(w zfY4>Of(QX@4|aANqKtNl3Z5z8*x#-x3XIaLgE+`Lh8$i6kg#zHLN}Eic|uh}#DyGk zU1lpPe0nTxavz~!OOvh=B!4++)IM7L{Pb8FAu?rv9F@*wQpNDEER=n?k}!5XQOrc^ z_RjI}cS^r~{QLgz-~Z>oZ_%g!;{M0I_bmA1KMtL5_n!_wT<&~gC-mdheen70_V@qd z9L`V%e2s?kjt~a7*G}2iNzZMluW1qGI3{tD@u$YLoT2Ms7`k#&dSGhWzy_TTWMz3 zo?UUoSKJ)0nWZNvHZ^A+@sJ{Hq^U*PtMWEfE(`U2c>yj z+a|MX7V4bl&*(Cp6u-^v$W+&#pE3ESDk3tLUZoSxTzHG>W`f&XYKxK!B=!>GT64Te zRL6{@Bz1rybQDWzE08x?AXiG`?nLo}2+rp!{`RT@VdWA(xqla8qowdum8(RbdV7J! z(n}`Vy+GrIhNG(0jjb5-w;(5sO)jcj~GHndzB2(33AzoGYh7u*?}pvu>U6 z@z_0zm;3nrM@3dHbL1h1)1Y^tw#t9o+5YVlWYgc&uiYK_tJl{&e@4NLht2~^$H@V( z4*{K>iLpC+e}7R-RH)70gEtN3fMT=Vz1i8GmEr_pBBISDU;o7aY|6vEIVtYnko#PJyW!V3fZp;U6z9L117FmPA!#4 zRNW-}@m2b8#eaq6rK{miL~gjWV$P=bK3_gr4uV8)GrI!^?OWb@Blq1$;)Ei&^twyp{wP?H> zbRhmTO&ioOy41Vb!Y^8e-V4*v?3VM2X=?18XyMY$ETN_&x!Q1~+>*Ch;B$ETZPigC z2@O9Yas=CkG^xr}SXx_c5=%#Mkqi7WieNYXn17f#6NIcAo*;q(4H}N#Uns9kF+5s4 z?hg4r7wfhbWUfUZ=(Dr6-&LKp(2GKD%AArhZ7m>T3XAuwUPVP0Ti7YO9R^Kjxm~nh zmF6LxM^5fsae#@iQsm`F`pjXJ3dBXwvv%{w8fUL6*G&42k*E)-PZ{(&z3f&eMv^v7 zbbnuJnUDOE%geA2e)gijzW?lfQC%z)FG}+G<;lH|9FE-MP~8MpEO8VdF{W2o(jE*3 z+pp#SuLgqy`TzeBW}WXYE_6mGiqA7TDYj!k;@6K~KP23xx7f|vd&iJNp`{Og_M({J z@|%!WU^aI;0W#a6JG=ef1-z3fgCdjqSAX{gXxd(nYzdVgT-oEv}5Ty4+P6_51s_mtgruhY8J|${yv?L*T8U9i;Dn3(?npX0? zTBsqDS3@5{*6r6gWvQW119r+Tk?NQF{U;5bDJpRbRZ5Mod>UEkZHFcr0x5LGRDbA7 z3ay)rX&SzjT?9XS3R|ed3g|T#PfJYbl+0=p@sJWZD~$Zg3m&5ytvm@?d0lPKq+AyH zwb@|!Qj4`2o0&yfW{)LHwCru_qV)pl)Y2?@n=G;h-ApRA*%8mI$EN&RNYpf>arFb`~5Gx_GMcW|wAq#OgW8N2` zwp|?EE{@E|E}Ua^5_yU6>MVY4I*D>dWz)7J!>DPq<~rUub8iL6Z{qtj6c%NAITa?A zm;^>*Dlt`RV!SpZ9`x;?HXVa@p=p(~l#5Z(sB$ufnDD*bm*9o^F2)WUI|ms>W(%=L2_lx;!8lZyP-FZo;~*zn$9L2A?34 z0iZ3HUR1q`#pIU3+1^}-Y+HB!#=7(E zO;QD+@@7~kR8D709P&_=7k@+)yaX>^se%`XEfy=PXovfRF_Vh~if$Rt)F}@cO%MvC zn2RUyA)l(N0pimhHoTyd`zhmTQrwJ7zk2vnFRFF9%dz;TuH2BuRafOQ-83s?ul7*x z8D>1~?`>;|6zG&+i}(FUx{x+q7fZ1M_1e<~B~7$AW>D6nI(a9`CqDe8gCexSLdO7l zUYr4i$7ShQp734zroGahmxM@{mokc#w%c^iXq&Ee+_c>VdTejFb#yRxDB5o9DsmQ4vtQbSqF}-iWra7e+wh0*6(QEJ9snbKSchaOBx1FiK!?i zT6xgJ(ff#J*~RyJEF+N;B2_{u zE@AG4Pl(ovrwrwmQYyp$B0-hntJ*UkB!#M6^BoAVOy5i7SpL14k6xvU?$$eZ+&g%) ze+nmTNmjIC>a@t}8`QY^QV#N#o<6|>yFd=Yw~?<;K01fk{UFelcydKK^u!a*nsw@0 zr|vpCb^E=OTST}_G~GIgB(n-k6n$HPxI;ecC6dxdHOW9Y%%gu7;;?emdYTT z7P~)7xwP74olHBW%H)9gr%#YaQy!kCe<#Z3)2y)!-wkSW=E*d*HQAZXOv4F9=?wNw^4I5DuQ4K*N@8E^r0Mm+c?KhE5~ecM=hJpNU?yrwhgi4y zJ9A&b?9{1_C0fnh{B?;o?E%B}$g^L(`q<{#U$?WLHFCURj(wYAfAdr9H#)>;HuLIt zWG2|W`cEaV{!<41+qHRYq%wHVZd#)KsCpI5_Yn%VPLCzL&wxEDyEi-af=~u|q1Mt*Rj(3xaSYkllf@l20ZNnn9T@>+lNKH& ze_~GD%ydhc?*@AZ2#Oj5rJ?tm5hgSF&oI#(XSja=%L%4pxBV=DjJ zM8Cw@DO&h^%wl^s&8@Rnn>#kb99O|y8&ju*h2t@H#M=)caoZlYFraK0Wn*BSE^MkR zYt^JrrZ}&T-7+hdap-x-O&{2xB);U*e^-JSI4bh(ny6?27$CrS=-dD|M1mSlwFSna zvCWOku_oEs_PhPsT&&S#{04D*zivXJYDvd)b_RnR#J7|@HeT6+bhk@bGi$n5B?EU5 za~Y$PvdK6FBLo~O<}>f^PKfgHTAlmXdViN#VQ*_Q23|@RC2D=?LtMXVZM}+1f1Jyy z^%A^z6$hm*a(TpcJM?*^IbO8DlJ5J85ux#G8U(!#E{q4R@fiaQ~f4>v#i+&2L- z>b(;(<3(;4SdwAcRC3XQfFtU8kfR{>qUfYA0oS=R^p@`jm^!i=pPJLV&T<8{Nr)eP zI-7Z`S>~f#~26bH6-rqF%2e&zfJ%V z0dzd}Fi|O#h0URHkpxLJ#Y`46e_71*h?r?- zFsRCHB{NkVLgyy*n}elPc}4q5b7c@QqO3~m3=a> zRt(@4xSFDCGDCby#rlwwf&o5-TqmyLApC-{Jeqlm9z^fAt9RzGhUBe*eVyPB@@pbmlQ#(_ zT;5F)0S@#$(PE~bm`M(Ftj-8BRkt&c_TV@0TG#K{&S1MDH^B*?zIPlNk{0PRQ+2Cy z)FD0aOi9%m7Gc< zfEiHhdu!>$b0vK$Nk3O!${-0{Z*c#{86o71-@S8(V|O$h@4P|7!8^y<+1nlO><&hw z!QS5PV7T4Orlm^$YO{G$*sb}I4qe$9q(fK4uY5v~jmiIk#2V#gL6P59wG}0km6jdhUczrTzV-d@>lwoK*F4IFO#; ze_+D*b{9yL6vY}LQY70{j$}En6dP%F(pT6{5uQvrpkoE=e}$F6!HX$^w-_=05?o>b z5-p#bw%E^F5fT?!O(cepI=$A1ch+=qys0=IcfzMfu*708SQVn4iPjb684Se;H0G=cL#yrp2q) zmzlvZ(OOa8Q;l@giR|yqI?TN@cvo@K?1WE0MnIs2G>z&mwlWX#NS-# zo65=*&nvex6^Hfil&FZAKjm3%j%^Pr&J2jpe~9=Y^dMc)2F@5cd(QS~yz2}{?{?n4b@t&KcmM4Wy?eVq zf80jz2BQJob+-5SogFyb-*xukyWO4r;hQ&T)uL;-lNMd#SLdSZ@$z66=32eD(j`pn zu&I~=2VHz$IsXvhpE{(-rf~QNaU`?dP@L(5WsQ8Zj6;spDX4C^kg05;BfcH$l5T(; zgniyAO^;64p+~h3e6TO39v+Xe6MB3ef7|Yya_AiwpXC&5 z`tzE2BT`>z)jJEx{4sRytI1_jSV_XwdGxCkRMNTBN?Y|f&Z6^)kGFpjFXG1>e{#L_ zSI5HJGzV`>7|`<3WQL~o>thaDR?9plCuw}}sC*corA|SK$7DFAW=*&*Xm_JZ8MV03 zL#^=eVh42rIz8q%hQ-PEh#z&6efQft)kg&rOS=6rfjo`+Bf;Hx7#f`+SklK3_v%5s z3=i(*vxd7h+^ykm4R>p}Tf^NNlPx9;e|KxRKf2*Qtj;YGnWtCD+&H2k;mZdMlv6Yf zAZT-FroQEso}*dV>Dsg-3m8wQ6j0L}&@q@H#^408=<>W4$pmbaLfa?>dm7_W1lgPF z93|CjXnBuh6-^UirsYYe;_Lx3pBQw#rARBulkzA+ZJpPj6)%q>UiPZ9ynICbe~7wm zL%c=RZsNNQ(!J>RR+;f7>5`4>HiI3{GOpXE@OWqmwqKpX<0Il9u*XqwG=*eR@?p$G zS%!v*Oj8w3k6(fpuZqtvh`d}0MvA_jHU1Xn)32J^#RU5`B@NQ`{`~c$*^ZVX-kBS5(|luZ zt5e0q;^B-=mJ^qPz(dPQ(Prm@Qg@_UN?sHN;S6$TDkP_tVKR-qy7Cvhe^w4!IcVkJ z8py$S)rn3%BEEzKtdo5ubKufP&T`_fW5KtS$WvlY3oYg&r^7qV%EzujO06jO$IfuD zy|Xju^`m6j%}r-ceJrLf2|cf2#7*4h18f8?4z0-l9*Hq}{J4SC=PKOeB}TvQo%%9m zqq{EqtzF4htB^KFA?*xme=@}&{#k7l9AWoxp4wwrV$-^YqLKR2yVfRmcrI+PL-keP zt(B+fDh!c@(DrIRdo^E&a&o&iHPI!f0i2-sMRjK;732C%x35Zet^DCqn_4j|E8f{k zcRAYL63p8zu1DYE+Kj!Uq=!ShiDx(Q3KD&%HlI@p#2wBLBlGkIDPLKK1ahdeoHnZ8b72JedpA!qRZ zJis)-d|rGB9S1RXe})BH4S~?Wh#BZCK!6qkv;?-(W_zB(e z@c2hW_3~W#@zBgtZ+d>XTqZQ75+BVp$Yb7|dYc^Qk9<={QE3>R!jlh7O5Qdfl83$e zZA~qmVQog4A{19srE^;+OV<2U$13feEKd(>@f616!EK&(e+KT>`molAwLYx%VXY5q zeOT+mS|8T>c%s(FZf#nO3@lzEuBbq#Q8dv~hD67qL}fj(0YqyUK(qkJ7vEbXZ;`x3 z@)pTkByW+tMe-KOKQ$!3SDP0qpMz+5ATP;ulF-F86I8zORVRNc>8wrlVg~G=W2zUM zkZL7zZND}le^u@{&*8l6&`4w17L%%yZ~7EU-aDZJKpV)hxS`d!DAN5{xtGG8%z4C< zISYLtrQSR1SbCBo@ojB}tJM0xP^s3J7l@irgUrRRq+d z7Fg*yQxsOYw!p}JTh(?a^{4y z(1RS`qK~=jfAZG>q45|wy5M<$oy6N*axIZ~Bqt4Q$CjJ9WGKox(bb9;8s#=wP#&FR zXI|x$T+tGEfSI0vq4;N$Ta2En*E+vA9@E)Zveb;ObSkd9rary3@W-3?SP74XSxk(x z|2%kaf1m1daUbO3uteM%Z3INJI?hED-Ql<(8PTI}^%a!GqcYcGr{P!Gj!E%jKGa2N z!J}U>6hSYudz#i}Yw2muKJ$I9P1}8XSDixkbJ;#@3y(w@of3ycKCud(oRUQjh%(Zq z8CE3yrn^fOeOcNcu`rW`iG_hEG=#Pfi1>QGMyH?>*gITDN4wNbEcj_OJSb&EY%xfjJodah)q?^b8RxkSXh zfOjcL-Da{Esh9*bsT|7LRbUY4S!~R38OQ*thKr!IXAc_T^kg&OE?R%=rGb++w(BVh zm^amj-7mwDj4f_;yK!8(N}T+~C<%OL>jK`L%Y~H_Cz^n4av@}nTQig=S>lZ)OR8_x z0wv*zQ{dw97zF|utLva7Cm>{)Ou!u)G3wkP&aR1kdnI3D1}H&*24F@51nBtSnt;~= zLw`chWd{XhExi;GuHJu=h5Z7WFR5pS$iZuQhgDo%)J$D%#ix*~`>g;3PJlTIFuW#8 zX37ZwF<~Ha2?6;EaTJJgK(4y~Pc-b&Notg?$<-7A$HU@*ywxv24ibDqz<7Y*4A3#i zebWoXd`cKn$6FW(3CEr&^ao+_XTc0O(DRVnoja~Dsm+Ao;oTTN|M_&Je|GWI>VZO0 zs}a^-BkWfnn*4*4?ky}7F|1xpqymTf;o_kaEv1BO6v_6qlP)ej5EadwzHcT6YG_pn z1-&V}rIULu9SKDNX8;l~-rXLPp)MFd_Res3HQ{iJtdy#GYBNc!w=mirRD{ibgzSWI zJcAs4K|Y|2_%1Vl2fI7{-WBZ~L;|MY z`=HK$#=pO)6jh?&pHWJ^USD+c49_s{9lVo2^hAnZo(E`#!#@vO>ToB-gPKLcYHc$lQ;J__x``f zWan<|{Jl53-I>mR=ncOcx%W5lewX!rHH@12pbvyKJ4Tl3cZ;fe{7eG>(*xSHrD*I; z+WBIhk1YC*KYKIeVmZY|n809uLLBO1GLavVp}pNyKvEJ%bw!)^4r!7U5LTQYN^+3hm9>I;Et+a%3`S2}DxesLvKx#z_{4$gQH$JhMXui3?Qw3}C)>O-?x&L+mkt z$8jO`fKz~f?vWF6)L{&^#WEJlSS+)~SjOT4b6ij!$G5I%a82RCPQ_WPtbU6G%5nff zQ>lUoVR9v1&W9(x8PVI_Zu}YvKP&caWICSqZ-~B_fQyLD1YX=tA(t4#53qv(o6^v8 z!3ZhLF{S~4*Cc`yoPsI5MPQ02Q{dqnT=b0pwF> z+VH4m9rOrSyDoQkR&p8M+WC@ejmmWueF@J+acvczHH05V(+w+*UZsSsHjLV&xG1I4 zz!-j|e_SHsUi!$XaNy@_8mYR3p-$3rR&}+J?>@y-)@;^skV1)tgdrZA#nQQtk>_@| zRcP&hVQUXtdw8Ag;k;NhT%(`m-80bwVv|2YEc1%)tN*<&`B(J6rkN_ErW#MJh^y6| zYv0~W@4ky)-JDyuI~yGVx`O_(>dC4ntDe?NJ*}xZvs-bp{4)%05P$EwhtPxKlQ*?w z@&pWH9xMHJ86O&Wp)VS#GhOl=)Hvv(t6Z9Y*e@j=Tx_}&c!I9Wz&IqX+^UnCe6k3D z4yVE9Ml)`Zzie$>CS}+lxsbqm8fdy%CH;!H|;IFq**(s3mGr;q~}AmD^SfC%^IAc!iBX`t#n#}Ida z>#bg9MekK)J5V$80(l5B^g+zPmPH3tNrNrbby2&P8}_A@GL?h`n^j$Ay7@(pS>$7 z)9Qw+^GJ*npE}dt!S-N#uq|eP$P6(KXTBQCZkt3^XD{{ZZNDe~Qu&8V zKX1cmkL(<3cctsGzLm69^n;$W-CTC52iGKMBUy3{dYUZAmc31uce@TJOSj#pO09Mq z5@bVyT80Frs%OOML&*#!w%aglB1AO6XgZKF3~5?1K?x5hiOR+yrHf2|rg%|TwG&Ah z0tPE9rT;qXdN*;tH6g1Jtgnh$O}#h4z@HFw)f_FLVROvsA(=P)ygl?hAw0m%u;({S zmO(e&qy3oVH-slsuA%8C{X@evRpOFEjxO{i*PU1zny}W&7sx@_S0bbv@@crx4aLK= z%lDH>fF{CVGepoikSphZ`X!#2R{ubQ8>wbIxv~WbHEf5Fq3GCxV9jG0%ci5*afuxN zrhCFoaeBIQl}8|+ihrusOr#6ADjURSOfZ>5^cU{2 zrFiLXk1gB5#bFg!lj=1aHrDeDqsV;ym8JBN-T<55_OVZaXIF7a4ut%B<89@0dMCYU zgI>S)1@Su?+@v2}B8SsJmA^!jJ2oGGgA|{M4^c6HiT_5ugW>M*&Aa{K+u@#c&!OAI zD3yIP@%t^|FFf(^1dlxQfd=Zcs=3l?mvdtb>5@T-Lipo*Ya&Za&)=q&Mt1f$wo{7p zsTPPn^7qlV%Azp05n6S8FAF6Y9!janZPNj(`;&O8kXLv$Tt3e*{9Sy zgxr~)hb1>MFGSLr>Qy-U`wzYQbcrVfx!PQN30{2vVG@3vX`?3mIHuMt06E`4IYTpj^=(IBxqKi^L7a`iddLW@%neR9a>ho^*vOe?kuxdH z+u=3Tv63het_vghyElq|lwS0Iwm~NZ3eo&6zva3Dt6@c+_AFMY$|TneUuh}}VOCxK zT8X;KP=q-I(-mrwSSjFZ56hCCFGws<%4iO#h2$ZjT0@Zb43JrCXkkhZ>@U;MEZ>nxT5P;xl ziku`^yA>|Wkf?!Vy2yDzIaMFy#rGfIf9S`O$|Z+9WDCJrro~!ZRz|)#NXz$d0Y1yJ z=c7POVg@`q!4C9*BVIFqKnZ{vx6$}Q^X}5VdW_7Pv~J+v#$aSEi$smXf2RY zdTJKKJXa1x%EV`hq^T%oAZ)(>6fmKW) z9`IH97;hReV4inX*JnvJ z>>*g((M#4z8h0j2@w^Y^YB zc zy4}TCJ_)a~ng|8n$6~H$BYv<}&l!~m)R#oF^=+iWR+ zZ+3&EW?6pLAd{I@#a0ztRcuwURmIlrZQb5WW2U{jEM%9+6H~DjSWaAfPesn}OF`GZlq2Lf~P>0UehdU!noP#PLG05CA4J>{&)ak38z!*qFx^ z$2`{h^Yr928m#S|tzp}EXB&9=EWojU4ZO5C+2Ujycv*tT_UjUvT`qS9_Oj*-Y$gaH zIlj5*4ESaJA=t*qDq(PeXDVr!A-}R|x4WM^OD&SipXOZZQp+HwQwPP=;La-gTwf z5+tEsryOv2gOq3=Q_rJ!!d_Mq`2bvplbk&ze;(@s*CbOSC~uCSJGCu-C#~ z3wztb-kqw{kqV5RD~!_?_v-4)0^j1Z-DS|O=Bi7$n{+gfcWbe3#EFKIO!QQMRvq;o zM4?#`Y+WJB)hwi7u0^pH#jZ8CMf7U%f1t&K77toHXz^fMJUFaMHY@I6dwJ1IF#;Xv;zoPE-&y zQ~#M_wx{6BdjiN zQ^IAKXtB_KLia8B{$n)fXbDuNyVW%~OGc|Io>cTibYUTGi#Tiu-}>p~e<2evZAAGr z2fOrf;;CpLa>ofNfjA17$~CAQf!9Q}1idYAmAZ(Ajx}RYZk&S=Qnfe*h_Em~U`|7o zxlniDnxK2=aBnVKOS2*k8gupXouzfXmD||KxDkN*&f!N71am+JeZZGR8%J^*VZhpL#-wr!a4e zerxLiwg!$haIAr24V;b)f1LfQoa+KW2MF?Z(cG$Pl}Qtu9y{RskJ9seBfNDqg_xZ9 z)R~&wH0eUE%o)jccXmuP3eB_CX-*vZpZLN7VR76+&qLhMPKgiOCFk#y;gGX7RG^DI zS*R~b$Q1~QN1YqshJj3~89{#a5);fZ^uP#u!u~MInW6euFjOXxe*r(hPS-}oQ-C`~ zdX7N;QFNs7Ne_}f23QT26Cf-j#F^|A1p%EfKMThg7@z*pSl6OBY*~g`H1jm>VD_; z0x4rKlS5i-3d7b_gubiE@c$9thMc_+6oD9yng z_B=o+@F_+M=$_WB+ofn8Ea+iqWkf3Yo+XNykZff5fuj6yS#~*wgU|AloY}4#RZVv7wbu2&>hDQ@fQW2B9Ej|Wz5Ew50w_YfLXOo7 zII;algIbUJbEZAZx=<7Q!4PF*P9_ggbN`5`^Mz~zu6Iq3H5c>LMtEQ;xn=o?vfNsE z6WUJeChe942@TVnfp*(YrANOQo^c#ipZ2P9GX@|hB|eJO)Y=$xl<9NUbn8wvL|W9} z-K4CRZbUKV%sn!w=_QpDbI}dr`SR%^N~9u^YgxnP(u53>J5p=yCITS~;77;wacYX^ z4Febm91*1UVIPE$+sLQFWi<;b$0V z2UiZw!s>?|r{@2ndrH=jplHE{bWQC*kh)P4924TV$lw40o7;z14nr=Dmqp4i&J!Pk z#yES*gz~JVJbx-KWK!d&f)LMSI(~7RRR{EN*FuxiyXQYiieZv003l71!7qSf7c;^m zWhu|e=|vqc@SqX?i`@sHxXR^AfFnt;+S7Q2TFP_Gd_dIjrwaA+DS zAvh;;>zSu@;LKao-9edd{=G9;eYIE^2EMkd<-!4Z;ZPg;#b_U)e<-#@u^dc|>j{eP z8%j6Qkrw36BHE-=7S15VINg{km#htt`DAk-!jw<6W{+Er;T<)Kp1%;UHlUoYG_6*f zzax2Bi?N3_ast-0f+pH z>~09Iyr^0SU&}oXvr6|7aL-aFYxsVW&Dl9PFqg|8%&`ALlxchz*#|ByOerZHVQ?Lp z8%BcIbYa16^k3A-NZ|EwzGyba`?+c_>HQ5A=kkOLrnY_#NgycN0TH6`&uYEF%L^#^ z{E%;Ly3GM5^Ta;=f`IpWmnlTO86xMH)h4&byC5(lsV8GdsBPjE(#v|OmB0voD( z%#tV?*EVDHr+pc5*A7=U&(dqI1o)UmJnQRk3`#6-p?|~gg;GGvASDvR8g3AIWMTAy zwO>O;Z4a{^^4%wY%FRBTp6yU1oUZk$*u|0is9FK5H~^s!@emh!&Z{Hs8OQ{3UdD9Ev7HuxtmmtPj)gRHoK#rcfFeGnqd0#%O8A<@Ej z+tci+Sc9d_o9)*3yM<=|574%ntoLiWh+_-MVxQt|61;3c=iv!fnUenDZ@HP^(wjEt z-Bh{e6I2EPvz2z8gy?Ef0=(G~)xJW#^6~Ih6rLx∈I9DIi${Kvekb`f=t( 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

uA6DJTF~6vUwrezRLK?yEe9ZtnU62 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 threshold <%f>)", gcTime, opts.Periodic, opts.Threshold) + return err }, } @@ -1632,7 +1637,12 @@ var chainPruneHotMovingGCCmd = &cli.Command{ ctx := ReqContext(cctx) opts := lapi.HotGCOpts{} opts.Moving = true - return api.ChainHotGC(ctx, opts) + + gcStart := time.Now() + err = api.ChainHotGC(ctx, opts) + gcTime := time.Since(gcStart) + fmt.Printf("Moving GC took %v", gcTime) + return err }, } diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index d2daa8ffc..5516acb44 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -1087,7 +1087,8 @@ Inputs: [ { "Threshold": 12.3, - "Periodic": true + "Periodic": true, + "Moving": true } ] ``` diff --git a/documentation/en/cli-lotus.md b/documentation/en/cli-lotus.md index f8214749e..4458599ab 100644 --- a/documentation/en/cli-lotus.md +++ b/documentation/en/cli-lotus.md @@ -2473,6 +2473,7 @@ USAGE: COMMANDS: compact-cold force splitstore compaction on cold store state and run gc hot run online (badger vlog) garbage collection on hotstore + hot-moving run moving gc on hotstore help, h Shows a list of commands or help for one command OPTIONS: @@ -2509,6 +2510,19 @@ OPTIONS: ``` +#### lotus chain prune hot-moving +``` +NAME: + lotus chain prune hot-moving - run moving gc on hotstore + +USAGE: + lotus chain prune hot-moving [command options] [arguments...] + +OPTIONS: + --help, -h show help (default: false) + +``` + ## lotus log ``` NAME: