PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPjxoZWFkPjxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiPjx0aXRsZT5Xcml0aW5nIEF0dHJpYnV0ZTwvdGl0bGU+PG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS40OCI+PGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InVwIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InByZXZpb3VzIiBocmVmPSJhcjAxczA1Lmh0bWwiIHRpdGxlPSJXcml0aW5nIGVsZW1lbnQgY29udGVudCI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJhcjAxczA3Lmh0bWwiIHRpdGxlPSJSZXRyaWV2aW5nIEF0dHJpYnV0ZXMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ibmF2aGVhZGVyIj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+PHRoIGNvbHNwYW49IjMiIGFsaWduPSJjZW50ZXIiPldyaXRpbmcgQXR0cmlidXRlPC90aD48L3RyPjx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYXIwMXMwNS5odG1sIj5QcmV2PC9hPqA8L3RkPjx0aCB3aWR0aD0iNjAlIiBhbGlnbj0iY2VudGVyIj6gPC90aD48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJhcjAxczA3Lmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjwvdGFibGU+PGhyPjwvZGl2PjxkaXYgY2xhc3M9InNlY3QxIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBuYW1lPSJ4bWx0dXRvcmlhbHdyaXRpbmdhdHRyaWJ1dGUiPjwvYT5Xcml0aW5nIEF0dHJpYnV0ZTwvaDI+PC9kaXY+PC9kaXY+PHA+V3JpdGluZyBhbiBhdHRyaWJ1dGUgaXMgc2ltaWxhciB0byB3cml0aW5nIHRleHQgdG8gYSBuZXcgZWxlbWVudC4gSW4KICAgICAgdGhpcyBjYXNlLCB3ZSdsbCBhZGQgYSByZWZlcmVuY2UgVVJJIHRvIG91cgogICAgICBkb2N1bWVudC4gRnVsbCBjb2RlOjxhIGhyZWY9ImFwZC5odG1sIiB0aXRsZT0iRC4gQ29kZSBmb3IgQWRkIEF0dHJpYnV0ZSBFeGFtcGxlIj5BcHBlbmRpeCBEPC9hPi48L3A+PHA+CiAgICAgIEEgPHR0IGNsYXNzPSJzZ21sdGFnLWVsZW1lbnQiPnJlZmVyZW5jZTwvdHQ+IGlzIGEgY2hpbGQgb2YgdGhlIDx0dCBjbGFzcz0ic2dtbHRhZy1lbGVtZW50Ij5zdG9yeTwvdHQ+CiAgICAgIGVsZW1lbnQsIHNvIGZpbmRpbmcgdGhlIHBsYWNlIHRvIHB1dCBvdXIgbmV3IGVsZW1lbnQgYW5kIGF0dHJpYnV0ZSBpcwogICAgICBzaW1wbGUuIEFzIHNvb24gYXMgd2UgZG8gdGhlIGVycm9yLWNoZWNraW5nIHRlc3QgaW4gb3VyCiAgICAgIDx0dD5wYXJzZURvYzwvdHQ+LCB3ZSBhcmUgaW4gdGhlIHJpZ2h0IHNwb3QgdG8gYWRkIG91cgogICAgICBlbGVtZW50LiBCdXQgYmVmb3JlIHdlIGRvIHRoYXQsIHdlIG5lZWQgdG8gbWFrZSBhIGRlY2xhcmF0aW9uIHVzaW5nIGEKICAgICAgZGF0YXR5cGUgd2UgaGF2ZSBub3Qgc2VlbiB5ZXQ6CiAgICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KCXhtbEF0dHJQdHIgbmV3YXR0cjsKICAgICAgPC9wcmU+CiAgICAgIFdlIGFsc28gbmVlZCBhbiBleHRyYSB4bWxOb2RlUHRyOgogICAgICA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Cgl4bWxOb2RlUHRyIG5ld25vZGU7CiAgICAgIDwvcHJlPgogICAgPC9wPjxwPgogICAgICBUaGUgcmVzdCBvZiA8dHQ+cGFyc2VEb2M8L3R0PiBpcyB0aGUgc2FtZSBhcyBiZWZvcmUgdW50aWwgd2UKICAgICAgY2hlY2sgdG8gc2VlIGlmIG91ciByb290IGVsZW1lbnQgaXMgPHR0IGNsYXNzPSJzZ21sdGFnLWVsZW1lbnQiPnN0b3J5PC90dD4uIElmIGl0IGlzLAogICAgICB0aGVuIHdlIGtub3cgd2UgYXJlIGF0IHRoZSByaWdodCBzcG90IHRvIGFkZCBvdXIgZWxlbWVudDoKCiAgICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KCTxhIG5hbWU9ImFkZHJlZmVyZW5jZW5vZGUiPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzEucG5nIiBhbHQ9IjEiIGJvcmRlcj0iMCI+IG5ld25vZGUgPSB4bWxOZXdUZXh0Q2hpbGQgKGN1ciwgTlVMTCwgJnF1b3Q7cmVmZXJlbmNlJnF1b3Q7LCBOVUxMKTsKCTxhIG5hbWU9ImFkZGF0dHJpYnV0ZW5vZGUiPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzIucG5nIiBhbHQ9IjIiIGJvcmRlcj0iMCI+IG5ld2F0dHIgPSB4bWxOZXdQcm9wIChuZXdub2RlLCAmcXVvdDt1cmkmcXVvdDssIHVyaSk7CQogICAgICA8L3ByZT4KICAgICAgPGRpdiBjbGFzcz0iY2FsbG91dGxpc3QiPjx0YWJsZSBib3JkZXI9IjAiIHN1bW1hcnk9IkNhbGxvdXQgbGlzdCI+PHRyPjx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iI2FkZHJlZmVyZW5jZW5vZGUiPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMS5wbmciIGFsdD0iMSIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+Rmlyc3Qgd2UgYWRkIGEgbmV3IG5vZGUgYXQgdGhlIGxvY2F0aW9uIG9mIHRoZSBjdXJyZW50IG5vZGUKCSAgICBwb2ludGVyLCA8dHQ+Y3VyLjwvdHQ+IHVzaW5nIHRoZSA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTE5FV1RFWFRDSElMRCIgdGFyZ2V0PSJfdG9wIj54bWxOZXdUZXh0Q2hpbGQ8L2E+IGZ1bmN0aW9uLjwvcD48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj4KICAgPC9wPjxwPk9uY2UgdGhlIG5vZGUgaXMgYWRkZWQsIHRoZSBmaWxlIGlzIHdyaXR0ZW4gdG8gZGlzayBqdXN0IGFzIGluIHRoZQogICAgcHJldmlvdXMgZXhhbXBsZSBpbiB3aGljaCB3ZSBhZGRlZCBhbiBlbGVtZW50IHdpdGggdGV4dCBjb250ZW50LjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJuYXZmb290ZXIiPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFyMDFzMDUuaHRtbCI+UHJldjwvYT6gPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj5VcDwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImFyMDFzMDcuaHRtbCI+TmV4dDwvYT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPldyaXRpbmcgZWxlbWVudCBjb250ZW50oDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj6gUmV0cmlldmluZyBBdHRyaWJ1dGVzPC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PC9ib2R5PjwvaHRtbD4K