[OpenAFS-devel] Re: [PATCH 2/2] vfs: Fix inode ownership checks with regard to foreign ownership

Jeffrey E Altman jaltman@auristor.com
Thu, 29 May 2025 21:03:49 -0400


This is a cryptographically signed message in MIME format.

--------------ms030802020204020509020605
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gNS8xOS8yMDI1IDEyOjExIFBNLCBEYXZpZCBIb3dlbGxzIHdyb3RlOg0KDQo+IEZpeCBh
IG51bWJlciBvZiBvd25lcnNoaXAgY2hlY2tzIG1hZGUgYnkgdGhlIFZGUyB0aGF0IGFzc3Vt
ZSB0aGF0DQo+IGlub2RlLT5pX3VpZCBpcyBtZWFuaW5nZnVsIHdpdGggcmVzcGVjdCB0byB0
aGUgVUlEIHNwYWNlIG9mIHRoZSBzeXN0ZW0NCj4gcGVyZm9ybWluZyB0aGUgY2hlY2suICBO
ZXR3b3JrIGZpbGVzeXN0ZW1zLCBob3dldmVyLCBtYXkgdmlvbGF0ZSB0aGlzDQo+IGFzc3Vt
cHRpb24gLSBhbmQsIGluZGVlZCwgYSBuZXR3b3JrIGZpbGVzeXN0ZW0gbWF5IG5vdCBldmVu
IGhhdmUgYW4gYWN0dWFsDQo+IGNvbmNlcHQgb2YgYSBVTklYIGludGVnZXIgVUlEIChjaWZz
LCBmb3IgZXhhbXBsZSkuDQo+DQo+IFRoZXJlIGFyZSBhIG51bWJlciBvZiBwbGFjZXMgd2l0
aGluIHRoZSBWRlMgd2hlcmUgVUlEIGNoZWNrcyBhcmUgbWFkZSBhbmQNCj4gc29tZSBvZiB0
aGVzZSBzaG91bGQgYmUgZGVmZXJyaW5nIHRoZSBpbnRlcnByZXRhdGlvbiB0byB0aGUgZmls
ZXN5c3RlbSBieQ0KPiB3YXkgb2YgdGhlIHByZXZpb3VzbHkgYWRkZWQgdmZzX2lub2RlX2lz
X293bmVkX2J5X21lKCkgYW5kDQo+IHZmc19pbm9kZXNfaGF2ZV9zYW1lX293bmVyKCk6DQo+
DQo+ICAgKCopIGNob3duX29rKCkNCj4gICAoKikgY2hncnBfb2soKQ0KPg0KPiAgICAgICBU
aGVzZSBzaG91bGQgY2FsbCB2ZnNfaW5vZGVfaXNfb3duZWRfYnlfbWUoKS4gIFBvc3NpYmx5
IHRoZXNlIG5lZWQgdG8NCj4gICAgICAgZGVmZXIgYWxsIHRoZWlyIGNoZWNrcyB0byB0aGUg
bmV0d29yayBmaWxlc3lzdGVtIGFzIHRoZSBpbnRlcnByZXRhdGlvbg0KPiAgICAgICBvZiB0
aGUgbmV3IFVJRC9HSUQgZGVwZW5kcyBvbiB0aGUgbmV0ZnMgdG9vLCBidXQgdGhlIC0+c2V0
YXR0cigpDQo+ICAgICAgIG1ldGhvZCBnZXRzIGEgY2hhbmNlIHRvIGRlYWwgd2l0aCB0aGF0
Lg0KPg0KPiAgICgqKSBkb19jb3JlZHVtcCgpDQo+DQo+ICAgICAgIFNob3VsZCBwcm9iYWJs
eSBjYWxsIHZmc19pc19vd25lZF9ieV9tZSgpIHRvIGNoZWNrIHRoYXQgdGhlIGZpbGUNCj4g
ICAgICAgY3JlYXRlZCBpcyBvd25lZCBieSB0aGUgY2FsbGVyIC0gYnV0IHRoZSBjaGVjayB0
aGF0J3MgdGhlcmUgbWlnaHQgYmUNCj4gICAgICAgc3VmZmljaWVudC4NCj4NCj4gICAoKikg
aW5vZGVfb3duZXJfb3JfY2FwYWJsZSgpDQo+DQo+ICAgICAgIFNob3VsZCBjYWxsIHZmc19p
c19vd25lZF9ieV9tZSgpLiAgSSdtIG5vdCBzdXJlIHdoZXRoZXIgdGhlIG5hbWVzcGFjZQ0K
PiAgICAgICBtYXBwaW5nIG1ha2VzIHNlbnNlIGluIHN1Y2ggYSBjYXNlLCBidXQgaXQgcHJv
YmFibHkgY291bGQgYmUgdXNlZC4NCj4NCj4gICAoKikgdmZzX3NldGxlYXNlKCkNCj4NCj4g
ICAgICAgU2hvdWxkIGNhbGwgdmZzX2lzX293bmVkX2J5X21lKCkuICBBY3R1YWxseSwgaXQg
c2hvdWxkIHF1ZXJ5IGlmDQo+ICAgICAgIGxlYXNpbmcgaXMgcGVybWl0dGVkLg0KPg0KPiAg
ICAgICBBbHNvLCBzZXR0aW5nIGxvY2tzIGNvdWxkIHBlcmhhcHMgZG8gd2l0aCBhIHBlcm1p
c3Npb24gY2FsbCB0byB0aGUNCj4gICAgICAgZmlsZXN5c3RlbSBkcml2ZXIgYXMgQUZTLCBm
b3IgZXhhbXBsZSwgaGFzIGEgbG9jayBwZXJtaXNzaW9uIGJpdCBpbg0KPiAgICAgICB0aGUg
QUNMLCBidXQgc2luY2UgdGhlIEFGUyBzZXJ2ZXIgY2hlY2tzIHRoYXQgd2hlbiB0aGUgUlBD
IGNhbGwgaXMNCj4gICAgICAgbWFkZSwgaXQncyBwcm9iYWJseSB1bm5lY2Vzc2FyeS4NCj4N
Cj4gICAoKikgYWNsX3Blcm1pc3Npb25fY2hlY2soKQ0KPiAgICgqKSBwb3NpeF9hY2xfcGVy
bWlzc2lvbigpDQo+DQo+ICAgICAgIFRoZXNlIGZ1bmN0aW9ucyBhcmUgb25seSB1c2VkIGJ5
IGdlbmVyaWNfcGVybWlzc2lvbigpIHdoaWNoIGlzDQo+ICAgICAgIG92ZXJyaWRkZW4gaWYg
LT5wZXJtaXNzaW9uKCkgaXMgc3VwcGxpZWQsIGFuZCB3aGVuIGV2YWx1YXRpbmcgYSBQT1NJ
WA0KPiAgICAgICBBQ0wsIGl0IHNob3VsZCBhcmd1YWJseSBiZSBjaGVja2luZyB0aGUgVUlE
IGFueXdheS4NCj4NCj4gICAgICAgQUZTLCBmb3IgZXhhbXBsZSwgaW1wbGVtZW50cyBpdHMg
b3duIEFDTHMgYW5kIGV2YWx1YXRlcyB0aGVtIGluDQo+ICAgICAgIC0+cGVybWlzc2lvbigp
IGFuZCBvbiB0aGUgc2VydmVyLg0KPg0KPiAgICgqKSBtYXlfZm9sbG93X2xpbmsoKQ0KPg0K
PiAgICAgICBTaG91bGQgY2FsbCB2ZnNfaXNfb3duZWRfYnlfbWUoKSBhbmQgYWxzbyB2ZnNf
aGF2ZV9zYW1lX293bmVyKCkgb24gdGhlDQo+ICAgICAgIHRoZSBsaW5rIGFuZCBpdHMgcGFy
ZW50IGRpci4gIFRoZSBsYXR0ZXIgb25seSBhcHBsaWVzIG9uDQo+ICAgICAgIHdvcmxkLXdy
aXRhYmxlIHN0aWNreSBkaXJzLg0KPg0KPiAgICgqKSBtYXlfY3JlYXRlX2luX3N0aWNreSgp
DQo+DQo+ICAgICAgIFRoZSBpbml0aWFsIHN1YmplY3Qgb2YgdGhpcyBwYXRjaC4gIFNob3Vs
ZCBjYWxsIHZmc19pc19vd25lZF9ieV9tZSgpDQo+ICAgICAgIGFuZCBhbHNvIHZmc19oYXZl
X3NhbWVfb3duZXIoKSBib3RoLg0KPg0KPiAgICgqKSBfX2NoZWNrX3N0aWNreSgpDQo+DQo+
ICAgICAgIFNob3VsZCBjYWxsIHZmc19pc19vd25lZF9ieV9tZSgpIG9uIGJvdGggdGhlIGRp
ciBhbmQgdGhlIGlub2RlLg0KPg0KPiAgICgqKSBtYXlfZGVkdXBlX2ZpbGUoKQ0KPg0KPiAg
ICAgICBTaG91bGQgY2FsbCB2ZnNfaXNfb3duZWRfYnlfbWUoKS4NCj4NCj4gICAoKikgSU1B
IHBvbGljeSBvcHMuDQo+DQo+ICAgICAgIEknbSBub3Qgc3VyZSB3aGF0IHRoZSBiZXN0IHdh
eSB0byBkZWFsIHdpdGggdGhpcyBpcyAtIGlmLCBpbmRlZWQsIGl0DQo+ICAgICAgIG5lZWRz
IGFueSBjaGFuZ2VzLg0KPg0KPiBOb3RlIHRoYXQgd3JhcHBpbmcgc3R1ZmYgdXAgaW50byB2
ZnNfaW5vZGVfaXNfb3duZWRfYnlfbWUoKSBpc24ndA0KPiBuZWNlc3NhcmlseSB0aGUgbW9z
dCBlZmZpY2llbnQgYXMgaXQgbWVhbnMgd2UgbWF5IGVuZCB1cCBkb2luZyB0aGUgdWlkDQo+
IGlkbWFwcGluZyBhbiBleHRyYSB0aW1lIC0gdGhvdWdoIG1vc3RseSB0aGlzIGlzIGluIHBs
YWNlcyB3aGVyZSBJJ20gbm90DQo+IHN1cmUgaXQgbWF0dGVycyBzbyBtdWNoLg0KPg0KPiBT
aWduZWQtb2ZmLWJ5OiBEYXZpZCBIb3dlbGxzIDxkaG93ZWxsc0ByZWRoYXQuY29tPg0KPiBj
YzogRXRpZW5uZSBDaGFtcGV0aWVyIDxjaGFtcGV0aWVyLmV0aWVubmVAZ21haWwuY29tPg0K
PiBjYzogTWFyYyBEaW9ubmUgPG1hcmMuZGlvbm5lQGF1cmlzdG9yLmNvbT4NCj4gY2M6IEpl
ZmZyZXkgQWx0bWFuIDxqYWx0bWFuQGF1cmlzdG9yLmNvbT4NCj4gY2M6IENoZXQgUmFtZXkg
PGNoZXQucmFtZXlAY2FzZS5lZHU+DQo+IGNjOiBDaGV5ZW5uZSBXaWxscyA8Y3dpbGxzQHNp
bmVub21pbmUubmV0Pg0KPiBjYzogQWxleGFuZGVyIFZpcm8gPHZpcm9AemVuaXYubGludXgu
b3JnLnVrPg0KPiBjYzogQ2hyaXN0aWFuIEJyYXVuZXIgPGJyYXVuZXJAa2VybmVsLm9yZz4N
Cj4gY2M6IFN0ZXZlIEZyZW5jaCA8c2ZyZW5jaEBzYW1iYS5vcmc+DQo+IGNjOiBNaW1pIFpv
aGFyIDx6b2hhckBsaW51eC5pYm0uY29tPg0KPiBjYzogbGludXgtYWZzQGxpc3RzLmluZnJh
ZGVhZC5vcmcNCj4gY2M6IG9wZW5hZnMtZGV2ZWxAb3BlbmFmcy5vcmcNCj4gY2M6IGxpbnV4
LWNpZnNAdmdlci5rZXJuZWwub3JnDQo+IGNjOiBsaW51eC1mc2RldmVsQHZnZXIua2VybmVs
Lm9yZw0KPiBjYzogbGludXgtaW50ZWdyaXR5QHZnZXIua2VybmVsLm9yZw0KPiBMaW5rOiBo
dHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2cvZ251LmJhc2guYnVnL2MvNlBQVGZPZ0ZkTDQv
bS8yQVFVLVMxTjc2VUoNCj4gTGluazogaHR0cHM6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9j
Z2l0L2Jhc2guZ2l0L3RyZWUvcmVkaXIuYz9oPWJhc2gtNS4zLXJjMSNuNzMzDQo+IC0tLQ0K
PiAgIGZzL2F0dHIuYyAgICAgICAgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKysrKysr
Ky0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gICBmcy9jb3JlZHVtcC5jICAgIHwgIDMgKy0tDQo+
ICAgZnMvaW5vZGUuYyAgICAgICB8ICA4ICsrKysrLS0NCj4gICBmcy9sb2Nrcy5jICAgICAg
IHwgIDcgKysrKy0tDQo+ICAgZnMvbmFtZWkuYyAgICAgICB8IDMwICsrKysrKysrKysrKyst
LS0tLS0tLS0tLS0NCj4gICBmcy9yZW1hcF9yYW5nZS5jIHwgMjAgKysrKysrKysrLS0tLS0t
LS0NCj4gICA2IGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDUyIGRlbGV0aW9u
cygtKQ0KPg0KPiBkaWZmIC0tZ2l0IGEvZnMvYXR0ci5jIGIvZnMvYXR0ci5jDQo+IGluZGV4
IDljYWY2M2QyMGQwMy4uZmVmZDkyYWY1NmEyIDEwMDY0NA0KPiAtLS0gYS9mcy9hdHRyLmMN
Cj4gKysrIGIvZnMvYXR0ci5jDQo+IEBAIC0xNiw2ICsxNiw3IEBADQo+ICAgI2luY2x1ZGUg
PGxpbnV4L2ZjbnRsLmg+DQo+ICAgI2luY2x1ZGUgPGxpbnV4L2ZpbGVsb2NrLmg+DQo+ICAg
I2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+DQo+ICsjaW5jbHVkZSAiaW50ZXJuYWwuaCIN
Cj4gICANCj4gICAvKioNCj4gICAgKiBzZXRhdHRyX3Nob3VsZF9kcm9wX3NnaWQgLSBkZXRl
cm1pbmUgd2hldGhlciB0aGUgc2V0Z2lkIGJpdCBuZWVkcyB0byBiZQ0KPiBAQCAtOTEsMTkg
KzkyLDIxIEBAIEVYUE9SVF9TWU1CT0woc2V0YXR0cl9zaG91bGRfZHJvcF9zdWlkZ2lkKTsN
Cj4gICAgKiBwZXJtaXNzaW9ucy4gT24gbm9uLWlkbWFwcGVkIG1vdW50cyBvciBpZiBwZXJt
aXNzaW9uIGNoZWNraW5nIGlzIHRvIGJlDQo+ICAgICogcGVyZm9ybWVkIG9uIHRoZSByYXcg
aW5vZGUgc2ltcGx5IHBhc3MgQG5vcF9tbnRfaWRtYXAuDQo+ICAgICovDQo+IC1zdGF0aWMg
Ym9vbCBjaG93bl9vayhzdHJ1Y3QgbW50X2lkbWFwICppZG1hcCwNCj4gLQkJICAgICBjb25z
dCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCB2ZnN1aWRfdCBpYV92ZnN1aWQpDQo+ICtzdGF0aWMg
aW50IGNob3duX29rKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLA0KPiArCQkgICAgY29uc3Qg
c3RydWN0IGlub2RlICppbm9kZSwgdmZzdWlkX3QgaWFfdmZzdWlkKQ0KPiAgIHsNCj4gICAJ
dmZzdWlkX3QgdmZzdWlkID0gaV91aWRfaW50b192ZnN1aWQoaWRtYXAsIGlub2RlKTsNCj4g
LQlpZiAodmZzdWlkX2VxX2t1aWQodmZzdWlkLCBjdXJyZW50X2ZzdWlkKCkpICYmDQo+IC0J
ICAgIHZmc3VpZF9lcShpYV92ZnN1aWQsIHZmc3VpZCkpDQo+IC0JCXJldHVybiB0cnVlOw0K
PiArCWludCByZXQ7DQo+ICsNCj4gKwlyZXQgPSB2ZnNfaW5vZGVfaXNfb3duZWRfYnlfbWUo
aWRtYXAsIGlub2RlKTsNCj4gKwlpZiAocmV0IDw9IDApDQo+ICsJCXJldHVybiByZXQ7DQo+
ICAgCWlmIChjYXBhYmxlX3dydF9pbm9kZV91aWRnaWQoaWRtYXAsIGlub2RlLCBDQVBfQ0hP
V04pKQ0KPiAtCQlyZXR1cm4gdHJ1ZTsNCj4gKwkJcmV0dXJuIDA7DQo+ICAgCWlmICghdmZz
dWlkX3ZhbGlkKHZmc3VpZCkgJiYNCj4gICAJICAgIG5zX2NhcGFibGUoaW5vZGUtPmlfc2It
PnNfdXNlcl9ucywgQ0FQX0NIT1dOKSkNCj4gLQkJcmV0dXJuIHRydWU7DQo+IC0JcmV0dXJu
IGZhbHNlOw0KPiArCQlyZXR1cm4gMDsNCj4gKwlyZXR1cm4gLUVQRVJNOw0KPiAgIH0NCj4g
ICANCj4gICAvKioNCj4gQEAgLTExOCwyMyArMTIxLDI3IEBAIHN0YXRpYyBib29sIGNob3du
X29rKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLA0KPiAgICAqIHBlcm1pc3Npb25zLiBPbiBu
b24taWRtYXBwZWQgbW91bnRzIG9yIGlmIHBlcm1pc3Npb24gY2hlY2tpbmcgaXMgdG8gYmUN
Cj4gICAgKiBwZXJmb3JtZWQgb24gdGhlIHJhdyBpbm9kZSBzaW1wbHkgcGFzcyBAbm9wX21u
dF9pZG1hcC4NCj4gICAgKi8NCj4gLXN0YXRpYyBib29sIGNoZ3JwX29rKHN0cnVjdCBtbnRf
aWRtYXAgKmlkbWFwLA0KPiAtCQkgICAgIGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUsIHZm
c2dpZF90IGlhX3Zmc2dpZCkNCj4gK3N0YXRpYyBpbnQgY2hncnBfb2soc3RydWN0IG1udF9p
ZG1hcCAqaWRtYXAsDQo+ICsJCSAgICBjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCB2ZnNn
aWRfdCBpYV92ZnNnaWQpDQo+ICAgew0KPiAgIAl2ZnNnaWRfdCB2ZnNnaWQgPSBpX2dpZF9p
bnRvX3Zmc2dpZChpZG1hcCwgaW5vZGUpOw0KPiAtCXZmc3VpZF90IHZmc3VpZCA9IGlfdWlk
X2ludG9fdmZzdWlkKGlkbWFwLCBpbm9kZSk7DQo+IC0JaWYgKHZmc3VpZF9lcV9rdWlkKHZm
c3VpZCwgY3VycmVudF9mc3VpZCgpKSkgew0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlyZXQg
PSB2ZnNfaW5vZGVfaXNfb3duZWRfYnlfbWUoaWRtYXAsIGlub2RlKTsNCj4gKwlpZiAocmV0
IDwgMCkNCj4gKwkJcmV0dXJuIHJldDsNCj4gKwlpZiAocmV0ID09IDApIHsNCj4gICAJCWlm
ICh2ZnNnaWRfZXEoaWFfdmZzZ2lkLCB2ZnNnaWQpKQ0KPiAtCQkJcmV0dXJuIHRydWU7DQo+
ICsJCQlyZXR1cm4gMDsNCj4gICAJCWlmICh2ZnNnaWRfaW5fZ3JvdXBfcChpYV92ZnNnaWQp
KQ0KPiAtCQkJcmV0dXJuIHRydWU7DQo+ICsJCQlyZXR1cm4gMDsNCj4gICAJfQ0KPiAgIAlp
ZiAoY2FwYWJsZV93cnRfaW5vZGVfdWlkZ2lkKGlkbWFwLCBpbm9kZSwgQ0FQX0NIT1dOKSkN
Cj4gLQkJcmV0dXJuIHRydWU7DQo+ICsJCXJldHVybiAwOw0KPiAgIAlpZiAoIXZmc2dpZF92
YWxpZCh2ZnNnaWQpICYmDQo+ICAgCSAgICBuc19jYXBhYmxlKGlub2RlLT5pX3NiLT5zX3Vz
ZXJfbnMsIENBUF9DSE9XTikpDQo+IC0JCXJldHVybiB0cnVlOw0KPiAtCXJldHVybiBmYWxz
ZTsNCj4gKwkJcmV0dXJuIDA7DQo+ICsJcmV0dXJuIC1FUEVSTTsNCj4gICB9DQo+ICAgDQo+
ICAgLyoqDQo+IEBAIC0xNjMsNiArMTcwLDcgQEAgaW50IHNldGF0dHJfcHJlcGFyZShzdHJ1
Y3QgbW50X2lkbWFwICppZG1hcCwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KPiAgIHsNCj4g
ICAJc3RydWN0IGlub2RlICppbm9kZSA9IGRfaW5vZGUoZGVudHJ5KTsNCj4gICAJdW5zaWdu
ZWQgaW50IGlhX3ZhbGlkID0gYXR0ci0+aWFfdmFsaWQ7DQo+ICsJaW50IHJldDsNCj4gICAN
Cj4gICAJLyoNCj4gICAJICogRmlyc3QgY2hlY2sgc2l6ZSBjb25zdHJhaW50cy4gIFRoZXNl
IGNhbid0IGJlIG92ZXJyaWRlbiB1c2luZw0KPiBAQCAtMTc5LDE0ICsxODcsMTggQEAgaW50
IHNldGF0dHJfcHJlcGFyZShzdHJ1Y3QgbW50X2lkbWFwICppZG1hcCwgc3RydWN0IGRlbnRy
eSAqZGVudHJ5LA0KPiAgIAkJZ290byBraWxsX3ByaXY7DQo+ICAgDQo+ICAgCS8qIE1ha2Ug
c3VyZSBhIGNhbGxlciBjYW4gY2hvd24uICovDQo+IC0JaWYgKChpYV92YWxpZCAmIEFUVFJf
VUlEKSAmJg0KPiAtCSAgICAhY2hvd25fb2soaWRtYXAsIGlub2RlLCBhdHRyLT5pYV92ZnN1
aWQpKQ0KPiAtCQlyZXR1cm4gLUVQRVJNOw0KPiArCWlmIChpYV92YWxpZCAmIEFUVFJfVUlE
KSB7DQo+ICsJCXJldCA9IGNob3duX29rKGlkbWFwLCBpbm9kZSwgYXR0ci0+aWFfdmZzdWlk
KTsNCj4gKwkJaWYgKHJldCA8IDApDQo+ICsJCQlyZXR1cm4gcmV0Ow0KPiArCX0NCj4gICAN
Cj4gICAJLyogTWFrZSBzdXJlIGNhbGxlciBjYW4gY2hncnAuICovDQo+IC0JaWYgKChpYV92
YWxpZCAmIEFUVFJfR0lEKSAmJg0KPiAtCSAgICAhY2hncnBfb2soaWRtYXAsIGlub2RlLCBh
dHRyLT5pYV92ZnNnaWQpKQ0KPiAtCQlyZXR1cm4gLUVQRVJNOw0KPiArCWlmIChpYV92YWxp
ZCAmIEFUVFJfR0lEKSB7DQo+ICsJCXJldCA9IGNoZ3JwX29rKGlkbWFwLCBpbm9kZSwgYXR0
ci0+aWFfdmZzZ2lkKTsNCj4gKwkJaWYgKHJldCA8IDApDQo+ICsJCQlyZXR1cm4gcmV0Ow0K
PiArCX0NCj4gICANCj4gICAJLyogTWFrZSBzdXJlIGEgY2FsbGVyIGNhbiBjaG1vZC4gKi8N
Cj4gICAJaWYgKGlhX3ZhbGlkICYgQVRUUl9NT0RFKSB7DQo+IGRpZmYgLS1naXQgYS9mcy9j
b3JlZHVtcC5jIGIvZnMvY29yZWR1bXAuYw0KPiBpbmRleCBjMzNjMTc3YTcwMWIuLmRlZDM5
MzZiMjA2NyAxMDA2NDQNCj4gLS0tIGEvZnMvY29yZWR1bXAuYw0KPiArKysgYi9mcy9jb3Jl
ZHVtcC5jDQo+IEBAIC03MjAsOCArNzIwLDcgQEAgdm9pZCBkb19jb3JlZHVtcChjb25zdCBr
ZXJuZWxfc2lnaW5mb190ICpzaWdpbmZvKQ0KPiAgIAkJICogZmlsZXN5c3RlbS4NCj4gICAJ
CSAqLw0KPiAgIAkJaWRtYXAgPSBmaWxlX21udF9pZG1hcChjcHJtLmZpbGUpOw0KPiAtCQlp
ZiAoIXZmc3VpZF9lcV9rdWlkKGlfdWlkX2ludG9fdmZzdWlkKGlkbWFwLCBpbm9kZSksDQo+
IC0JCQkJICAgIGN1cnJlbnRfZnN1aWQoKSkpIHsNCj4gKwkJaWYgKHZmc19pbm9kZV9pc19v
d25lZF9ieV9tZShpZG1hcCwgaW5vZGUpICE9IDApIHsNCj4gICAJCQljb3JlZHVtcF9yZXBv
cnRfZmFpbHVyZSgiQ29yZSBkdW1wIHRvICVzIGFib3J0ZWQ6ICINCj4gICAJCQkJImNhbm5v
dCBwcmVzZXJ2ZSBmaWxlIG93bmVyIiwgY24uY29yZW5hbWUpOw0KPiAgIAkJCWdvdG8gY2xv
c2VfZmFpbDsNCj4gZGlmZiAtLWdpdCBhL2ZzL2lub2RlLmMgYi9mcy9pbm9kZS5jDQo+IGlu
ZGV4IDk5MzE4YjE1N2E5YS4uN2U5MWI2Zjg3NzU3IDEwMDY0NA0KPiAtLS0gYS9mcy9pbm9k
ZS5jDQo+ICsrKyBiL2ZzL2lub2RlLmMNCj4gQEAgLTI1ODYsMTEgKzI1ODYsMTUgQEAgYm9v
bCBpbm9kZV9vd25lcl9vcl9jYXBhYmxlKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLA0KPiAg
IHsNCj4gICAJdmZzdWlkX3QgdmZzdWlkOw0KPiAgIAlzdHJ1Y3QgdXNlcl9uYW1lc3BhY2Ug
Km5zOw0KPiArCWludCByZXQ7DQo+ICAgDQo+IC0JdmZzdWlkID0gaV91aWRfaW50b192ZnN1
aWQoaWRtYXAsIGlub2RlKTsNCj4gLQlpZiAodmZzdWlkX2VxX2t1aWQodmZzdWlkLCBjdXJy
ZW50X2ZzdWlkKCkpKQ0KPiArCXJldCA9IHZmc19pbm9kZV9pc19vd25lZF9ieV9tZShpZG1h
cCwgaW5vZGUpOw0KPiArCWlmIChyZXQgPT0gMCkNCj4gICAJCXJldHVybiB0cnVlOw0KPiAr
CWlmIChyZXQgPCAwKQ0KPiArCQlyZXR1cm4gZmFsc2U7DQo+ICAgDQo+ICsJdmZzdWlkID0g
aV91aWRfaW50b192ZnN1aWQoaWRtYXAsIGlub2RlKTsNCj4gICAJbnMgPSBjdXJyZW50X3Vz
ZXJfbnMoKTsNCj4gICAJaWYgKHZmc3VpZF9oYXNfbWFwcGluZyhucywgdmZzdWlkKSAmJiBu
c19jYXBhYmxlKG5zLCBDQVBfRk9XTkVSKSkNCj4gICAJCXJldHVybiB0cnVlOw0KPiBkaWZm
IC0tZ2l0IGEvZnMvbG9ja3MuYyBiL2ZzL2xvY2tzLmMNCj4gaW5kZXggMTYxOWNkZGZhN2E0
Li5iN2EyYTNhYjc1MjkgMTAwNjQ0DQo+IC0tLSBhL2ZzL2xvY2tzLmMNCj4gKysrIGIvZnMv
bG9ja3MuYw0KPiBAQCAtNjgsNiArNjgsNyBAQA0KPiAgICNpbmNsdWRlIDx0cmFjZS9ldmVu
dHMvZmlsZWxvY2suaD4NCj4gICANCj4gICAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPg0K
PiArI2luY2x1ZGUgImludGVybmFsLmgiDQo+ICAgDQo+ICAgc3RhdGljIHN0cnVjdCBmaWxl
X2xvY2sgKmZpbGVfbG9jayhzdHJ1Y3QgZmlsZV9sb2NrX2NvcmUgKmZsYykNCj4gICB7DQo+
IEBAIC0yMDEzLDEwICsyMDE0LDEyIEBAIGludA0KPiAgIHZmc19zZXRsZWFzZShzdHJ1Y3Qg
ZmlsZSAqZmlscCwgaW50IGFyZywgc3RydWN0IGZpbGVfbGVhc2UgKipsZWFzZSwgdm9pZCAq
KnByaXYpDQo+ICAgew0KPiAgIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShm
aWxwKTsNCj4gLQl2ZnN1aWRfdCB2ZnN1aWQgPSBpX3VpZF9pbnRvX3Zmc3VpZChmaWxlX21u
dF9pZG1hcChmaWxwKSwgaW5vZGUpOw0KPiAgIAlpbnQgZXJyb3I7DQo+ICAgDQo+IC0JaWYg
KCghdmZzdWlkX2VxX2t1aWQodmZzdWlkLCBjdXJyZW50X2ZzdWlkKCkpKSAmJiAhY2FwYWJs
ZShDQVBfTEVBU0UpKQ0KPiArCWVycm9yID0gdmZzX2lub2RlX2lzX293bmVkX2J5X21lKGZp
bGVfbW50X2lkbWFwKGZpbHApLCBpbm9kZSk7DQo+ICsJaWYgKGVycm9yIDwgMCkNCj4gKwkJ
cmV0dXJuIGVycm9yOw0KPiArCWlmIChlcnJvciAhPSAwICYmICFjYXBhYmxlKENBUF9MRUFT
RSkpDQo+ICAgCQlyZXR1cm4gLUVBQ0NFUzsNCj4gICAJaWYgKCFTX0lTUkVHKGlub2RlLT5p
X21vZGUpKQ0KPiAgIAkJcmV0dXJuIC1FSU5WQUw7DQo+IGRpZmYgLS1naXQgYS9mcy9uYW1l
aS5jIGIvZnMvbmFtZWkuYw0KPiBpbmRleCA5ZjQyZGM0NjMyMmYuLjZlZGU5NTJkNDI0YSAx
MDA2NDQNCj4gLS0tIGEvZnMvbmFtZWkuYw0KPiArKysgYi9mcy9uYW1laS5jDQo+IEBAIC0x
MTk1LDI2ICsxMTk1LDI2IEBAIHN0YXRpYyBpbnQgdmZzX2lub2Rlc19oYXZlX3NhbWVfb3du
ZXIoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBpbm9kZSAqaW5vDQo+ICAgICoN
Cj4gICAgKiBSZXR1cm5zIDAgaWYgZm9sbG93aW5nIHRoZSBzeW1saW5rIGlzIGFsbG93ZWQs
IC12ZSBvbiBlcnJvci4NCj4gICAgKi8NCj4gLXN0YXRpYyBpbmxpbmUgaW50IG1heV9mb2xs
b3dfbGluayhzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgY29uc3Qgc3RydWN0IGlub2RlICppbm9k
ZSkNCj4gK3N0YXRpYyBpbmxpbmUgaW50IG1heV9mb2xsb3dfbGluayhzdHJ1Y3QgbmFtZWlk
YXRhICpuZCwgc3RydWN0IGlub2RlICppbm9kZSkNCj4gICB7DQo+ICAgCXN0cnVjdCBtbnRf
aWRtYXAgKmlkbWFwOw0KPiAtCXZmc3VpZF90IHZmc3VpZDsNCj4gKwlpbnQgcmV0Ow0KPiAg
IA0KPiAgIAlpZiAoIXN5c2N0bF9wcm90ZWN0ZWRfc3ltbGlua3MpDQo+ICAgCQlyZXR1cm4g
MDsNCj4gICANCj4gLQlpZG1hcCA9IG1udF9pZG1hcChuZC0+cGF0aC5tbnQpOw0KPiAtCXZm
c3VpZCA9IGlfdWlkX2ludG9fdmZzdWlkKGlkbWFwLCBpbm9kZSk7DQo+IC0JLyogQWxsb3dl
ZCBpZiBvd25lciBhbmQgZm9sbG93ZXIgbWF0Y2guICovDQo+IC0JaWYgKHZmc3VpZF9lcV9r
dWlkKHZmc3VpZCwgY3VycmVudF9mc3VpZCgpKSkNCj4gLQkJcmV0dXJuIDA7DQo+IC0NCj4g
ICAJLyogQWxsb3dlZCBpZiBwYXJlbnQgZGlyZWN0b3J5IG5vdCBzdGlja3kgYW5kIHdvcmxk
LXdyaXRhYmxlLiAqLw0KPiAgIAlpZiAoKG5kLT5kaXJfbW9kZSAmIChTX0lTVlRYfFNfSVdP
VEgpKSAhPSAoU19JU1ZUWHxTX0lXT1RIKSkNCj4gICAJCXJldHVybiAwOw0KPiAgIA0KPiAr
CWlkbWFwID0gbW50X2lkbWFwKG5kLT5wYXRoLm1udCk7DQo+ICsJLyogQWxsb3dlZCBpZiBv
d25lciBhbmQgZm9sbG93ZXIgbWF0Y2guICovDQo+ICsJcmV0ID0gdmZzX2lub2RlX2lzX293
bmVkX2J5X21lKGlkbWFwLCBpbm9kZSk7DQo+ICsJaWYgKHJldCA8PSAwKQ0KPiArCQlyZXR1
cm4gcmV0Ow0KPiArDQo+ICAgCS8qIEFsbG93ZWQgaWYgcGFyZW50IGRpcmVjdG9yeSBhbmQg
bGluayBvd25lciBtYXRjaC4gKi8NCj4gLQlpZiAodmZzdWlkX3ZhbGlkKG5kLT5kaXJfdmZz
dWlkKSAmJiB2ZnN1aWRfZXEobmQtPmRpcl92ZnN1aWQsIHZmc3VpZCkpDQo+ICsJaWYgKHZm
c19pbm9kZXNfaGF2ZV9zYW1lX293bmVyKGlkbWFwLCBpbm9kZSwgbmQpKQ0KPiAgIAkJcmV0
dXJuIDA7DQo+ICAgDQo+ICAgCWlmIChuZC0+ZmxhZ3MgJiBMT09LVVBfUkNVKQ0KPiBAQCAt
MzE1NywxMiArMzE1NywxNCBAQCBFWFBPUlRfU1lNQk9MKHVzZXJfcGF0aF9hdCk7DQo+ICAg
aW50IF9fY2hlY2tfc3RpY2t5KHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLCBzdHJ1Y3QgaW5v
ZGUgKmRpciwNCj4gICAJCSAgIHN0cnVjdCBpbm9kZSAqaW5vZGUpDQo+ICAgew0KPiAtCWt1
aWRfdCBmc3VpZCA9IGN1cnJlbnRfZnN1aWQoKTsNCj4gKwlpbnQgcmV0Ow0KPiAgIA0KPiAt
CWlmICh2ZnN1aWRfZXFfa3VpZChpX3VpZF9pbnRvX3Zmc3VpZChpZG1hcCwgaW5vZGUpLCBm
c3VpZCkpDQo+IC0JCXJldHVybiAwOw0KPiAtCWlmICh2ZnN1aWRfZXFfa3VpZChpX3VpZF9p
bnRvX3Zmc3VpZChpZG1hcCwgZGlyKSwgZnN1aWQpKQ0KPiAtCQlyZXR1cm4gMDsNCj4gKwly
ZXQgPSB2ZnNfaW5vZGVfaXNfb3duZWRfYnlfbWUoaWRtYXAsIGlub2RlKTsNCj4gKwlpZiAo
cmV0IDw9IDApDQo+ICsJCXJldHVybiByZXQ7DQo+ICsJcmV0ID0gdmZzX2lub2RlX2lzX293
bmVkX2J5X21lKGlkbWFwLCBkaXIpOw0KPiArCWlmIChyZXQgPD0gMCkNCj4gKwkJcmV0dXJu
IHJldDsNCj4gICAJcmV0dXJuICFjYXBhYmxlX3dydF9pbm9kZV91aWRnaWQoaWRtYXAsIGlu
b2RlLCBDQVBfRk9XTkVSKTsNCj4gICB9DQo+ICAgRVhQT1JUX1NZTUJPTChfX2NoZWNrX3N0
aWNreSk7DQo+IGRpZmYgLS1naXQgYS9mcy9yZW1hcF9yYW5nZS5jIGIvZnMvcmVtYXBfcmFu
Z2UuYw0KPiBpbmRleCAyNmFmYmJiZmIxMGMuLjllZWU5M2MyNzAwMSAxMDA2NDQNCj4gLS0t
IGEvZnMvcmVtYXBfcmFuZ2UuYw0KPiArKysgYi9mcy9yZW1hcF9yYW5nZS5jDQo+IEBAIC00
MTMsMjAgKzQxMywyMiBAQCBsb2ZmX3QgdmZzX2Nsb25lX2ZpbGVfcmFuZ2Uoc3RydWN0IGZp
bGUgKmZpbGVfaW4sIGxvZmZfdCBwb3NfaW4sDQo+ICAgRVhQT1JUX1NZTUJPTCh2ZnNfY2xv
bmVfZmlsZV9yYW5nZSk7DQo+ICAgDQo+ICAgLyogQ2hlY2sgd2hldGhlciB3ZSBhcmUgYWxs
b3dlZCB0byBkZWR1cGUgdGhlIGRlc3RpbmF0aW9uIGZpbGUgKi8NCj4gLXN0YXRpYyBib29s
IG1heV9kZWR1cGVfZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSkNCj4gK3N0YXRpYyBpbnQgbWF5
X2RlZHVwZV9maWxlKHN0cnVjdCBmaWxlICpmaWxlKQ0KPiAgIHsNCj4gICAJc3RydWN0IG1u
dF9pZG1hcCAqaWRtYXAgPSBmaWxlX21udF9pZG1hcChmaWxlKTsNCj4gICAJc3RydWN0IGlu
b2RlICppbm9kZSA9IGZpbGVfaW5vZGUoZmlsZSk7DQo+ICsJaW50IHJldDsNCj4gICANCj4g
ICAJaWYgKGNhcGFibGUoQ0FQX1NZU19BRE1JTikpDQo+IC0JCXJldHVybiB0cnVlOw0KPiAr
CQlyZXR1cm4gMDsNCj4gICAJaWYgKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1dSSVRFKQ0KPiAt
CQlyZXR1cm4gdHJ1ZTsNCj4gLQlpZiAodmZzdWlkX2VxX2t1aWQoaV91aWRfaW50b192ZnN1
aWQoaWRtYXAsIGlub2RlKSwgY3VycmVudF9mc3VpZCgpKSkNCj4gLQkJcmV0dXJuIHRydWU7
DQo+ICsJCXJldHVybiAwOw0KPiArCXJldCA9IHZmc19pbm9kZV9pc19vd25lZF9ieV9tZShp
ZG1hcCwgaW5vZGUpOw0KPiArCWlmIChyZXQgPD0gMCkNCj4gKwkJcmV0dXJuIHJldDsNCj4g
ICAJaWYgKCFpbm9kZV9wZXJtaXNzaW9uKGlkbWFwLCBpbm9kZSwgTUFZX1dSSVRFKSkNCj4g
LQkJcmV0dXJuIHRydWU7DQo+IC0JcmV0dXJuIGZhbHNlOw0KPiArCQlyZXR1cm4gMDsNCj4g
KwlyZXR1cm4gLUVQRVJNOw0KPiAgIH0NCj4gICANCj4gICBsb2ZmX3QgdmZzX2RlZHVwZV9m
aWxlX3JhbmdlX29uZShzdHJ1Y3QgZmlsZSAqc3JjX2ZpbGUsIGxvZmZfdCBzcmNfcG9zLA0K
PiBAQCAtNDU5LDggKzQ2MSw4IEBAIGxvZmZfdCB2ZnNfZGVkdXBlX2ZpbGVfcmFuZ2Vfb25l
KHN0cnVjdCBmaWxlICpzcmNfZmlsZSwgbG9mZl90IHNyY19wb3MsDQo+ICAgCWlmIChyZXQp
DQo+ICAgCQlyZXR1cm4gcmV0Ow0KPiAgIA0KPiAtCXJldCA9IC1FUEVSTTsNCj4gLQlpZiAo
IW1heV9kZWR1cGVfZmlsZShkc3RfZmlsZSkpDQo+ICsJcmV0ID0gbWF5X2RlZHVwZV9maWxl
KGRzdF9maWxlKTsNCj4gKwlpZiAocmV0IDwgMCkNCj4gICAJCWdvdG8gb3V0X2Ryb3Bfd3Jp
dGU7DQo+ICAgDQo+ICAgCXJldCA9IC1FWERFVjsNCg0KUmV2aWV3ZWQtYnk6IEplZmZyZXkg
QWx0bWFuIDxqYWx0bWFuQGF1cmlzdG9yLmNvbT4NCg0KVGhpcyBjaGFuZ2UgbG9va3MgZ29v
ZCB0byBtZS7CoCBJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBpdCBhc3N1bWVzIHRoYXQgDQpm
aWxlc3lzdGVtIHNwZWNpZmljIGlzX293bmVkX2J5X21lIGlub2RlX29wZXJhdGlvbiBjYW4g
cHJvcGVybHkgaGFuZGxlIA0KYWxsIGlub2RlIHR5cGVzLsKgIFRoZSBwcmVjZWRpbmcgY2hh
bmdlIHdpbGwgbmVlZCBhIGZpeCBmb3IgdGhlIGFmcyANCmltcGxlbWVudGF0aW9uLg0KDQoN
Cg==

--------------ms030802020204020509020605
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCC
DHEwggXSMIIEuqADAgECAhBAAYJpmi/rPn/F0fJyDlzMMA0GCSqGSIb3DQEBCwUAMDoxCzAJ
BgNVBAYTAlVTMRIwEAYDVQQKEwlJZGVuVHJ1c3QxFzAVBgNVBAMTDlRydXN0SUQgQ0EgQTEz
MB4XDTIyMDgwNDE2MDQ0OFoXDTI1MTAzMTE2MDM0OFowcDEvMC0GCgmSJomT8ixkAQETH0Ew
MTQxMEQwMDAwMDE4MjY5OUEyRkQyMDAwMjMzQ0QxGTAXBgNVBAMTEEplZmZyZXkgRSBBbHRt
YW4xFTATBgNVBAoTDEF1cmlTdG9yIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQCkC7PKBBZnQqDKPtZPMLAy77zo2DPvwtGnd1hNjPvbXrpGxUb3
xHZRtv179LHKAOcsY2jIctzieMxf82OMyhpBziMPsFAG/ukihBMFj3/xEeZVso3K27pSAyyN
fO/wJ0rX7G+ges22Dd7goZul8rPaTJBIxbZDuaykJMGpNq4PQ8VPcnYZx+6b+nJwJJoJ46kI
EEfNh3UKvB/vM0qtxS690iAdgmQIhTl+qfXq4IxWB6b+3NeQxgR6KLU4P7v88/tvJTpxIKkg
9xj89ruzeThyRFd2DSe3vfdnq9+g4qJSHRXyTft6W3Lkp7UWTM4kMqOcc4VSRdufVKBQNXjG
IcnhAgMBAAGjggKcMIICmDAOBgNVHQ8BAf8EBAMCBPAwgYQGCCsGAQUFBwEBBHgwdjAwBggr
BgEFBQcwAYYkaHR0cDovL2NvbW1lcmNpYWwub2NzcC5pZGVudHJ1c3QuY29tMEIGCCsGAQUF
BzAChjZodHRwOi8vdmFsaWRhdGlvbi5pZGVudHJ1c3QuY29tL2NlcnRzL3RydXN0aWRjYWEx
My5wN2MwHwYDVR0jBBgwFoAULbfeG1l+KpguzeHUG+PFEBJe6RQwCQYDVR0TBAIwADCCASsG
A1UdIASCASIwggEeMIIBGgYLYIZIAYb5LwAGAgEwggEJMEoGCCsGAQUFBwIBFj5odHRwczov
L3NlY3VyZS5pZGVudHJ1c3QuY29tL2NlcnRpZmljYXRlcy9wb2xpY3kvdHMvaW5kZXguaHRt
bDCBugYIKwYBBQUHAgIwga0MgapUaGlzIFRydXN0SUQgQ2VydGlmaWNhdGUgaGFzIGJlZW4g
aXNzdWVkIGluIGFjY29yZGFuY2Ugd2l0aCBJZGVuVHJ1c3QncyBUcnVzdElEIENlcnRpZmlj
YXRlIFBvbGljeSBmb3VuZCBhdCBodHRwczovL3NlY3VyZS5pZGVudHJ1c3QuY29tL2NlcnRp
ZmljYXRlcy9wb2xpY3kvdHMvaW5kZXguaHRtbDBFBgNVHR8EPjA8MDqgOKA2hjRodHRwOi8v
dmFsaWRhdGlvbi5pZGVudHJ1c3QuY29tL2NybC90cnVzdGlkY2FhMTMuY3JsMB8GA1UdEQQY
MBaBFGphbHRtYW5AYXVyaXN0b3IuY29tMB0GA1UdDgQWBBQB+nzqgljLocLTsiUn2yWqEc2s
gjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwDQYJKoZIhvcNAQELBQADggEBAJwV
eycprp8Ox1npiTyfwc5QaVaqtoe8Dcg2JXZc0h4DmYGW2rRLHp8YL43snEV93rPJVk6B2v4c
WLeQfaMrnyNeEuvHx/2CT44cdLtaEk5zyqo3GYJYlLcRVz6EcSGHv1qPXgDT0xB/25etwGYq
utYF4Chkxu4KzIpq90eDMw5ajkexw+8ARQz4N5+d6NRbmMCovd7wTGi8th/BZvz8hgKUiUJo
Qle4wDxrdXdnIhCP7g87InXKefWgZBF4VX21t2+hkc04qrhIJlHrocPG9mRSnnk2WpsY0MXt
a8ivbVKtfpY7uSNDZSKTDi1izEFH5oeQdYRkgIGb319a7FjslV8wggaXMIIEf6ADAgECAhBA
AXA7OrqBjMk8rp4OuNQSMA0GCSqGSIb3DQEBCwUAMEoxCzAJBgNVBAYTAlVTMRIwEAYDVQQK
EwlJZGVuVHJ1c3QxJzAlBgNVBAMTHklkZW5UcnVzdCBDb21tZXJjaWFsIFJvb3QgQ0EgMTAe
Fw0yMDAyMTIyMTA3NDlaFw0zMDAyMTIyMTA3NDlaMDoxCzAJBgNVBAYTAlVTMRIwEAYDVQQK
EwlJZGVuVHJ1c3QxFzAVBgNVBAMTDlRydXN0SUQgQ0EgQTEzMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAu6sUO01SDD99PM+QdZkNxKxJNt0NgQE+Zt6ixaNP0JKSjTd+SG5L
wqxBWjnOgI/3dlwgtSNeN77AgSs+rA4bK4GJ75cUZZANUXRKw/et8pf9Qn6iqgB63OdHxBN/
15KbM3HR+PyiHXQoUVIevCKW8nnlWnnZabT1FejOhRRKVUg5HACGOTfnCOONrlxlg+m1Vjgn
o1uNqNuLM/jkD1z6phNZ/G9IfZGI0ppHX5AA/bViWceX248VmefNhSR14ADZJtlAAWOi2un0
3bqrBPHA9nDyXxI8rgWLfUP5rDy8jx2hEItg95+ORF5wfkGUq787HBjspE86CcaduLka/Bk2
VwIDAQABo4IChzCCAoMwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwgYkG
CCsGAQUFBwEBBH0wezAwBggrBgEFBQcwAYYkaHR0cDovL2NvbW1lcmNpYWwub2NzcC5pZGVu
dHJ1c3QuY29tMEcGCCsGAQUFBzAChjtodHRwOi8vdmFsaWRhdGlvbi5pZGVudHJ1c3QuY29t
L3Jvb3RzL2NvbW1lcmNpYWxyb290Y2ExLnA3YzAfBgNVHSMEGDAWgBTtRBnA0/AGi+6ke75C
5yZUyI42djCCASQGA1UdIASCARswggEXMIIBEwYEVR0gADCCAQkwSgYIKwYBBQUHAgEWPmh0
dHBzOi8vc2VjdXJlLmlkZW50cnVzdC5jb20vY2VydGlmaWNhdGVzL3BvbGljeS90cy9pbmRl
eC5odG1sMIG6BggrBgEFBQcCAjCBrQyBqlRoaXMgVHJ1c3RJRCBDZXJ0aWZpY2F0ZSBoYXMg
YmVlbiBpc3N1ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIElkZW5UcnVzdCdzIFRydXN0SUQgQ2Vy
dGlmaWNhdGUgUG9saWN5IGZvdW5kIGF0IGh0dHBzOi8vc2VjdXJlLmlkZW50cnVzdC5jb20v
Y2VydGlmaWNhdGVzL3BvbGljeS90cy9pbmRleC5odG1sMEoGA1UdHwRDMEEwP6A9oDuGOWh0
dHA6Ly92YWxpZGF0aW9uLmlkZW50cnVzdC5jb20vY3JsL2NvbW1lcmNpYWxyb290Y2ExLmNy
bDAdBgNVHQ4EFgQULbfeG1l+KpguzeHUG+PFEBJe6RQwHQYDVR0lBBYwFAYIKwYBBQUHAwIG
CCsGAQUFBwMEMA0GCSqGSIb3DQEBCwUAA4ICAQB/7BKcygLX6Nl4a03cDHt7TLdPxCzFvDF2
bkVYCFTRX47UfeomF1gBPFDee3H/IPlLRmuTPoNt0qjdpfQzmDWN95jUXLdLPRToNxyaoB5s
0hOhcV6H08u3FHACBif55i0DTDzVSaBv0AZ9h1XeuGx4Fih1Vm3Xxz24GBqqVudvPRLyMJ7u
6hvBqTIKJ53uCs3dyQLZT9DXnp+kJv8y7ZSAY+QVrI/dysT8avtn8d7k7azNBkfnbRq+0e88
QoBnel6u+fpwbd5NLRHywXeH+phbzULCa+bLPRMqJaW2lbhvSWrMHRDy3/d8HvgnLCBFK2s4
Spns4YCN4xVcbqlGWzgolHCKUH39vpcsDo1ymZFrJ8QR6ihIn8FmJ5oKwAnnd/G6ADXFC9bu
db9+532phSAXOZrrecIQn+vtP366PC+aClAPsIIDJDsotS5z4X2JUFsNIuEgXGqhiKE7SuZb
rFG9sdcLprSlJN7TsRDc0W2b9nqwD+rj/5MN0C+eKwha+8ydv0+qzTyxPP90KRgaegGowC4d
UsZyTk2n4Z3MuAHX5nAZL/Vh/SyDj/ajorV44yqZBzQ3ChKhXbfUSwe2xMmygA2Z5DRwMRJn
p/BscizYdNk2WXJMTnH+wVLN8sLEwEtQR4eTLoFmQvrK2AMBS9kW5sBkMzINt/ZbbcZ3F+eA
MDGCBAEwggP9AgEBME4wOjELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUlkZW5UcnVzdDEXMBUG
A1UEAxMOVHJ1c3RJRCBDQSBBMTMCEEABgmmaL+s+f8XR8nIOXMwwDQYJYIZIAWUDBAIBBQCg
ggKEMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI1MDUzMDAx
MDM0OVowLwYJKoZIhvcNAQkEMSIEIKrUNlVdvUdv5C9ngcXSfRv6Y9h/Fyszq8nYw9cJzCy7
MF0GCSsGAQQBgjcQBDFQME4wOjELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUlkZW5UcnVzdDEX
MBUGA1UEAxMOVHJ1c3RJRCBDQSBBMTMCEEABgmmaL+s+f8XR8nIOXMwwXwYLKoZIhvcNAQkQ
AgsxUKBOMDoxCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlJZGVuVHJ1c3QxFzAVBgNVBAMTDlRy
dXN0SUQgQ0EgQTEzAhBAAYJpmi/rPn/F0fJyDlzMMIIBVwYJKoZIhvcNAQkPMYIBSDCCAUQw
CwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzANBggqhkiG9w0DAgIBBTAN
BggqhkiG9w0DAgIBBTAHBgUrDgMCBzANBggqhkiG9w0DAgIBBTAHBgUrDgMCGjALBglghkgB
ZQMEAgEwCwYJYIZIAWUDBAICMAsGCWCGSAFlAwQCAzALBglghkgBZQMEAgQwCwYJYIZIAWUD
BAIHMAsGCWCGSAFlAwQCCDALBglghkgBZQMEAgkwCwYJYIZIAWUDBAIKMAsGCSqGSIb3DQEB
ATALBgkrgQUQhkg/AAIwCAYGK4EEAQsAMAgGBiuBBAELATAIBgYrgQQBCwIwCAYGK4EEAQsD
MAsGCSuBBRCGSD8AAzAIBgYrgQQBDgAwCAYGK4EEAQ4BMAgGBiuBBAEOAjAIBgYrgQQBDgMw
DQYJKoZIhvcNAQEBBQAEggEAmxkm+fxzKUF3zTK75cdbiL952aD+gb7QQWK1ePH931I+yWP/
B4NyEdf03sxGtYIyyhS75khR0Pk3ZVqTbNQtheABg13b2/81GA/e9Thj0LUq8/4PTqF17SIj
oul+Ixg1oltBn1yiNf6u8jrNzj8OZMsxVrxHFkE1kdVV+s86XMTEFXX5khTr9MZsAz64E7TP
YvkyEeGqOzDY83zMVIylX4ZR3vaSKcXOhwWak5GQpBBWx74GFK8+hi57aAAL3WOkbN+FFAcV
hAHDUdGZ6R6Pd6oqLyg4qEdRS6WxYKPMMV6kolYgrnlxgHtFObhCnbqcoCAiLnsqwkMjAYO9
ou0rAAAAAAAAAA==
--------------ms030802020204020509020605--