PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA1MClodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2dyYXBoL2RvYy93YXZlZnJvbnQuaHRtbCAtLT4KPEhUTUw+PEhFQUQ+PFRJVExFPkJvb3N0IEdyYXBoIExpYnJhcnk6IFdhdmVmcm9udDwvVElUTEU+CjxNRVRBIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPjwhLS0KICAtLSBDb3B5cmlnaHQgKGMpIEplcmVteSBTaWVrIDIwMDAKICAtLQogIC0tIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KICAtLSAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CiAgLS0gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQogIC0tPgo8TUVUQSBjb250ZW50PSJNU0hUTUwgNi4wMC4yNzE1LjQwMCIgbmFtZT1HRU5FUkFUT1I+PC9IRUFEPgo8Qk9EWSB0ZXh0PSMwMDAwMDAgdkxpbms9IzU1MWE4YiBhTGluaz0jZmYwMDAwIGxpbms9IzAwMDBlZSBiZ0NvbG9yPSNmZmZmZmY+CjxJTUcgU1JDPSIuLi8uLi8uLi9ib29zdC5wbmciIAogICAgIEFMVD0iQysrIEJvb3N0IiB3aWR0aD0iMjc3IiBoZWlnaHQ9Ijg2Ij4gPEJSPgo8SDE+PEEgbmFtZT1zZWM6d2F2ZWZyb250PjwvYT48dHQ+aXRoX3dhdmVmcm9udDwvdHQ+IDwvSDE+CjxQUkU+ICAoMSkKICB0ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgR3JhcGgmZ3Q7PGJyPiAgdHlwZW5hbWUgZ3JhcGhfdHJhaXRzJmx0O0dyYXBoJmd0Ozo6dmVydGljZXNfc2l6ZV90eXBlPGJyPiAgaXRoX3dhdmVmcm9udCh0eXBlbmFtZSBncmFwaF90cmFpdHMmbHQ7R3JhcGgmZ3Q7Ojp2ZXJ0ZXhfZGVzY3JpcHRvciBpLDxicj4gICAgICAgICAgICAgICAgY29uc3QgR3JhcGgmYW1wOyBnKQoKICAoMikKICB0ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgR3JhcGgsIHR5cGVuYW1lIFZlcnRleEluZGV4TWFwJmd0Ozxicj4gIHR5cGVuYW1lIGdyYXBoX3RyYWl0cyZsdDtHcmFwaCZndDs6OnZlcnRpY2VzX3NpemVfdHlwZTxicj4gIGl0aF93YXZlZnJvbnQodHlwZW5hbWUgZ3JhcGhfdHJhaXRzJmx0O0dyYXBoJmd0Ozo6dmVydGV4X2Rlc2NyaXB0b3IgaSw8YnI+ICAgICAgICAgICAgICAgIGNvbnN0IEdyYXBoJmFtcDsgZyw8YnI+ICAgICAgICAgICAgICAgIFZlcnRleEluZGV4TWFwIGluZGV4KTwvUFJFPgo8cD4mbmJzcDs8L3A+CjxwPkNhbGN1bGF0ZXMgdGhlIHdhdmVmcm9udCBvZiB0aGUgPGk+aXRoPC9pPi12ZXJ0ZXguPEJSPgogIDxCUj4KPC9wPgo8SDM+RGVmaW5lZCBpbjwvSDM+CjxBIApocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9ib29zdC9ncmFwaC93YXZlZnJvbnQuaHBwIj48VFQ+Ym9vc3QvZ3JhcGgvd2F2ZWZyb250LmhwcDwvVFQ+PC9BPiAKPEhSPgoKPEgxPjxBIG5hbWU9c2VjOml0aC13YXZlZnJvbnQ+PC9hPjx0dD5tYXhfd2F2ZWZyb250PC90dD48L0gxPgo8UFJFPiAgKDEpCiAgdGVtcGxhdGUgJmx0O3R5cGVuYW1lIEdyYXBoJmd0Ozxicj4gIHR5cGVuYW1lIGdyYXBoX3RyYWl0cyZsdDtHcmFwaCZndDs6OnZlcnRpY2VzX3NpemVfdHlwZTxicj4gIG1heF93YXZlZnJvbnQoY29uc3QgR3JhcGgmYW1wOyBnKQoKICAoMikKICB0ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgR3JhcGgsIHR5cGVuYW1lIFZlcnRleEluZGV4TWFwJmd0Ozxicj4gIHR5cGVuYW1lIGdyYXBoX3RyYWl0cyZsdDtHcmFwaCZndDs6OnZlcnRpY2VzX3NpemVfdHlwZTxicj4gIG1heF93YXZlZnJvbnQoY29uc3QgR3JhcGgmYW1wOyBnLCBWZXJ0ZXhJbmRleE1hcCBpbmRleCk8L1BSRT4KQ2FsY3VsYXRlcyB0aGUgbWF4aW11bSB3YXZlZnJvbnQgYSBncmFwaC48QlI+CjxCUj4KPEgzPkRlZmluZWQgaW48L0gzPgo8cD48QSAKaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvYm9vc3QvZ3JhcGgvd2F2ZWZyb250LmhwcCI+PFRUPmJvb3N0L2dyYXBoL3dhdmVmcm9udC5ocHA8L1RUPjwvQT4gCjwvcD4KPGhyPgo8aDE+PGEgbmFtZT1zZWM6aXRoLXdhdmVmcm9udD48L2E+PHR0PmF2ZXJfd2F2ZWZyb250PC90dD48L2gxPgo8cHJlPiAgKDEpCiAgdGVtcGxhdGUgJmx0O3R5cGVuYW1lIEdyYXBoJmd0Ozxicj4gIHR5cGVuYW1lIGdyYXBoX3RyYWl0cyZsdDtHcmFwaCZndDs6OnZlcnRpY2VzX3NpemVfdHlwZTxicj4gIGF2ZXJfd2F2ZWZyb250KGNvbnN0IEdyYXBoJmFtcDsgZykKCiAgKDIpCiAgdGVtcGxhdGUgJmx0O3R5cGVuYW1lIEdyYXBoLCB0eXBlbmFtZSBWZXJ0ZXhJbmRleE1hcCZndDs8YnI+ICB0eXBlbmFtZSBncmFwaF90cmFpdHMmbHQ7R3JhcGgmZ3Q7Ojp2ZXJ0aWNlc19zaXplX3R5cGU8YnI+ICBhdmVyX3dhdmVmcm9udChjb25zdCBHcmFwaCZhbXA7IGcsIFZlcnRleEluZGV4TWFwIGluZGV4KTwvcHJlPgpDYWxjdWxhdGVzIHRoZSBhdmVyYWdlIHdhdmVmcm9udCBvZiBhIGdyYXBoIChzdW0gb2YgYWxsIHdhdmVmcm9udHMgZGV2aWRlZCBieSAKdGhlIG51bWJlciBvYiB2ZXJ0aWNlcykuPGJyPgo8YnI+CjxoMz5EZWZpbmVkIGluPC9oMz4KPGEgCmhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL2Jvb3N0L2dyYXBoL3dhdmVmcm9udC5ocHAiPjx0dD5ib29zdC9ncmFwaC93YXZlZnJvbnQuaHBwPC90dD48L2E+IAo8cD48QlI+CjwvcD4KPGhyPgo8aDE+PGEgbmFtZT1zZWM6aXRoLXdhdmVmcm9udD48L2E+PHR0PnJtc193YXZlZnJvbnQ8L3R0PjwvaDE+CjxwcmU+ICAoMSkKICB0ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgR3JhcGgmZ3Q7PGJyPiAgdHlwZW5hbWUgZ3JhcGhfdHJhaXRzJmx0O0dyYXBoJmd0Ozo6dmVydGljZXNfc2l6ZV90eXBlPGJyPiAgcm1zX3dhdmVmcm9udChjb25zdCBHcmFwaCZhbXA7IGcpCgogICgyKQogIHRlbXBsYXRlICZsdDt0eXBlbmFtZSBHcmFwaCwgdHlwZW5hbWUgVmVydGV4SW5kZXhNYXAmZ3Q7PGJyPiAgdHlwZW5hbWUgZ3JhcGhfdHJhaXRzJmx0O0dyYXBoJmd0Ozo6dmVydGljZXNfc2l6ZV90eXBlPGJyPiAgcm1zX3dhdmVmcm9udChjb25zdCBHcmFwaCZhbXA7IGcsIFZlcnRleEluZGV4TWFwIGluZGV4KTwvcHJlPgpDYWxjdWxhdGVzIHRoZSByb290IG1lYW4gc3F1YXJlIG9mIGFsbCB3YXZlZnJvbnRzLjxicj4KPGJyPgo8aDM+RGVmaW5lZCBpbjwvaDM+CjxhIApocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9ib29zdC9ncmFwaC93YXZlZnJvbnQuaHBwIj48dHQ+Ym9vc3QvZ3JhcGgvd2F2ZWZyb250LmhwcDwvdHQ+PC9hPiAKPHA+Jm5ic3A7IDwvcD4KPEhSPgo8VEFCTEU+CiAgPFRCT0RZPgogIDxUUiB2QWxpZ249dG9wPgogICAgPFREIG5vV3JhcD5Db3B5cmlnaHQgqSAyMDAxLTIwMDI8L1REPgogICAgPFREPk1hcmMgV2ludGVybWFudGVsLCBFVEggWnVyaWNoKDxBIAogICAgICBocmVmPSJtYWlsdG86d2ludGVybWFudGVsQGltZXMubWF2dC5ldGh6LmNoIj53aW50ZXJtYW50ZWxAaW1lcy5tYXZ0LmV0aHouY2g8L2E+KSAKICAgIDwvVEQ+CiAgPC9UUj48L1RCT0RZPjwvVEFCTEU+PC9CT0RZPjwvSFRNTD4K