Re: Gallery 3.1 - auto-upgrading, directory structure

Tim Almdal <[email protected]> Sat, 13 Apr 2013 00:00:49 -0600 (MDT)
Newsgroups gmane.comp.web.gallery.devel
Message-ID <7482367.74803192.1365832849111.JavaMail.root@cds003>
TXkgdGhvdWdodHMuLi4gZXIgcXVlc3Rpb24/CjJiKSBIb3cgZG8geW91IGhhbmRsZSB0aGUgY2Fz
ZSB3aGVyZSBwZW9wbGUgYXJlIHRyYWNraW5nIHRydW5rPyBIb3cgZG8gSSBkbyBhbiBpbnBsYWNl
IHVwZ3JhZGUgZnJvbSAzLjA/IAoKCi0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0KRnJvbTog
IkJoYXJhdCBNZWRpcmF0dGEiIDxiaGFyYXRAbWVuYWx0by5jb20+ClRvOiAiU2hhZCBMYXdzIiA8
c2hhZEBzaGFkbGF3cy5jb20+CkNjOiAiZ2FsbGVyeS1kZXZlbCIgPGdhbGxlcnktZGV2ZWxAbGlz
dHMuc291cmNlZm9yZ2UubmV0PgpTZW50OiBGcmlkYXksIEFwcmlsIDEyLCAyMDEzIDM6NDQ6MDAg
UE0KU3ViamVjdDogUmU6IFtHYWxsZXJ5LWRldmVsXSBHYWxsZXJ5IDMuMSAtIGF1dG8tdXBncmFk
aW5nLAlkaXJlY3Rvcnkgc3RydWN0dXJlCgoKCgoKCkdhbGxlcnkgMiBoYXMgYSBtZWFucyBvZiBk
b2luZyB0aGlzLiDCoEl0IHdvcmtlZCwgYnV0IHdhcyBoZWF2eSBhbmQgcmFuIGludG8gYSBsb3Qg
b2YgaXNzdWVzIGFyb3VuZCB0aGluZ3MgbGlrZTogCgoKMSkgQVBJIGNvbXBhdGliaWxpdHkgYWNy
b3NzIG1ham9yL21pbm9yIGJvdW5kYXJpZXPCoCAKMikgRmlsZXN5c3RlbSBwZXJtaXNzaW9ucyAK
MykgRGVhbGluZyB3aXRoIGxvY2FsIGNvZGUgbW9kaWZpY2F0aW9ucyBtYWRlIGJ5IHRoZSB1c2Vy
IAo0KSBBZGRlZCBjb21wbGV4aXR5IGluIHRoZSBjb2RlIHRvIGRlYWwgd2l0aCBtdWx0aXBsZSBw
b3NzaWJsZSBsb2NhdGlvbnMgb2YgbW9kdWxlcyAKCgpJIHByb3Bvc2UgdGhhdCB3ZSBkbyB0aGUg
Zm9sbG93aW5nOiAKMSkgTGVhdmUgb3VyIHN0cnVjdHVyZSBleGFjdGx5IHRoZSB3YXkgaXQgaXMg
CjIpIFB1c2ggb3V0IGEgcmVhbGx5IHNpbXBsZSBQSFAgZmlsZSB0aGF0IGRvZXMgdGhlIGZvbGxv
d2luZyAKMmEpIGNoZWNrIGZpbGVzeXN0ZW0gcGVybWlzc2lvbnMgZXZlcnl3aGVyZSBhbmQgbWFr
ZSBzdXJlIHRoYXQgdGhlIHdlYmFwcCBjYW4gdXBkYXRlIGV2ZXJ5dGhpbmcgCjJiKSBkb3dubG9h
ZCBhIHRhcmJhbGwgCjJjKSB1bnBhY2sgaXQgb24gdG9wIG9mIGFsbCB0aGUgZXhpc3RpbmcgY29k
ZSAoYW5kIG1heWJlIGRlbGV0ZSBleHRyYSBmaWxlcyB3ZSBrbm93IHRvIGJlIHByb2JsZW1zIC0g
dGhpcyBzYXZlcyB1cyB0aGUgdHJvdWJsZSBvZiBoYXZpbmcgdG8gdGVsbCB1c2VycyB0byBibG93
IGF3YXkgYWxsIHRoZWlyIG9sZCBzdHVmZikgCjJkKSBydW5zICJzeXN0ZW0gcGhwIHVwZ3JhZGVy
LnBocCIgb3Igc29tZXRoaW5nIGVxdWFsbHkgQVBJLXNpbXBsZSAKCgpUaGlzIGlzIHNpbXBsZSBh
bmQgZmFzdC4gwqBXZSBjYW4gd3JpdGUgdGhlIGNvZGUgd2hlbmV2ZXIgd2Ugd2FudC4gwqBJdCdz
IG5vdCBndWFyYW50ZWVkIHRvIGJlIHN1cGVyIHJlbGlhYmxlIGFuZCB3ZSBjYW4gYWRkIHRlc3Rz
LCBldGMgdG8gdHJ5IHRvIHZlcmlmeSB0aGUgZW52aXJvbm1lbnQgYmVmb3JlIHdlIGRvIGFueXRo
aW5nIHJhZGljYWwuIMKgSXQgc2hvdWxkIGFsc28gYmUgdmVyeSBsaXR0bGUgY29kZS4gCgoKdGhv
dWdodHM/IAoKCk9uIEZyaSwgQXByIDEyLCAyMDEzIGF0IDExOjQ0IEFNLCBTaGFkIExhd3MgPCBz
aGFkQHNoYWRsYXdzLmNvbSA+IHdyb3RlOiAKCgpIZXkgZXZlcnlvbmUsIAoKSSBmZWVsIHJhdGhl
ciBzdHJvbmdseSB0aGF0IGl0J2QgYmUgYSAqYmlnKiBib29uIHRvIEdhbGxlcnkgaWYgd2UgbWFk
ZSB2My4xKyBzZWxmLXVwZ3JhZGluZy4gwqBPZiBjb3Vyc2UsIHRoaXMgaXMgYSBiaWcgdW5kZXJ0
YWtpbmcsIGJ1dCBJIHRoaW5rIGl0J2QgYmUgd2VsbCB3b3J0aCBpdC4gCgpUbyBtZSwgaXQgc2Vl
bXMgdGhhdCB0aGVyZSBhcmUgdGhyZWUgcGFydHMgdG8gdGhlIHByb2JsZW06IAotIGluZnJhc3Ry
dWN0dXJlIG9uIHd3dy5nYWxsZXJ5cHJvamVjdC5vcmcgCi0gc2VsZi11cGdyYWRpbmcgY29kZSAK
LSBhbiBhcHBsaWNhdGlvbiBzdHJ1Y3R1cmUgdGhhdCBtYWtlcyBpdCBlYXNpZXIgdG8gc2VsZi11
cGdyYWRlIHdpdGhvdXQgZGVzdHJveWluZyB1c2VyIG1vZHMgCgpJJ3ZlIGJlZW4gdGhpbmtpbmcg
YSBsb3QgYWJvdXQgdGhlIGxhc3QgaXRlbSwgYW5kIEkgZmVlbCBsaWtlIGl0IHNob3VsZCBiZSB0
aGUgZmlyc3QgdG8gYmUgdGFja2xlZC4gwqBCZWxvdyBhcmUgbXkgY3VycmVudCB0aG91Z2h0cyBv
biBpdC4uLiAKCi0tLS0gCgpPVkVSVklFVyAKCktvaGFuYSAzIGlzIHByZXR0eSBhZ25vc3RpYyB3
aGVuIGl0IGNvbWVzIHRvIG1vZHVsZS90aGVtZSBsb2NhdGlvbnMuIMKgQVBQUEFUSCBhbmQgU1lT
UEFUSCBhcmUgaW1wb3J0YW50LCBidXQgTU9EUEFUSCByZWFsbHkgaXNuJ3QuIMKgSW4gZmFjdCwg
Z3JlcHBpbmcgZm9yIE1PRFBBVEggd2lsbCBmaW5kIG9uZSBtYXRjaCBpbiBEZWJ1Zzo6cGF0aCgp
IHdoaWNoIGNhbiAoYW5kIHNob3VsZCEpIGJlIGVhc2lseSBvdmVycmlkZW4uIMKgSG93ZXZlciwg
dGhlcmUncyBhIGJpZyBib29uIHRvIGhhdmluZyAqZXZlcnl0aGluZyogKGluY2x1ZGluZyBTWVNQ
QVRIIGFuZCBBUFBQQVRIKSB1c2UgdGhlIHNhbWUgbW9kdWxlIHN0cnVjdHVyZS4gCgpXZSBsZXZl
cmFnZWQgdGhlc2UgZmFjdHMgc29tZSBpbiBHYWxsZXJ5IDMuMC54IChlLmcuIE1PRFBBVEggdnMu
IFRIRU1FUEFUSCksIGJ1dCBJIHNheSB3ZSBzaG91bGQgZG8gc28gbW9yZSBpbiBHYWxsZXJ5IDMu
MS54LiAKClNvLCBoZXJlJ3MgbXkgbmV3IGlkZWEuIMKgVGhlcmUgYXJlIGVpZ2h0IG1haW4gc3Vi
ZGlyZWN0b3JpZXMsIGVhY2ggd2l0aCBhIGRpZmZlcmVudCBwdXJwb3NlLiAKCkZpcnN0LCB0aGUg
aW5zdGFsbGVyLiDCoFRoaXMgc2hvdWxkIG5ldmVyIGJlIG1vZGlmaWVkIGJ5IGVpdGhlciB0aGUg
ZW5kIHVzZXIgb3IgdXBncmFkZXJzLiDCoFRoaXMgaXMgd2hlcmUgd2Ugc2hvdWxkIHB1dCBvdXIg
Y29yZSB1cGdyYWRlIGNvZGUuIAotIGluc3RhbGxlciAKCk5leHQsIHRoZSB0aHJlZSAiY29yZSIg
ZGlyZWN0b3JpZXMuIMKgVGhlc2Ugc2hvdWxkIG5ldmVyIGJlIG1vZGlmaWVkIGJ5IHRoZSBlbmQg
dXNlci4gwqBBIGdhbGxlcnktd2lkZSB1cGdyYWRlIHNpbXBseSBkZWxldGVzIGFuZCByZXBsYWNl
cyB0aGVzZS4gCi0gY29yZTogYXBwbGljYXRpb24sIHN5c3RlbSwgYW5kIGFsbCB0aGlyZC1wYXJ0
eSBtb2R1bGVzOyBubyBtb2R1bGUuaW5mbyBmaWxlcyBoZXJlIAotIG1vZHVsZXMtZ2FsbGVyeTog
YWxsIG90aGVyIG1vZHVsZXMgZ2FsbGVyeSBzaGlwcyB3aXRoIAotIHRoZW1lcy1nYWxsZXJ5OiB3
aW5kLCBhZG1pbl93aW5kLCBhbmQgbGliIAoKVGhlbiwgdGhlIHR3byAiY29udHJpYiIgZGlyZWN0
b3JpZXMuIMKgVGhlIGVuZCB1c2VyIG1heSBuZWVkIHRvICppbnN0YWxsKiB0aGVzZSwgYnV0IHNo
b3VsZCBuZXZlciAqbW9kaWZ5KiB0aGVtLiDCoEEgY29udHJpYiBtb2R1bGUgaW5zdGFsbGVyL3Vw
ZGF0ZXIgY2FuIG9wZXJhdGUgYnkgZGVsZXRpbmcvcmVidWlsZGluZyBzdWJkaXJzIGhlcmUuIMKg
VGhlc2UgYXJlIHNoaXBwZWQgb25seSB3aXRoIFJFQURNRS5tZCBmaWxlcy4gCi0gbW9kdWxlcy1j
b250cmliIAotIHRoZW1lcy1jb250cmliIAoKVGhlbiwgdGhlIHR3byAic2l0ZS1zcGVjaWZpYyIg
ZGlyZWN0b3JpZXMuIMKgVGhpcyBpcyB3aGVyZSBhbGwgY29uZmlnLCBjdXN0b20gY29kZSwgYW5k
IG90aGVyIHR3ZWFrcyBzaG91bGQgZ28uIMKgVGhlIGVuZCB1c2VyIGlzIGhpZ2hseSBlbmNvdXJh
Z2VkIHRvIG1vZGlmeSBzdHVmZiBoZXJlIDotKS4gCi0gYmluOiBzaGlwcGVkIHdpdGggb25seSBS
RUFETUUubWQgYW5kIC5odGFjY2VzcyBmaWxlcyAKLSBzaXRlOiBhbGwgY3VzdG9tIGNvZGUgZ29l
cyBoZXJlOyBzZWUgbW9yZSBpbmZvIGJlbG93IAoKRmluYWxseSwgdGhlIHZhciBkaXJlY3Rvcnku
IMKgVGhpcyBpcyB3aGVyZSBhbGwgb2Ygb3VyIGRhdGEgZ29lcy4gwqBUaGUgZW5kIHVzZXIgc2hv
dWxkbid0IG5lZWQgdG8gbW9kaWZ5IHRoaW5ncyBkaXJlY3RseSBoZXJlLi4uIGFuZCBuZWl0aGVy
IHNob3VsZCBHYWxsZXJ5IHVwZ3JhZGVycy4gCi0gdmFyIAoKT25jZSB3ZSBkbyB0aGlzLCB3ZSBj
YW4gcmVtb3ZlIGV2ZXJ5IGluc3RhbmNlIG9mIE1PRFBBVEggYW5kIEdhbGxlcnk6OmZpbmRfZmls
ZSgpIGluIHRoZSBjb3JlIGNvZGUgYW5kIHJlcGxhY2UgaXQgd2l0aCBLb2hhbmE6OmZpbmRfZmls
ZSgpLiAKCi0tLS0gCgpERVRBSUxTIC0gTUFJTiAKCkhlcmUncyBhIHNrZXRjaCBvZiB3aGF0IEdh
bGxlcnkgd291bGQgbG9vayBsaWtlLiDCoEZvciBicmV2aXR5LCBJJ3ZlIG9taXR0ZWQgYWxsIGZp
bGVzIGFuZCBzdWJkaXJzIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB2ZW5kb3IuIAoKZ2FsbGVyeSAK
fC0tIGJpbiAKfC0tIGNvcmUgCnwgwqAgfC0tIGFwcGxpY2F0aW9uIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIFtOb3RlIDFdIAp8IMKgIHwgwqAgYC0tIHZlbmRvciAKfCDCoCB8IMKgIMKgIMKgIGAt
LSBodG1scHVyaWZpZXIgCnwgwqAgfC0tIGNhY2hlIAp8IMKgIHwtLSBkYXRhYmFzZSAKfCDCoCB8
LS0gZm9ybW8gCnwgwqAgfC0tIG9ybSAKfCDCoCB8LS0gaW1hZ2UgCnwgwqAgfC0tIHBhZ2luYXRp
b24gCnwgwqAgfC0tIHVuaXR0ZXN0IAp8IMKgIGAtLSBzeXN0ZW0gCnwtLSBpbnN0YWxsZXIgCnwt
LSBtb2R1bGVzLWNvbnRyaWIgCnwtLSBtb2R1bGVzLWdhbGxlcnkgCnwgwqAgfC0tIGFraXNtZXQg
CnwgwqAgfC0tIGNvbW1lbnQgCnwgwqAgfC0tIGV4aWYgCnwgwqAgfCDCoCBgLS0gdmVuZG9yIAp8
IMKgIHwgwqAgwqAgwqAgYC0tIGV4aWZlciAKfCDCoCB8LS0gZzJfaW1wb3J0IAp8IMKgIHwtLSBn
YWxsZXJ5IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFtOb3RlIDJdIAp8IMKgIHwgwqAg
YC0tIHZlbmRvciAKfCDCoCB8IMKgIMKgIMKgIHwtLSBqcXVlcnktZmlsZS11cGxvYWQgwqBbTm90
ZSAzXSAKfCDCoCB8IMKgIMKgIMKgIHwtLSBtZWRpYWVsZW1lbnRqcyAKfCDCoCB8IMKgIMKgIMKg
IGAtLSBqb29tbGEgCnwgwqAgfC0tIGdhbGxlcnlfdW5pdHRlc3QgCnwgwqAgfC0tIGltYWdlX2Js
b2NrIAp8IMKgIHwtLSBpbmZvIAp8IMKgIHwtLSBub3RpZmljYXRpb24gCnwgwqAgfC0tIG9yZ2Fu
aXplIAp8IMKgIHwtLSByZWNhcHRjaGEgCnwgwqAgfC0tIHJlc3QgCnwgwqAgfC0tIHJzcyAKfCDC
oCB8LS0gc2VhcmNoIAp8IMKgIHwtLSBzZXJ2ZXJfYWRkIAp8IMKgIHwtLSBzbGlkZXNob3cgCnwg
wqAgfC0tIHRhZyAKfCDCoCB8LS0gdXNlciAKfCDCoCB8LS0gd2F0ZXJtYXJrIAp8LS0gc2l0ZSDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFtOb3RlIDRdIAp8LS0gdGhl
bWVzLWNvbnRyaWIgCnwtLSB0aGVtZXMtZ2FsbGVyeSAKfCDCoCB8LS0gYWRtaW5fd2luZCAKfCDC
oCB8LS0gbGliIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFtOb3RlIDVdIAp8
IMKgIGAtLSB3aW5kIApgLS0gdmFyIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIFtOb3RlIDZdIArCoCDCoCB8LS0gYWxidW1zIArCoCDCoCB8LS0gYmFja3VwcyDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBbTm90ZSA3XSAKwqAgwqAgfC0tIGNhY2hlcyDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFtOb3RlIDhdIArCoCDCoCB8LS0gbG9ncyAKwqAg
wqAgfC0tIG1vZHVsZXMgCsKgIMKgIHwtLSByZXNpemVzIArCoCDCoCB8LS0gdGh1bWJzIArCoCDC
oCB8LS0gdG1wIArCoCDCoCBgLS0gdXBsb2FkcyAKCk5vdGUgMTogYXBwbGljYXRpb24gaW5jbHVk
ZXMgYm9vdHN0cmFwLCBwdXJpZmllciwgYW5kIGxvYWRfbW9kdWxlcy9sb2FkX3RoZW1lcyBjb2Rl
LiDCoFRoaXMgc3R1ZmYgY2FuIG5ldmVyIGJlIG92ZXJyaWRkZW4uIApOb3RlIDI6IGdhbGxlcnkg
aW5jbHVkZXMgY29kZSB0byBzd2FwIHRoZSBhY3RpdmUgdGhlbWUgZm9yIGFkbWluIGFuZC9vciBv
dmVycmlkZSBpZiBuZWVkZWQuIApOb3RlIDM6IGpxdWVyeS1maWxlLXVwbG9hZCB3aWxsIHJlcGxh
Y2UgdXBsb2FkaWZ5L3N3Zm9iamVjdC4gCk5vdGUgNDogc2l0ZSBkZXRhaWxzIGFyZSBiZWxvdy4g
Ck5vdGUgNTogbGliIGRldGFpbHMgYXJlIGJlbG93LiAKTm90ZSA2OiB2YXIgcm9vdCBkaXJlY3Rv
cnkgaXMgZW1wdHksIGFuZCB0aGUgZGF0YWJhc2UgY29uZmlnIGhhcyBiZWVuIG1vdmVkIHRvIHNp
dGUuIApOb3RlIDc6IHNob3VsZCB1c2UgdGhpcyBmb3IgYmFja3VwIFNRTCBkdW1wcyA6LSkgCk5v
dGUgODogY2FjaGUgaXMgbmV3IGZvciBLb2hhbmEgMyBjYWNoZXMuIAoKLS0tLSAKCkRFVEFJTFMg
LSBTSVRFIEFORCBMSUIgCgpNeSBnb2FsIGlzIHRvIGVuY291cmFnZSBlbmQgdXNlcnMgdG8gdXNl
IHRoZSBzaXRlIGRpcmVjdG9yeSBmb3IgKmFsbCogdHdlYWtzIG9mIGFueSBraW5kLiDCoEl0J3Mg
ZnVsbCBvZiBhIGJ1bmNoIG9mIHRlbXBsYXRlcywgd2hpY2ggdGhleSBjYW4gbW9kaWZ5IChhbmQg
dGhlbiByZW1vdmUgLnRtcGwpIHRvIGNoYW5nZSBnYWxsZXJ5IHdpdGhvdXQgYWN0dWFsbHkgdG91
Y2hpbmcgdGhlIGNvcmUgb3IgY29udHJpYiBmaWxlcy4gCgpzaXRlIAp8LS0gUkVBRE1FLm1kIMKg
ICh0ZWxscyBob3cgdG8gdXNlIHRoaXMgZGlyZWN0b3J5KSAKfC0tIGluaXQudG1wbCDCoCAodGhp
cyB0YWtlcyB0aGUgcGxhY2Ugb2YgdGhlIG9sZCBsb2NhbC5waHAgZmlsZSkgCnwtLSBhc3NldHMg
CnwgwqAgfC0tIGFwcGxlLXRvdWNoLWljb24ucG5nLnRtcGwgCnwgwqAgfC0tIGZhdmljb24uaWNv
LnRtcGwgCnwgwqAgfC0tIGxvZ28ucG5nLnRtcGwgCnwgwqAgfC0tIHNpdGUuY3NzLnRtcGwgwqAg
wqAgKGN1c3RvbSBjc3MsIHdoaWNoIGlzIGxvYWRlZCBsYXN0LCBnb2VzIGhlcmUpIAp8IMKgIGAt
LSBzaXRlLmpzLnRtcGwgwqAgwqAgwqAoY3VzdG9tIGpzLCB3aGljaCBpcyBsb2FkZWQgbGFzdCwg
Z29lcyBoZXJlKSAKfC0tIGNsYXNzZXMgCnwgwqAgfC0tIEV4YW1wbGUucGhwLnRtcGwgwqAodGVs
bHMgaG93IHRvIG92ZXJyaWRlIGEgY2xhc3MgaW5zdGVhZCBvZiBtb2RpZnlpbmcgaXQgZGlyZWN0
bHkpIAp8IMKgIGAtLSBIb29rIMKgIMKgIMKgIMKgIMKgIMKgIMKgKGVhY2ggdGVtcGxhdGUgaW5j
bHVkZXMgYSBsaXN0IG9mIHBvc3NpYmxlIGZ1bmN0aW9ucykgCnwgwqAgwqAgwqAgfC0tIFJlc3Qg
CnwgwqAgwqAgwqAgfCDCoCBgLS0gU2l0ZS5waHAudG1wbCAKfCDCoCDCoCDCoCB8LS0gU2l0ZUV2
ZW50LnBocC50bXBsIAp8IMKgIMKgIMKgIHwtLSBTaXRlUnNzLnBocC50bXBsIAp8IMKgIMKgIMKg
IHwtLSBTaXRlVGFzay5waHAudG1wbCAKfCDCoCDCoCDCoCBgLS0gU2l0ZVRoZW1lLnBocC50bXBs
IApgLS0gY29uZmlnIArCoCDCoCBgLS0gZGF0YWJhc2UucGhwIMKgIMKgIMKgKHRoaXMgd2FzIHZh
ci9kYXRhYmFzZS5waHAgaW4gMy4wLngpIAoKQWxzbywgSSdkIGxpa2UgdG8gbW92ZSB0aGUgbGli
IGRpcmVjdG9yeSBhcm91bmQgYSBiaXQgdG8gbWFrZSBpdCBsaWtlIHRoZSBvdGhlciBtb2R1bGVz
LCByZW1vdmUgdGhlIHRoaW5ncyB0aGF0IGFyZW4ndCBzcGVjaWZpYyB0byB0aGUgdGhlbWUgKHVw
bG9hZGVyIGFuZCBtb3ZpZSBwbGF5ZXIpLCBhbmQgdGhlbiBwdXQgaXQgYXMgYSB0aGVtZSBzdWJk
aXIuIMKgSSB1c2VkIGEgY291cGxlIHdpbGRjYXJkcyBmb3IgYnJldml0eSBiZWxvdy4gwqBUaGUg
ZW5kIHJlc3VsdCB3b3VsZCBsb29rIGxpa2UgdGhpczogCgpsaWIgCnwtLSBhc3NldHMgCnwgwqAg
fC0tIGFwcGxlLXRvdWNoLWljb24ucG5nIAp8IMKgIHwtLSBmYXZpY29uLmljbyAKfCDCoCB8LS0g
bG9nby5wbmcgCnwgwqAgfC0tIGdhbGxlcnkqLmpzIApgLS0gdmVuZG9yIArCoCDCoCB8LS0ganF1
ZXJ5Ki5qcyAKwqAgwqAgfC0tIGpzb24qLmpzIArCoCDCoCB8LS0gc3VwZXJmaXNoIArCoCDCoCBg
LS0geXVpIAoKLS0tLSAKCk1PRFVMRSBPUkRFUiAKCk91ciBjb21wbGV0ZSBtb2R1bGUgb3JkZXIg
d291bGQgbG9vayBsaWtlIHRoaXM6IAoKY29yZS9hcHBsaWNhdGlvbiAoQVBQUEFUSCByZXEnZCBi
eSBLb2hhbmEpIAptb2R1bGVzLWdhbGxlcnkvZ2FsbGVyeV91bml0dGVzdCAoaWYgVEVTVF9NT0RF
KSAKY29yZS91bml0dGVzdCAoaWYgVEVTVF9NT0RFKSAKc2l0ZSAKW2FjdGl2ZSB0aGVtZV0gCnRo
ZW1lcy1nYWxsZXJ5L2xpYiAKW2FjdGl2ZSBtb2R1bGVzLi4uXSAKW2FjdGl2ZSBpZGVudGl0eSBw
cm92aWRlcl0gCm1vZHVsZXMtZ2FsbGVyeS9nYWxsZXJ5IApjb3JlL3BhZ2luYXRpb24gCmNvcmUv
Zm9ybW8gCmNvcmUvaW1hZ2UgCmNvcmUvY2FjaGUgCmNvcmUvb3JtIApjb3JlL2RhdGFiYXNlIApj
b3JlL3N5c3RlbSAoU1lTUEFUSCByZXEnZCBieSBLb2hhbmEpIAoKQWRkaXRpb25hbGx5LCBkdXJp
bmcgYm9vdHN0cmFwIGFuZCBjb25maWd1cmF0aW9uLCB3ZSBsb2FkIGEgZmV3IG1vZHVsZXMgYmVm
b3JlIHRoZSB3aG9sZSBsaXN0OiAKCmNvcmUvYXBwbGljYXRpb24gKEFQUFBBVEggcmVxJ2QgYnkg
S29oYW5hKSAKc2l0ZSAoYWxsb3dzIGluaXQgdG8gYmUgcnVuKSAKbW9kdWxlcy1nYWxsZXJ5L2dh
bGxlcnkgCmNvcmUvY2FjaGUgCmNvcmUvb3JtIApjb3JlL2RhdGFiYXNlIApjb3JlL3N5c3RlbSAo
U1lTUEFUSCByZXEnZCBieSBLb2hhbmEpIAoKLS0tLSAKCldoZXcgLSB0aGF0IHRvb2sgYXdoaWxl
IHRvIHdyaXRlIHVwISDCoFNvLi4uIHdoYWRkYXlhdGhpbms/IAoKVGhhbmtzIGZvciByZWFkaW4n
ISAKClRha2UgY2FyZSwgClNoYWQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAKUHJlY29nIGlzIGEg
bmV4dC1nZW5lcmF0aW9uIGFuYWx5dGljcyBwbGF0Zm9ybSBjYXBhYmxlIG9mIGFkdmFuY2VkIAph
bmFseXRpY3Mgb24gc2VtaS1zdHJ1Y3R1cmVkIGRhdGEuIFRoZSBwbGF0Zm9ybSBpbmNsdWRlcyBB
UElzIGZvciBidWlsZGluZyAKYXBwcyBhbmQgYSBwaGVub21lbmFsIHRvb2xzZXQgZm9yIGRhdGEg
c2NpZW5jZS4gRGV2ZWxvcGVycyBjYW4gdXNlIApvdXIgdG9vbHNldCBmb3IgZWFzeSBkYXRhIGFu
YWx5c2lzICYgdmlzdWFsaXphdGlvbi4gR2V0IGEgZnJlZSBhY2NvdW50ISAKaHR0cDovL3d3dzIu
cHJlY29nLmNvbS9wcmVjb2dwbGF0Zm9ybS9zbGFzaGRvdG5ld3NsZXR0ZXIgCl9fWyBnIGEgbCBs
IGUgciB5IC0gZCBlIHYgZSBsIF1fX19fX19fX19fX19fX19fX19fX19fX19fIAoKWyBsaXN0IGlu
Zm8vYXJjaGl2ZSAtLT4gaHR0cDovL2dhbGxlcnkuc2YubmV0L2xpc3RzLnBocCBdIApbIGdhbGxl
cnkgaW5mby9GQVEvZG93bmxvYWQgLS0+IGh0dHA6Ly9nYWxsZXJ5LnNmLm5ldCBdIAoKCgoKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tClByZWNvZyBpcyBhIG5leHQtZ2VuZXJhdGlvbiBhbmFseXRpY3Mg
cGxhdGZvcm0gY2FwYWJsZSBvZiBhZHZhbmNlZAphbmFseXRpY3Mgb24gc2VtaS1zdHJ1Y3R1cmVk
IGRhdGEuIFRoZSBwbGF0Zm9ybSBpbmNsdWRlcyBBUElzIGZvciBidWlsZGluZwphcHBzIGFuZCBh
IHBoZW5vbWVuYWwgdG9vbHNldCBmb3IgZGF0YSBzY2llbmNlLiBEZXZlbG9wZXJzIGNhbiB1c2UK
b3VyIHRvb2xzZXQgZm9yIGVhc3kgZGF0YSBhbmFseXNpcyAmIHZpc3VhbGl6YXRpb24uIEdldCBh
IGZyZWUgYWNjb3VudCEKaHR0cDovL3d3dzIucHJlY29nLmNvbS9wcmVjb2dwbGF0Zm9ybS9zbGFz
aGRvdG5ld3NsZXR0ZXIKX19bIGcgYSBsIGwgZSByIHkgLSBkIGUgdiBlIGwgXV9fX19fX19fX19f
X19fX19fX19fX19fX18KClsgbGlzdCBpbmZvL2FyY2hpdmUgLS0+IGh0dHA6Ly9nYWxsZXJ5LnNm
Lm5ldC9saXN0cy5waHAgXQpbIGdhbGxlcnkgaW5mby9GQVEvZG93bmxvYWQgLS0+IGh0dHA6Ly9n
YWxsZXJ5LnNmLm5ldCBdCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KUHJlY29nIGlzIGEgbmV4dC1n
ZW5lcmF0aW9uIGFuYWx5dGljcyBwbGF0Zm9ybSBjYXBhYmxlIG9mIGFkdmFuY2VkCmFuYWx5dGlj
cyBvbiBzZW1pLXN0cnVjdHVyZWQgZGF0YS4gVGhlIHBsYXRmb3JtIGluY2x1ZGVzIEFQSXMgZm9y
IGJ1aWxkaW5nCmFwcHMgYW5kIGEgcGhlbm9tZW5hbCB0b29sc2V0IGZvciBkYXRhIHNjaWVuY2Uu
IERldmVsb3BlcnMgY2FuIHVzZQpvdXIgdG9vbHNldCBmb3IgZWFzeSBkYXRhIGFuYWx5c2lzICYg
dmlzdWFsaXphdGlvbi4gR2V0IGEgZnJlZSBhY2NvdW50IQpodHRwOi8vd3d3Mi5wcmVjb2cuY29t
L3ByZWNvZ3BsYXRmb3JtL3NsYXNoZG90bmV3c2xldHRlcgpfX1sgZyBhIGwgbCBlIHIgeSAtIGQg
ZSB2IGUgbCBdX19fX19fX19fX19fX19fX19fX19fX19fXwoKWyBsaXN0IGluZm8vYXJjaGl2ZSAt
LT4gaHR0cDovL2dhbGxlcnkuc2YubmV0L2xpc3RzLnBocCBdClsgZ2FsbGVyeSBpbmZvL0ZBUS9k
b3dubG9hZCAtLT4gaHR0cDovL2dhbGxlcnkuc2YubmV0IF0=