<?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>146549</bug_id>
          
          <creation_ts>2015-07-02 09:16:22 -0700</creation_ts>
          <short_desc>AX: &lt;details&gt; element should allow expand/close through AX API</short_desc>
          <delta_ts>2015-07-20 11:41:53 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>147115</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>achristensen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1106396</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-02 09:16:22 -0700</bug_when>
    <thetext>VoiceOver needs a way to expand/collapse (either AXPress or make expanded writable) this group along with a notification when it is expaneded or collapsed (probably ValueChanged)

&lt;rdar://problem/21636810&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106633</commentid>
    <comment_count>1</comment_count>
      <attachid>256081</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-02 23:25:48 -0700</bug_when>
    <thetext>Created attachment 256081
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106634</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-02 23:28:13 -0700</bug_when>
    <thetext>Attachment 256081 did not pass style-queue:


ERROR: Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:3099:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
ERROR: Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:3099:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106641</commentid>
    <comment_count>3</comment_count>
      <attachid>256083</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-02 23:47:26 -0700</bug_when>
    <thetext>Created attachment 256083
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107400</commentid>
    <comment_count>4</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2015-07-06 23:53:53 -0700</bug_when>
    <thetext>dupe of bug 108979?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108141</commentid>
    <comment_count>5</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-08 23:42:56 -0700</bug_when>
    <thetext>review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108173</commentid>
    <comment_count>6</comment_count>
      <attachid>256083</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2015-07-09 02:54:08 -0700</bug_when>
    <thetext>Comment on attachment 256083
patch

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

Looks good to me, just a minor comment below for consideration before landing

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1617
&gt; +        if ((expand &amp;&amp; !downcast&lt;HTMLDetailsElement&gt;(node())-&gt;isOpen())
&gt; +            || (!expand &amp;&amp; downcast&lt;HTMLDetailsElement&gt;(node())-&gt;isOpen()))
&gt; +            downcast&lt;HTMLDetailsElement&gt;(node())-&gt;toggleOpen();

Maybe you can put downcast&lt;HTMLDetailsElement&gt;(node()) in a variable so that you don&apos;t have to repeat that three times. Or just downcast&lt;HTMLDetailsElement&gt;(node())-&gt;isOpen(). Or both :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108266</commentid>
    <comment_count>7</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-09 11:40:29 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/186598</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108298</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-07-09 12:45:25 -0700</bug_when>
    <thetext>details-summary.html times out on all bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108327</commentid>
    <comment_count>9</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-07-09 13:40:14 -0700</bug_when>
    <thetext>This is timing out everywhere. Can you please fix it? Or should we deactivate the test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108328</commentid>
    <comment_count>10</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2015-07-09 13:42:20 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; details-summary.html times out on all bots.

Perhaps there&apos;s an issue with the notifications and finishJSTest() is never called? Maybe some missing bits in WKTR, Chris?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108455</commentid>
    <comment_count>11</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-09 16:42:19 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #8)
&gt; &gt; details-summary.html times out on all bots.
&gt; 
&gt; Perhaps there&apos;s an issue with the notifications and finishJSTest() is never
&gt; called? Maybe some missing bits in WKTR, Chris?

Build bot ran it fine, so i&apos;m looking into it now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108456</commentid>
    <comment_count>12</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-09 16:44:36 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; details-summary.html times out on all bots.
&gt; &gt; 
&gt; &gt; Perhaps there&apos;s an issue with the notifications and finishJSTest() is never
&gt; &gt; called? Maybe some missing bits in WKTR, Chris?
&gt; 
&gt; Build bot ran it fine, so i&apos;m looking into it now

Forgot a file

http://trac.webkit.org/changeset/186650</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108534</commentid>
    <comment_count>13</comment_count>
      <attachid>256083</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-09 22:26:12 -0700</bug_when>
    <thetext>Comment on attachment 256083
patch

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

&gt;&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1617
&gt;&gt; +            downcast&lt;HTMLDetailsElement&gt;(node())-&gt;toggleOpen();
&gt; 
&gt; Maybe you can put downcast&lt;HTMLDetailsElement&gt;(node()) in a variable so that you don&apos;t have to repeat that three times. Or just downcast&lt;HTMLDetailsElement&gt;(node())-&gt;isOpen(). Or both :)

I would have written this as:

if (is&lt;HTMLDetailsElement&gt;(node())) {
    auto&amp; details = downcast&lt;HTMLDetailsElement&gt;(*node());
    if (expand != details.isOpen())
        details.toggleOpen();
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108625</commentid>
    <comment_count>14</comment_count>
      <attachid>256083</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-07-10 09:24:05 -0700</bug_when>
    <thetext>Comment on attachment 256083
patch

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

&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1617
&gt;&gt;&gt; +            downcast&lt;HTMLDetailsElement&gt;(node())-&gt;toggleOpen();
&gt;&gt; 
&gt;&gt; Maybe you can put downcast&lt;HTMLDetailsElement&gt;(node()) in a variable so that you don&apos;t have to repeat that three times. Or just downcast&lt;HTMLDetailsElement&gt;(node())-&gt;isOpen(). Or both :)
&gt; 
&gt; I would have written this as:
&gt; 
&gt; if (is&lt;HTMLDetailsElement&gt;(node())) {
&gt;     auto&amp; details = downcast&lt;HTMLDetailsElement&gt;(*node());
&gt;     if (expand != details.isOpen())
&gt;         details.toggleOpen();
&gt; }

Yes, we should update it to be that!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108626</commentid>
    <comment_count>15</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-10 09:26:12 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Comment on attachment 256083 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256083&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1617
&gt; &gt;&gt;&gt; +            downcast&lt;HTMLDetailsElement&gt;(node())-&gt;toggleOpen();
&gt; &gt;&gt; 
&gt; &gt;&gt; Maybe you can put downcast&lt;HTMLDetailsElement&gt;(node()) in a variable so that you don&apos;t have to repeat that three times. Or just downcast&lt;HTMLDetailsElement&gt;(node())-&gt;isOpen(). Or both :)
&gt; &gt; 
&gt; &gt; I would have written this as:
&gt; &gt; 
&gt; &gt; if (is&lt;HTMLDetailsElement&gt;(node())) {
&gt; &gt;     auto&amp; details = downcast&lt;HTMLDetailsElement&gt;(*node());
&gt; &gt;     if (expand != details.isOpen())
&gt; &gt;         details.toggleOpen();
&gt; &gt; }
&gt; 
&gt; Yes, we should update it to be that!

On top of it. Thanks for the comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108762</commentid>
    <comment_count>16</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-10 14:15:11 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; Comment on attachment 256083 [details]
&gt; &gt; patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=256083&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1617
&gt; &gt; &gt;&gt;&gt; +            downcast&lt;HTMLDetailsElement&gt;(node())-&gt;toggleOpen();
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; Maybe you can put downcast&lt;HTMLDetailsElement&gt;(node()) in a variable so that you don&apos;t have to repeat that three times. Or just downcast&lt;HTMLDetailsElement&gt;(node())-&gt;isOpen(). Or both :)
&gt; &gt; &gt; 
&gt; &gt; &gt; I would have written this as:
&gt; &gt; &gt; 
&gt; &gt; &gt; if (is&lt;HTMLDetailsElement&gt;(node())) {
&gt; &gt; &gt;     auto&amp; details = downcast&lt;HTMLDetailsElement&gt;(*node());
&gt; &gt; &gt;     if (expand != details.isOpen())
&gt; &gt; &gt;         details.toggleOpen();
&gt; &gt; &gt; }
&gt; &gt; 
&gt; &gt; Yes, we should update it to be that!
&gt; 
&gt; On top of it. Thanks for the comments

http://trac.webkit.org/changeset/186679</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256081</attachid>
            <date>2015-07-02 23:25:48 -0700</date>
            <delta_ts>2015-07-02 23:47:26 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11295</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NjI1NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE1LTA3LTAyICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IDxkZXRhaWxzPiBl
bGVtZW50IHNob3VsZCBhbGxvdyBleHBhbmQvY2xvc2UgdGhyb3VnaCBBWCBBUEkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU0OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IEFYRXhwYW5kZWQg
dG8gYmUgd3JpdGVhYmxlIGZvciA8ZGV0YWlscz4gZWxlbWVudCwgd2hpY2gsIHdoZW4gc2V0Cisg
ICAgICAgIHdpbGwgdG9nZ2xlIHRoZSBvcGVuaW5nIGFuZCBjbG9zaW5nIG9mIHRoZSBlbGVtZW50
LiAKKyAgICAgICAgUG9zdCBhIG5vdGlmaWNhdGlvbiB3aGVuIHRoYXQgaGFwcGVucyBhcyB3ZWxs
LgorCisgICAgICAgIE1vZGlmaWVkIHRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2Rl
dGFpbHMtc3VtbWFyeS5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjpoaWVyYXJjaGljYWxMZXZlbCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6c2V0SXNFeHBhbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRVc2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0SW5uZXJUZXh0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6
OnN1cHBvcnRzUHJlc3NBY3Rpb24pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpjYW5TZXRFeHBhbmRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgt
W1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlJc0F0dHJpYnV0ZVNl
dHRhYmxlOl0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBfYWNj
ZXNzaWJpbGl0eVNldFZhbHVlOmZvckF0dHJpYnV0ZTpdKToKKyAgICAgICAgKiBodG1sL0hUTUxE
ZXRhaWxzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6
OnRvZ2dsZU9wZW4pOgorCiAyMDE1LTA3LTAyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBw
bGUuY29tPgogCiAgICAgICAgIEFYOiBTZWxlY3Rpb24gY2hhbmdlIGFzIGEgcmVzdWx0IG9mIGZv
Y3VzaW5nIGFuIGVsZW1lbnQgc2hvdWxkIGluY2x1ZGUgdGhhdCAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAJKHJldmlzaW9uIDE4NjIxMSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIkhUTUxEZXRhaWxzRWxlbWVudC5oIgogCiAjaWYg
RU5BQkxFKERFVEFJTFNfRUxFTUVOVCkKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5j
bHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSFRNTFN1bW1hcnlFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKQEAgLTE2MSw2ICsxNjIsMTAgQEAKIHZvaWQg
SFRNTERldGFpbHNFbGVtZW50Ojp0b2dnbGVPcGVuKCkKIHsKICAgICBzZXRBdHRyaWJ1dGUob3Bl
bkF0dHIsIG1faXNPcGVuID8gbnVsbEF0b20gOiBlbXB0eUF0b20pOworCisgICAgLy8gV2UgbmVl
ZCB0byBwb3N0IHRvIHRoZSBkb2N1bWVudCBiZWNhdXNlIHRvZ2dsaW5nIHRoaXMgZWxlbWVudCB3
aWxsIGRlbGV0ZSBpdC4KKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlv
bihudWxscHRyLCAmZG9jdW1lbnQoKSwgQVhPYmplY3RDYWNoZTo6QVhFeHBhbmRlZENoYW5nZWQp
OwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQko
cmV2aXNpb24gMTg2MjExKQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwOTYs
NyArMzA5Niw4IEBACiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzogTlNB
Y2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV0pCiAgICAgICAgIHJldHVybiBt
X29iamVjdC0+Y2FuU2V0U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZSgpOwogICAgIAotICAgIGlm
IChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5RGlzY2xvc2lu
Z0F0dHJpYnV0ZV0pCisgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0Fj
Y2Vzc2liaWxpdHlEaXNjbG9zaW5nQXR0cmlidXRlXSB8fAorICAgICAgICBbYXR0cmlidXRlTmFt
ZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5RXhwYW5kZWRBdHRyaWJ1dGVdKQogICAg
ICAgICByZXR1cm4gbV9vYmplY3QtPmNhblNldEV4cGFuZGVkQXR0cmlidXRlKCk7CiAgICAgCiAg
ICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxl
Y3RlZFJvd3NBdHRyaWJ1dGVdKQpAQCAtMzQyMyw3ICszNDI0LDcgQEAKICAgICAgICAgfSBlbHNl
IGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6IE5TQWNjZXNzaWJpbGl0eVZpc2li
bGVDaGFyYWN0ZXJSYW5nZUF0dHJpYnV0ZV0pIHsKICAgICAgICAgICAgIG1fb2JqZWN0LT5tYWtl
UmFuZ2VWaXNpYmxlKFBsYWluVGV4dFJhbmdlKHJhbmdlLmxvY2F0aW9uLCByYW5nZS5sZW5ndGgp
KTsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3Ry
aW5nOk5TQWNjZXNzaWJpbGl0eURpc2Nsb3NpbmdBdHRyaWJ1dGVdKQorICAgIH0gZWxzZSBpZiAo
W2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eURpc2Nsb3NpbmdB
dHRyaWJ1dGVdIHx8IFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxp
dHlFeHBhbmRlZEF0dHJpYnV0ZV0pCiAgICAgICAgIG1fb2JqZWN0LT5zZXRJc0V4cGFuZGVkKFtu
dW1iZXIgYm9vbFZhbHVlXSk7CiAgICAgZWxzZSBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRv
U3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkUm93c0F0dHJpYnV0ZV0pIHsKICAgICAgICAg
QWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVk
Um93czsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTg2MjExKQorKysgU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgwMCw2ICsyODAwLDkgQEAKIAogYm9vbCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpjYW5TZXRFeHBhbmRlZEF0dHJpYnV0ZSgpIGNvbnN0CiB7CisgICAgaWYg
KHJvbGVWYWx1ZSgpID09IERldGFpbHNSb2xlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAK
ICAgICAvLyBBbiBvYmplY3QgY2FuIGJlIGV4cGFuZGVkIGlmIGl0IGFyaWEtZXhwYW5kZWQgaXMg
dHJ1ZSBvciBmYWxzZS4KICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyaWFFeHBhbmRlZCA9IGdl
dEF0dHJpYnV0ZShhcmlhX2V4cGFuZGVkQXR0cik7CiAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdD
YXNlKGFyaWFFeHBhbmRlZCwgInRydWUiKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShhcmlhRXhwYW5k
ZWQsICJmYWxzZSIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCShyZXZpc2lvbiAxODYyMTEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMDQxLDYgKzIwNDEsOCBAQAogewogICAgIGlmIChpc0J1dHRvbigpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAocm9sZVZhbHVlKCkgPT0gRGV0YWlsc1JvbGUpCisgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIEVsZW1lbnQqIGFjdGlvbkVsZW1lbnQgPSB0aGlz
LT5hY3Rpb25FbGVtZW50KCk7CiAgICAgaWYgKCFhY3Rpb25FbGVtZW50KQpJbmRleDogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHAJKHJldmlzaW9uIDE4NjIxMSkKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0
NCw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEFyZWFFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRGV0YWls
c0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudEJhc2UuaCIKQEAg
LTE2MDgsNiArMTYwOSwxNSBAQAogICAgIHJldHVybiBsZXZlbDsKIH0KIAordm9pZCBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6c2V0SXNFeHBhbmRlZChib29sIGV4cGFuZCkKK3sKKyAgICBpZiAo
aXM8SFRNTERldGFpbHNFbGVtZW50Pihub2RlKCkpKSB7CisgICAgICAgIGlmICgoZXhwYW5kICYm
ICFkb3duY2FzdDxIVE1MRGV0YWlsc0VsZW1lbnQ+KG5vZGUoKSktPmlzT3BlbigpKQorICAgICAg
ICAgICAgfHwgKCFleHBhbmQgJiYgZG93bmNhc3Q8SFRNTERldGFpbHNFbGVtZW50Pihub2RlKCkp
LT5pc09wZW4oKSkpCisgICAgICAgICAgICBkb3duY2FzdDxIVE1MRGV0YWlsc0VsZW1lbnQ+KG5v
ZGUoKSktPnRvZ2dsZU9wZW4oKTsKKyAgICB9Cit9CisgICAgCiAvLyBXaGVuIGJ1aWxkaW5nIHRo
ZSB0ZXh0VW5kZXJFbGVtZW50IGZvciBhbiBvYmplY3QsIGRldGVybWluZSB3aGV0aGVyIG9yIG5v
dAogLy8gd2Ugc2hvdWxkIGluY2x1ZGUgdGhlIGlubmVyIHRleHQgb2YgdGhpcyBnaXZlbiBkZXNj
ZW5kYW50IG9iamVjdCBvciBza2lwIGl0Lgogc3RhdGljIGJvb2wgc2hvdWxkVXNlQWNjZXNzaWJp
bGl0eU9iamVjdElubmVyVGV4dChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFjY2Vzc2liaWxp
dHlUZXh0VW5kZXJFbGVtZW50TW9kZSBtb2RlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAkocmV2aXNpb24g
MTg2MjExKQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsNiArMTMwLDcgQEAKICAgICB2aXJ0dWFs
IHZvaWQgY29sb3JWYWx1ZShpbnQmIHIsIGludCYgZywgaW50JiBiKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIFN0cmluZyBhcmlhTGFiZWxlZEJ5QXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGhhc0F0dHJpYnV0ZXNSZXF1aXJlZEZvckluY2x1c2lvbigp
IGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBzZXRJc0V4cGFuZGVkKGJv
b2wpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBFbGVtZW50KiBhY3Rpb25FbGVtZW50KCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgRWxlbWVudCogbW91c2VCdXR0b25MaXN0ZW5lcihNb3VzZUJ1dHRv
bkxpc3RlbmVyUmVzdWx0RmlsdGVyID0gRXhjbHVkZUJvZHlFbGVtZW50KSBjb25zdDsKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE4NjI1NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA3LTAyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVp
emFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IDxkZXRhaWxzPiBlbGVtZW50IHNob3VsZCBh
bGxvdyBleHBhbmQvY2xvc2UgdGhyb3VnaCBBWCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvZGV0
YWlscy1zdW1tYXJ5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9kZXRhaWxzLXN1bW1hcnkuaHRtbDoKKwogMjAxNS0wNy0wMiAgRG91ZyBSdXNzZWxs
ICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogU2VsZWN0aW9uIGNoYW5nZSBh
cyBhIHJlc3VsdCBvZiBmb2N1c2luZyBhbiBlbGVtZW50IHNob3VsZCBpbmNsdWRlIHRoYXQgCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9kZXRhaWxzLXN1bW1h
cnktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L2RldGFpbHMtc3VtbWFyeS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4NjIx
MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2RldGFpbHMtc3Vt
bWFyeS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEyLDggKzEyLDE1IEBACiBQQVNT
IGRldGFpbHMxLmlzRXhwYW5kZWQgaXMgdHJ1ZQogUEFTUyBkZXRhaWxzMS5jaGlsZEF0SW5kZXgo
MCkucm9sZSBpcyAnQVhSb2xlOiBBWEdyb3VwJwogUEFTUyBkZXRhaWxzMS5jaGlsZEF0SW5kZXgo
MCkuc3Vicm9sZSBpcyAnQVhTdWJyb2xlOiBBWFN1bW1hcnknCitQQVNTIGRldGFpbHMxLmlzQXR0
cmlidXRlU2V0dGFibGUoJ0FYRXhwYW5kZWQnKSBpcyB0cnVlCitQQVNTIGRldGFpbHMxLmlzRXhw
YW5kZWQgaXMgZmFsc2UKK1BBU1MgZGV0YWlsczEuaXNFeHBhbmRlZCBpcyBmYWxzZQorUEFTUyBk
ZXRhaWxzMS5pc0V4cGFuZGVkIGlzIHRydWUKK1BBU1MgZGV0YWlsczEuaXNFeHBhbmRlZCBpcyB0
cnVlCiBQQVNTIGRldGFpbHMyLnN1YnJvbGUgaXMgJ0FYU3Vicm9sZTogQVhEZXRhaWxzJwogUEFT
UyBkZXRhaWxzMi5pc0V4cGFuZGVkIGlzIGZhbHNlCitSZWNlaXZlZCBBWEV4cGFuZGVkQ2hhbmdl
ZCBub3RpZmljYXRpb24gCitSZWNlaXZlZCBBWEV4cGFuZGVkQ2hhbmdlZCBub3RpZmljYXRpb24g
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2RldGFpbHMtc3VtbWFyeS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2RldGFpbHMtc3VtbWFyeS5odG1sCShyZXZpc2lvbiAxODYyMTEpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9kZXRhaWxzLXN1bW1hcnkuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMjIsMTUgKzIyLDUwIEBACiAKICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBz
b21lIGJhc2ljIGF0dHJpYnV0ZXMgYWJvdXQgdGhlIGRldGFpbHMgZWxlbWVudC4iKTsKIAorICAg
IHZhciBjYWxsYmFja0NvdW50ID0gMDsKICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAorICAgICAg
ICB2YXIgYm9keSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJ
bmRleCgwKTsKKyAgICAgICAgYm9keS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbihu
b3RpZmljYXRpb24pIHsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYRXhwYW5k
ZWRDaGFuZ2VkIikgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrQ291bnQrKzsKKyAgICAgICAg
ICAgICAgICBkZWJ1ZygiUmVjZWl2ZWQgIiArIG5vdGlmaWNhdGlvbiArICIgbm90aWZpY2F0aW9u
ICIpOworCisgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrQ291bnQgPT0gMikgeworICAgICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSk7CisKICAgICAgICAgdmFyIGRldGFpbHMxID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJkZXRhaWxzMSIpOwogICAgICAgICBz
aG91bGRCZSgiZGV0YWlsczEucm9sZSIsICInQVhSb2xlOiBBWEdyb3VwJyIpOwogICAgICAgICBz
aG91bGRCZSgiZGV0YWlsczEuc3Vicm9sZSIsICInQVhTdWJyb2xlOiBBWERldGFpbHMnIik7CiAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgiZGV0YWlsczEuaXNFeHBhbmRlZCIpOwogICAgICAgICBzaG91
bGRCZSgiZGV0YWlsczEuY2hpbGRBdEluZGV4KDApLnJvbGUiLCAiJ0FYUm9sZTogQVhHcm91cCci
KTsKICAgICAgICAgc2hvdWxkQmUoImRldGFpbHMxLmNoaWxkQXRJbmRleCgwKS5zdWJyb2xlIiwg
IidBWFN1YnJvbGU6IEFYU3VtbWFyeSciKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJkZXRhaWxz
MS5pc0F0dHJpYnV0ZVNldHRhYmxlKCdBWEV4cGFuZGVkJykiKTsKIAorICAgICAgICAvLyBUb2dn
bGUgdGhlIGV4cGFuZGVkIHN0YXRlLgorICAgICAgICBkZXRhaWxzMS5zZXRCb29sQXR0cmlidXRl
VmFsdWUoIkFYRXhwYW5kZWQiLCBmYWxzZSk7CisgICAgICAgIGRldGFpbHMxID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJkZXRhaWxzMSIpOworICAgICAg
ICBzaG91bGRCZUZhbHNlKCJkZXRhaWxzMS5pc0V4cGFuZGVkIik7CisKKyAgICAgICAgLy8gR2l2
ZSBpdCB0aGUgc2FtZSB2YWx1ZSB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgZXhwYW5kLgorICAgICAg
ICBkZXRhaWxzMS5zZXRCb29sQXR0cmlidXRlVmFsdWUoIkFYRXhwYW5kZWQiLCBmYWxzZSk7Cisg
ICAgICAgIGRldGFpbHMxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCJkZXRhaWxzMSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJkZXRhaWxzMS5pc0V4
cGFuZGVkIik7CisKKyAgICAgICAgLy8gU2V0IHRvIGV4cGFuZCBhZ2Fpbi4KKyAgICAgICAgZGV0
YWlsczEuc2V0Qm9vbEF0dHJpYnV0ZVZhbHVlKCJBWEV4cGFuZGVkIiwgdHJ1ZSk7CisgICAgICAg
IGRldGFpbHMxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlk
KCJkZXRhaWxzMSIpOworICAgICAgICBzaG91bGRCZVRydWUoImRldGFpbHMxLmlzRXhwYW5kZWQi
KTsKKworICAgICAgICAvLyBBbmQgZHVwbGljYXRlIHRoZSB0cnVlIHN0YXRlIHRvIG1ha2Ugc3Vy
ZSBpdCBkb2Vzbid0IHRvZ2dsZSBvZmYuCisgICAgICAgIGRldGFpbHMxLnNldEJvb2xBdHRyaWJ1
dGVWYWx1ZSgiQVhFeHBhbmRlZCIsIHRydWUpOworICAgICAgICBkZXRhaWxzMSA9IGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiZGV0YWlsczEiKTsKKyAgICAg
ICAgc2hvdWxkQmVUcnVlKCJkZXRhaWxzMS5pc0V4cGFuZGVkIik7CisKICAgICAgICAgdmFyIGRl
dGFpbHMyID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJk
ZXRhaWxzMiIpOwogICAgICAgICBzaG91bGRCZSgiZGV0YWlsczIuc3Vicm9sZSIsICInQVhTdWJy
b2xlOiBBWERldGFpbHMnIik7CiAgICAgICAgIHNob3VsZEJlRmFsc2UoImRldGFpbHMyLmlzRXhw
YW5kZWQiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256083</attachid>
            <date>2015-07-02 23:47:26 -0700</date>
            <delta_ts>2015-07-09 02:54:08 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11295</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NjI1NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE1LTA3LTAyICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IDxkZXRhaWxzPiBl
bGVtZW50IHNob3VsZCBhbGxvdyBleHBhbmQvY2xvc2UgdGhyb3VnaCBBWCBBUEkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU0OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IEFYRXhwYW5kZWQg
dG8gYmUgd3JpdGVhYmxlIGZvciA8ZGV0YWlscz4gZWxlbWVudCwgd2hpY2gsIHdoZW4gc2V0Cisg
ICAgICAgIHdpbGwgdG9nZ2xlIHRoZSBvcGVuaW5nIGFuZCBjbG9zaW5nIG9mIHRoZSBlbGVtZW50
LiAKKyAgICAgICAgUG9zdCBhIG5vdGlmaWNhdGlvbiB3aGVuIHRoYXQgaGFwcGVucyBhcyB3ZWxs
LgorCisgICAgICAgIE1vZGlmaWVkIHRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2Rl
dGFpbHMtc3VtbWFyeS5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjpoaWVyYXJjaGljYWxMZXZlbCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6c2V0SXNFeHBhbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRVc2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0SW5uZXJUZXh0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6
OnN1cHBvcnRzUHJlc3NBY3Rpb24pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpjYW5TZXRFeHBhbmRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgt
W1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlJc0F0dHJpYnV0ZVNl
dHRhYmxlOl0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBfYWNj
ZXNzaWJpbGl0eVNldFZhbHVlOmZvckF0dHJpYnV0ZTpdKToKKyAgICAgICAgKiBodG1sL0hUTUxE
ZXRhaWxzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6
OnRvZ2dsZU9wZW4pOgorCiAyMDE1LTA3LTAyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBw
bGUuY29tPgogCiAgICAgICAgIEFYOiBTZWxlY3Rpb24gY2hhbmdlIGFzIGEgcmVzdWx0IG9mIGZv
Y3VzaW5nIGFuIGVsZW1lbnQgc2hvdWxkIGluY2x1ZGUgdGhhdCAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAJKHJldmlzaW9uIDE4NjIxMSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIkhUTUxEZXRhaWxzRWxlbWVudC5oIgogCiAjaWYg
RU5BQkxFKERFVEFJTFNfRUxFTUVOVCkKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5j
bHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSFRNTFN1bW1hcnlFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKQEAgLTE2MSw2ICsxNjIsMTAgQEAKIHZvaWQg
SFRNTERldGFpbHNFbGVtZW50Ojp0b2dnbGVPcGVuKCkKIHsKICAgICBzZXRBdHRyaWJ1dGUob3Bl
bkF0dHIsIG1faXNPcGVuID8gbnVsbEF0b20gOiBlbXB0eUF0b20pOworCisgICAgLy8gV2UgbmVl
ZCB0byBwb3N0IHRvIHRoZSBkb2N1bWVudCBiZWNhdXNlIHRvZ2dsaW5nIHRoaXMgZWxlbWVudCB3
aWxsIGRlbGV0ZSBpdC4KKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlv
bihudWxscHRyLCAmZG9jdW1lbnQoKSwgQVhPYmplY3RDYWNoZTo6QVhFeHBhbmRlZENoYW5nZWQp
OwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQko
cmV2aXNpb24gMTg2MjExKQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwOTYs
NyArMzA5Niw4IEBACiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzogTlNB
Y2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV0pCiAgICAgICAgIHJldHVybiBt
X29iamVjdC0+Y2FuU2V0U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZSgpOwogICAgIAotICAgIGlm
IChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5RGlzY2xvc2lu
Z0F0dHJpYnV0ZV0pCisgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0Fj
Y2Vzc2liaWxpdHlEaXNjbG9zaW5nQXR0cmlidXRlXQorICAgICAgICB8fCBbYXR0cmlidXRlTmFt
ZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5RXhwYW5kZWRBdHRyaWJ1dGVdKQogICAg
ICAgICByZXR1cm4gbV9vYmplY3QtPmNhblNldEV4cGFuZGVkQXR0cmlidXRlKCk7CiAgICAgCiAg
ICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxl
Y3RlZFJvd3NBdHRyaWJ1dGVdKQpAQCAtMzQyMyw3ICszNDI0LDcgQEAKICAgICAgICAgfSBlbHNl
IGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6IE5TQWNjZXNzaWJpbGl0eVZpc2li
bGVDaGFyYWN0ZXJSYW5nZUF0dHJpYnV0ZV0pIHsKICAgICAgICAgICAgIG1fb2JqZWN0LT5tYWtl
UmFuZ2VWaXNpYmxlKFBsYWluVGV4dFJhbmdlKHJhbmdlLmxvY2F0aW9uLCByYW5nZS5sZW5ndGgp
KTsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3Ry
aW5nOk5TQWNjZXNzaWJpbGl0eURpc2Nsb3NpbmdBdHRyaWJ1dGVdKQorICAgIH0gZWxzZSBpZiAo
W2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eURpc2Nsb3NpbmdB
dHRyaWJ1dGVdIHx8IFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxp
dHlFeHBhbmRlZEF0dHJpYnV0ZV0pCiAgICAgICAgIG1fb2JqZWN0LT5zZXRJc0V4cGFuZGVkKFtu
dW1iZXIgYm9vbFZhbHVlXSk7CiAgICAgZWxzZSBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRv
U3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkUm93c0F0dHJpYnV0ZV0pIHsKICAgICAgICAg
QWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVk
Um93czsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTg2MjExKQorKysgU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgwMCw2ICsyODAwLDkgQEAKIAogYm9vbCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpjYW5TZXRFeHBhbmRlZEF0dHJpYnV0ZSgpIGNvbnN0CiB7CisgICAgaWYg
KHJvbGVWYWx1ZSgpID09IERldGFpbHNSb2xlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAK
ICAgICAvLyBBbiBvYmplY3QgY2FuIGJlIGV4cGFuZGVkIGlmIGl0IGFyaWEtZXhwYW5kZWQgaXMg
dHJ1ZSBvciBmYWxzZS4KICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyaWFFeHBhbmRlZCA9IGdl
dEF0dHJpYnV0ZShhcmlhX2V4cGFuZGVkQXR0cik7CiAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdD
YXNlKGFyaWFFeHBhbmRlZCwgInRydWUiKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShhcmlhRXhwYW5k
ZWQsICJmYWxzZSIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCShyZXZpc2lvbiAxODYyMTEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMDQxLDYgKzIwNDEsOCBAQAogewogICAgIGlmIChpc0J1dHRvbigpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAocm9sZVZhbHVlKCkgPT0gRGV0YWlsc1JvbGUpCisgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIEVsZW1lbnQqIGFjdGlvbkVsZW1lbnQgPSB0aGlz
LT5hY3Rpb25FbGVtZW50KCk7CiAgICAgaWYgKCFhY3Rpb25FbGVtZW50KQpJbmRleDogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHAJKHJldmlzaW9uIDE4NjIxMSkKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0
NCw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEFyZWFFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRGV0YWls
c0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudEJhc2UuaCIKQEAg
LTE2MDgsNiArMTYwOSwxNSBAQAogICAgIHJldHVybiBsZXZlbDsKIH0KIAordm9pZCBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6c2V0SXNFeHBhbmRlZChib29sIGV4cGFuZCkKK3sKKyAgICBpZiAo
aXM8SFRNTERldGFpbHNFbGVtZW50Pihub2RlKCkpKSB7CisgICAgICAgIGlmICgoZXhwYW5kICYm
ICFkb3duY2FzdDxIVE1MRGV0YWlsc0VsZW1lbnQ+KG5vZGUoKSktPmlzT3BlbigpKQorICAgICAg
ICAgICAgfHwgKCFleHBhbmQgJiYgZG93bmNhc3Q8SFRNTERldGFpbHNFbGVtZW50Pihub2RlKCkp
LT5pc09wZW4oKSkpCisgICAgICAgICAgICBkb3duY2FzdDxIVE1MRGV0YWlsc0VsZW1lbnQ+KG5v
ZGUoKSktPnRvZ2dsZU9wZW4oKTsKKyAgICB9Cit9CisgICAgCiAvLyBXaGVuIGJ1aWxkaW5nIHRo
ZSB0ZXh0VW5kZXJFbGVtZW50IGZvciBhbiBvYmplY3QsIGRldGVybWluZSB3aGV0aGVyIG9yIG5v
dAogLy8gd2Ugc2hvdWxkIGluY2x1ZGUgdGhlIGlubmVyIHRleHQgb2YgdGhpcyBnaXZlbiBkZXNj
ZW5kYW50IG9iamVjdCBvciBza2lwIGl0Lgogc3RhdGljIGJvb2wgc2hvdWxkVXNlQWNjZXNzaWJp
bGl0eU9iamVjdElubmVyVGV4dChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFjY2Vzc2liaWxp
dHlUZXh0VW5kZXJFbGVtZW50TW9kZSBtb2RlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAkocmV2aXNpb24g
MTg2MjExKQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsNiArMTMwLDcgQEAKICAgICB2aXJ0dWFs
IHZvaWQgY29sb3JWYWx1ZShpbnQmIHIsIGludCYgZywgaW50JiBiKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIFN0cmluZyBhcmlhTGFiZWxlZEJ5QXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGhhc0F0dHJpYnV0ZXNSZXF1aXJlZEZvckluY2x1c2lvbigp
IGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBzZXRJc0V4cGFuZGVkKGJv
b2wpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBFbGVtZW50KiBhY3Rpb25FbGVtZW50KCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgRWxlbWVudCogbW91c2VCdXR0b25MaXN0ZW5lcihNb3VzZUJ1dHRv
bkxpc3RlbmVyUmVzdWx0RmlsdGVyID0gRXhjbHVkZUJvZHlFbGVtZW50KSBjb25zdDsKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE4NjI1NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA3LTAyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVp
emFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IDxkZXRhaWxzPiBlbGVtZW50IHNob3VsZCBh
bGxvdyBleHBhbmQvY2xvc2UgdGhyb3VnaCBBWCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvZGV0
YWlscy1zdW1tYXJ5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9kZXRhaWxzLXN1bW1hcnkuaHRtbDoKKwogMjAxNS0wNy0wMiAgRG91ZyBSdXNzZWxs
ICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogU2VsZWN0aW9uIGNoYW5nZSBh
cyBhIHJlc3VsdCBvZiBmb2N1c2luZyBhbiBlbGVtZW50IHNob3VsZCBpbmNsdWRlIHRoYXQgCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9kZXRhaWxzLXN1bW1h
cnktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L2RldGFpbHMtc3VtbWFyeS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4NjIx
MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2RldGFpbHMtc3Vt
bWFyeS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEyLDggKzEyLDE1IEBACiBQQVNT
IGRldGFpbHMxLmlzRXhwYW5kZWQgaXMgdHJ1ZQogUEFTUyBkZXRhaWxzMS5jaGlsZEF0SW5kZXgo
MCkucm9sZSBpcyAnQVhSb2xlOiBBWEdyb3VwJwogUEFTUyBkZXRhaWxzMS5jaGlsZEF0SW5kZXgo
MCkuc3Vicm9sZSBpcyAnQVhTdWJyb2xlOiBBWFN1bW1hcnknCitQQVNTIGRldGFpbHMxLmlzQXR0
cmlidXRlU2V0dGFibGUoJ0FYRXhwYW5kZWQnKSBpcyB0cnVlCitQQVNTIGRldGFpbHMxLmlzRXhw
YW5kZWQgaXMgZmFsc2UKK1BBU1MgZGV0YWlsczEuaXNFeHBhbmRlZCBpcyBmYWxzZQorUEFTUyBk
ZXRhaWxzMS5pc0V4cGFuZGVkIGlzIHRydWUKK1BBU1MgZGV0YWlsczEuaXNFeHBhbmRlZCBpcyB0
cnVlCiBQQVNTIGRldGFpbHMyLnN1YnJvbGUgaXMgJ0FYU3Vicm9sZTogQVhEZXRhaWxzJwogUEFT
UyBkZXRhaWxzMi5pc0V4cGFuZGVkIGlzIGZhbHNlCitSZWNlaXZlZCBBWEV4cGFuZGVkQ2hhbmdl
ZCBub3RpZmljYXRpb24gCitSZWNlaXZlZCBBWEV4cGFuZGVkQ2hhbmdlZCBub3RpZmljYXRpb24g
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2RldGFpbHMtc3VtbWFyeS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2RldGFpbHMtc3VtbWFyeS5odG1sCShyZXZpc2lvbiAxODYyMTEpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9kZXRhaWxzLXN1bW1hcnkuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMjIsMTUgKzIyLDUwIEBACiAKICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBz
b21lIGJhc2ljIGF0dHJpYnV0ZXMgYWJvdXQgdGhlIGRldGFpbHMgZWxlbWVudC4iKTsKIAorICAg
IHZhciBjYWxsYmFja0NvdW50ID0gMDsKICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAorICAgICAg
ICB2YXIgYm9keSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJ
bmRleCgwKTsKKyAgICAgICAgYm9keS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbihu
b3RpZmljYXRpb24pIHsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYRXhwYW5k
ZWRDaGFuZ2VkIikgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrQ291bnQrKzsKKyAgICAgICAg
ICAgICAgICBkZWJ1ZygiUmVjZWl2ZWQgIiArIG5vdGlmaWNhdGlvbiArICIgbm90aWZpY2F0aW9u
ICIpOworCisgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrQ291bnQgPT0gMikgeworICAgICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSk7CisKICAgICAgICAgdmFyIGRldGFpbHMxID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJkZXRhaWxzMSIpOwogICAgICAgICBz
aG91bGRCZSgiZGV0YWlsczEucm9sZSIsICInQVhSb2xlOiBBWEdyb3VwJyIpOwogICAgICAgICBz
aG91bGRCZSgiZGV0YWlsczEuc3Vicm9sZSIsICInQVhTdWJyb2xlOiBBWERldGFpbHMnIik7CiAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgiZGV0YWlsczEuaXNFeHBhbmRlZCIpOwogICAgICAgICBzaG91
bGRCZSgiZGV0YWlsczEuY2hpbGRBdEluZGV4KDApLnJvbGUiLCAiJ0FYUm9sZTogQVhHcm91cCci
KTsKICAgICAgICAgc2hvdWxkQmUoImRldGFpbHMxLmNoaWxkQXRJbmRleCgwKS5zdWJyb2xlIiwg
IidBWFN1YnJvbGU6IEFYU3VtbWFyeSciKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJkZXRhaWxz
MS5pc0F0dHJpYnV0ZVNldHRhYmxlKCdBWEV4cGFuZGVkJykiKTsKIAorICAgICAgICAvLyBUb2dn
bGUgdGhlIGV4cGFuZGVkIHN0YXRlLgorICAgICAgICBkZXRhaWxzMS5zZXRCb29sQXR0cmlidXRl
VmFsdWUoIkFYRXhwYW5kZWQiLCBmYWxzZSk7CisgICAgICAgIGRldGFpbHMxID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJkZXRhaWxzMSIpOworICAgICAg
ICBzaG91bGRCZUZhbHNlKCJkZXRhaWxzMS5pc0V4cGFuZGVkIik7CisKKyAgICAgICAgLy8gR2l2
ZSBpdCB0aGUgc2FtZSB2YWx1ZSB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgZXhwYW5kLgorICAgICAg
ICBkZXRhaWxzMS5zZXRCb29sQXR0cmlidXRlVmFsdWUoIkFYRXhwYW5kZWQiLCBmYWxzZSk7Cisg
ICAgICAgIGRldGFpbHMxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCJkZXRhaWxzMSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJkZXRhaWxzMS5pc0V4
cGFuZGVkIik7CisKKyAgICAgICAgLy8gU2V0IHRvIGV4cGFuZCBhZ2Fpbi4KKyAgICAgICAgZGV0
YWlsczEuc2V0Qm9vbEF0dHJpYnV0ZVZhbHVlKCJBWEV4cGFuZGVkIiwgdHJ1ZSk7CisgICAgICAg
IGRldGFpbHMxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlk
KCJkZXRhaWxzMSIpOworICAgICAgICBzaG91bGRCZVRydWUoImRldGFpbHMxLmlzRXhwYW5kZWQi
KTsKKworICAgICAgICAvLyBBbmQgZHVwbGljYXRlIHRoZSB0cnVlIHN0YXRlIHRvIG1ha2Ugc3Vy
ZSBpdCBkb2Vzbid0IHRvZ2dsZSBvZmYuCisgICAgICAgIGRldGFpbHMxLnNldEJvb2xBdHRyaWJ1
dGVWYWx1ZSgiQVhFeHBhbmRlZCIsIHRydWUpOworICAgICAgICBkZXRhaWxzMSA9IGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiZGV0YWlsczEiKTsKKyAgICAg
ICAgc2hvdWxkQmVUcnVlKCJkZXRhaWxzMS5pc0V4cGFuZGVkIik7CisKICAgICAgICAgdmFyIGRl
dGFpbHMyID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJk
ZXRhaWxzMiIpOwogICAgICAgICBzaG91bGRCZSgiZGV0YWlsczIuc3Vicm9sZSIsICInQVhTdWJy
b2xlOiBBWERldGFpbHMnIik7CiAgICAgICAgIHNob3VsZEJlRmFsc2UoImRldGFpbHMyLmlzRXhw
YW5kZWQiKTsK
</data>
<flag name="review"
          id="281168"
          type_id="1"
          status="+"
          setter="mario"
    />
          </attachment>
      

    </bug>

</bugzilla>