Re: [mod-security-users] mod_security enhancement idea
Brought to you by:
victorhora,
zimmerletw
|
From: Ryan B. <rcb...@gm...> - 2006-04-11 16:16:52
|
VGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgd2hpdGVsaXN0IGZpbHRlcnMgdGhhdCB5b3UgYXJlIGNy ZWF0aW5nIGFyZSBmb2N1c2luZwppbiB0aGUgcmVxdWVzdGVkIGZpbGVuYW1lIGFuZCB0aGF0IGlz IGFsbC4gIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhlIHZhc3QKbWFqb3JpdHkgb2Ygd2ViIGF0dGFj a3Mgb2NjdXIgaW4gdGhlIFFVRVJZX1NUUklORyBsb2NhdGlvbiBvZiB0aGUgcmVxdWVzdAphbmQg bm90IHRoZSBmaWxlbmFtZSBpdHNlbGYuCgpIZXJlIGlzIGFuIGV4YW1wbGUgKGFsYmVpdCBvbGQp IC0KVGhlIGlzIGEgbGluayB0byB3ZWIgbG9nIGRhdGEgb2YgYSByZWFsIHdlYiBkZWZhY2VtZW50 IHdoZXJlIHRoZSBhdHRhY2tlcgpleHBsb2l0ZWQgdGVoIFVsdGltYXRlIEJ1bGxldGluIEJvYXJk IENHSSBzY3JpcHQgLQpodHRwOi8vd3d3LmluZm9yZWFkaW5nLmNvbS9saWJyYXJ5L2luZm9hcnRp Y2xlcy9JbmZvUmVhZGluZy9sb2dzL2RlZmFjZS8wMS50eHQKCkFib3V0IDMvNCBvZiB0aGUgd2F5 IGRvd24gaW4gdGhlIGxvZ3MsIHlvdSB3aWxsIHNlZSB0aGlzIHJlcXVlc3QgLQoKMjEzLjEzMi42 Ny4xODkgLSAtIFsxNS9EZWMvMjAwMDoxODowMzoxNyAtMDYwMF0gIkdFVAovYm9hcmQvL3Bvc3Rp bmdzLmNnaT9hY3Rpb249cmVwbHkmZm9ydW09Z2Vla291dCZudW1iZXI9MSZ0b3BpYz0wMDAwNjMq Ci58bHlueCUyMC1zb3VyY2UlMjBodHRwOi8vd3d3LmdhbGFrdGljYS5vcmcvcGFnZTEuY2dpJTIw PiUyMHViYnRlc3QuY2dpfG1haWwlMjBtaXN0X2VyQApyYW1ibGVyLnJ1fCogSFRUUC8xLjEiIDIw MCA1NDY1ICItIiAiTW96aWxsYS80LjAgKGNvbXBhdGlibGU7IE1TSUUgNS4wMTsKV2luZG93cyBO VCA1LjApIgoKQXMgeW91IGNhbiBzZWUsIHRoZSBhdHRhY2tlciB1c2VkIHRoZSAifCIgY2hhcmFj dGVyIGluIHRoZSAidG9waWMiIGFyZ3VlbWVudAp0byBydW4gYW4gY29tbWFuZCBpbmplY3Rpb24g YXR0YWNrLgoKTm93LCBsZXQncyBpbWFnaW5lIHRoYXQgeW91IHdlcmUgdXNpbmcgdGhpcyBzYW1l IENHSSBzY3JpcHQgYW5kIHdhbnRlZCB0bwppbXBsZW1lbnQgc29tZSBtb2Rfc2VjdXJpdHkgcnVs ZXMgdG8gcHJldmVudCB0aGlzIGF0dGFjay4gIFRoZSBmb2xsb3dpbmcKcnVsZSBhbG9uZSB3b3Vs ZCBub3QgcHJldmVudCB0aGUgYXR0YWNrIC0KClNlY0ZpbHRlclNlbGVjdGl2ZSBSRVFVRVNUX1VS SSAiXi9ib2FyZC9wb3N0aW5ncy5jZ2kkIiBhbGxvdwoKVGhpcyB3b3VsZCBub3QgcHJldmVudCB0 aGlzIGF0dGFja3Mgc2luY2UgdGhlIHNjcmlwdCBpcyBhbGxvd2VkLCBob3dldmVyIGl0CmlzIHRo ZSBhcmd1ZW1lbnQgZGF0YSB0aGF0IGlzIHRoZSBwcm9ibGVtLiAgSWYgbW9kX3NlY3VyaXR5IHdl cmUgdG8gcHJvY2Vzcwp0aGUgcmVxdWVzdCBhYm92ZSwgaXQgd291bGQgaGl0IHRoaXMgcnVsZSBh bmQgdGhlbiBleHBsaWNpdGx5IGFsbG93IGl0LCB0aHVzCm5vdCBwcm9jZXNzaW5nIHRoZSBmaW5h bCBTZWNGaWx0ZXIgZGVueSBhbGwgcnVsZS4KClRoaXMgaXMgd2h5IHlvdSBuZWVkIHRvIGluY2x1 ZGUgc29tZSBvdGhlciB3aGl0ZWxpc3RpbmcvYWxsb3dlZCBmaWx0ZXJzIGZvcgphbGwgc2NyaXB0 cyB0aGF0IHdpbGwgcHJvY2VzcyBkeW5hbWljIGRhdGEgZnJvbSB0aGUgY2xpZW50LiAgWW91IHNo b3VsZApjcmVhdGUgYW4gaW52ZXJ0ZWQgZmlsdGVyIHRoYXQgd2lsbCBvbmx5IGFsbG93IGFjY2Vw dGFibGUgY2hhcmFjdGVycyBpbiB5b3VyClFVRVJZX1NUUklORyBzdWNoIGFzOyBfLCAtLCA9LCAm LCBldGMuLi4KCkRvZXMgdGhpcyBtYWtlIG1vcmUgc2Vuc2U/CgotLQpSeWFuIEMuIEJhcm5ldHQK V2ViIEFwcGxpY2F0aW9uIFNlY3VyaXR5IENvbnNvcnRpdW0gKFdBU0MpIE1lbWJlcgpDSVMgQXBh Y2hlIEJlbmNobWFyayBQcm9qZWN0IExlYWQKU0FOUyBJbnN0cnVjdG9yOiBTZWN1cmluZyBBcGFj aGUKR0NJQSwgR0NGQSwgR0NJSCwgR1NOQSwgR0NVWCwgR1NFQwpBdXRob3I6IFByZXZlbnRpbmcg V2ViIEF0dGFja3Mgd2l0aCBBcGFjaGUKCk9uIDQvMTEvMDYsIGpvZSBiYXJiaXNoIDxqb2ViXzcy MkB5YWhvby5jb20+IHdyb3RlOgo+Cj4gIFJ5YW4KPiBUaGFua3MgZm9yIHRoZSBoZWxwLgo+Cj4g QnV0IEkgZG9uJ3QgdW5kZXJzdGFuZCBzb21lIHRoaW5nIHlvdSBzYWlkLgo+Cj4gWW91IHNhaWQg dGhhdCAgIFNlY0ZpbHRlciAiLiIgIHdpbGwgZGVueSBldmVyeXRoaW5nICB0aGVuIHlvdSBzYXkg ICJXaGF0Cj4gaGFwcGVucyBpZiB0aGVyZSBpcyBhIG5ldyBQSFAgZXhwbG9pdCBmb3IgeW91ciBt bHNfdmVyaWZ5ZW1haWwwLnBocCBzY3JpcHQ/Cj4gVGhlIHJ1bGVzIGFib3ZlIHdpbGwgbm90IHBy b3RlY3QgYWdhaW5zdCB0aGlzLiIKPgo+IFRoZSB3aG9sZSBpZGVhIG9mIHRoZSBydWxlcyBpcyB0 byBjb250cm9sIHdoYXQgaXMgYWxsb3dlZCB0byBwYXNzLgo+Cj4gVGhlIFNlY0ZpbHRlciAiLiIg ICBpcyBzdXBwb3NlIHRvIGRlbnkgZXZlcnl0aGluZy4gIEV2ZXJ5dGhpbmcgbWVhbnMKPiBhbnl0 aGluZyB3aGljaCBpcyBub3Qgb25lIG9mIHRoZSBjb2RlZCAnYWNjZXB0JyBydWxlcywgaW5jbHVk aW5nIGFsbCBrbm93bgo+IGFuZCB1bi1rbm93biBleHBsb2l0cy4KPgo+IElmIFNlY0ZpbHRlciAi LiIgICBpcyBub3QgdGhlIGNvcnJlY3QgcnVsZSB0byBkZW55IGV2ZXJ5dGhpbmcgdGhlbiB3aGF0 Cj4gcnVsZSB3aWxsPwo+Cj4KPgo+Cj4KPiAqUnlhbiBCYXJuZXR0IDxyY2Jhcm5ldHRAZ21haWwu Y29tPiogd3JvdGU6Cj4KPiBKb2UsCj4gQSBmZXcgcXVpY2sgY29tbWVudHMgLQo+Cj4gMSkgWW91 IHJlYWxseSBkb24ndCBuZWVkIGEgbmV3IGRpcmVjdGl2ZS9vcHRpb24gdG8gZ2V0IHdoYXQgeW91 IGFyZQo+IGxvb2tpbmcgZm9yLiAgS2VlcGluZyB3aXRoIHlvdXIgZmlyZXdhbGwgY29uY2VwdCwg aW4gb3JkZXIgdG8gZ2V0IGFuCj4gaW5jbHVzaXZlIHJ1bGVzZXQsIHlvdSBmaXJzdCBuZWVkIHRv IGltcGxlbWVudCBhIGNhdGNoLWFsbCBkZW55IHJ1bGUgdGhhdAo+IHdvdWxkIGJsb2NrIGFsbCBy ZXF1ZXN0cy4gIEluIG1vZF9zZWN1cml0eSBpdCB3b3VsZCBiZSB0aGlzIC0gU2VjRmlsdGVyCj4g Ii4iLiAgVGhpcyB3b3VsZCBtYXRjaCBhbnkgcmVxdWVzdCBhbmQgdGhlbiB0YWtlIHRoZSBhY3Rp b24gdGhhdCB5b3UKPiBzcGVjaWZpZWQgaW4gdGhlIFNlY0ZpbHRlckRlZmF1bHRBY3Rpb24gcnVs ZS4gIFRoZSBuZXh0IHN0ZXAgaXMgdG8gY3JlYXRlIGEKPiB3aGl0ZWxpc3Qgb2YgZmlsdGVycyB0 aGF0IHdpbGwgbWF0Y2ggYWxsb3dlZCwgYWNjZXB0YWJsZSByZXF1ZXN0cy4gIFRoaXMgaXMKPiB3 aGF0IHlvdSBhcmUgYXR0ZW1wdGluZyB0byBkbyBpbiB5b3VyIHBvc3Qgd2l0aCB0aGUgbW9kX3Nl Y3VyaXR5IGludmVydGVkCj4gZmlsdGVycy4KPgo+IDIpIFlvdXIgZXhhbXBsZXMgb2YgaW52ZXJ0 ZWQgZmlsdGVycyB3aWxsIG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIHRoZQo+IGNoYWluIGFjdGlv bi4gIFRoZSBjaGFpbiBmZWF0dXJlIHdpbGwgY3JlYXRlIGEgbGFyZ2VyLCBjb21wbGV4IGNoZWNr IG9uIHRoZQo+IHJlcXVlc3QuICBJbiB5b3VyIGV4YW1wbGVzLCB5b3UgdHJpZWQgdG8gY2hhaW4g YWxsIG9mIHRoZSBhY2NlcHRhYmxlIFVSTHMKPiB0b2dldGhlci4gIFRoZSBwcm9ibGVtIGlzIHRo YXQgYWxsIG9mIHRob3NlIGZpbGVzIHdpbGwgbmV2ZXIgYmUgcmVxdWVzdGVkCj4gd2l0aGluIG9u ZSBzaWdsZSByZXF1ZXN0IHBhY2tldC4gIFRoZSBtb2Rfc2VjdXJpdHkgYWN0aW9uIHRoYXQgeW91 IHNob3VsZAo+IHVzZSBpcyAiYWxsb3ciIHRvIHRlbGwgbW9kX3NlY3VyaXR5IHRvIGFsbG93IHRo ZSByZXF1ZXN0IHRocm91Z2ggYW5kIHRoZQo+IGZpbmFsIGZpbHRlciBpcyB0aGUgY2F0Y2gtYWxs IGRlbnkuICBIZXJlIGlzIGFuIHVwZGF0ZWQgcnVsZXNldCBmb3IgeW91IC0KPgo+ICBTZWNGaWx0 ZXJTZWxlY3RpdmUgUkVRVUVTVF9VUkkgIl4vMDAuMDBfSGVhZGVyLmh0bSIgYWxsb3cKPiBTZWNG aWx0ZXJTZWxlY3RpdmUgUkVRVUVTVF9VUkkgIl4vMDAuMDBfSGVhZGVyLnBocCIgYWxsb3cKPiBT ZWNGaWx0ZXJTZWxlY3RpdmUgUkVRVUVTVF9VUkkgIl4vMDAuMDAtd2ViX3N0eWxlX3NoZWV0LmNz cyIgYWxsb3cKPiBTZWNGaWx0ZXJTZWxlY3RpdmUgUkVRVUVTVF9VUkkgIl4vYnV0dG9uLnBocCIg YWxsb3cKPiBTZWNGaWx0ZXJTZWxlY3RpdmUgUkVRVUVTVF9VUkkgIl4vaW5kZXguaHRtIiBhbGxv dwo+IFNlY0ZpbHRlclNlbGVjdGl2ZSBSRVFVRVNUX1VSSSAiXi9tbHNfYXVjdGlvbl9iaWRkaW5n X2luZm8uaHRtIiAgYWxsb3cKPiBTZWNGaWx0ZXJTZWxlY3RpdmUgUkVRVUVTVF9VUkkgIl4vbWxz X2JyZWFraW5fYXR0ZW1wdC5waHAiICAgYWxsb3cKPiBTZWNGaWx0ZXJTZWxlY3RpdmUgUkVRVUVT VF9VUkkgIl4vbWxzX2NvbnRhY3Rfc2FsZXNfZGVwdC5odG0iICBhbGxvdwo+IFNlY0ZpbHRlclNl bGVjdGl2ZSBSRVFVRVNUX1VSSSAiXi9tbHNfZnNib19mb3Jnb3RfbG9nb24ucGhwIiAgYWxsb3cK PiBTZWNGaWx0ZXJTZWxlY3RpdmUgUkVRVUVTVF9VUkkgIl4vbWxzX2ZzYm9fbGlzdGluZ19pbmZv Lmh0bSIgIGFsbG93Cj4gU2VjRmlsdGVyU2VsZWN0aXZlIFJFUVVFU1RfVVJJICJeL21sc19mc2Jv X2xvZ29uLnBocCIgIGFsbG93Cj4gU2VjRmlsdGVyU2VsZWN0aXZlIFJFUVVFU1RfVVJJICJeL21s c19mc2JvX21lbWJlcl91cGRhdGUucGhwIiAgYWxsb3cKPiBTZWNGaWx0ZXJTZWxlY3RpdmUgUkVR VUVTVF9VUkkgIl4vbWxzX2ZzYm9fbWVudS5waHAiICAgYWxsb3cKPiBTZWNGaWx0ZXJTZWxlY3Rp dmUgUkVRVUVTVF9VUkkgIl4vbWxzX2ZzYm9fc2lnbnVwLnBocCIgIGFsbG93Cj4gU2VjRmlsdGVy U2VsZWN0aXZlIFJFUVVFU1RfVVJJICJeL21sc19mc2JvX3Rlcm1pbmF0ZV9tZW1iZXIxLnBocCIg YWxsb3cKPiBTZWNGaWx0ZXJTZWxlY3RpdmUgUkVRVUVTVF9VUkkgIl4vbWxzX2ZzYm9fdGVybWlu YXRlX21lbWJlcjIucGhwIiBhbGxvdwo+IFNlY0ZpbHRlclNlbGVjdGl2ZSBSRVFVRVNUX1VSSSAi Xi9tbHNfaG9tZV9wYWdlLnBocCIgICBhbGxvdwo+IFNlY0ZpbHRlclNlbGVjdGl2ZSBSRVFVRVNU X1VSSSAiXi9tbHNfc3RkX2V4aXQucGhwIiAgIGFsbG93Cj4gU2VjRmlsdGVyU2VsZWN0aXZlIFJF UVVFU1RfVVJJICJeL21sc192ZXJpZnllbWFpbC5waHAiICAgYWxsb3cKPiBTZWNGaWx0ZXJTZWxl Y3RpdmUgUkVRVUVTVF9VUkkgIl4vbWxzX3ZlcmlmeWVtYWlsMC5waHAiIGFsbG93Cj4gU2VjRmls dGVyICIuIgo+Cj4gMykgRXZlbiB3aXRoIHRoZXNlIHJ1bGVzLCB0aGlzIHdpbGwgbm90IHByb3Zp ZGUgdG90YWwgcHJvdGVjdGlvbi4gIFdoYXQKPiBoYXBwZW5zIGlmIHRoZXJlIGlzIGEgbmV3IFBI UCBleHBsb2l0IGZvciB5b3VyIG1sc192ZXJpZnllbWFpbDAucGhwIHNjcmlwdD8KPiBUaGUgcnVs ZXMgYWJvdmUgd2lsbCBub3QgcHJvdGVjdCBhZ2FpbnN0IHRoaXMuICBJdCBpcyBmb3IgdGhpcyBy ZWFzb24gdGhhdAo+IHRoZSAiZXhjbHVzaXZlIiwgYmxhY2tsaXN0IHJ1bGVzIHNob3VsZCBiZSBs aXN0ZWQgQkVGT1JFIHRoZXNlIHdoaXRlbGlzdAo+IHJ1bGVzLiAgVGhlc2UgYXR0YWNrcyBzaWdu YXR1cmVzIHdpbGwgYmUgcHJvY2Vzc2VkIHByaW9yIHRvIHRoZXNlIHJ1bGVzIGFuZAo+IGNoZWNr IGZvciBjb21tb24gZXhwbG9pdCBpc3N1ZXMgKG1ldGEtY2hhcmFjdGhlcnMsIGRpcmVjdG9yeSB0 cmF2ZXJzYWwsCj4gY29tbWFuZCBleGVjdXRpb24sIGV0Yy4uLikuICBJZiB0aGVzZSBydWxlcyBh cmUgc3BlY2lmaWVkIEFGVEVSIHRoZSBydWxlcwo+IGFib3ZlLCB0aGV5IHdpbGwgYmUgc2tpcHBl ZCB3aXRoIHRoZSAiYWxsb3ciIGRpcmVjdGl2ZS4KPgo+IEhvcGUgdGhpcyBoZWxwcy4KPgo+IC0t Cj4gUnlhbiBDLiBCYXJuZXR0Cj4gV2ViIEFwcGxpY2F0aW9uIFNlY3VyaXR5IENvbnNvcnRpdW0g KFdBU0MpIE1lbWJlcgo+IENJUyBBcGFjaGUgQmVuY2htYXJrIFByb2plY3QgTGVhZAo+IFNBTlMg SW5zdHJ1Y3RvcjogU2VjdXJpbmcgQXBhY2hlCj4gR0NJQSwgR0NGQSwgR0NJSCwgR1NOQSwgR0NV WCwgR1NFQwo+IEF1dGhvcjogUHJldmVudGluZyBXZWIgQXR0YWNrcyB3aXRoIEFwYWNoZQo+Cj4K PiBPbiA0LzEwLzA2LCBqb2UgYmFyYmlzaCA8am9lYl83MjJAeWFob28uY29tPiB3cm90ZToKPiA+ Cj4gPiAgbW9kX3NlY3VyaXR5IGVuaGFuY2VtZW50IGlkZWEKPiA+Cj4gPgo+ID4gSW4gc29mdHdh cmUgcGFja2V0IGZpcmV3YWxscyB0aGVyZSBhcmUgMiBkaWZmZXJlbnQgdHlwZXMgb2YgZmlsdGVy IHJ1bGUKPiA+IHNldHMuCj4gPgo+ID4gVGhlIGV4Y2x1c2l2ZSBmaXJld2FsbCBhbmQgdGhlIGlu Y2x1c2l2ZSBmaXJld2FsbC4gVGhpcyBpcyB3ZWxsCj4gPiBkb2N1bWVudGVkIGluIHRoZSBGcmVl QlNEIG1hbnVhbCBmaXJld2FsbCBzZWN0aW9uLgo+ID4KPiA+ICBodHRwOi8vd3d3LmZyZWVic2Qu b3JnL2RvYy9lbl9VUy5JU084ODU5LTEvYm9va3MvaGFuZGJvb2svZmlyZXdhbGxzLmh0bWwKPiA+ Cj4gPiBBbiBleGNsdXNpdmUgZmlyZXdhbGwgYWxsb3dzIGFsbCBwYWNrZXRzIHRocm91Z2ggZXhj ZXB0IGZvciB0aG9zZQo+ID4gbWF0Y2hpbmcgYSBzZXQgb2YgcnVsZXMgdGhhdCBibG9jayBjZXJ0 YWluIHBhY2tldHMsIChJRSwgZGVmYXVsdCBwYXNzIGFsbCkuCj4gPgo+ID4KPiA+IEFuIGluY2x1 c2l2ZSBmaXJld2FsbCBkb2VzIHRoZSByZXZlcnNlLiBJdCBvbmx5IGFsbG93cyBwYWNrZXRzIG1h dGNoaW5nCj4gPiB0aGUgcnVsZXMgdGhyb3VnaCBhbmQgYmxvY2tzIGV2ZXJ5dGhpbmcgZWxzZSwg KElFLCBkZWZhdWx0IGRlbnkgYWxsKS4KPiA+IEluY2x1c2l2ZSBmaXJld2FsbHMgYXJlIG11Y2gs IG11Y2ggc2VjdXJlciB0aGFuIGV4Y2x1c2l2ZSBmaXJld2FsbHMgYW5kCj4gPiBzaW1wbGVyIHRv IGNvZGUuCj4gPgo+ID4gQXBwbHlpbmcgdGhhdCBjb25jZXB0IHRvIHRoZSBtb2Rfc2VjdXJpdHkg ZmlsdGVyIHJ1bGVzIEkgc2VlIGV4cGxhaW5lZAo+ID4gaW4gdGhlIG1hbnVhbCBhbmQgdGhlIGV4 YW1wbGVzIHByb3ZpZGVkIGF0IHRoZSBtb2Rfc2VjdXJpdHkgaG9tZSBwYWdlIGl0Cj4gPiBiZWNh bWUgdmVyeSBvYnZpb3VzIHRoYXQgICBtb2Rfc2VjdXJpdHkgZGVmYXVsdHMgdG8gYW4gZXhjbHVz aXZlIHR5cGUgb2YKPiA+IGZpcmV3YWxsLiBSdWxlcyBhcmUgdXNlZCB0byBjb2RlIHRoZSBwYXJ0 aWN1bGFyIHNpZ25hdHVyZXMgb2YgbWFsaWNlCj4gPiBhdHRlbXB0cyB0byBjaXJjdW12ZW50IHRo ZSBub3JtYWwgc3RhbmRhcmQgaHR0cCBwcm9jZXNzZXMgb2YgYSB3ZWIgc2VydmVyLgo+ID4KPiA+ IFRoaXMgaXMgZmluZSBpZiB5b3UgYXJlIGFuIGludGVybmV0IHNlY3VyaXR5IGV4cGVydCBhbmQg d2FudCB0byBhbmFseXplCj4gPiBhbmQgY2FwdHVyZSB0aGUgZGlmZmVyZW50IG1ldGhvZHMgdXNl ZCBieSBhdHRhY2tlcnMgb2Ygd2ViIGFwcGxpY2F0aW9uLgo+ID4gTW9kX3NlY3VyaXR5IGlzIHRo ZSBwZXJmZWN0bHkgZGVzaWduZWQgdG9vbCBmb3IgdGhpcyB0YXNrLgo+ID4KPiA+IEJ1dCBmb3Ig dGhlIHVzZXIgd2hvIGlzIGxvb2tpbmcgZm9yIGEgc2ltcGxlIHVzZXIgZnJpZW5kbHkgd2ViIHNl cnZlcgo+ID4gZmlyZXdhbGwgdG8gYmxvY2sgYWxsIHRoZSBjdXJyZW50bHkga25vdyAmIGZ1dHVy ZSBtYWxpY2UgYXR0YWNrIG1ldGhvZHMKPiA+IHdoaWxlIGFsbG93aW5nIGhpcyB3ZWIgYXBwbGlj YXRpb24gdG8gcGFzcyB1bm1vbGVzdGVkIGRvZXMgbm90IHJlYWRpbHkgZmluZAo+ID4gdGhpcyBh dmFpbGFibGUgaW4gbW9kX3NlY3VyaXR5Lgo+ID4KPiA+IE5vdyBkb24ndCB0YWtlIG1lIHdyb25n LCBpdCBpcyBwb3NzaWJsZSB0byBjb25maWd1cmUgYW4gbW9kX3NlY3VyaXR5Cj4gPiBydWxlIHNl dCB0aGF0IGFkZHJlc3MgdGhlIHRlY2huaWNhbCBwYXJ0IG9mIHRoZSBzdGF0ZWQgZ29hbCwgYnV0 IHRoZSBzaW1wbGUKPiA+ICYgdXNlciBmcmllbmRseSBwYXJ0IGlzIGJ5IG5vIG1lYW5zIG1ldCBh cyBzaG93biBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUuCj4gPiBBbGwgdGhlIHNjcmlwdHMgdXNl ZCBpbiB0aGUgd2ViIGFwcGxpY2F0aW9uIGFyZSBjb2RlZCBieSBpbmRpdmlkdWFsIHJ1bGVzLgo+ ID4KPiA+Cj4gPiBzZWNmaWx0ZXJlbmdpbmUgb24KPiA+IHNlY2ZpbHRlcmNoZWNrdXJsZW5jb2Rp bmcgb24KPiA+IHNlY2ZpbHRlcmNoZWNrdW5pY29kZWVuY29kaW5nIG9mZgo+ID4gc2VjZmlsdGVy Zm9yY2VieXRlcmFuZ2UgMCAyNTUKPiA+IHNlY2ZpbHRlcnNjYW5wb3N0IG9uCj4gPiBTZWNGaWx0 ZXJEZWZhdWx0QWN0aW9uIGRlbnksbG9nLHN0YXR1czo0MDQKPiA+Cj4gPiBTZWNGaWx0ZXJTZWxl Y3RpdmUgUkVRVUVTVF9VUkkgIiFeLzAwLjAwX0hlYWRlci5odG0iCj4gPiBjaGFpbgo+ID4gU2Vj RmlsdGVyU2VsZWN0aXZlIFJFUVVFU1RfVVJJICIhXi8wMC4wMF9IZWFkZXIucGhwIgo+ID4gY2hh aW4KPiA+IFNlY0ZpbHRlclNlbGVjdGl2ZSBSRVFVRVNUX1VSSSAiIV4vMDAuMDAtd2ViX3N0eWxl X3NoZWV0LmNzcyIKPiA+IGNoYWluCj4gPiBTZWNGaWx0ZXJTZWxlY3RpdmUgUkVRVUVTVF9VUkkg IiFeL2J1dHRvbi5waHAiICAgICAgICAgICAgICAgICAgICAgICBjaGFpbgo+ID4KPiA+IFNlY0Zp bHRlclNlbGVjdGl2ZSBSRVFVRVNUX1VSSSAiIV4vaW5kZXguaHRtIiAgICAgICAgICAgICAgICAg ICAgICAgIGNoYWluCj4gPgo+ID4gU2VjRmlsdGVyU2VsZWN0aXZlIFJFUVVFU1RfVVJJICIhXi9t bHNfYXVjdGlvbl9iaWRkaW5nX2luZm8uaHRtIiAgICAgY2hhaW4KPiA+Cj4gPiBTZWNGaWx0ZXJT ZWxlY3RpdmUgUkVRVUVTVF9VUkkgIiFeL21sc19icmVha2luX2F0dGVtcHQucGhwIiAgICAgICAg ICBjaGFpbgo+ID4KPiA+IFNlY0ZpbHRlclNlbGVjdGl2ZSBSRVFVRVNUX1VSSSAiIV4vbWxzX2Nv bnRhY3Rfc2FsZXNfZGVwdC5odG0iICAgICAgIGNoYWluCj4gPgo+ID4gU2VjRmlsdGVyU2VsZWN0 aXZlIFJFUVVFU1RfVVJJICIhXi9tbHNfZnNib19mb3Jnb3RfbG9nb24ucGhwIiAgICAgICAgY2hh aW4KPiA+Cj4gPiBTZWNGaWx0ZXJTZWxlY3RpdmUgUkVRVUVTVF9VUkkgIiFeL21sc19mc2JvX2xp c3RpbmdfaW5mby5odG0iICAgICAgICBjaGFpbgo+ID4KPiA+IFNlY0ZpbHRlclNlbGVjdGl2ZSBS RVFVRVNUX1VSSSAiIV4vbWxzX2ZzYm9fbG9nb24ucGhwIiAgICAgICAgICAgICAgIGNoYWluCj4g Pgo+ID4gU2VjRmlsdGVyU2VsZWN0aXZlIFJFUVVFU1RfVVJJICIhXi9tbHNfZnNib19tZW1iZXJf dXBkYXRlLnBocCIgICAgICAgY2hhaW4KPiA+Cj4gPiBTZWNGaWx0ZXJTZWxlY3RpdmUgUkVRVUVT VF9VUkkgIiFeL21sc19mc2JvX21lbnUucGhwIiAgICAgICAgICAgICAgICBjaGFpbgo+ID4KPiA+ IFNlY0ZpbHRlclNlbGVjdGl2ZSBSRVFVRVNUX1VSSSAiIV4vbWxzX2ZzYm9fc2lnbnVwLnBocCIg ICAgICAgICAgICAgIGNoYWluCj4gPgo+ID4gU2VjRmlsdGVyU2VsZWN0aXZlIFJFUVVFU1RfVVJJ ICIhXi9tbHNfZnNib190ZXJtaW5hdGVfbWVtYmVyMS5waHAiICAgY2hhaW4KPiA+Cj4gPiBTZWNG aWx0ZXJTZWxlY3RpdmUgUkVRVUVTVF9VUkkgIiFeL21sc19mc2JvX3Rlcm1pbmF0ZV9tZW1iZXIy LnBocCIgICBjaGFpbgo+ID4KPiA+IFNlY0ZpbHRlclNlbGVjdGl2ZSBSRVFVRVNUX1VSSSAiIV4v bWxzX2hvbWVfcGFnZS5waHAiCj4gPiBjaGFpbgo+ID4gU2VjRmlsdGVyU2VsZWN0aXZlIFJFUVVF U1RfVVJJICIhXi9tbHNfc3RkX2V4aXQucGhwIiAgICAgICAgICAgICAgICAgY2hhaW4KPiA+Cj4g PiBTZWNGaWx0ZXJTZWxlY3RpdmUgUkVRVUVTVF9VUkkgIiFeL21sc192ZXJpZnllbWFpbC5waHAi ICAgICAgICAgICAgICBjaGFpbgo+ID4KPiA+IFNlY0ZpbHRlclNlbGVjdGl2ZSBSRVFVRVNUX1VS SSAiIV4vbWxzX3ZlcmlmeWVtYWlsMC5waHAiCj4gPgo+ID4KPiA+IEluIHNvbWUgcHJvZ3JhbW1p bmcgY2lyY2xlcyB0aGlzIHdvdWxkIGJlIGNhbGxlZCBhIHJldmVyc2UgcG9saXNoIGNvZGluZwo+ ID4gdGVjaG5pcXVlLgo+ID4KPiA+IFRoaXMgaXMgbm90IHNpbXBsZSBjb2RpbmcgbG9naWMgYW5k IHRoaXMgdGVjaG5pcXVlIGlzIG5vdCBkb2N1bWVudGVkIG9yCj4gPiBldmVuIGhpbnRlZCBhdCBp biB0aGUgbWFudWFsLiBCdXQgaXQgZG9lcyBmdWxmaWxsIHRoZSBzdGF0ZWQgdGVjaG5pY2FsIGdv YWwKPiA+IHJlcXVpcmVtZW50IG9mIGJsb2NraW5nIGFsbCBjdXJyZW50bHkga25vdyBhbmQgdW5r bm93biBtYWxpY2UgYXR0YWNrIG1ldGhvZHMKPiA+IHdoaWxlIGFsbG93aW5nIHRoZSB3ZWIgYXBw bGljYXRpb24gdG8gcGFzcyB1bm1vbGVzdGVkLiBBcyBhIHNpZGUgYmVuZWZpdCBub3QKPiA+IG9u bHkgZG9lcyB0aGUgYWJvdmUgZXhhbXBsZSBwYXNzIHRoZSB1c2VycyBub3JtYWwgd2ViIHRyYWZm aWMgYnV0IGl0IGFsc28KPiA+IGFsbG93cyBzZWFyY2ggZW5naW5lIHJvYm90IHRyYWZmaWMgdG8g cGFzcyBhcyB0aGV5IGludmVudG9yeSB0aGUgd2Vic2l0ZSBmb3IKPiA+IGluZGV4aW5nLgo+ID4K PiA+IFNlY3VyaXR5IGNhbiBiZSB0aWdodGVuZWQgZnVydGhlciBieSBjb2RpbmcgYWxsIHRoZSBz Y3JpcHQgbmFtZXMgdXNpbmcKPiA+IHRoaXMgcnVsZSBmb3JtYXQKPiA+Cj4gPiBTZWNGaWx0ZXJT ZWxlY3RpdmUgU0NSSVBUX0ZJTEVOQU1FCj4gPiAiIV4vdXNyL2xvY2FsL3d3dy9kYXRhL21sc19S ZWFkX2ZvcmdvdF9sb2dvbl9lbWFpbC5waHAiICBjaGFpbgo+ID4KPiA+IFRoaXMgd291bGQgc3Rv cCBhbGwgc2VhcmNoIGVuZ2luZSB0cmFmZmljIGJlY2F1c2UgdGhleSBkbyBub3QgaW5jbHVkZQo+ ID4gdGhlIHBhdGggaW4gdGhlaXIgcmVxdWVzdHMuCj4gPgo+ID4KPiA+Cj4gPiBUaGUgdXNlZnVs bmVzcyBvZiBtb2Rfc2VjdXJpdHkgY2FuIGJlIGluY3JlYXNlZCB3aGlsZSBiZWNvbWluZyBtb3Jl IHVzZXIKPiA+IGZyaWVuZGx5IGJ5IG1ha2luZyBmZXcgdHdlYWtzIHRvIG1vZF9zZWN1cml0eSdz IHNvdXJjZSBjb2RlLgo+ID4KPiA+Cj4gPiBXaGF0IEkgcHVycG9zZSBpcyB0aGlzLAo+ID4KPiA+ IENoYW5nZSBzZWNmaWx0ZXJlbmdpbmUgb258b2ZmICAgIHRvCj4gPgo+ID4KPiA+IHNlY2ZpbHRl cmVuZ2luZSBvbl9leGNsdXNpdmUgfCBvbl9pbmNsdXNpdmUgIHwgb2ZmCj4gPgo+ID4KPiA+IG9u X2V4Y2x1c2l2ZSA9ICAoZGVmYXVsdHMgdG8gYWxsb3cgYWxsKSB3aGljaCBpcyBob3cgbW9kX3Nl Y3VyaXR5Cj4gPiBjdXJyZW50bHkgZnVuY3Rpb25zCj4gPgo+ID4gb25faW5jbHVzaXZlID0gIChk ZWZhdWx0cyB0byBibG9jayBhbGwpCj4gPgo+ID4gVGhpcyB3b3VsZCB0aGVuIGFsbG93IHRoZSBh Ym92ZSBleGFtcGxlIHJ1bGVzIHRvIGJlIHJlLWNvZGVkIGxpa2UgdGhpczoKPiA+Cj4gPiBTZWNG aWx0ZXJTZWxlY3RpdmUgUkVRVUVTVF9VUkkgIl4vMDAuMDBfSGVhZGVyLmh0bSIgICAgICAgICAg ICAgICAgIFNlY0ZpbHRlclNlbGVjdGl2ZQo+ID4gUkVRVUVTVF9VUkkgIl4vMDAuMDBfSGVhZGVy LnBocCIgICAgICAgICAgICAgICAgICBTZWNGaWx0ZXJTZWxlY3RpdmUKPiA+IFJFUVVFU1RfVVJJ ICJeLzAwLjAwLXdlYl9zdHlsZV9zaGVldC5jc3MiCj4gPiBTZWNGaWx0ZXJTZWxlY3RpdmUgUkVR VUVTVF9VUkkgIl4vYnV0dG9uLnBocCIKPiA+IFNlY0ZpbHRlclNlbGVjdGl2ZSBSRVFVRVNUX1VS SSAiXi9jbGFzcy5waHBtYWlsZXIucGhwIgo+ID4gU2VjRmlsdGVyU2VsZWN0aXZlIFJFUVVFU1Rf VVJJICJeL2luZGV4Lmh0bSIKPiA+Cj4gPiBXaGVyZSBhIG1hdGNoIG1lYW5zIHBhc3MgdGhlIHBh Y2tldCB0byB0aGUgd2ViIHNlcnZlciBhbmQgYW55Cj4gPiBub24tbWF0Y2hlcyBnZXQgcGFzc2Vk IHRvIHdoYXQgZXZlciBTZWNGaWx0ZXJEZWZhdWx0QWN0aW9uCj4gPiBkZW55LGxvZyxzdGF0dXM6 NDA0ICBzYXlzIHRvIGRvLgo+ID4KPiA+IFRvIGFuIG5vbi10ZWNobmljYWwgdXNlciB0aGlzIGlz IHN0cmFpZ2h0IGZvcndhcmQgYW5kIG1ha2VzIGxvZ2ljYWwKPiA+IHNlbnNlcyB3aGVuIHJlYWQu Cj4gPiBUaGUgY29uY2VwdCBvZiBvbmx5IGhhdmluZyB0byBhZGQgYSBydWxlIGZvciBlYWNoIHNj cmlwdCB0aGF0IG1ha2VzIHVwCj4gPiB0aGUgd2ViIGFwcGxpY2F0aW9uIHJlcXVpcmVzIG5vIHRl Y2huaWNhbCBjb21wcmVoZW5zaW9uIG9mIGhvdyBhbiB3ZWIgc2VydmVyCj4gPiBwcm9jZXNzZXMg cmVxdWVzdHMgYW5kIGlzIHJlYWxseSBvbiB0YXJnZXQgZm9yIHRoZSBnZW5lcmFsIGhvbWUgaG9i Ynlpc3QKPiA+IGxldmVsIG9mIHVuZGVyc3RhbmRpbmcgYW5kIG5lZWRzLiBBbmQgb2YgY291cnNl IHRoZSBtb2Rfc2VjdXJpdHkgbWFudWFsCj4gPiB3b3VsZCBuZWVkIGEgbWFqb3IgcmV3cml0ZSB0 byBpbmNsdWRlIHRoaXMgbmV3IGZ1bmN0aW9uLgo+ID4KPiA+Cj4gPiBJIHBvc3QgdGhpcyBmb3Ig ZGlzY3Vzc2lvbiBieSBtZW1iZXJzIG9mIHRoaXMgbGlzdCB3aG8gaGF2ZSBtb3JlCj4gPiBrbm93 bGVkZ2Ugb2YgbW9kX3NlY3VyaXR5IGludGVybmFscyBhbmQgdXNhZ2UgYmFja2dyb3VuZCBpbiBo b3BlcyBvZgo+ID4gYWNoaWV2aW5nIGFncmVlbWVudCBvbiBtYWtpbmcgdGhpcyBhbiBvZmZpY2lh bCBlbmhhbmNlbWVudCByZXF1ZXN0Lgo+ID4KPiA+Cj4gPiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCj4gPiBOZXcgWWFob28hIE1lc3NlbmdlciB3aXRoIFZvaWNlLiBDYWxsIHJlZ3Vs YXIgcGhvbmVzIGZyb20geW91ciBQQzxodHRwOi8vdXMucmQueWFob28uY29tL21haWxfdXMvdGFn bGluZXMvcG9zdG1hbjUvKmh0dHA6Ly91cy5yZC55YWhvby5jb20vZXZ0PTM5NjY2LypodHRwOi8v YmV0YS5tZXNzZW5nZXIueWFob28uY29tPmFuZCBzYXZlIGJpZy4KPiA+Cj4KPgo+ICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBMb3ZlIGNoZWFwIHRocmlsbHM/IEVuam95IFBDLXRv LVBob25lIGNhbGxzIHRvIDMwKyBjb3VudHJpZXM8aHR0cDovL3VzLnJkLnlhaG9vLmNvbS9tYWls X3VzL3RhZ2xpbmVzL3Bvc3RtYW45LypodHRwOi8vdXMucmQueWFob28uY29tL2V2dD0zOTY2Ni8q aHR0cDovL2JldGEubWVzc2VuZ2VyLnlhaG9vLmNvbS8+Zm9yIGp1c3QgMu+/vS9taW4gd2l0aCBZ YWhvbyEgTWVzc2VuZ2VyIHdpdGggVm9pY2UuCj4K |