<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>132081</bug_id>
          
          <creation_ts>2014-04-23 14:51:38 -0700</creation_ts>
          <short_desc>[New Multicolumn] fast/multicol/hit-test-* layout tests all fail</short_desc>
          <delta_ts>2014-04-25 13:21:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>131825</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1003391</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-04-23 14:51:38 -0700</bug_when>
    <thetext>All four of the hit-test-* layout tests fail. Could just be pixel differences, but might be actual bugs here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004135</commentid>
    <comment_count>1</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-04-25 10:38:09 -0700</bug_when>
    <thetext>I think this boils down to positionForPoint on RenderMultiColumnSet needing to work with logical coordinates instead of treating the point passed in as physical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004173</commentid>
    <comment_count>2</comment_count>
      <attachid>230193</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-04-25 13:02:19 -0700</bug_when>
    <thetext>Created attachment 230193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004179</commentid>
    <comment_count>3</comment_count>
      <attachid>230193</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-04-25 13:19:41 -0700</bug_when>
    <thetext>Comment on attachment 230193
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=230193&amp;action=review

&gt; LayoutTests/fast/multicol/newmulticol/compare-with-old-impl/hit-test-above-or-below.html:31
&gt; +            log (&quot;Character at &quot; + x + &quot;, &quot; + y + &quot; is &quot; + character + &quot; as expected.&quot;);
&gt; +        else
&gt; +            log (&quot;FAIL: Character at &quot; + x + &quot;, &quot; + y + &quot; is &quot; + actualCharacter + &quot;. Expected &quot; + character + &quot;.&quot;);

Nit: extra space after log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004180</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-04-25 13:21:20 -0700</bug_when>
    <thetext>Fixed in r167817.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230193</attachid>
            <date>2014-04-25 13:02:19 -0700</date>
            <delta_ts>2014-04-25 13:19:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>34121</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA0LTI1ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBbTmV3IE11bHRpY29sdW1uXSBmYXN0
L211bHRpY29sL2hpdC10ZXN0LSogbGF5b3V0IHRlc3RzIGFsbCBmYWlsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzIwODEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIGJ1bmNoIG9mIHRlc3Rz
IGluIGZhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvY29tcGFyZS13aXRoLW9sZC1pbXBsL2hpdC10
ZXN0LSouaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAg
IE1ha2Ugb2Zmc2V0Rm9yQ29udGVudHMgcHVibGljLCBzaW5jZSBJIG5lZWQgdG8gY2FsbCBpdCBm
cm9tIFJlbmRlck11bHRpQ29sdW1uU2V0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNv
bHVtbkZsb3dUaHJlYWQ6OnBvcHVsYXRlKToKKyAgICAgICAgU3RvcCBhbiBBU1NFUlQgaW4gdGhl
IG5ldyBjb2x1bW5zIGNvZGUgb24gdGhlIGhpdCB0ZXN0cyBieSBtYWtpbmcgc3VyZSBsYXlvdXQg
c3RhdGUgaXMKKyAgICAgICAgZGlzYWJsZWQgd2hlbiBtb3ZpbmcgY2hpbGRyZW4gYXJvdW5kLgor
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uU2V0Ojpwb3NpdGlvbkZvclBvaW50KToKKyAgICAg
ICAgUmVmYWN0b3IgdGhpcyBmdW5jdGlvbiB0byBjYWxsIGEgaGVscGVyIGZ1bmN0aW9uIGluc3Rl
YWQsIHRyYW5zbGF0ZVJlZ2lvblBvaW50VG9GbG93VGhyZWFkLgorCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJNdWx0aUNvbHVtblNldDo6dHJhbnNsYXRlUmVnaW9uUG9pbnRUb0Zsb3dUaHJlYWQp
OgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIGxvZ2ljYWwgKHVubGlrZSB0aGUgbWlzdGFrZW4g
cGh5c2ljYWwgZnVuY3Rpb24gSSBmaXJzdCBpbXBsZW1lbnRlZCBpbgorICAgICAgICBwb3NpdGlv
bkZvclBvaW50KS4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTXVsdGlDb2x1bW5TZXQ6OnVw
ZGF0ZUhpdFRlc3RSZXN1bHQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVt
blNldC5oOgorICAgICAgICBPdmVycmlkZGVuIHRvIGZpbGwgaW4gdGhlIGNvcnJlY3QgbG9jYWwg
Y29vcmRpbmF0ZSB3aGVuIHRoZSBIVE1MIGRvY3VtZW50IGlzIGluc2lkZSBhIHBhZ2luYXRlZAor
ICAgICAgICBSZW5kZXJWaWV3LiBOb3RlIHRoYXQgY29sdW1uIHNwYW5zIGRvbid0IGFjdHVhbGx5
IHdvcmssIGJ1dCBvbmNlIHdlIG1vdmUgb3ZlciB0byBhIAorICAgICAgICBub24tY29sdW1uIGJh
c2VkIHBhZ2luYXRpb24gQVBJLCB0aGF0IHdpbGwgYmVjb21lIGlycmVsZXZhbnQuCisKIDIwMTQt
MDQtMjUgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE1hcmsg
c29tZSB0aGluZ3Mgd2l0aCBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRC4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCShyZXZpc2lvbiAxNjc4MDcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNDE4LDYg
KzQxOCw5IEBAIHB1YmxpYzoKIAogICAgIC8vIEZJWE1FOiBDYW4gZGV2aXJ0dWFsaXplIG9uY2Ug
b2xkIGNvbHVtbiBjb2RlIGlzIGdvbmUuCiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMaW5lR3Jp
ZFBhZ2luYXRpb25PcmlnaW4oTGF5b3V0U3RhdGUmKSBjb25zdDsKKyAgICAKKyAgICAvLyBBZGp1
c3QgZnJvbSBwYWludGluZyBvZmZzZXRzIHRvIHRoZSBsb2NhbCBjb29yZHMgb2YgdGhpcyByZW5k
ZXJlcgorICAgIHZvaWQgb2Zmc2V0Rm9yQ29udGVudHMoTGF5b3V0UG9pbnQmKSBjb25zdDsKIAog
cHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBhZGRPdmVyZmxvd0Zyb21DaGlsZHJlbigpOwpA
QCAtNTY4LDkgKzU3MSw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIENvbHVtbkluZm86OlBh
Z2luYXRpb25Vbml0IHBhZ2luYXRpb25Vbml0KCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICAv
LyBBZGp1c3QgZnJvbSBwYWludGluZyBvZmZzZXRzIHRvIHRoZSBsb2NhbCBjb29yZHMgb2YgdGhp
cyByZW5kZXJlcgotICAgIHZvaWQgb2Zmc2V0Rm9yQ29udGVudHMoTGF5b3V0UG9pbnQmKSBjb25z
dDsKLQogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0NvbHVtbnMoaW50IGNvbXB1dGVkQ29sdW1u
Q291bnQpIGNvbnN0OwogCiAgICAgYm9vbCB1cGRhdGVMb2dpY2FsV2lkdGhBbmRDb2x1bW5XaWR0
aCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxv
d1RocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uRmxvd1RocmVhZC5jcHAJKHJldmlzaW9uIDE2NzgwOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTUsNiArMTU1LDcgQEAgdm9pZCBSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJl
YWQ6OnBvcHVsYQogICAgIC8vIFJlcGFyZW50IGNoaWxkcmVuIHByZWNlZGluZyB0aGUgZmxvdyB0
aHJlYWQgaW50byB0aGUgZmxvdyB0aHJlYWQuIEl0J3MgbXVsdGljb2wgY29udGVudAogICAgIC8v
IG5vdy4gQXQgdGhpcyBwb2ludCB0aGVyZSdzIG9idmlvdXNseSBub3RoaW5nIGFmdGVyIHRoZSBm
bG93IHRocmVhZCwgYnV0IHJlbmRlcmVycyAoY29sdW1uCiAgICAgLy8gc2V0cyBhbmQgc3Bhbm5l
cnMpIHdpbGwgYmUgaW5zZXJ0ZWQgdGhlcmUgYXMgd2UgaW5zZXJ0IGVsZW1lbnRzIGludG8gdGhl
IGZsb3cgdGhyZWFkLgorICAgIExheW91dFN0YXRlRGlzYWJsZXIgbGF5b3V0U3RhdGVEaXNhYmxl
cigmdmlldygpKTsKICAgICBtdWx0aWNvbENvbnRhaW5lci0+bW92ZUNoaWxkcmVuVG8odGhpcywg
bXVsdGljb2xDb250YWluZXItPmZpcnN0Q2hpbGQoKSwgdGhpcywgdHJ1ZSk7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNw
cAkocmV2aXNpb24gMTY3ODA4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1
ZGUgIlJlbmRlck11bHRpQ29sdW1uU2V0LmgiCiAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNp
bmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQu
aCIKQEAgLTg2OSw5OSArODcwLDEwMyBAQCB2b2lkIFJlbmRlck11bHRpQ29sdW1uU2V0OjphZGRP
dmVyZmxvd0ZyCiAgICAgICAgIGFkZFZpc3VhbE92ZXJmbG93KGxhc3RSZWN0KTsKIH0KIAotVmlz
aWJsZVBvc2l0aW9uIFJlbmRlck11bHRpQ29sdW1uU2V0Ojpwb3NpdGlvbkZvclBvaW50KGNvbnN0
IExheW91dFBvaW50JiBwaHlzaWNhbFBvaW50LCBjb25zdCBSZW5kZXJSZWdpb24qKQorVmlzaWJs
ZVBvc2l0aW9uIFJlbmRlck11bHRpQ29sdW1uU2V0Ojpwb3NpdGlvbkZvclBvaW50KGNvbnN0IExh
eW91dFBvaW50JiBsb2dpY2FsUG9pbnQsIGNvbnN0IFJlbmRlclJlZ2lvbiopCit7CisgICAgcmV0
dXJuIG11bHRpQ29sdW1uRmxvd1RocmVhZCgpLT5wb3NpdGlvbkZvclBvaW50KHRyYW5zbGF0ZVJl
Z2lvblBvaW50VG9GbG93VGhyZWFkKGxvZ2ljYWxQb2ludCwgQ2xhbXBIaXRUZXN0VHJhbnNsYXRp
b25Ub0NvbHVtbnMpLCB0aGlzKTsKK30KKworTGF5b3V0UG9pbnQgUmVuZGVyTXVsdGlDb2x1bW5T
ZXQ6OnRyYW5zbGF0ZVJlZ2lvblBvaW50VG9GbG93VGhyZWFkKGNvbnN0IExheW91dFBvaW50ICYg
bG9naWNhbFBvaW50LCBDb2x1bW5IaXRUZXN0VHJhbnNsYXRpb25Nb2RlIGNsYW1wTW9kZSkgY29u
c3QKIHsKICAgICAvLyBEZXRlcm1pbmUgd2hpY2ggY29sdW1ucyB3ZSBpbnRlcnNlY3QuCiAgICAg
TGF5b3V0VW5pdCBjb2xHYXAgPSBjb2x1bW5HYXAoKTsKICAgICBMYXlvdXRVbml0IGhhbGZDb2xH
YXAgPSBjb2xHYXAgLyAyOwotICAgIExheW91dFBvaW50IGNvbHVtblBvaW50KGNvbHVtblJlY3RB
dCgwKS5sb2NhdGlvbigpKTsKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxPZmZzZXQgPSAwOwotICAg
IAorCiAgICAgYm9vbCBwcm9ncmVzc2lvbklzSW5saW5lID0gbXVsdGlDb2x1bW5GbG93VGhyZWFk
KCktPnByb2dyZXNzaW9uSXNJbmxpbmUoKTsKIAotICAgIExheW91dFBvaW50IHBvaW50ID0gcGh5
c2ljYWxQb2ludDsKKyAgICBMYXlvdXRQb2ludCBwb2ludCA9IGxvZ2ljYWxQb2ludDsKICAgICAK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY29sdW1uQ291bnQoKTsgaSsrKSB7CiAgICAg
ICAgIC8vIEFkZCBpbiBoYWxmIHRoZSBjb2x1bW4gZ2FwIHRvIHRoZSBsZWZ0IGFuZCByaWdodCBv
ZiB0aGUgcmVjdC4KICAgICAgICAgTGF5b3V0UmVjdCBjb2xSZWN0ID0gY29sdW1uUmVjdEF0KGkp
OwotICAgICAgICBmbGlwRm9yV3JpdGluZ01vZGUoY29sUmVjdCk7CiAgICAgICAgIGlmIChpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpID09IHByb2dyZXNzaW9uSXNJbmxpbmUpIHsKICAgICAgICAg
ICAgIExheW91dFJlY3QgZ2FwQW5kQ29sdW1uUmVjdChjb2xSZWN0LngoKSAtIGhhbGZDb2xHYXAs
IGNvbFJlY3QueSgpLCBjb2xSZWN0LndpZHRoKCkgKyBjb2xHYXAsIGNvbFJlY3QuaGVpZ2h0KCkp
OwogICAgICAgICAgICAgaWYgKHBvaW50LngoKSA+PSBnYXBBbmRDb2x1bW5SZWN0LngoKSAmJiBw
b2ludC54KCkgPCBnYXBBbmRDb2x1bW5SZWN0Lm1heFgoKSkgewotICAgICAgICAgICAgICAgIGlm
IChwcm9ncmVzc2lvbklzSW5saW5lKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBU
aGUgY2xhbXBpbmcgdGhhdCBmb2xsb3dzIGlzIG5vdCBjb21wbGV0ZWx5IHJpZ2h0IGZvciByaWdo
dC10by1sZWZ0Ci0gICAgICAgICAgICAgICAgICAgIC8vIGNvbnRlbnQuCi0gICAgICAgICAgICAg
ICAgICAgIC8vIENsYW1wIGV2ZXJ5dGhpbmcgYWJvdmUgdGhlIGNvbHVtbiB0byBpdHMgdG9wIGxl
ZnQuCi0gICAgICAgICAgICAgICAgICAgIGlmIChwb2ludC55KCkgPCBnYXBBbmRDb2x1bW5SZWN0
LnkoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ID0gZ2FwQW5kQ29sdW1uUmVjdC5s
b2NhdGlvbigpOwotICAgICAgICAgICAgICAgICAgICAvLyBDbGFtcCBldmVyeXRoaW5nIGJlbG93
IHRoZSBjb2x1bW4gdG8gdGhlIG5leHQgY29sdW1uJ3MgdG9wIGxlZnQuIElmIHRoZXJlIGlzCi0g
ICAgICAgICAgICAgICAgICAgIC8vIG5vIG5leHQgY29sdW1uLCB0aGlzIHN0aWxsIG1hcHMgdG8g
anVzdCBhZnRlciB0aGlzIGNvbHVtbi4KLSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocG9p
bnQueSgpID49IGdhcEFuZENvbHVtblJlY3QubWF4WSgpKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBwb2ludCA9IGdhcEFuZENvbHVtblJlY3QubG9jYXRpb24oKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHBvaW50Lm1vdmUoMCwgZ2FwQW5kQ29sdW1uUmVjdC5oZWlnaHQoKSk7CisgICAg
ICAgICAgICAgICAgaWYgKGNsYW1wTW9kZSA9PSBDbGFtcEhpdFRlc3RUcmFuc2xhdGlvblRvQ29s
dW1ucykgeworICAgICAgICAgICAgICAgICAgICBpZiAocHJvZ3Jlc3Npb25Jc0lubGluZSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoZSBjbGFtcGluZyB0aGF0IGZvbGxv
d3MgaXMgbm90IGNvbXBsZXRlbHkgcmlnaHQgZm9yIHJpZ2h0LXRvLWxlZnQKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIGNvbnRlbnQuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBDbGFt
cCBldmVyeXRoaW5nIGFib3ZlIHRoZSBjb2x1bW4gdG8gaXRzIHRvcCBsZWZ0LgorICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHBvaW50LnkoKSA8IGdhcEFuZENvbHVtblJlY3QueSgpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ID0gZ2FwQW5kQ29sdW1uUmVjdC5sb2NhdGlv
bigpOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2xhbXAgZXZlcnl0aGluZyBiZWxvdyB0
aGUgY29sdW1uIHRvIHRoZSBuZXh0IGNvbHVtbidzIHRvcCBsZWZ0LiBJZiB0aGVyZSBpcworICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gbm8gbmV4dCBjb2x1bW4sIHRoaXMgc3RpbGwgbWFwcyB0
byBqdXN0IGFmdGVyIHRoaXMgY29sdW1uLgorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBp
ZiAocG9pbnQueSgpID49IGdhcEFuZENvbHVtblJlY3QubWF4WSgpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcG9pbnQgPSBnYXBBbmRDb2x1bW5SZWN0LmxvY2F0aW9uKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnQubW92ZSgwLCBnYXBBbmRDb2x1bW5SZWN0Lmhl
aWdodCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb2ludC54KCkgPCBjb2xSZWN0
LngoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludC5zZXRYKGNvbFJlY3QueCgp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBvaW50LngoKSA+PSBjb2xSZWN0
Lm1heFgoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludC5zZXRYKGNvbFJlY3Qu
bWF4WCgpIC0gMSk7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICBpZiAocG9pbnQueCgpIDwgY29sUmVjdC54KCkpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBwb2ludC5zZXRYKGNvbFJlY3QueCgpKTsKLSAgICAgICAg
ICAgICAgICAgICAgZWxzZSBpZiAocG9pbnQueCgpID49IGNvbFJlY3QubWF4WCgpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgcG9pbnQuc2V0WChjb2xSZWN0Lm1heFgoKSAtIDEpOwogICAgICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIC8vIFdlJ3JlIGluc2lkZSB0aGUgY29sdW1u
LiBUcmFuc2xhdGUgdGhlIHggYW5kIHkgaW50byBvdXIgY29sdW1uIGNvb3JkaW5hdGUgc3BhY2Uu
Ci0gICAgICAgICAgICAgICAgaWYgKHByb2dyZXNzaW9uSXNJbmxpbmUpCi0gICAgICAgICAgICAg
ICAgICAgIHBvaW50Lm1vdmUoY29sdW1uUG9pbnQueCgpIC0gY29sUmVjdC54KCksICghc3R5bGUo
KS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpID8gbG9naWNhbE9mZnNldCA6IC1sb2dpY2Fs
T2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBwb2lu
dC5tb3ZlKCghc3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpID8gbG9naWNhbE9m
ZnNldCA6IC1sb2dpY2FsT2Zmc2V0KSAtIGNvbFJlY3QueCgpICsgYm9yZGVyTGVmdCgpICsgcGFk
ZGluZ0xlZnQoKSwgMCk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgTGF5b3V0
UmVjdCBwb3J0aW9uID0gZmxvd1RocmVhZFBvcnRpb25SZWN0KCk7Ci0gICAgICAgICAgICAgICAg
ZmxpcEZvcldyaXRpbmdNb2RlKHBvcnRpb24pOwotICAgICAgICAgICAgICAgIHBvaW50Lm1vdmUo
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExheW91dFVuaXQoKSA6IHBvcnRpb24ueCgpLCBp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gcG9ydGlvbi55KCkgOiBMYXlvdXRVbml0KCkpOwot
ICAgICAgICAgICAgICAgIHJldHVybiBtdWx0aUNvbHVtbkZsb3dUaHJlYWQoKS0+cG9zaXRpb25G
b3JQb2ludChwb2ludCwgdGhpcyk7CisgICAgICAgICAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXRJ
bkNvbHVtbiA9IHBvaW50IC0gY29sUmVjdC5sb2NhdGlvbigpOworICAgICAgICAgICAgICAgIExh
eW91dFJlY3QgZmxvd1RocmVhZFBvcnRpb24gPSBmbG93VGhyZWFkUG9ydGlvblJlY3RBdChpKTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICByZXR1cm4gZmxvd1RocmVhZFBvcnRp
b24ubG9jYXRpb24oKSArIG9mZnNldEluQ29sdW1uOwogICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAvLyBNb3ZlIHRvIHRoZSBuZXh0IHBvc2l0aW9uLgotICAgICAgICAgICAgbG9naWNhbE9m
ZnNldCArPSBwcm9ncmVzc2lvbklzSW5saW5lID8gY29sUmVjdC5oZWlnaHQoKSA6IGNvbFJlY3Qu
d2lkdGgoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIExheW91dFJlY3QgZ2FwQW5k
Q29sdW1uUmVjdChjb2xSZWN0LngoKSwgY29sUmVjdC55KCkgLSBoYWxmQ29sR2FwLCBjb2xSZWN0
LndpZHRoKCksIGNvbFJlY3QuaGVpZ2h0KCkgKyBjb2xHYXApOwogICAgICAgICAgICAgaWYgKHBv
aW50LnkoKSA+PSBnYXBBbmRDb2x1bW5SZWN0LnkoKSAmJiBwb2ludC55KCkgPCBnYXBBbmRDb2x1
bW5SZWN0Lm1heFkoKSkgewotICAgICAgICAgICAgICAgIGlmIChwcm9ncmVzc2lvbklzSW5saW5l
KSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUgY2xhbXBpbmcgdGhhdCBmb2xs
b3dzIGlzIG5vdCBjb21wbGV0ZWx5IHJpZ2h0IGZvciByaWdodC10by1sZWZ0Ci0gICAgICAgICAg
ICAgICAgICAgIC8vIGNvbnRlbnQuCi0gICAgICAgICAgICAgICAgICAgIC8vIENsYW1wIGV2ZXJ5
dGhpbmcgYWJvdmUgdGhlIGNvbHVtbiB0byBpdHMgdG9wIGxlZnQuCi0gICAgICAgICAgICAgICAg
ICAgIGlmIChwb2ludC54KCkgPCBnYXBBbmRDb2x1bW5SZWN0LngoKSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHBvaW50ID0gZ2FwQW5kQ29sdW1uUmVjdC5sb2NhdGlvbigpOwotICAgICAgICAg
ICAgICAgICAgICAvLyBDbGFtcCBldmVyeXRoaW5nIGJlbG93IHRoZSBjb2x1bW4gdG8gdGhlIG5l
eHQgY29sdW1uJ3MgdG9wIGxlZnQuIElmIHRoZXJlIGlzCi0gICAgICAgICAgICAgICAgICAgIC8v
IG5vIG5leHQgY29sdW1uLCB0aGlzIHN0aWxsIG1hcHMgdG8ganVzdCBhZnRlciB0aGlzIGNvbHVt
bi4KLSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocG9pbnQueCgpID49IGdhcEFuZENvbHVt
blJlY3QubWF4WCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwb2ludCA9IGdhcEFuZENv
bHVtblJlY3QubG9jYXRpb24oKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50Lm1vdmUo
Z2FwQW5kQ29sdW1uUmVjdC53aWR0aCgpLCAwKTsKKyAgICAgICAgICAgICAgICBpZiAoY2xhbXBN
b2RlID09IENsYW1wSGl0VGVzdFRyYW5zbGF0aW9uVG9Db2x1bW5zKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChwcm9ncmVzc2lvbklzSW5saW5lKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogVGhlIGNsYW1waW5nIHRoYXQgZm9sbG93cyBpcyBub3QgY29tcGxldGVseSBy
aWdodCBmb3IgcmlnaHQtdG8tbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGVu
dC4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIENsYW1wIGV2ZXJ5dGhpbmcgYWJvdmUgdGhl
IGNvbHVtbiB0byBpdHMgdG9wIGxlZnQuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9p
bnQueCgpIDwgZ2FwQW5kQ29sdW1uUmVjdC54KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcG9pbnQgPSBnYXBBbmRDb2x1bW5SZWN0LmxvY2F0aW9uKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBDbGFtcCBldmVyeXRoaW5nIGJlbG93IHRoZSBjb2x1bW4gdG8gdGhlIG5leHQg
Y29sdW1uJ3MgdG9wIGxlZnQuIElmIHRoZXJlIGlzCisgICAgICAgICAgICAgICAgICAgICAgICAv
LyBubyBuZXh0IGNvbHVtbiwgdGhpcyBzdGlsbCBtYXBzIHRvIGp1c3QgYWZ0ZXIgdGhpcyBjb2x1
bW4uCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChwb2ludC54KCkgPj0gZ2FwQW5k
Q29sdW1uUmVjdC5tYXhYKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludCA9
IGdhcEFuZENvbHVtblJlY3QubG9jYXRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwb2ludC5tb3ZlKGdhcEFuZENvbHVtblJlY3Qud2lkdGgoKSwgMCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAocG9pbnQueSgpIDwgY29sUmVjdC55KCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcG9pbnQuc2V0WShjb2xSZWN0LnkoKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBlbHNlIGlmIChwb2ludC55KCkgPj0gY29sUmVjdC5tYXhZKCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcG9pbnQuc2V0WShjb2xSZWN0Lm1heFkoKSAtIDEpOwogICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKHBvaW50LnkoKSA8IGNvbFJlY3QueSgpKQotICAgICAgICAgICAgICAgICAgICAgICAg
cG9pbnQuc2V0WShjb2xSZWN0LnkoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBv
aW50LnkoKSA+PSBjb2xSZWN0Lm1heFkoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50
LnNldFkoY29sUmVjdC5tYXhZKCkgLSAxKTsKICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgICAgICAvLyBXZSdyZSBpbnNpZGUgdGhlIGNvbHVtbi4gVHJhbnNsYXRlIHRoZSB4IGFuZCB5
IGludG8gb3VyIGNvbHVtbiBjb29yZGluYXRlIHNwYWNlLgotICAgICAgICAgICAgICAgIGlmIChw
cm9ncmVzc2lvbklzSW5saW5lKQotICAgICAgICAgICAgICAgICAgICBwb2ludC5tb3ZlKCghc3R5
bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpID8gbG9naWNhbE9mZnNldCA6IC1sb2dp
Y2FsT2Zmc2V0KSwgY29sdW1uUG9pbnQueSgpIC0gY29sUmVjdC55KCkpOwotICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcG9pbnQubW92ZSgwLCAoIXN0eWxlKCkuaXNG
bGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSA/IGxvZ2ljYWxPZmZzZXQgOiAtbG9naWNhbE9mZnNl
dCkgLSBjb2xSZWN0LnkoKSArIGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpKTsKICAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IHBvcnRpb24gPSBmbG93VGhyZWFk
UG9ydGlvblJlY3QoKTsKLSAgICAgICAgICAgICAgICBmbGlwRm9yV3JpdGluZ01vZGUocG9ydGlv
bik7Ci0gICAgICAgICAgICAgICAgcG9pbnQubW92ZShpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID8gTGF5b3V0VW5pdCgpIDogcG9ydGlvbi54KCksIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkg
PyBwb3J0aW9uLnkoKSA6IExheW91dFVuaXQoKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIG11bHRpQ29sdW1uRmxvd1RocmVhZCgpLT5wb3NpdGlvbkZvclBvaW50
KHBvaW50LCB0aGlzKTsKKyAgICAgICAgICAgICAgICBMYXlvdXRTaXplIG9mZnNldEluQ29sdW1u
ID0gcG9pbnQgLSBjb2xSZWN0LmxvY2F0aW9uKCk7CisgICAgICAgICAgICAgICAgTGF5b3V0UmVj
dCBmbG93VGhyZWFkUG9ydGlvbiA9IGZsb3dUaHJlYWRQb3J0aW9uUmVjdEF0KGkpOworICAgICAg
ICAgICAgICAgIHJldHVybiBmbG93VGhyZWFkUG9ydGlvbi5sb2NhdGlvbigpICsgb2Zmc2V0SW5D
b2x1bW47CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIE1vdmUgdG8gdGhlIG5leHQg
cG9zaXRpb24uCi0gICAgICAgICAgICBsb2dpY2FsT2Zmc2V0ICs9IHByb2dyZXNzaW9uSXNJbmxp
bmUgPyBjb2xSZWN0LndpZHRoKCkgOiBjb2xSZWN0LmhlaWdodCgpOwogICAgICAgICB9CiAgICAg
fQogCi0gICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOworICAgIHJldHVybiBsb2dpY2FsUG9p
bnQ7Cit9CisKK3ZvaWQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OnVwZGF0ZUhpdFRlc3RSZXN1bHQo
SGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCit7CisgICAg
aWYgKHJlc3VsdC5pbm5lck5vZGUoKSB8fCAhcGFyZW50KCktPmlzUmVuZGVyVmlldygpKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgLy8gTm90ZSB0aGlzIGRvZXMgbm90IHdvcmsgd2l0aCBj
b2x1bW4gc3BhbnMsIGJ1dCBvbmNlIHdlIGltcGxlbWVudCBSZW5kZXJQYWdlU2V0LCB3ZSBjYW4g
bW92ZSB0aGlzIGNvZGUKKyAgICAvLyBvdmVyIHRoZXJlIGluc3RlYWQgKGFuZCBzcGFucyBvZiBj
b3Vyc2Ugd29uJ3QgYmUgYWxsb3dlZCBvbiBwYWdlcykuCisgICAgTm9kZSogbm9kZSA9IGRvY3Vt
ZW50KCkuZG9jdW1lbnRFbGVtZW50KCk7CisgICAgaWYgKG5vZGUpIHsKKyAgICAgICAgcmVzdWx0
LnNldElubmVyTm9kZShub2RlKTsKKyAgICAgICAgaWYgKCFyZXN1bHQuaW5uZXJOb25TaGFyZWRO
b2RlKCkpCisgICAgICAgICAgICByZXN1bHQuc2V0SW5uZXJOb25TaGFyZWROb2RlKG5vZGUpOwor
ICAgICAgICBMYXlvdXRQb2ludCBhZGp1c3RlZFBvaW50ID0gdHJhbnNsYXRlUmVnaW9uUG9pbnRU
b0Zsb3dUaHJlYWQocG9pbnQpOworICAgICAgICB2aWV3KCkub2Zmc2V0Rm9yQ29udGVudHMoYWRq
dXN0ZWRQb2ludCk7CisgICAgICAgIHJlc3VsdC5zZXRMb2NhbFBvaW50KGFkanVzdGVkUG9pbnQp
OworICAgIH0KIH0KIAogY29uc3QgY2hhciogUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OnJlbmRlck5h
bWUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29s
dW1uU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uU2V0LmgJKHJldmlzaW9uIDE2NzgwNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNiArMTE5
LDE0IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHBhaW50Q29sdW1uUnVsZXMoUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KTsKIAorICAgIGVudW0gQ29sdW1uSGl0
VGVzdFRyYW5zbGF0aW9uTW9kZSB7CisgICAgICAgIENsYW1wSGl0VGVzdFRyYW5zbGF0aW9uVG9D
b2x1bW5zLAorICAgICAgICBEb05vdENsYW1wSGl0VGVzdFRyYW5zbGF0aW9uVG9Db2x1bW5zCisg
ICAgfTsKKyAgICBMYXlvdXRQb2ludCB0cmFuc2xhdGVSZWdpb25Qb2ludFRvRmxvd1RocmVhZChj
b25zdCBMYXlvdXRQb2ludCAmIGxvZ2ljYWxQb2ludCwgQ29sdW1uSGl0VGVzdFRyYW5zbGF0aW9u
TW9kZSA9IERvTm90Q2xhbXBIaXRUZXN0VHJhbnNsYXRpb25Ub0NvbHVtbnMpIGNvbnN0OworCisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJlc3VsdCYsIGNvbnN0
IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CisgICAgCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGRP
dmVyZmxvd0Zyb21DaGlsZHJlbigpIG92ZXJyaWRlOwogICAgIApJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MTY3ODEzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjcgQEAKKzIwMTQtMDQtMjUgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtOZXcgTXVsdGljb2x1bW5dIGZhc3QvbXVsdGljb2wvaGl0LXRlc3QtKiBsYXlvdXQg
dGVzdHMgYWxsIGZhaWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjA4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWltcGwv
aGl0LXRlc3QtYWJvdmUtb3ItYmVsb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L211bHRpY29sL25ld211bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1h
Ym92ZS1vci1iZWxvdy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L211bHRpY29sL25ld211
bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1ibG9jay1heGlzLWZsaXBwZWQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L211bHRpY29sL25ld211bHRpY29s
L2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1ibG9jay1heGlzLWZsaXBwZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgt
b2xkLWltcGwvaGl0LXRlc3QtZW5kLW9mLWNvbHVtbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvY29tcGFyZS13aXRoLW9sZC1pbXBsL2hp
dC10ZXN0LWVuZC1vZi1jb2x1bW4td2l0aC1saW5lLWhlaWdodC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvY29tcGFyZS13aXRoLW9sZC1p
bXBsL2hpdC10ZXN0LWVuZC1vZi1jb2x1bW4td2l0aC1saW5lLWhlaWdodC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L211bHRpY29sL25ld211bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1w
bC9oaXQtdGVzdC1lbmQtb2YtY29sdW1uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbXVs
dGljb2wvbmV3bXVsdGljb2wvY29tcGFyZS13aXRoLW9sZC1pbXBsL2hpdC10ZXN0LWZsb2F0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9j
b21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRlc3QtZmxvYXQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRl
c3QtZ2FwLWJldHdlZW4tcGFnZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L211bHRpY29sL25ld211bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1nYXAt
YmV0d2Vlbi1wYWdlcy1mbGlwcGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRlc3QtZ2Fw
LWJldHdlZW4tcGFnZXMtZmxpcHBlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L211bHRp
Y29sL25ld211bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1nYXAtYmV0d2Vl
bi1wYWdlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L211bHRpY29sL25ld211bHRpY29s
L2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1nYXAtYmxvY2stYXhpcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvY29tcGFyZS13
aXRoLW9sZC1pbXBsL2hpdC10ZXN0LWdhcC1ibG9jay1heGlzLmh0bWw6IEFkZGVkLgorCiAyMDE0
LTA0LTI1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04ocjE2Nzc5OSk6IEFTU0VSVElPTiBpbiBwYXJzZUdyaWRUZW1wbGF0ZVNob3J0
aGFuZCBpbiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLXRlbXBsYXRlLXNob3J0aGFuZC1nZXQt
c2V0Lmh0bWwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvY29t
cGFyZS13aXRoLW9sZC1pbXBsL2hpdC10ZXN0LWFib3ZlLW9yLWJlbG93LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2NvbXBh
cmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1hYm92ZS1vci1iZWxvdy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2NvbXBh
cmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1hYm92ZS1vci1iZWxvdy1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorMTIzCithYmMKK2RlZgorZ2hpCitqa2wKK21u
bworQ2hhcmFjdGVyIGF0IDE1MCwgMjUgaXMgMSBhcyBleHBlY3RlZC4KK0NoYXJhY3RlciBhdCAz
NTAsIDI1IGlzIGQgYXMgZXhwZWN0ZWQuCitDaGFyYWN0ZXIgYXQgNTUwLCAyNSBpcyBqIGFzIGV4
cGVjdGVkLgorQ2hhcmFjdGVyIGF0IDc1MCwgMjUgaXMgbSBhcyBleHBlY3RlZC4KK0NoYXJhY3Rl
ciBhdCAxNTAsIDI3NSBpcyBkIGFzIGV4cGVjdGVkLgorQ2hhcmFjdGVyIGF0IDM1MCwgMjc1IGlz
IGogYXMgZXhwZWN0ZWQuCitDaGFyYWN0ZXIgYXQgNTUwLCAyNzUgaXMgbSBhcyBleHBlY3RlZC4K
K0NoYXJhY3RlciBhdCA3NTAsIDI3NSBpcyBudWxsIGFzIGV4cGVjdGVkLgorQ2hhcmFjdGVyIGF0
IDE1MCwgNDc1IGlzIGQgYXMgZXhwZWN0ZWQuCitDaGFyYWN0ZXIgYXQgMzUwLCA0NzUgaXMgaiBh
cyBleHBlY3RlZC4KK0NoYXJhY3RlciBhdCA1NTAsIDQ3NSBpcyBtIGFzIGV4cGVjdGVkLgorQ2hh
cmFjdGVyIGF0IDc1MCwgNDc1IGlzIG51bGwgYXMgZXhwZWN0ZWQuCisKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvY29tcGFyZS13aXRoLW9sZC1pbXBsL2hpdC10
ZXN0LWFib3ZlLW9yLWJlbG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9t
dWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRlc3QtYWJvdmUt
b3ItYmVsb3cuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wv
bmV3bXVsdGljb2wvY29tcGFyZS13aXRoLW9sZC1pbXBsL2hpdC10ZXN0LWFib3ZlLW9yLWJlbG93
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MyBAQAorPHNjcmlwdD4KK2lmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVnaW9uQmFzZWRD
b2x1bW5zRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPGJvZHkgc3R5bGU9Im1hcmdpbjogMCI+
Cis8ZGl2IHN0eWxlPSJtYXJnaW46IDUwcHg7IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTsg
d2lkdGg6IDgwMHB4OyBoZWlnaHQ6IDIwMHB4OyAtd2Via2l0LWNvbHVtbi13aWR0aDoxODVweDsg
LXdlYmtpdC1jb2x1bW4tZ2FwOjE1cHg7IC13ZWJraXQtY29sdW1uLWZpbGw6YXV0bzsgY29sdW1u
LXdpZHRoOjE4NXB4OyBjb2x1bW4tZ2FwOjE1cHg7IGNvbHVtbi1maWxsOmF1dG87IGZvbnQtZmFt
aWx5OiBBaGVtOyBmb250LXNpemU6IDUwcHg7IGxpbmUtaGVpZ2h0OiAxOyI+CisgICAgMTIzPGRp
diBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgaGVpZ2h0OiA3MHB4OyI+PC9kaXY+YWJj
PGJyPmRlZjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsdWU7IGhlaWdodDogNjBweDsi
PjwvZGl2PmdoaTxicj5qa2w8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyBoZWln
aHQ6IDExMHB4OyI+PC9kaXY+bW5vPC9kaXY+Cis8cHJlIGlkPSJjb25zb2xlIiBzdHlsZT0iZGlz
cGxheTogbm9uZTsiPjwvcHJlPgorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBjaGFyYWN0ZXJBdFBv
aW50KHgsIHkpCisgICAgeworICAgICAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5jYXJldFJhbmdl
RnJvbVBvaW50KHgsIHkpOworICAgICAgICBpZiAocmFuZ2Uuc3RhcnRDb250YWluZXIubm9kZVR5
cGUgIT09IE5vZGUuVEVYVF9OT0RFKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAg
IGlmIChyYW5nZS5zdGFydE9mZnNldCA+PSByYW5nZS5zdGFydENvbnRhaW5lci5sZW5ndGgpCisg
ICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgcmV0dXJuIHJhbmdlLnN0YXJ0Q29udGFp
bmVyLmRhdGFbcmFuZ2Uuc3RhcnRPZmZzZXRdOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvZyht
ZXNzYWdlKQorICAgIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgIlxuIikpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3QoeCwgeSwgY2hhcmFjdGVyKQorICAgIHsKKyAgICAg
ICAgdmFyIGFjdHVhbENoYXJhY3RlciA9IGNoYXJhY3RlckF0UG9pbnQoeCwgeSk7CisgICAgICAg
IGlmIChjaGFyYWN0ZXIgPT09IGFjdHVhbENoYXJhY3RlcikKKyAgICAgICAgICAgIGxvZyAoIkNo
YXJhY3RlciBhdCAiICsgeCArICIsICIgKyB5ICsgIiBpcyAiICsgY2hhcmFjdGVyICsgIiBhcyBl
eHBlY3RlZC4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9nICgiRkFJTDogQ2hhcmFj
dGVyIGF0ICIgKyB4ICsgIiwgIiArIHkgKyAiIGlzICIgKyBhY3R1YWxDaGFyYWN0ZXIgKyAiLiBF
eHBlY3RlZCAiICsgY2hhcmFjdGVyICsgIi4iKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgdGVzdCgx
NTAsIDI1LCAiMSIpOworICAgIHRlc3QoMzUwLCAyNSwgImQiKTsKKyAgICB0ZXN0KDU1MCwgMjUs
ICJqIik7CisgICAgdGVzdCg3NTAsIDI1LCAibSIpOworCisgICAgdGVzdCgxNTAsIDI3NSwgImQi
KTsKKyAgICB0ZXN0KDM1MCwgMjc1LCAiaiIpOworICAgIHRlc3QoNTUwLCAyNzUsICJtIik7Cisg
ICAgdGVzdCg3NTAsIDI3NSwgbnVsbCk7CisKKyAgICB0ZXN0KDE1MCwgNDc1LCAiZCIpOworICAg
IHRlc3QoMzUwLCA0NzUsICJqIik7CisgICAgdGVzdCg1NTAsIDQ3NSwgIm0iKTsKKyAgICB0ZXN0
KDc1MCwgNDc1LCBudWxsKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
Iikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvY29tcGFyZS13aXRoLW9sZC1pbXBsL2hpdC10ZXN0
LWJsb2NrLWF4aXMtZmxpcHBlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRl
c3QtYmxvY2stYXhpcy1mbGlwcGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvY29tcGFyZS13aXRoLW9sZC1pbXBsL2hp
dC10ZXN0LWJsb2NrLWF4aXMtZmxpcHBlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSBAQAorUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0
aWNvbC9jb21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRlc3QtYmxvY2stYXhpcy1mbGlwcGVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9j
b21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRlc3QtYmxvY2stYXhpcy1mbGlwcGVkLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2NvbXBh
cmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1ibG9jay1heGlzLWZsaXBwZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRSZWdpb25CYXNlZENvbHVtbnNFbmFibGVk
KHRydWUpOworPC9zY3JpcHQ+Cis8ZGl2IHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogaG9y
aXpvbnRhbC1idDsiPgorICAgIDxkaXYgc3R5bGU9IgorICAgICAgICBtYXJnaW4tdG9wOiAzMDBw
eDsKKyAgICAgICAgb3V0bGluZTogZGFzaGVkIGxpZ2h0Ymx1ZTsKKyAgICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBib3JkZXItYm90dG9tOiAyNXB4
IHNvbGlkOworICAgICAgICAtd2Via2l0LWNvbHVtbi1heGlzOiB2ZXJ0aWNhbDsKKyAgICAgICAg
LXdlYmtpdC1jb2x1bW4tZ2FwOiA1MHB4OworICAgICI+CisgICAgICAgIDxkaXYgc3R5bGU9Imhl
aWdodDogMTAwcHg7IGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsiPjwvZGl2PgorICAgICAgICA8
ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBz
aWx2ZXI7Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgYmFja2dy
b3VuZC1jb2xvcjogc2lsdmVyOyI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxwIGlkPSJy
ZXN1bHQiPkZBSUw6IFRlc3QgZGlkIG5vdCBydW4uPC9wPgorPHNjcmlwdD4KKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAg
dmFyIGhpdENvbnRhaW5lciA9IGRvY3VtZW50LmNhcmV0UmFuZ2VGcm9tUG9pbnQoMjA4LCAyMDgp
LnN0YXJ0Q29udGFpbmVyOworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0Iik7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVy
VGV4dCA9IGhpdENvbnRhaW5lciA9PT0gdGFyZ2V0ID8gIlBBU1MiIDogIkZBSUwiOworPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2NvbXBhcmUt
d2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1lbmQtb2YtY29sdW1uLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2NvbXBhcmUtd2l0
aC1vbGQtaW1wbC9oaXQtdGVzdC1lbmQtb2YtY29sdW1uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvY29tcGFyZS13aXRo
LW9sZC1pbXBsL2hpdC10ZXN0LWVuZC1vZi1jb2x1bW4tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMiBAQAorTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQgY29uc2VjdGV0
dXIgZWxpdC4KK1BBU1MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbmV3bXVsdGlj
b2wvY29tcGFyZS13aXRoLW9sZC1pbXBsL2hpdC10ZXN0LWVuZC1vZi1jb2x1bW4td2l0aC1saW5l
LWhlaWdodC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tdWx0
aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRlc3QtZW5kLW9mLWNv
bHVtbi13aXRoLWxpbmUtaGVpZ2h0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvY29tcGFyZS13aXRoLW9sZC1pbXBsL2hp
dC10ZXN0LWVuZC1vZi1jb2x1bW4td2l0aC1saW5lLWhlaWdodC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw2IEBACitMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldAorUEFT
UworUEFTUworUEFTUworUEFTUworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25l
d211bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1lbmQtb2YtY29sdW1uLXdp
dGgtbGluZS1oZWlnaHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L211bHRp
Y29sL25ld211bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1lbmQtb2YtY29s
dW1uLXdpdGgtbGluZS1oZWlnaHQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvbXVsdGljb2wvbmV3bXVsdGljb2wvY29tcGFyZS13aXRoLW9sZC1pbXBsL2hpdC10ZXN0LWVu
ZC1vZi1jb2x1bW4td2l0aC1saW5lLWhlaWdodC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxl
ZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgorI2Zvbzpob3ZlciB7IGNvbG9yOnJlZCB9Cis8
L3N0eWxlPgorPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iCisgICAgb3V0bGluZTogZGFzaGVkIGxp
Z2h0Ymx1ZTsKKyAgICAtd2Via2l0LWNvbHVtbnM6IDI7CisgICAgLXdlYmtpdC1jb2x1bW4tZ2Fw
OiAwOworICAgIC13ZWJraXQtY29sdW1uLWZpbGw6IGF1dG87CisgICAgY29sdW1uczogMjsKKyAg
ICBjb2x1bW4tZ2FwOiAwOworICAgIGNvbHVtbi1maWxsOiBhdXRvOworICAgIHdpZHRoOiA0MDBw
eDsKKyAgICBoZWlnaHQ6IDgwcHg7CisgICAgZm9udDogMjBweCBhaGVtOworICAgIGxpbmUtaGVp
Z2h0OiAyOworIj5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgPHNwYW4gaWQ9ImZvbyI+YW1ldDwvc3Bh
bj48L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAg
ZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCisgICAgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3Nh
Z2UgKyAiXG4iKSk7CisgICAgfQorCisgICAgLy8gQ2xpY2tpbmcgYmVsb3cgdGhlIGxhc3QgbGlu
ZSBpbiB0aGUgZmlyc3QgY29sdW1uIHNob3VsZCBub3Qgc2VsZWN0IGFueXRoaW5nIGZyb20gdGhl
IGZpcnN0CisgICAgLy8gbGluZSBvbiB0aGUgc2Vjb25kIGNvbHVtbi4KKyAgICB2YXIgdGFyZ2V0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgIHZhciBoaXRPZmZzZXQg
PSBkb2N1bWVudC5jYXJldFJhbmdlRnJvbVBvaW50KHRhcmdldC5vZmZzZXRMZWZ0ICsgMTkwLCB0
YXJnZXQub2Zmc2V0VG9wICsgNzcpLnN0YXJ0T2Zmc2V0OworICAgIGxvZyhoaXRPZmZzZXQgPT09
IDExID8gIlBBU1MiIDogIkZBSUw6IGhpdCBvZmZzZXQgIiArIGhpdE9mZnNldCArICIuIik7CisK
KyAgICAvLyBDbGlja2luZyBhYm92ZSB0aGUgZmlyc3QgbGluZSBpbiB0aGUgc2Vjb25kIGNvbHVt
biBzaG91bGQgbm90IHNuYXAgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZS4KKyAgICBoaXRP
ZmZzZXQgPSBkb2N1bWVudC5jYXJldFJhbmdlRnJvbVBvaW50KHRhcmdldC5vZmZzZXRMZWZ0ICsg
MjUwLCB0YXJnZXQub2Zmc2V0VG9wICsgMikuc3RhcnRPZmZzZXQ7CisgICAgbG9nKGhpdE9mZnNl
dCA9PT0gMTQgPyAiUEFTUyIgOiAiRkFJTDogaGl0IG9mZnNldCAiICsgaGl0T2Zmc2V0ICsgIi4i
KTsKKworICAgIC8vIE5vdyB0ZXN0IHdpdGggYSBmbGlwcGVkIGxpbmVzIHdyaXRpbmcgbW9kZS4K
KyAgICB0YXJnZXQuc3R5bGUud2Via2l0V3JpdGluZ01vZGUgPSAiaG9yaXpvbnRhbC1idCI7CisK
KyAgICAvLyBDbGlja2luZyBhYm92ZSB0aGUgbGFzdCBsaW5lIGluIHRoZSBmaXJzdCBjb2x1bW4g
c2hvdWxkIG5vdCBzZWxlY3QgYW55dGhpbmcgZnJvbSB0aGUgZmlyc3QKKyAgICAvLyBsaW5lIG9u
IHRoZSBzZWNvbmQgY29sdW1uLgorICAgIGhpdE9mZnNldCA9IGRvY3VtZW50LmNhcmV0UmFuZ2VG
cm9tUG9pbnQodGFyZ2V0Lm9mZnNldExlZnQgKyAxOTAsIHRhcmdldC5vZmZzZXRUb3AgKyAzKS5z
dGFydE9mZnNldDsKKyAgICBsb2coaGl0T2Zmc2V0ID09PSAxMSA/ICJQQVNTIiA6ICJGQUlMOiBo
aXQgb2Zmc2V0ICIgKyBoaXRPZmZzZXQgKyAiLiIpOworCisgICAgLy8gQ2xpY2tpbmcgYmVsb3cg
dGhlIGZpcnN0IGxpbmUgaW4gdGhlIHNlY29uZCBjb2x1bW4gc2hvdWxkIG5vdCBzbmFwIHRvIHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUuCisgICAgaGl0T2Zmc2V0ID0gZG9jdW1lbnQuY2FyZXRS
YW5nZUZyb21Qb2ludCh0YXJnZXQub2Zmc2V0TGVmdCArIDI1MCwgdGFyZ2V0Lm9mZnNldFRvcCAr
IDc4KS5zdGFydE9mZnNldDsKKyAgICBsb2coaGl0T2Zmc2V0ID09PSAxNCA/ICJQQVNTIiA6ICJG
QUlMOiBoaXQgb2Zmc2V0ICIgKyBoaXRPZmZzZXQgKyAiLiIpOworPC9zY3JpcHQ+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1w
bC9oaXQtdGVzdC1lbmQtb2YtY29sdW1uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRlc3Qt
ZW5kLW9mLWNvbHVtbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tdWx0
aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRlc3QtZW5kLW9mLWNv
bHVtbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0UmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPGRp
diBpZD0idGFyZ2V0IiBzdHlsZT0iCisgICAgb3V0bGluZTogZGFzaGVkIGxpZ2h0Ymx1ZTsKKyAg
ICB3aWR0aDogNDAwcHg7CisgICAgLXdlYmtpdC1jb2x1bW5zOiAyOworICAgIC13ZWJraXQtY29s
dW1uLWdhcDogMDsKKyAgICAtd2Via2l0LWNvbHVtbi1maWxsOiBhdXRvOworICAgIGNvbHVtbnM6
IDI7CisgICAgY29sdW1uLWdhcDogMDsKKyAgICBjb2x1bW4tZmlsbDogYXV0bzsKKyAgICBoZWln
aHQ6IDkwcHg7CisgICAgZm9udDogMjBweCBhaGVtOworIj5Mb3JlbSBpcHN1bSBkb2xvciBzaXQg
YW1ldCBjb25zZWN0ZXR1ciBlbGl0LjwvZGl2PgorPHAgaWQ9InJlc3VsdCI+CisgICAgRkFJTDog
VGVzdCBkaWQgbm90IHJ1bi4KKzwvcD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIC8vIENsaWNraW5n
IGJlbG93IHRoZSBsYXN0IGxpbmUgaW4gdGhlIGZpcnN0IGNvbHVtbiBzaG91bGQgbm90IHNlbGVj
dCBhbnl0aGluZyBmcm9tIHRoZSBmaXJzdAorICAgIC8vIGxpbmUgb24gdGhlIHNlY29uZCBjb2x1
bW4uCisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsK
KyAgICB2YXIgaGl0T2Zmc2V0ID0gZG9jdW1lbnQuY2FyZXRSYW5nZUZyb21Qb2ludCh0YXJnZXQu
b2Zmc2V0TGVmdCArIDQ1LCB0YXJnZXQub2Zmc2V0VG9wICsgODcpLnN0YXJ0T2Zmc2V0OworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lclRleHQgPSBoaXRPZmZzZXQg
PT09IDI2IHx8IGhpdE9mZnNldCA9PT0gMjQgPyAiUEFTUyIgOiAiRkFJTDogaGl0IG9mZnNldCAi
ICsgaGl0T2Zmc2V0ICsgIi4iOworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L211
bHRpY29sL25ld211bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1mbG9hdC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdt
dWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRlc3QtZmxvYXQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9j
b21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRlc3QtZmxvYXQtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNSBAQAorVGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ0NzMwIEZsb2F0cyBpbnNpZGUgb2YgbXVsdGljb2wgZmFpbCB0byBo
aXQgdGVzdC4KKworVGhlIHJlZCBzcXVhcmUgc2hvdWxkIHR1cm4gZ3JlZW4gd2hlbiBob3ZlcmVk
LgorCitQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2Nv
bXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1mbG9hdC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvY29tcGFyZS13aXRoLW9sZC1pbXBs
L2hpdC10ZXN0LWZsb2F0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L211
bHRpY29sL25ld211bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1mbG9hdC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlZ2lvbkJhc2VkQ29s
dW1uc0VuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD48c3R5bGU+CisgICAgI3RhcmdldCB7IHdpZHRo
OiA1MHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgbWFyZ2luOiAxMHB4
OyB9CisgICAgI3RhcmdldDpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Cis8L3N0
eWxlPgorPHA+CisgICAgVGVzdCBmb3IgPGk+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ0NzMwIj5odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDQ3MzA8L2E+CisgICAgRmxvYXRzIGluc2lkZSBvZiBtdWx0aWNvbCBmYWlsIHRv
IGhpdCB0ZXN0PC9pPi4KKzwvcD4KKzxwPgorICAgIFRoZSByZWQgc3F1YXJlIHNob3VsZCB0dXJu
IGdyZWVuIHdoZW4gaG92ZXJlZC4KKzwvcD4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtY29sdW1uczoy
OyAtd2Via2l0LWNvbHVtbi1maWxsOmF1dG87IGNvbHVtbnM6MjsgY29sdW1uLWZpbGw6YXV0bzsg
bWFyZ2luOiAxMDA7IHdpZHRoOiAzMDA7IGhlaWdodDogMjAwOyBvdXRsaW5lOiBzb2xpZCBibGFj
azsiPgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMjUwcHg7IGJhY2tn
cm91bmQtY29sb3I6IHB1cnBsZTsiPjwvZGl2PgorICAgICAgICA8ZGl2IHN0eWxlPSJmbG9hdDog
cmlnaHQ7IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0eWVsbG93OyBtYXJnaW46IDVweDsiPgorICAg
ICAgICAgICAgPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9k
aXY+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+RkFJTDogVGVzdCBkaWQgbm90IHJ1bi48L2Rp
dj4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVzdWx0Iik7CisgICAgdmFyIGhpdEVsZW1lbnQgPSBkb2N1bWVudC5lbGVtZW50RnJv
bVBvaW50KDM3MCwgMjUwKTsKKyAgICBpZiAoaGl0RWxlbWVudCA9PT0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldCIpKQorICAgICAgICByZXN1bHQuaW5uZXJUZXh0ID0gIlBBU1MiOwor
ICAgIGVsc2UKKyAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9ICJGQUlMOiBIaXQgIiArIGhpdEVs
ZW1lbnQ7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbmV3bXVs
dGljb2wvY29tcGFyZS13aXRoLW9sZC1pbXBsL2hpdC10ZXN0LWdhcC1iZXR3ZWVuLXBhZ2VzLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211
bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1nYXAtYmV0d2Vlbi1wYWdlcy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25l
d211bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1nYXAtYmV0d2Vlbi1wYWdl
cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSBAQAorUEFTUwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWlt
cGwvaGl0LXRlc3QtZ2FwLWJldHdlZW4tcGFnZXMtZmxpcHBlZC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdp
dGgtb2xkLWltcGwvaGl0LXRlc3QtZ2FwLWJldHdlZW4tcGFnZXMtZmxpcHBlZC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29s
L2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9oaXQtdGVzdC1nYXAtYmV0d2Vlbi1wYWdlcy1mbGlwcGVk
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxIEBACitQQVNTCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1w
bC9oaXQtdGVzdC1nYXAtYmV0d2Vlbi1wYWdlcy1mbGlwcGVkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWlt
cGwvaGl0LXRlc3QtZ2FwLWJldHdlZW4tcGFnZXMtZmxpcHBlZC5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xk
LWltcGwvaGl0LXRlc3QtZ2FwLWJldHdlZW4tcGFnZXMtZmxpcHBlZC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjEgQEAKKzxodG1sPgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVnaW9uQmFzZWRDb2x1bW5zRW5h
YmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorICAgIDxib2R5IHN0eWxlPSJtYXJnaW46IDA7IC13ZWJr
aXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLWJ0OyI+CisgICAgICAgIDxkaXYgc3R5bGU9Imhl
aWdodDogNTAlOyI+PC9kaXY+CisgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogNTAlOyI+PC9k
aXY+CisgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImhlaWdodDogNTAlOyI+PC9kaXY+
CisgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogNTAlOyI+PC9kaXY+CisgICAgICAgIDxkaXYg
aWQ9InJlc3VsdCI+RkFJTDogVGVzdCBkaWQgbm90IHJ1biAoRHVtcFJlbmRlclRyZWUgb3IgV2Vi
S2l0VGVzdFJ1bm5lciBuZWVkZWQpPC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0UGFnaW5hdGlvbigiTGVm
dFRvUmlnaHRQYWdpbmF0ZWQiLCAyMCwgMTAwKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0gZG9jdW1lbnQuY2FyZXRSYW5nZUZy
b21Qb2ludCgxMTUsIDU1MCkuc3RhcnRDb250YWluZXIgPT09IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXQiKQorICAgICAgICAgICAgICAgICAgICA/ICJQQVNTIiA6ICJGQUlMIjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xk
LWltcGwvaGl0LXRlc3QtZ2FwLWJldHdlZW4tcGFnZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQtaW1wbC9o
aXQtdGVzdC1nYXAtYmV0d2Vlbi1wYWdlcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRl
c3QtZ2FwLWJldHdlZW4tcGFnZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxIEBA
Cis8aHRtbD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldFJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQodHJ1ZSk7Cis8L3Njcmlw
dD4KKyAgICA8Ym9keSBzdHlsZT0ibWFyZ2luOiAwOyI+CisgICAgICAgIDxkaXYgc3R5bGU9Imhl
aWdodDogNTAlOyI+PC9kaXY+CisgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogNTAlOyI+PC9k
aXY+CisgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImhlaWdodDogNTAlOyI+PC9kaXY+
CisgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogNTAlOyI+PC9kaXY+CisgICAgICAgIDxkaXYg
aWQ9InJlc3VsdCI+RkFJTDogVGVzdCBkaWQgbm90IHJ1biAoRHVtcFJlbmRlclRyZWUgb3IgV2Vi
S2l0VGVzdFJ1bm5lciBuZWVkZWQpPC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0UGFnaW5hdGlvbigiTGVm
dFRvUmlnaHRQYWdpbmF0ZWQiLCAyMCwgMTAwKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0gZG9jdW1lbnQuY2FyZXRSYW5nZUZy
b21Qb2ludCgxMTUsIDUwKS5zdGFydENvbnRhaW5lciA9PT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpCisgICAgICAgICAgICAgICAgICAgID8gIlBBU1MiIDogIkZBSUwiOworICAg
ICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2NvbXBhcmUtd2l0aC1vbGQt
aW1wbC9oaXQtdGVzdC1nYXAtYmxvY2stYXhpcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWlt
cGwvaGl0LXRlc3QtZ2FwLWJsb2NrLWF4aXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWlt
cGwvaGl0LXRlc3QtZ2FwLWJsb2NrLWF4aXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMyBAQAorUEFTUworCitMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCBjb25zZWN0
ZXR1ciBlbGl0LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9j
b21wYXJlLXdpdGgtb2xkLWltcGwvaGl0LXRlc3QtZ2FwLWJsb2NrLWF4aXMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2NvbXBhcmUtd2l0
aC1vbGQtaW1wbC9oaXQtdGVzdC1nYXAtYmxvY2stYXhpcy5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9jb21wYXJlLXdpdGgtb2xkLWlt
cGwvaGl0LXRlc3QtZ2FwLWJsb2NrLWF4aXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQo
dHJ1ZSk7Cis8L3NjcmlwdD4KKworPHAgaWQ9InJlc3VsdCI+CisgICAgRkFJTDogVGVzdCBkaWQg
bm90IHJ1bi4KKzwvcD4KKzxkaXYgaWQ9InRhcmdldCIgc3R5bGU9IgorICAgIG91dGxpbmU6IGRh
c2hlZCBsaWdodGJsdWU7CisgICAgd2lkdGg6IDIwMHB4OworICAgIC13ZWJraXQtY29sdW1uLWF4
aXM6IHZlcnRpY2FsOworICAgIC13ZWJraXQtY29sdW1uLWdhcDogMTAwcHg7CisgICAgaGVpZ2h0
OiA5MHB4OworICAgIGZvbnQ6IDIwcHggYWhlbTsKKyAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAw
LjUpOworIj5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCBjb25zZWN0ZXR1ciBlbGl0LjwvZGl2
PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworCisgICAgLy8gQ2xpY2tpbmcgaW4gdGhlIGdhcCBhZnRlciB0aGUg
Zmlyc3QgY29sdW1uIHNob3VsZCBub3Qgc2VsZWN0IGFueXRoaW5nIGZyb20gdGhlIHNlY29uZCBj
b2x1bW4uCisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KTsKKyAgICB2YXIgaGl0T2Zmc2V0ID0gZG9jdW1lbnQuY2FyZXRSYW5nZUZyb21Qb2ludCh0YXJn
ZXQub2Zmc2V0TGVmdCArIDQ1LCB0YXJnZXQub2Zmc2V0VG9wICsgMTE1KS5zdGFydE9mZnNldDsK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0gaGl0T2Zm
c2V0ID09PSAyNiB8fCBoaXRPZmZzZXQgPT09IDI0ID8gIlBBU1MiIDogIkZBSUw6IGhpdCBvZmZz
ZXQgIiArIGhpdE9mZnNldCArICIuIjsKKzwvc2NyaXB0Pgo=
</data>
<flag name="review"
          id="254585"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>