<?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>129039</bug_id>
          
          <creation_ts>2014-02-19 05:16:07 -0800</creation_ts>
          <short_desc>[ATK] Wrong selected element at a given index in a list box.</short_desc>
          <delta_ts>2016-11-01 10:01:09 -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>129970</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Krzysztof Czech">k.czech</reporter>
          <assigned_to name="Krzysztof Czech">k.czech</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dmazzoni</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>982325</commentid>
    <comment_count>0</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-02-19 05:16:07 -0800</bug_when>
    <thetext>The selected element at a given index was wrong. Current implementation tried to get one from collection of all selected elements instead of collection of real children of a listbox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982326</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-19 05:16:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/16108701&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982329</commentid>
    <comment_count>2</comment_count>
      <attachid>224626</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-02-19 05:36:41 -0800</bug_when>
    <thetext>Created attachment 224626
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982333</commentid>
    <comment_count>3</comment_count>
      <attachid>224628</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-02-19 05:44:15 -0800</bug_when>
    <thetext>Created attachment 224628
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982361</commentid>
    <comment_count>4</comment_count>
      <attachid>224628</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-02-19 09:08:10 -0800</bug_when>
    <thetext>Comment on attachment 224628
patch

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

&gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:113
&gt; +            return 0;

return nullptr

&gt; Tools/DumpRenderTree/AccessibilityUIElement.cpp:1224
&gt; +        indexNumber = JSValueToNumber(context, arguments[0], exception);

you might want to return early after you set indexNumber if it still equals -1, because once you cast to unsigned in removeSelectionChild, it will make it a UINT_MAX

&gt; Tools/DumpRenderTree/AccessibilityUIElement.h:152
&gt; +    void removeSelectionChildAtIndex(unsigned) const;

this should probably just be removeSelectionAtIndex. I feel like the &quot;selectionChild&quot; sounds strange in a &quot;remove&quot; context</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982772</commentid>
    <comment_count>5</comment_count>
      <attachid>224742</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-02-20 03:33:35 -0800</bug_when>
    <thetext>Created attachment 224742
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982773</commentid>
    <comment_count>6</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-02-20 03:34:48 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:113
&gt; &gt; +            return 0;
&gt; 
&gt; return nullptr
Done, corrected other places as well.
&gt; 
&gt; &gt; Tools/DumpRenderTree/AccessibilityUIElement.cpp:1224
&gt; &gt; +        indexNumber = JSValueToNumber(context, arguments[0], exception);
&gt; 
&gt; you might want to return early after you set indexNumber if it still equals -1, because once you cast to unsigned in removeSelectionChild, it will make it a UINT_MAX
Done.
&gt; 
&gt; &gt; Tools/DumpRenderTree/AccessibilityUIElement.h:152
&gt; &gt; +    void removeSelectionChildAtIndex(unsigned) const;
&gt; 
&gt; this should probably just be removeSelectionAtIndex. I feel like the &quot;selectionChild&quot; sounds strange in a &quot;remove&quot; context
Done.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982817</commentid>
    <comment_count>7</comment_count>
      <attachid>224752</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-02-20 06:21:39 -0800</bug_when>
    <thetext>Created attachment 224752
patch - fixed win build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983834</commentid>
    <comment_count>8</comment_count>
      <attachid>224752</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-24 01:25:48 -0800</bug_when>
    <thetext>Comment on attachment 224752
patch - fixed win build

Clearing flags on attachment: 224752

Committed r164577: &lt;http://trac.webkit.org/changeset/164577&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983835</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-24 01:25:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983960</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-02-24 11:15:16 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 224752 [details])
&gt; Clearing flags on attachment: 224752
&gt; 
&gt; Committed r164577: &lt;http://trac.webkit.org/changeset/164577&gt;

This broke the iOS DumpRenderTree build because AccessibilityUIElementMac.mm is excluded when building DumpRenderTree and neither AccessibilityUIElement::selectedChildAtIndex() nor AccessibilityUIElement::selectedChildrenCount() are defined in AccessibilityUIElementIOS.mm.

Build fix committed in &lt;http://trac.webkit.org/changeset/164595&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246915</commentid>
    <comment_count>11</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-11-01 10:01:09 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; The selected element at a given index was wrong. Current implementation
&gt; tried to get one from collection of all selected elements instead of
&gt; collection of real children of a listbox.

A git blame led me here.

According to the documentation [1] atk_selection_ref_selection() takes &quot;a gint specifying the index in the selection set. (e.g. the ith selection as opposed to the ith child).&quot;

[1] https://developer.gnome.org/atk/stable/AtkSelection.html#atk-selection-ref-selection</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224626</attachid>
            <date>2014-02-19 05:36:41 -0800</date>
            <delta_ts>2014-02-19 05:44:15 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a11y-selection.patch</filename>
            <type>text/plain</type>
            <size>19483</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYjJkOTY1Li5iZjJjODQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDIt
MTkgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FU
S10gV3Jvbmcgc2VsZWN0ZWQgZWxlbWVudCBhdCBhIGdpdmVuIGluZGV4IGluIGEgbGlzdCBib3gu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwMzkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9wb3Nl
ZCB0ZXN0IHRoYXQgY2hlY2tzIHdoZXRoZXIgY29ycmVjdCBlbGVtZW50IGF0IGEgZ2l2ZW4gaW5k
ZXggaXMgcmV0cmlldmVkLgorICAgICAgICBBbHNvIHRlc3Rpbmcgc29tZSBvdGhlciBzY2VuYXJp
b3Mgc3VjaCBhcyByZW1vdmluZyBzZWxlY3RlZCByb3dzIGFuZCBjb3VudGluZyBhbGwKKyAgICAg
ICAgc2VsZWN0ZWQgcm93cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1l
bnQtYXQtaW5kZXgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zOiBTa2lwcGluZyB0ZXN0IGluIE1hYywgbWlzc2luZyBpbXBs
ZW1lbnRhdGlvbi4KKwogMjAxNC0wMi0xOCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBXaW5kb3dzIGdhcmRlbmluZzogQWRkIGFubm90YXRpb25zIGZvciBE
ZWJ1ZyBjYXNlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWxlY3Qt
ZWxlbWVudC1hdC1pbmRleC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5iNmZiMjY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyNyBAQAorCitUZXN0cyB0aGF0IGNoZWNrcyB3aGV0aGVyIHNldHRpbmcgc2VsZWN0aW9u
IGF0IHRoZSBnaXZlbiBpbmRleCB3b3JrcyBjb3JyZWN0bHkKKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMg
MAorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCBpcyAxCitQQVNTIG9w
dGlvbjEuaXNTZWxlY3RlZCBpcyB0cnVlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGls
ZEF0SW5kZXgoMCkuaXNFcXVhbChvcHRpb24xKSBpcyB0cnVlCitQQVNTIHNlbGVjdEVsZW1lbnQu
c2VsZWN0ZWRDaGlsZHJlbkNvdW50IGlzIDIKK1BBU1Mgb3B0aW9uMi5pc1NlbGVjdGVkIGlzIHRy
dWUKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgxKS5pc0VxdWFsKG9w
dGlvbjIpIGlzIHRydWUKK1BBU1Mgb3B0aW9uMy5pc1NlbGVjdGVkIGlzIGZhbHNlCitQQVNTIHNl
bGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IGlzIDMKK1BBU1Mgb3B0aW9uNC5pc1Nl
bGVjdGVkIGlzIHRydWUKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgz
KS5pc0VxdWFsKG9wdGlvbjQpIGlzIHRydWUKK1BBU1Mgb3B0aW9uNC5pc1NlbGVjdGVkIGlzIGZh
bHNlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IGlzIDIKK1BBU1Mg
b3B0aW9uMi5pc1NlbGVjdGVkIGlzIGZhbHNlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRD
aGlsZHJlbkNvdW50IGlzIDEKK1BBU1Mgb3B0aW9uMS5pc1NlbGVjdGVkIGlzIGZhbHNlCitQQVNT
IHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZjYzhhNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXguaHRtbApAQCAt
MCwwICsxLDY3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxzZWxlY3QgaWQ9
Imdyb3VwIiBtdWx0aXBsZT0ibXVsdGlwbGUiPgorICAgIDxvcHRpb24+T3B0aW9uIDE8L29wdGlv
bj4KKyAgICA8b3B0aW9uPk9wdGlvbiAyPC9vcHRpb24+CisgICAgPG9wdGlvbj5PcHRpb24gMzwv
b3B0aW9uPgorICAgIDxvcHRpb24+T3B0aW9uIDQ8L29wdGlvbj4KKzwvc2VsZWN0PgorCis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0
PgorCisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY2hlY2tzIHdoZXRoZXIgc2V0dGluZyBz
ZWxlY3Rpb24gYXQgdGhlIGdpdmVuIGluZGV4IHdvcmtzIGNvcnJlY3RseSIpOworCisgICAgaWYg
KHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZ3JvdXAiKS5mb2N1cygpOworICAgICAgICB2YXIgc2VsZWN0RWxlbWVudCA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworCisgICAgICAgIHNob3Vs
ZEJlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCIsICIwIik7CisKKyAgICAg
ICAgdmFyIG9wdGlvbjEgPSBzZWxlY3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAg
dmFyIG9wdGlvbjIgPSBzZWxlY3RFbGVtZW50LmNoaWxkQXRJbmRleCgxKTsKKyAgICAgICAgdmFy
IG9wdGlvbjMgPSBzZWxlY3RFbGVtZW50LmNoaWxkQXRJbmRleCgyKTsKKyAgICAgICAgdmFyIG9w
dGlvbjQgPSBzZWxlY3RFbGVtZW50LmNoaWxkQXRJbmRleCgzKTsKKworICAgICAgICBzZWxlY3RF
bGVtZW50LnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KDApOworICAgICAgICBzaG91bGRCZSgic2Vs
ZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMSIpOworICAgICAgICBzaG91bGRC
ZVRydWUoIm9wdGlvbjEuaXNTZWxlY3RlZCIpOworICAgICAgICBzaG91bGRCZVRydWUoInNlbGVj
dEVsZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5kZXgoMCkuaXNFcXVhbChvcHRpb24xKSIpOworCisg
ICAgICAgIHNlbGVjdEVsZW1lbnQuc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMSk7CisgICAgICAg
IHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCIsICIyIik7Cisg
ICAgICAgIHNob3VsZEJlVHJ1ZSgib3B0aW9uMi5pc1NlbGVjdGVkIik7CisgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgxKS5pc0VxdWFsKG9w
dGlvbjIpIik7CisKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgib3B0aW9uMy5pc1NlbGVjdGVkIik7
CisKKyAgICAgICAgc2VsZWN0RWxlbWVudC5zZXRTZWxlY3RlZENoaWxkQXRJbmRleCgzKTsKKyAg
ICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjMi
KTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJvcHRpb240LmlzU2VsZWN0ZWQiKTsKKyAgICAgICAg
c2hvdWxkQmVUcnVlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdEluZGV4KDMpLmlzRXF1
YWwob3B0aW9uNCkiKTsKKworICAgICAgICBzZWxlY3RFbGVtZW50LnJlbW92ZVNlbGVjdGlvbkNo
aWxkQXRJbmRleCgzKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgib3B0aW9uNC5pc1NlbGVjdGVk
Iik7CisgICAgICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3Vu
dCIsICIyIik7CisKKyAgICAgICAgc2VsZWN0RWxlbWVudC5yZW1vdmVTZWxlY3Rpb25DaGlsZEF0
SW5kZXgoMSk7CisgICAgICAgIHNob3VsZEJlRmFsc2UoIm9wdGlvbjIuaXNTZWxlY3RlZCIpOwor
ICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAi
MSIpOworCisgICAgICAgIHNlbGVjdEVsZW1lbnQucmVtb3ZlU2VsZWN0aW9uQ2hpbGRBdEluZGV4
KDApOworICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRpb24xLmlzU2VsZWN0ZWQiKTsKKyAgICAg
ICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjAiKTsK
K30KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDIyNzA0MS4uYjgwMDI4MiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ5LDYgKzQ5LDggQEAgYWNjZXNzaWJp
bGl0eS9tdWx0aXNlbGVjdC1saXN0LXJlcG9ydHMtYWN0aXZlLW9wdGlvbi5odG1sCiAKICMgaXNJ
bmRldGVybWluYXRlIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBtYWMKIHdlYmtpdC5vcmcvYi8xMjU4
NTUgYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrZWQtbWl4ZWQtdmFsdWUuaHRtbCBbIFNraXAgXQor
IyBNaXNzaW5nIGltcGxlbWVudGF0aW9uIG9mIHNvbWUgZnVuY3Rpb25zIGluIG1hYy4KK3dlYmtp
dC5vcmcvYi8xMjkwMzkgYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC5odG1s
IFsgU2tpcCBdCiAKICMgYXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXggaXMgbm90IGltcGxlbWVu
dGVkIGluIG1hYwogd2Via2l0Lm9yZy9iLzEyNzkwOCBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJv
bHMuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRiNTMwM2QuLjJmZmNiNzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNC0wMi0xOSAgS3J6eXN6dG9mIEN6ZWNoICA8ay5jemVj
aEBzYW1zdW5nLmNvbT4KKworICAgICAgICBbQVRLXSBXcm9uZyBzZWxlY3RlZCBlbGVtZW50IGF0
IGEgZ2l2ZW4gaW5kZXggaW4gYSBsaXN0IGJveC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTAzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQt
YXQtaW5kZXguaHRtbAorCisgICAgICAgIFRoZSBzZWxlY3RlZCBlbGVtZW50IGF0IGEgZ2l2ZW4g
aW5kZXggd2FzIHdyb25nLiBPbmUgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYW1vbmcgdGhlCisgICAg
ICAgIGFsbCBjaGlsZHJlbiBvZiBhIGxpc3QgYm94LCBub3Qgb25seSBzZWxlY3RlZCBvbmVzLgor
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVNl
bGVjdGlvbi5jcHA6CisgICAgICAgIChvcHRpb25Gcm9tU2VsZWN0aW9uKToKKwogMjAxNC0wMi0x
OSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IFBM
QVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgYW5kIHNpbWlsYXIgZXhwcmVzc2lvbnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2li
bGVJbnRlcmZhY2VTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9h
dGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVNlbGVjdGlvbi5jcHAKaW5kZXggY2I3YTNjYy4u
ZTFmNWQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2Vi
S2l0QWNjZXNzaWJsZUludGVyZmFjZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVNlbGVjdGlvbi5jcHAK
QEAgLTEwMiwyOCArMTAyLDI0IEBAIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvcHRpb25G
cm9tU2VsZWN0aW9uKEF0a1NlbGVjdGlvbiogc2VsZWN0aW9uLCBnaW50IGluCiAgICAgaWYgKCFj
b3JlU2VsZWN0aW9uIHx8ICFjb3JlU2VsZWN0aW9uLT5pc0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QoKSB8fCBpbmRleCA8IDApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgQWNjZXNzaWJpbGl0
eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkSXRlbXM7Ci0gICAg
aWYgKGNvcmVTZWxlY3Rpb24tPmlzTGlzdEJveCgpKQotICAgICAgICBjb3JlU2VsZWN0aW9uLT5z
ZWxlY3RlZENoaWxkcmVuKHNlbGVjdGVkSXRlbXMpOwotICAgIGVsc2UgaWYgKGNvcmVTZWxlY3Rp
b24tPmlzTWVudUxpc3QoKSkgeworICAgIGludCBzZWxlY3RlZEluZGV4ID0gaW5kZXg7CisgICAg
aWYgKGNvcmVTZWxlY3Rpb24tPmlzTWVudUxpc3QoKSkgewogICAgICAgICBSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyID0gY29yZVNlbGVjdGlvbi0+cmVuZGVyZXIoKTsKICAgICAgICAgaWYgKCFyZW5k
ZXJlcikKICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIEhUTUxTZWxlY3RFbGVtZW50
KiBzZWxlY3ROb2RlID0gdG9IVE1MU2VsZWN0RWxlbWVudChyZW5kZXJlci0+bm9kZSgpKTsKLSAg
ICAgICAgaW50IHNlbGVjdGVkSW5kZXggPSBzZWxlY3ROb2RlLT5zZWxlY3RlZEluZGV4KCk7Ci0g
ICAgICAgIGNvbnN0IFZlY3RvcjxIVE1MRWxlbWVudCo+IGxpc3RJdGVtcyA9IHNlbGVjdE5vZGUt
Pmxpc3RJdGVtcygpOworICAgICAgICBpZiAoIXNlbGVjdE5vZGUpCisgICAgICAgICAgICByZXR1
cm4gMDsKKworICAgICAgICBzZWxlY3RlZEluZGV4ID0gc2VsZWN0Tm9kZS0+c2VsZWN0ZWRJbmRl
eCgpOworICAgICAgICBjb25zdCBhdXRvJiBsaXN0SXRlbXMgPSBzZWxlY3ROb2RlLT5saXN0SXRl
bXMoKTsKIAogICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA8IDAgfHwgc2VsZWN0ZWRJbmRleCA+
PSBzdGF0aWNfY2FzdDxpbnQ+KGxpc3RJdGVtcy5zaXplKCkpKQogICAgICAgICAgICAgcmV0dXJu
IDA7Ci0KLSAgICAgICAgcmV0dXJuIG9wdGlvbkZyb21MaXN0KHNlbGVjdGlvbiwgc2VsZWN0ZWRJ
bmRleCk7CiAgICAgfQogCi0gICAgaWYgKGluZGV4IDwgc3RhdGljX2Nhc3Q8Z2ludD4oc2VsZWN0
ZWRJdGVtcy5zaXplKCkpKQotICAgICAgICByZXR1cm4gc2VsZWN0ZWRJdGVtcy5hdChpbmRleCku
Z2V0KCk7Ci0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gb3B0aW9uRnJvbUxpc3Qoc2VsZWN0
aW9uLCBzZWxlY3RlZEluZGV4KTsKIH0KIAogc3RhdGljIGdib29sZWFuIHdlYmtpdEFjY2Vzc2li
bGVTZWxlY3Rpb25BZGRTZWxlY3Rpb24oQXRrU2VsZWN0aW9uKiBzZWxlY3Rpb24sIGdpbnQgaW5k
ZXgpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
NDYwZDU1My4uMWU3ZDExYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTAyLTE5ICBLcnp5c3p0b2YgQ3plY2gg
IDxrLmN6ZWNoQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtBVEtdIFdyb25nIHNlbGVjdGVkIGVs
ZW1lbnQgYXQgYSBnaXZlbiBpbmRleCBpbiBhIGxpc3QgYm94LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDM5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgbWlzc2luZyBpbXBsZW1lbnRhdGlv
biBhbmQgcHJvcG9zZWQgc29tZSBuZXcgZnVuY3Rpb24gZm9yIHRlc3Rpbmcgc2VsZWN0aW9uCisg
ICAgICAgIGluIGEgbGlzdCBib3hlcy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAoc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXhD
YWxsYmFjayk6CisgICAgICAgIChyZW1vdmVTZWxlY3Rpb25DaGlsZEF0SW5kZXhDYWxsYmFjayk6
CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRKU0NsYXNzKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwOgorICAgICAgICAo
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KToKKyAgICAgICAg
KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAg
KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAg
ICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbkNoaWxkQXRJbmRleCk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0
U2VsZWN0ZWRDaGlsZEF0SW5kZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpyZW1vdmVTZWxlY3Rpb25DaGlsZEF0SW5kZXgpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9h
dGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgpOgorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25DaGlsZEF0
SW5kZXgpOgorCiAyMDE0LTAyLTE4ICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5n
LmNvbT4KIAogICAgICAgICBbRUZMXVtNaW5pQnJvd3Nlcl0gUmVtb3ZlIHZpZXdfbW9kZSBwYXJh
bWV0ZXIgaW4gd2luZG93X2NyZWF0ZSgpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IDg0ODUxZDQuLjZlNDA2NmMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCkBAIC0xMjA3LDYg
KzEyMDcsMjYgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2VudGVuY2VBdE9mZnNldENhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW4KICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VTdHJpbmcoY29udGV4dCwgc2VudGVuY2VBdE9mZnNldC5nZXQoKSk7CiB9CiAKK3N0YXRpYyBK
U1ZhbHVlUmVmIHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQoreworICAgIGludCBpbmRleE51bWJlciA9IC0xOworICAgIGlmIChhcmd1
bWVudENvdW50ID09IDEpOworICAgICAgICBpbmRleE51bWJlciA9IEpTVmFsdWVUb051bWJlcihj
b250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbik7CisKKyAgICB0b0FYRWxlbWVudCh0aGlz
T2JqZWN0KS0+c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoaW5kZXhOdW1iZXIpOworICAgIHJldHVy
biBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYg
cmVtb3ZlU2VsZWN0aW9uQ2hpbGRBdEluZGV4Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJn
dW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQoreworICAgIGludCBpbmRleE51bWJlciA9IC0xOworICAgIGlmIChhcmd1bWVudENv
dW50ID09IDEpCisgICAgICAgIGluZGV4TnVtYmVyID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQs
IGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKKworICAgIHRvQVhFbGVtZW50KHRoaXNPYmplY3Qp
LT5yZW1vdmVTZWxlY3Rpb25DaGlsZEF0SW5kZXgoaW5kZXhOdW1iZXIpOworICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogI2VsaWYgUExBVEZPUk0oSU9TKQog
CiBzdGF0aWMgSlNWYWx1ZVJlZiBzdHJpbmdGb3JTZWxlY3Rpb25DYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCkBAIC0xMjkyLDggKzEzMTIsNiBAQCBKU1N0cmlu
Z1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzcGVhaygpIHsgcmV0dXJuIDA7IH0KIEpTU3Ry
aW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yTGluZShpbnQgbGluZSkgeyBy
ZXR1cm4gMDsgfQogSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmFuZ2VGb3JQ
b3NpdGlvbihpbnQsIGludCkgeyByZXR1cm4gMDsgfQogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZXRTZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKSBjb25zdCB7IH0K
LXVuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCgp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KLUFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aG9y
aXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCB7
IHJldHVybiAwOyB9CiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmKSBjb25zdCB7IHJldHVybiAw
OyB9CkBAIC0xNTk1LDYgKzE2MTMsOCBAQCBKU0NsYXNzUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmdldEpTQ2xhc3MoKQogICAgICAgICB7ICJ3b3JkQXRPZmZzZXQiLCB3b3JkQXRPZmZzZXRD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJsaW5lQXRPZmZzZXQiLCBsaW5lQXRPZmZzZXRD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZW50ZW5jZUF0T2Zmc2V0Iiwgc2VudGVuY2VB
dE9mZnNldENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNldFNlbGVjdGVkQ2hpbGRBdElu
ZGV4Iiwgc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7
ICJyZW1vdmVTZWxlY3Rpb25DaGlsZEF0SW5kZXgiLCByZW1vdmVTZWxlY3Rpb25DaGlsZEF0SW5k
ZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgICAgICB7ICJsaW5r
ZWRFbGVtZW50IiwgbGlua2VkRWxlbWVudENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImhl
YWRlckVsZW1lbnRBdEluZGV4IiwgaGVhZGVyRWxlbWVudEF0SW5kZXhDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4
IDFjNGQ1Y2EuLjFjODNhN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgKQEAgLTE0OCw2ICsxNDgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRT
ZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKSBjb25zdDsKICAgICB1bnNpZ25l
ZCBzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50IHNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkKSBjb25zdDsKKyAgICB2b2lkIHNldFNl
bGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkKSBjb25zdDsKKyAgICB2b2lkIHJlbW92ZVNlbGVj
dGlvbkNoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3Q7CiAgICAgCiAgICAgYm9vbCBpc0V4cGFu
ZGVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc0NoZWNrZWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAppbmRl
eCA1NTlmZmM3Li5kMDYzMWQzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
YXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCkBAIC0xNjIzLDQgKzE2MjMsMzcgQEAg
SlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChpbnQg
b2Zmc2V0KQogICAgIHJldHVybiBzdHJpbmdBdE9mZnNldChtX2VsZW1lbnQsIEFUS19URVhUX0JP
VU5EQVJZX1NFTlRFTkNFX1NUQVJULCBvZmZzZXQpOwogfQogCit1bnNpZ25lZCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdAoreworICAgIGlmICgh
QVRLX0lTX1NFTEVDVElPTihtX2VsZW1lbnQpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJl
dHVybiBhdGtfc2VsZWN0aW9uX2dldF9zZWxlY3Rpb25fY291bnQoQVRLX1NFTEVDVElPTihtX2Vs
ZW1lbnQpKTsKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICBp
ZiAoIUFUS19JU19TRUxFQ1RJT04obV9lbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBHUmVmUHRyPEF0a09iamVjdD4gY2hpbGQgPSBhZG9wdEdSZWYoYXRrX3NlbGVjdGlv
bl9yZWZfc2VsZWN0aW9uKEFUS19TRUxFQ1RJT04obV9lbGVtZW50KSwgaW5kZXgpKTsKKyAgICBy
ZXR1cm4gY2hpbGQgPyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGNoaWxkLmdldCgpKSA6IG51bGxw
dHI7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0
SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgaWYgKCFBVEtfSVNfU0VMRUNUSU9O
KG1fZWxlbWVudCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF0a19zZWxlY3Rpb25fYWRkX3Nl
bGVjdGlvbihBVEtfU0VMRUNUSU9OKG1fZWxlbWVudCksIGluZGV4KTsKK30KKwordm9pZCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25DaGlsZEF0SW5kZXgodW5zaWduZWQg
aW5kZXgpIGNvbnN0Cit7CisgICAgaWYgKCFBVEtfSVNfU0VMRUNUSU9OKG1fZWxlbWVudCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF0a19zZWxlY3Rpb25fcmVtb3ZlX3NlbGVjdGlvbihBVEtf
U0VMRUNUSU9OKG1fZWxlbWVudCksIGluZGV4KTsKK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmNwcAppbmRleCBlNmE1M2Q4Li5iMjhmMjM2IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5jcHAKQEAgLTU5LDYgKzU5LDggQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkgeyByZXR1
cm4KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp3b3Jk
QXRPZmZzZXQoaW50KSB7IHJldHVybiAwOyB9CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUF0T2Zmc2V0KGludCkgeyByZXR1cm4gMDsgfQogSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNlQXRP
ZmZzZXQoaW50KSB7IHJldHVybiAwOyB9Cit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNl
dFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkKSBjb25zdCB7IH0KK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQ2hpbGRBdEluZGV4KHVuc2lnbmVkKSBjb25z
dCB7IH0KICNlbmRpZgogCiAjaWYgKCFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykg
JiYgIVBMQVRGT1JNKEVGTCkpIHx8ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oCmluZGV4IDYxOWEwZTkuLmZjZmVlNjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5oCkBAIC0xNDEsNiArMTQxLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNTZWxlY3Rh
YmxlKCkgY29uc3Q7CiAgICAgYm9vbCBpc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0OwogICAgIHZv
aWQgc2V0U2VsZWN0ZWRDaGlsZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KikgY29uc3Q7CisgICAg
dm9pZCBzZXRTZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3Q7CisgICAgdm9pZCBy
ZW1vdmVTZWxlY3Rpb25DaGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0OwogICAgIHVuc2lnbmVk
IHNlbGVjdGVkQ2hpbGRyZW5Db3VudCgpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gc2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0OwogICAg
IApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKaW5kZXgg
ZmM2MGRlZS4uMGRkY2ZiZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaWRsCkBAIC0zNyw2ICszNyw4IEBAIGludGVyZmFjZSBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50IHsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGxpbmtlZFVJRWxlbWVudEF0SW5k
ZXgodW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBzZWxl
Y3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICB2b2lkIHNldFNlbGVj
dGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBlbGVtZW50KTsKKyAgICB2b2lkIHNldFNl
bGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIHZvaWQgcmVtb3Zl
U2VsZWN0aW9uQ2hpbGRBdEluZGV4KHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQgdGl0bGVVSUVsZW1lbnQoKTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50IHBhcmVudEVsZW1lbnQoKTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudEF0ay5jcHAKaW5kZXggNjE4OGEwNi4uMjVhMTMxMSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dEF0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAKQEAgLTcwMSwxNCArNzAxLDE4IEBAIFBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93
QXRJbmRleCh1bnNpZ25lZCBpCiAKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5k
ZXgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotICAgIHJldHVybiBudWxscHRy
OworICAgIGlmICghQVRLX1NFTEVDVElPTihtX2VsZW1lbnQuZ2V0KCkpKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgIEdSZWZQdHI8QXRrT2JqZWN0PiBjaGlsZCA9IGFkb3B0R1JlZihh
dGtfc2VsZWN0aW9uX3JlZl9zZWxlY3Rpb24oQVRLX1NFTEVDVElPTihtX2VsZW1lbnQuZ2V0KCkp
LCBpbmRleCkpOworICAgIHJldHVybiBjaGlsZCA/IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNy
ZWF0ZShjaGlsZC5nZXQoKSkgOiBudWxscHRyOwogfQogCiB1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdAogewotICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKLSAgICByZXR1cm4gMDsKKyAgICBpZiAoIUFUS19JU19TRUxFQ1RJT04obV9l
bGVtZW50LmdldCgpKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGF0a19zZWxlY3Rp
b25fZ2V0X3NlbGVjdGlvbl9jb3VudChBVEtfU0VMRUNUSU9OKG1fZWxlbWVudC5nZXQoKSkpOwog
fQogCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNlbGVjdGVkUm93QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKQEAgLTE0NjUsNiArMTQ2
OSwyMiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGQoQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudCogZWxlbWVudCkgYwogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
IH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxkQXRJbmRl
eCh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAoIUFUS19JU19TRUxFQ1RJT04obV9l
bGVtZW50LmdldCgpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXRrX3NlbGVjdGlvbl9hZGRf
c2VsZWN0aW9uKEFUS19TRUxFQ1RJT04obV9lbGVtZW50LmdldCgpKSwgaW5kZXgpOworfQorCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbkNoaWxkQXRJbmRleCh1
bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAoIUFUS19JU19TRUxFQ1RJT04obV9lbGVt
ZW50LmdldCgpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXRrX3NlbGVjdGlvbl9yZW1vdmVf
c2VsZWN0aW9uKEFUS19TRUxFQ1RJT04obV9lbGVtZW50LmdldCgpKSwgaW5kZXgpOworfQorCiBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJp
bGl0eVZhbHVlKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224628</attachid>
            <date>2014-02-19 05:44:15 -0800</date>
            <delta_ts>2014-02-20 03:33:35 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a11y-selection.patch</filename>
            <type>text/plain</type>
            <size>19508</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYjJkOTY1Li5iNzIwZjIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDIt
MTkgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FU
S10gV3Jvbmcgc2VsZWN0ZWQgZWxlbWVudCBhdCBhIGdpdmVuIGluZGV4IGluIGEgbGlzdCBib3gu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwMzkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9wb3Nl
ZCB0ZXN0IHRoYXQgY2hlY2tzIHdoZXRoZXIgY29ycmVjdCBlbGVtZW50IGF0IGEgZ2l2ZW4gaW5k
ZXggaXMgcmV0cmlldmVkLgorICAgICAgICBBbHNvIHRlc3Rpbmcgc29tZSBvdGhlciBzY2VuYXJp
b3Mgc3VjaCBhcyByZW1vdmluZyBzZWxlY3Rpb24gZnJvbSByb3dzLCBjb3VudGluZyBhbGwKKyAg
ICAgICAgc2VsZWN0ZWQgcm93cyBhbmQgc2V0dGluZyBzZWxlY3Rpb24uCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczogU2tpcHBpbmcg
dGVzdCBpbiBNYWMsIG1pc3NpbmcgaW1wbGVtZW50YXRpb24uCisKIDIwMTQtMDItMTggIEJyZW50
IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgV2luZG93cyBnYXJkZW5p
bmc6IEFkZCBhbm5vdGF0aW9ucyBmb3IgRGVidWcgY2FzZS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXgtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZmYjI2NwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQt
aW5kZXgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAKKworVGVzdHMgdGhhdCBjaGVja3Mg
d2hldGhlciBzZXR0aW5nIHNlbGVjdGlvbiBhdCB0aGUgZ2l2ZW4gaW5kZXggd29ya3MgY29ycmVj
dGx5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNlbGVjdEVsZW1lbnQu
c2VsZWN0ZWRDaGlsZHJlbkNvdW50IGlzIDAKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENo
aWxkcmVuQ291bnQgaXMgMQorUEFTUyBvcHRpb24xLmlzU2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBz
ZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdEluZGV4KDApLmlzRXF1YWwob3B0aW9uMSkgaXMg
dHJ1ZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCBpcyAyCitQQVNT
IG9wdGlvbjIuaXNTZWxlY3RlZCBpcyB0cnVlCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRD
aGlsZEF0SW5kZXgoMSkuaXNFcXVhbChvcHRpb24yKSBpcyB0cnVlCitQQVNTIG9wdGlvbjMuaXNT
ZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3Vu
dCBpcyAzCitQQVNTIG9wdGlvbjQuaXNTZWxlY3RlZCBpcyB0cnVlCitQQVNTIHNlbGVjdEVsZW1l
bnQuc2VsZWN0ZWRDaGlsZEF0SW5kZXgoMykuaXNFcXVhbChvcHRpb240KSBpcyB0cnVlCitQQVNT
IG9wdGlvbjQuaXNTZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVk
Q2hpbGRyZW5Db3VudCBpcyAyCitQQVNTIG9wdGlvbjIuaXNTZWxlY3RlZCBpcyBmYWxzZQorUEFT
UyBzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCBpcyAxCitQQVNTIG9wdGlvbjEu
aXNTZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5D
b3VudCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVu
dC1hdC1pbmRleC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVu
dC1hdC1pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2Y2M4
YTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC1l
bGVtZW50LWF0LWluZGV4Lmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
aWQ9ImJvZHkiPgorCis8c2VsZWN0IGlkPSJncm91cCIgbXVsdGlwbGU9Im11bHRpcGxlIj4KKyAg
ICA8b3B0aW9uPk9wdGlvbiAxPC9vcHRpb24+CisgICAgPG9wdGlvbj5PcHRpb24gMjwvb3B0aW9u
PgorICAgIDxvcHRpb24+T3B0aW9uIDM8L29wdGlvbj4KKyAgICA8b3B0aW9uPk9wdGlvbiA0PC9v
cHRpb24+Cis8L3NlbGVjdD4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IGNoZWNrcyB3aGV0aGVyIHNldHRpbmcgc2VsZWN0aW9uIGF0IHRoZSBnaXZlbiBpbmRleCB3b3Jr
cyBjb3JyZWN0bHkiKTsKKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIp
IHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyb3VwIikuZm9jdXMoKTsKKyAg
ICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2Vk
RWxlbWVudDsKKworICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxk
cmVuQ291bnQiLCAiMCIpOworCisgICAgICAgIHZhciBvcHRpb24xID0gc2VsZWN0RWxlbWVudC5j
aGlsZEF0SW5kZXgoMCk7CisgICAgICAgIHZhciBvcHRpb24yID0gc2VsZWN0RWxlbWVudC5jaGls
ZEF0SW5kZXgoMSk7CisgICAgICAgIHZhciBvcHRpb24zID0gc2VsZWN0RWxlbWVudC5jaGlsZEF0
SW5kZXgoMik7CisgICAgICAgIHZhciBvcHRpb240ID0gc2VsZWN0RWxlbWVudC5jaGlsZEF0SW5k
ZXgoMyk7CisKKyAgICAgICAgc2VsZWN0RWxlbWVudC5zZXRTZWxlY3RlZENoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50
IiwgIjEiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJvcHRpb24xLmlzU2VsZWN0ZWQiKTsKKyAg
ICAgICAgc2hvdWxkQmVUcnVlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdEluZGV4KDAp
LmlzRXF1YWwob3B0aW9uMSkiKTsKKworICAgICAgICBzZWxlY3RFbGVtZW50LnNldFNlbGVjdGVk
Q2hpbGRBdEluZGV4KDEpOworICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3Rl
ZENoaWxkcmVuQ291bnQiLCAiMiIpOworICAgICAgICBzaG91bGRCZVRydWUoIm9wdGlvbjIuaXNT
ZWxlY3RlZCIpOworICAgICAgICBzaG91bGRCZVRydWUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRD
aGlsZEF0SW5kZXgoMSkuaXNFcXVhbChvcHRpb24yKSIpOworCisgICAgICAgIHNob3VsZEJlRmFs
c2UoIm9wdGlvbjMuaXNTZWxlY3RlZCIpOworCisgICAgICAgIHNlbGVjdEVsZW1lbnQuc2V0U2Vs
ZWN0ZWRDaGlsZEF0SW5kZXgoMyk7CisgICAgICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNl
bGVjdGVkQ2hpbGRyZW5Db3VudCIsICIzIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgib3B0aW9u
NC5pc1NlbGVjdGVkIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgic2VsZWN0RWxlbWVudC5zZWxl
Y3RlZENoaWxkQXRJbmRleCgzKS5pc0VxdWFsKG9wdGlvbjQpIik7CisKKyAgICAgICAgc2VsZWN0
RWxlbWVudC5yZW1vdmVTZWxlY3Rpb25DaGlsZEF0SW5kZXgoMyk7CisgICAgICAgIHNob3VsZEJl
RmFsc2UoIm9wdGlvbjQuaXNTZWxlY3RlZCIpOworICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxl
bWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMiIpOworCisgICAgICAgIHNlbGVjdEVsZW1l
bnQucmVtb3ZlU2VsZWN0aW9uQ2hpbGRBdEluZGV4KDEpOworICAgICAgICBzaG91bGRCZUZhbHNl
KCJvcHRpb24yLmlzU2VsZWN0ZWQiKTsKKyAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQu
c2VsZWN0ZWRDaGlsZHJlbkNvdW50IiwgIjEiKTsKKworICAgICAgICBzZWxlY3RFbGVtZW50LnJl
bW92ZVNlbGVjdGlvbkNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgib3B0
aW9uMS5pc1NlbGVjdGVkIik7CisgICAgICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNlbGVj
dGVkQ2hpbGRyZW5Db3VudCIsICIwIik7Cit9CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDAyMjcwNDEu
LmI4MDAyODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBA
IC00OSw2ICs0OSw4IEBAIGFjY2Vzc2liaWxpdHkvbXVsdGlzZWxlY3QtbGlzdC1yZXBvcnRzLWFj
dGl2ZS1vcHRpb24uaHRtbAogCiAjIGlzSW5kZXRlcm1pbmF0ZSBpcyBub3QgaW1wbGVtZW50ZWQg
aW4gbWFjCiB3ZWJraXQub3JnL2IvMTI1ODU1IGFjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2VkLW1p
eGVkLXZhbHVlLmh0bWwgWyBTa2lwIF0KKyMgTWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBzb21l
IGZ1bmN0aW9ucyBpbiBtYWMuCit3ZWJraXQub3JnL2IvMTI5MDM5IGFjY2Vzc2liaWxpdHkvc2Vs
ZWN0LWVsZW1lbnQtYXQtaW5kZXguaHRtbCBbIFNraXAgXQogCiAjIGFyaWFDb250cm9sc0VsZW1l
bnRBdEluZGV4IGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBtYWMKIHdlYmtpdC5vcmcvYi8xMjc5MDgg
YWNjZXNzaWJpbGl0eS9hcmlhLWNvbnRyb2xzLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0
YjUzMDNkLi4yZmZjYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDItMTkg
IEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FUS10g
V3Jvbmcgc2VsZWN0ZWQgZWxlbWVudCBhdCBhIGdpdmVuIGluZGV4IGluIGEgbGlzdCBib3guCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwMzkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBhY2Nl
c3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0bWwKKworICAgICAgICBUaGUgc2Vs
ZWN0ZWQgZWxlbWVudCBhdCBhIGdpdmVuIGluZGV4IHdhcyB3cm9uZy4gT25lIHNob3VsZCBiZSBj
b25zaWRlcmVkIGFtb25nIHRoZQorICAgICAgICBhbGwgY2hpbGRyZW4gb2YgYSBsaXN0IGJveCwg
bm90IG9ubHkgc2VsZWN0ZWQgb25lcy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL1dl
YktpdEFjY2Vzc2libGVJbnRlcmZhY2VTZWxlY3Rpb24uY3BwOgorICAgICAgICAob3B0aW9uRnJv
bVNlbGVjdGlvbik6CisKIDIwMTQtMDItMTkgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KIAogICAgICAgICBTaW1wbGlmeSBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpIGFu
ZCBzaW1pbGFyIGV4cHJlc3Npb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlU2VsZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VTZWxl
Y3Rpb24uY3BwCmluZGV4IGNiN2EzY2MuLmUxZjVkMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VTZWxlY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2li
bGVJbnRlcmZhY2VTZWxlY3Rpb24uY3BwCkBAIC0xMDIsMjggKzEwMiwyNCBAQCBzdGF0aWMgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb3B0aW9uRnJvbVNlbGVjdGlvbihBdGtTZWxlY3Rpb24qIHNlbGVj
dGlvbiwgZ2ludCBpbgogICAgIGlmICghY29yZVNlbGVjdGlvbiB8fCAhY29yZVNlbGVjdGlvbi0+
aXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkgfHwgaW5kZXggPCAwKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciBzZWxlY3RlZEl0ZW1zOwotICAgIGlmIChjb3JlU2VsZWN0aW9uLT5pc0xpc3RCb3goKSkK
LSAgICAgICAgY29yZVNlbGVjdGlvbi0+c2VsZWN0ZWRDaGlsZHJlbihzZWxlY3RlZEl0ZW1zKTsK
LSAgICBlbHNlIGlmIChjb3JlU2VsZWN0aW9uLT5pc01lbnVMaXN0KCkpIHsKKyAgICBpbnQgc2Vs
ZWN0ZWRJbmRleCA9IGluZGV4OworICAgIGlmIChjb3JlU2VsZWN0aW9uLT5pc01lbnVMaXN0KCkp
IHsKICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGNvcmVTZWxlY3Rpb24tPnJlbmRl
cmVyKCk7CiAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAog
ICAgICAgICBIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0Tm9kZSA9IHRvSFRNTFNlbGVjdEVsZW1l
bnQocmVuZGVyZXItPm5vZGUoKSk7Ci0gICAgICAgIGludCBzZWxlY3RlZEluZGV4ID0gc2VsZWN0
Tm9kZS0+c2VsZWN0ZWRJbmRleCgpOwotICAgICAgICBjb25zdCBWZWN0b3I8SFRNTEVsZW1lbnQq
PiBsaXN0SXRlbXMgPSBzZWxlY3ROb2RlLT5saXN0SXRlbXMoKTsKKyAgICAgICAgaWYgKCFzZWxl
Y3ROb2RlKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgc2VsZWN0ZWRJbmRleCA9
IHNlbGVjdE5vZGUtPnNlbGVjdGVkSW5kZXgoKTsKKyAgICAgICAgY29uc3QgYXV0byYgbGlzdEl0
ZW1zID0gc2VsZWN0Tm9kZS0+bGlzdEl0ZW1zKCk7CiAKICAgICAgICAgaWYgKHNlbGVjdGVkSW5k
ZXggPCAwIHx8IHNlbGVjdGVkSW5kZXggPj0gc3RhdGljX2Nhc3Q8aW50PihsaXN0SXRlbXMuc2l6
ZSgpKSkKICAgICAgICAgICAgIHJldHVybiAwOwotCi0gICAgICAgIHJldHVybiBvcHRpb25Gcm9t
TGlzdChzZWxlY3Rpb24sIHNlbGVjdGVkSW5kZXgpOwogICAgIH0KIAotICAgIGlmIChpbmRleCA8
IHN0YXRpY19jYXN0PGdpbnQ+KHNlbGVjdGVkSXRlbXMuc2l6ZSgpKSkKLSAgICAgICAgcmV0dXJu
IHNlbGVjdGVkSXRlbXMuYXQoaW5kZXgpLmdldCgpOwotCi0gICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIG9wdGlvbkZyb21MaXN0KHNlbGVjdGlvbiwgc2VsZWN0ZWRJbmRleCk7CiB9CiAKIHN0YXRp
YyBnYm9vbGVhbiB3ZWJraXRBY2Nlc3NpYmxlU2VsZWN0aW9uQWRkU2VsZWN0aW9uKEF0a1NlbGVj
dGlvbiogc2VsZWN0aW9uLCBnaW50IGluZGV4KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ2MGQ1NTMuLjFlN2QxMWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAx
NC0wMi0xOSAgS3J6eXN6dG9mIEN6ZWNoICA8ay5jemVjaEBzYW1zdW5nLmNvbT4KKworICAgICAg
ICBbQVRLXSBXcm9uZyBzZWxlY3RlZCBlbGVtZW50IGF0IGEgZ2l2ZW4gaW5kZXggaW4gYSBsaXN0
IGJveC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
OTAzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIG1pc3NpbmcgaW1wbGVtZW50YXRpb24gYW5kIHByb3Bvc2VkIHNvbWUgbmV3IGZ1bmN0aW9u
IGZvciB0ZXN0aW5nIHNlbGVjdGlvbgorICAgICAgICBpbiBhIGxpc3QgYm94ZXMuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAg
KHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2FsbGJhY2spOgorICAgICAgICAocmVtb3ZlU2VsZWN0
aW9uQ2hpbGRBdEluZGV4Q2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6Z2V0SlNDbGFzcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50QXRrLmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVk
Q2hpbGRyZW5Db3VudCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3Rl
ZENoaWxkQXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxl
Y3RlZENoaWxkQXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1v
dmVTZWxlY3Rpb25DaGlsZEF0SW5kZXgpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQ2hpbGRBdEluZGV4
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3Bw
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJ
bmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hp
bGRyZW5Db3VudCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNl
bGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6cmVtb3ZlU2VsZWN0aW9uQ2hpbGRBdEluZGV4KToKKwogMjAxNC0wMi0xOCAgSmlud29vIFNv
bmcgIDxqaW53b283LnNvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bTWluaUJyb3dz
ZXJdIFJlbW92ZSB2aWV3X21vZGUgcGFyYW1ldGVyIGluIHdpbmRvd19jcmVhdGUoKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCA4NDg1
MWQ0Li42ZTQwNjZjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmNwcApAQCAtMTIwNyw2ICsxMjA3LDI2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNl
bnRlbmNlQXRPZmZzZXRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
ZnVuCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIHNlbnRlbmNlQXRPZmZz
ZXQuZ2V0KCkpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTZWxlY3RlZENoaWxkQXRJbmRl
eENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVS
ZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpbnQgaW5kZXhO
dW1iZXIgPSAtMTsKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAxKTsKKyAgICAgICAgaW5kZXhO
dW1iZXIgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24p
OworCisgICAgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4
KGluZGV4TnVtYmVyKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
Cit9CisKK3N0YXRpYyBKU1ZhbHVlUmVmIHJlbW92ZVNlbGVjdGlvbkNoaWxkQXRJbmRleENhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpbnQgaW5kZXhOdW1iZXIg
PSAtMTsKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAxKQorICAgICAgICBpbmRleE51bWJlciA9
IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbik7CisKKyAg
ICB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+cmVtb3ZlU2VsZWN0aW9uQ2hpbGRBdEluZGV4KGlu
ZGV4TnVtYmVyKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9
CisKICNlbGlmIFBMQVRGT1JNKElPUykKIAogc3RhdGljIEpTVmFsdWVSZWYgc3RyaW5nRm9yU2Vs
ZWN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpAQCAt
MTI5Miw4ICsxMzEyLDYgQEAgSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Bl
YWsoKSB7IHJldHVybiAwOyB9CiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
YW5nZUZvckxpbmUoaW50IGxpbmUpIHsgcmV0dXJuIDA7IH0KIEpTU3RyaW5nUmVmIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yUG9zaXRpb24oaW50LCBpbnQpIHsgcmV0dXJuIDA7IH0K
IHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZChBY2Nlc3NpYmls
aXR5VUlFbGVtZW50KikgY29uc3QgeyB9Ci11bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdCB7IHJldHVybiAwOyB9Ci1BY2Nlc3NpYmls
aXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRBdEluZGV4
KHVuc2lnbmVkKSBjb25zdCB7IHJldHVybiAwOyB9CiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVy
biAwOyB9CiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZl
cnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShKU1N0
cmluZ1JlZikgY29uc3QgeyByZXR1cm4gMDsgfQpAQCAtMTU5NSw2ICsxNjEzLDggQEAgSlNDbGFz
c1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRKU0NsYXNzKCkKICAgICAgICAgeyAid29y
ZEF0T2Zmc2V0Iiwgd29yZEF0T2Zmc2V0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAibGlu
ZUF0T2Zmc2V0IiwgbGluZUF0T2Zmc2V0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2Vu
dGVuY2VBdE9mZnNldCIsIHNlbnRlbmNlQXRPZmZzZXRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAg
ICB7ICJzZXRTZWxlY3RlZENoaWxkQXRJbmRleCIsIHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4Q2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAicmVtb3ZlU2VsZWN0aW9uQ2hpbGRBdEluZGV4Iiwg
cmVtb3ZlU2VsZWN0aW9uQ2hpbGRBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICNlbGlmIFBMQVRG
T1JNKElPUykKICAgICAgICAgeyAibGlua2VkRWxlbWVudCIsIGxpbmtlZEVsZW1lbnRDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJoZWFkZXJFbGVtZW50QXRJbmRleCIsIGhlYWRlckVsZW1l
bnRBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCAxYzRkNWNhLi4xYzgzYTdhIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCkBAIC0xNDgsNiArMTQ4LDgg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0U2VsZWN0ZWRDaGlsZChBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50KikgY29uc3Q7CiAgICAgdW5zaWduZWQgc2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkgY29uc3Q7
CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25l
ZCkgY29uc3Q7CisgICAgdm9pZCBzZXRTZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29u
c3Q7CisgICAgdm9pZCByZW1vdmVTZWxlY3Rpb25DaGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0
OwogICAgIAogICAgIGJvb2wgaXNFeHBhbmRlZCgpIGNvbnN0OwogICAgIGJvb2wgaXNDaGVja2Vk
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudEF0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudEF0ay5jcHAKaW5kZXggNTU5ZmZjNy4uZDA2MzFkMyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNw
cApAQCAtMTYyMyw0ICsxNjIzLDM3IEBAIEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNlbnRlbmNlQXRPZmZzZXQoaW50IG9mZnNldCkKICAgICByZXR1cm4gc3RyaW5nQXRPZmZz
ZXQobV9lbGVtZW50LCBBVEtfVEVYVF9CT1VOREFSWV9TRU5URU5DRV9TVEFSVCwgb2Zmc2V0KTsK
IH0KIAordW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNv
dW50KCkgY29uc3QKK3sKKyAgICBpZiAoIUFUS19JU19TRUxFQ1RJT04obV9lbGVtZW50KSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gYXRrX3NlbGVjdGlvbl9nZXRfc2VsZWN0aW9u
X2NvdW50KEFUS19TRUxFQ1RJT04obV9lbGVtZW50KSk7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWdu
ZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgaWYgKCFBVEtfSVNfU0VMRUNUSU9OKG1fZWxlbWVudCkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgR1JlZlB0cjxBdGtPYmplY3Q+IGNoaWxk
ID0gYWRvcHRHUmVmKGF0a19zZWxlY3Rpb25fcmVmX3NlbGVjdGlvbihBVEtfU0VMRUNUSU9OKG1f
ZWxlbWVudCksIGluZGV4KSk7CisgICAgcmV0dXJuIGNoaWxkID8gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudChjaGlsZC5nZXQoKSkgOiBudWxscHRyOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAorewor
ICAgIGlmICghQVRLX0lTX1NFTEVDVElPTihtX2VsZW1lbnQpKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdGtfc2VsZWN0aW9uX2FkZF9zZWxlY3Rpb24oQVRLX1NFTEVDVElPTihtX2VsZW1lbnQp
LCBpbmRleCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0
aW9uQ2hpbGRBdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIGlmICghQVRLX0lT
X1NFTEVDVElPTihtX2VsZW1lbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdGtfc2VsZWN0
aW9uX3JlbW92ZV9zZWxlY3Rpb24oQVRLX1NFTEVDVElPTihtX2VsZW1lbnQpLCBpbmRleCk7Cit9
CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKaW5kZXggZTZhNTNkOC4u
YjI4ZjIzNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCkBAIC01OSw2ICs1OSw4
IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGFy
YWN0ZXJBdE9mZnNldChpbnQpIHsgcmV0dXJuCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkgeyByZXR1cm4gMDsgfQogSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVBdE9mZnNl
dChpbnQpIHsgcmV0dXJuIDA7IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzZW50ZW5jZUF0T2Zmc2V0KGludCkgeyByZXR1cm4gMDsgfQordm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkg
Y29uc3QgeyB9Cit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbkNo
aWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QgeyB9CiAjZW5kaWYKIAogI2lmICghUExBVEZPUk0o
Q09DT0EpICYmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShFRkwpKSB8fCAhSEFWRShBQ0NF
U1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCA2MTlhMGU5Li5mY2Zl
ZTY5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtMTQxLDYgKzE0MSw4IEBAIHB1
YmxpYzoKICAgICBib29sIGlzU2VsZWN0YWJsZSgpIGNvbnN0OwogICAgIGJvb2wgaXNNdWx0aVNl
bGVjdGFibGUoKSBjb25zdDsKICAgICB2b2lkIHNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudCopIGNvbnN0OworICAgIHZvaWQgc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5z
aWduZWQpIGNvbnN0OworICAgIHZvaWQgcmVtb3ZlU2VsZWN0aW9uQ2hpbGRBdEluZGV4KHVuc2ln
bmVkKSBjb25zdDsKICAgICB1bnNpZ25lZCBzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdDsK
ICAgICBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IHNlbGVjdGVkQ2hpbGRBdElu
ZGV4KHVuc2lnbmVkKSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IGZjNjBkZWUuLjBkZGNmYmQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbApAQCAtMzcsNiArMzcsOCBAQCBp
bnRlcmZhY2UgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCB7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCBsaW5rZWRVSUVsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQgc2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgbG9uZyBp
bmRleCk7CiAgICAgdm9pZCBzZXRTZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQg
ZWxlbWVudCk7CisgICAgdm9pZCBzZXRTZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCBsb25n
IGluZGV4KTsKKyAgICB2b2lkIHJlbW92ZVNlbGVjdGlvbkNoaWxkQXRJbmRleCh1bnNpZ25lZCBs
b25nIGluZGV4KTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHRpdGxlVUlFbGVtZW50KCk7
CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBwYXJlbnRFbGVtZW50KCk7CiAgICAgCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCmluZGV4IDYxODhhMDYuLjI1
YTEzMTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
YXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCkBA
IC03MDEsMTQgKzcwMSwxOCBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0F0SW5kZXgodW5zaWduZWQgaQogCiBQYXNzUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVk
Q2hpbGRBdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAogewotICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoIUFUS19TRUxFQ1RJT04obV9lbGVt
ZW50LmdldCgpKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBHUmVmUHRyPEF0a09i
amVjdD4gY2hpbGQgPSBhZG9wdEdSZWYoYXRrX3NlbGVjdGlvbl9yZWZfc2VsZWN0aW9uKEFUS19T
RUxFQ1RJT04obV9lbGVtZW50LmdldCgpKSwgaW5kZXgpKTsKKyAgICByZXR1cm4gY2hpbGQgPyBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoY2hpbGQuZ2V0KCkpIDogbnVsbHB0cjsKIH0K
IAogdW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50
KCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0dXJuIDA7CisgICAg
aWYgKCFBVEtfSVNfU0VMRUNUSU9OKG1fZWxlbWVudC5nZXQoKSkpCisgICAgICAgIHJldHVybiAw
OworICAgIHJldHVybiBhdGtfc2VsZWN0aW9uX2dldF9zZWxlY3Rpb25fY291bnQoQVRLX1NFTEVD
VElPTihtX2VsZW1lbnQuZ2V0KCkpKTsKIH0KIAogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFJvd0F0SW5kZXgodW5zaWdu
ZWQgaW5kZXgpCkBAIC0xNDY1LDYgKzE0NjksMjIgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZXRTZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQpIGMK
ICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAg
aWYgKCFBVEtfSVNfU0VMRUNUSU9OKG1fZWxlbWVudC5nZXQoKSkpCisgICAgICAgIHJldHVybjsK
KworICAgIGF0a19zZWxlY3Rpb25fYWRkX3NlbGVjdGlvbihBVEtfU0VMRUNUSU9OKG1fZWxlbWVu
dC5nZXQoKSksIGluZGV4KTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1v
dmVTZWxlY3Rpb25DaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgaWYg
KCFBVEtfSVNfU0VMRUNUSU9OKG1fZWxlbWVudC5nZXQoKSkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF0a19zZWxlY3Rpb25fcmVtb3ZlX3NlbGVjdGlvbihBVEtfU0VMRUNUSU9OKG1fZWxlbWVu
dC5nZXQoKSksIGluZGV4KTsKK30KKwogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNvbnN0CiB7CiAgICAgLy8gRklY
TUU6IGltcGxlbWVudAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224742</attachid>
            <date>2014-02-20 03:33:35 -0800</date>
            <delta_ts>2014-02-20 06:21:39 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a11y-selection.patch</filename>
            <type>text/plain</type>
            <size>22584</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNDJhZmRmLi5iZDlkNDdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDIt
MjAgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FU
S10gV3Jvbmcgc2VsZWN0ZWQgZWxlbWVudCBhdCBhIGdpdmVuIGluZGV4IGluIGEgbGlzdCBib3gu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwMzkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9wb3Nl
ZCB0ZXN0IHRoYXQgY2hlY2tzIHdoZXRoZXIgY29ycmVjdCBlbGVtZW50IGF0IGEgZ2l2ZW4gaW5k
ZXggaXMgcmV0cmlldmVkLgorICAgICAgICBBbHNvIHRlc3Rpbmcgc29tZSBvdGhlciBzY2VuYXJp
b3Mgc3VjaCBhcyByZW1vdmluZyBzZWxlY3Rpb24gZnJvbSByb3dzLCBjb3VudGluZyBhbGwKKyAg
ICAgICAgc2VsZWN0ZWQgcm93cyBhbmQgc2V0dGluZyBzZWxlY3Rpb24uCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczogU2tpcHBpbmcg
dGVzdCBpbiBNYWMsIG1pc3NpbmcgaW1wbGVtZW50YXRpb24uCisKIDIwMTQtMDItMjAgIEZyw6lk
w6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgogCiAgICAgICAgIEltcGxlbWVudCB0aGUg
TWF0aE1MIE9wZXJhdG9yIERpY3Rpb25hcnkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXgtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2ZmIyNjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACisKK1Rlc3RzIHRoYXQgY2hlY2tzIHdoZXRoZXIg
c2V0dGluZyBzZWxlY3Rpb24gYXQgdGhlIGdpdmVuIGluZGV4IHdvcmtzIGNvcnJlY3RseQorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVk
Q2hpbGRyZW5Db3VudCBpcyAwCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNv
dW50IGlzIDEKK1BBU1Mgb3B0aW9uMS5pc1NlbGVjdGVkIGlzIHRydWUKK1BBU1Mgc2VsZWN0RWxl
bWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgwKS5pc0VxdWFsKG9wdGlvbjEpIGlzIHRydWUKK1BB
U1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMgMgorUEFTUyBvcHRpb24y
LmlzU2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdElu
ZGV4KDEpLmlzRXF1YWwob3B0aW9uMikgaXMgdHJ1ZQorUEFTUyBvcHRpb24zLmlzU2VsZWN0ZWQg
aXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMgMwor
UEFTUyBvcHRpb240LmlzU2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVj
dGVkQ2hpbGRBdEluZGV4KDMpLmlzRXF1YWwob3B0aW9uNCkgaXMgdHJ1ZQorUEFTUyBvcHRpb240
LmlzU2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVu
Q291bnQgaXMgMgorUEFTUyBvcHRpb24yLmlzU2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0
RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMgMQorUEFTUyBvcHRpb24xLmlzU2VsZWN0
ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMg
MAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5k
ZXguaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5k
ZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmUzNzFiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1h
dC1pbmRleC5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5
Ij4KKworPHNlbGVjdCBpZD0iZ3JvdXAiIG11bHRpcGxlPSJtdWx0aXBsZSI+CisgICAgPG9wdGlv
bj5PcHRpb24gMTwvb3B0aW9uPgorICAgIDxvcHRpb24+T3B0aW9uIDI8L29wdGlvbj4KKyAgICA8
b3B0aW9uPk9wdGlvbiAzPC9vcHRpb24+CisgICAgPG9wdGlvbj5PcHRpb24gNDwvb3B0aW9uPgor
PC9zZWxlY3Q+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBjaGVja3Mg
d2hldGhlciBzZXR0aW5nIHNlbGVjdGlvbiBhdCB0aGUgZ2l2ZW4gaW5kZXggd29ya3MgY29ycmVj
dGx5Iik7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncm91cCIpLmZvY3VzKCk7CisgICAgICAgIHZh
ciBzZWxlY3RFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7
CisKKyAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50
IiwgIjAiKTsKKworICAgICAgICB2YXIgb3B0aW9uMSA9IHNlbGVjdEVsZW1lbnQuY2hpbGRBdElu
ZGV4KDApOworICAgICAgICB2YXIgb3B0aW9uMiA9IHNlbGVjdEVsZW1lbnQuY2hpbGRBdEluZGV4
KDEpOworICAgICAgICB2YXIgb3B0aW9uMyA9IHNlbGVjdEVsZW1lbnQuY2hpbGRBdEluZGV4KDIp
OworICAgICAgICB2YXIgb3B0aW9uNCA9IHNlbGVjdEVsZW1lbnQuY2hpbGRBdEluZGV4KDMpOwor
CisgICAgICAgIHNlbGVjdEVsZW1lbnQuc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMCk7CisgICAg
ICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCIsICIxIik7
CisgICAgICAgIHNob3VsZEJlVHJ1ZSgib3B0aW9uMS5pc1NlbGVjdGVkIik7CisgICAgICAgIHNo
b3VsZEJlVHJ1ZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgwKS5pc0VxdWFs
KG9wdGlvbjEpIik7CisKKyAgICAgICAgc2VsZWN0RWxlbWVudC5zZXRTZWxlY3RlZENoaWxkQXRJ
bmRleCgxKTsKKyAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJl
bkNvdW50IiwgIjIiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJvcHRpb24yLmlzU2VsZWN0ZWQi
KTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdElu
ZGV4KDEpLmlzRXF1YWwob3B0aW9uMikiKTsKKworICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRp
b24zLmlzU2VsZWN0ZWQiKTsKKworICAgICAgICBzZWxlY3RFbGVtZW50LnNldFNlbGVjdGVkQ2hp
bGRBdEluZGV4KDMpOworICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENo
aWxkcmVuQ291bnQiLCAiMyIpOworICAgICAgICBzaG91bGRCZVRydWUoIm9wdGlvbjQuaXNTZWxl
Y3RlZCIpOworICAgICAgICBzaG91bGRCZVRydWUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGls
ZEF0SW5kZXgoMykuaXNFcXVhbChvcHRpb240KSIpOworCisgICAgICAgIHNlbGVjdEVsZW1lbnQu
cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCgzKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgib3B0aW9u
NC5pc1NlbGVjdGVkIik7CisgICAgICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVk
Q2hpbGRyZW5Db3VudCIsICIyIik7CisKKyAgICAgICAgc2VsZWN0RWxlbWVudC5yZW1vdmVTZWxl
Y3Rpb25BdEluZGV4KDEpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRpb24yLmlzU2VsZWN0
ZWQiKTsKKyAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNv
dW50IiwgIjEiKTsKKworICAgICAgICBzZWxlY3RFbGVtZW50LnJlbW92ZVNlbGVjdGlvbkF0SW5k
ZXgoMCk7CisgICAgICAgIHNob3VsZEJlRmFsc2UoIm9wdGlvbjEuaXNTZWxlY3RlZCIpOworICAg
ICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMCIp
OworfQorCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwMjI3MDQxLi5iODAwMjgyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDksNiArNDksOCBAQCBhY2Nlc3Np
YmlsaXR5L211bHRpc2VsZWN0LWxpc3QtcmVwb3J0cy1hY3RpdmUtb3B0aW9uLmh0bWwKIAogIyBp
c0luZGV0ZXJtaW5hdGUgaXMgbm90IGltcGxlbWVudGVkIGluIG1hYwogd2Via2l0Lm9yZy9iLzEy
NTg1NSBhY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tlZC1taXhlZC12YWx1ZS5odG1sIFsgU2tpcCBd
CisjIE1pc3NpbmcgaW1wbGVtZW50YXRpb24gb2Ygc29tZSBmdW5jdGlvbnMgaW4gbWFjLgord2Vi
a2l0Lm9yZy9iLzEyOTAzOSBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0
bWwgWyBTa2lwIF0KIAogIyBhcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCBpcyBub3QgaW1wbGVt
ZW50ZWQgaW4gbWFjCiB3ZWJraXQub3JnL2IvMTI3OTA4IGFjY2Vzc2liaWxpdHkvYXJpYS1jb250
cm9scy5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Y1YzlkYi4uN2I0NjhjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTAyLTIwICBLcnp5c3p0b2YgQ3plY2ggIDxrLmN6
ZWNoQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtBVEtdIFdyb25nIHNlbGVjdGVkIGVsZW1lbnQg
YXQgYSBnaXZlbiBpbmRleCBpbiBhIGxpc3QgYm94LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVu
dC1hdC1pbmRleC5odG1sCisKKyAgICAgICAgVGhlIHNlbGVjdGVkIGVsZW1lbnQgYXQgYSBnaXZl
biBpbmRleCB3YXMgd3JvbmcuIE9uZSBzaG91bGQgYmUgY29uc2lkZXJlZCBhbW9uZyB0aGUKKyAg
ICAgICAgYWxsIGNoaWxkcmVuIG9mIGEgbGlzdCBib3gsIG5vdCBvbmx5IHNlbGVjdGVkIG9uZXMu
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNl
U2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKGNvcmUpOgorICAgICAgICAobGlzdE9iamVjdEZvclNl
bGVjdGlvbik6CisgICAgICAgIChvcHRpb25Gcm9tTGlzdCk6CisgICAgICAgIChvcHRpb25Gcm9t
U2VsZWN0aW9uKToKKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVTZWxlY3Rpb25SZWZTZWxlY3Rp
b24pOgorCiAyMDE0LTAyLTIwICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgog
CiAgICAgICAgIFtDU1NSZWdpb25zXSBBZGQgaGVscGVyIG1ldGhvZCBmb3IgcmVnaW9uIGNsaXBw
aW5nIGZsb3cgY29udGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlU2VsZWN0aW9u
LmNwcAppbmRleCBjYjdhM2NjLi42YzRjYmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlU2VsZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50
ZXJmYWNlU2VsZWN0aW9uLmNwcApAQCAtNDUsNyArNDUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlKEF0a1NlbGVjdGlvbiogc2Vs
ZWN0aW9uKQogewogICAgIGlmICghV0VCS0lUX0lTX0FDQ0VTU0lCTEUoc2VsZWN0aW9uKSkKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIHdl
YmtpdEFjY2Vzc2libGVHZXRBY2Nlc3NpYmlsaXR5T2JqZWN0KFdFQktJVF9BQ0NFU1NJQkxFKHNl
bGVjdGlvbikpOwogfQpAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVj
dCogbGlzdE9iamVjdEZvclNlbGVjdGlvbihBdGtTZWxlY3Rpb24qIHNlbGVjdGlvbikKIAogICAg
IC8vIE9ubHkgbGlzdCBib3hlcyBhbmQgbWVudSBsaXN0cyBzdXBwb3J0ZWQgc28gZmFyLgogICAg
IGlmICghY29yZVNlbGVjdGlvbi0+aXNMaXN0Qm94KCkgJiYgIWNvcmVTZWxlY3Rpb24tPmlzTWVu
dUxpc3QoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgLy8gRm9yIGxpc3QgYm94ZXMgdGhlIGxpc3Qgb2JqZWN0IGlzIGp1c3QgaXRzZWxmLgogICAg
IGlmIChjb3JlU2VsZWN0aW9uLT5pc0xpc3RCb3goKSkKQEAgLTY3LDExICs2NywxMSBAQCBzdGF0
aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdE9iamVjdEZvclNlbGVjdGlvbihBdGtTZWxlY3Rp
b24qIHNlbGVjdGlvbikKICAgICAvLyBvZiBpdGVtcyB3aXRoIHJvbGUgTWVudUxpc3RPcHRpb25S
b2xlLgogICAgIGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3RvciYgY2hpbGRyZW4gPSBjb3JlU2VsZWN0aW9uLT5jaGlsZHJlbigpOwogICAgIGlmICgh
Y2hpbGRyZW4uc2l6ZSgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsaXN0T2JqZWN0ID0gY2hpbGRyZW4uYXQo
MCkuZ2V0KCk7CiAgICAgaWYgKCFsaXN0T2JqZWN0LT5pc01lbnVMaXN0UG9wdXAoKSkKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIGxpc3RP
YmplY3Q7CiB9CkBAIC04MCwxOCArODAsMTggQEAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9wdGlvbkZyb21MaXN0KEF0a1NlbGVjdGlvbiogc2VsZWN0aW9uLCBnaW50IGluZGV4KQogewog
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVTZWxlY3Rpb24gPSBjb3JlKHNlbGVjdGlvbik7
CiAgICAgaWYgKCFjb3JlU2VsZWN0aW9uIHx8IGluZGV4IDwgMCkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gTmVlZCB0byBzZWxlY3QgdGhlIHBy
b3BlciBsaXN0IG9iamVjdCBkZXBlbmRpbmcgb24gdGhlIHR5cGUuCiAgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogbGlzdE9iamVjdCA9IGxpc3RPYmplY3RGb3JTZWxlY3Rpb24oc2VsZWN0aW9uKTsK
ICAgICBpZiAoIWxpc3RPYmplY3QpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogICAgIGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciYgb3B0aW9ucyA9IGxpc3RPYmplY3QtPmNoaWxkcmVuKCk7CiAgICAgaWYg
KGluZGV4IDwgc3RhdGljX2Nhc3Q8Z2ludD4ob3B0aW9ucy5zaXplKCkpKQogICAgICAgICByZXR1
cm4gb3B0aW9ucy5hdChpbmRleCkuZ2V0KCk7CiAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAogc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9wdGlvbkZyb21TZWxl
Y3Rpb24oQXRrU2VsZWN0aW9uKiBzZWxlY3Rpb24sIGdpbnQgaW5kZXgpCkBAIC0xMDAsMzAgKzEw
MCwyNiBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogb3B0aW9uRnJvbVNlbGVjdGlvbihB
dGtTZWxlY3Rpb24qIHNlbGVjdGlvbiwgZ2ludCBpbgogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogY29yZVNlbGVjdGlvbiA9IGNvcmUoc2VsZWN0aW9uKTsKICAgICBpZiAoIWNvcmVTZWxlY3Rp
b24gfHwgIWNvcmVTZWxlY3Rpb24tPmlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpIHx8IGlu
ZGV4IDwgMCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVj
dGVkSXRlbXM7Ci0gICAgaWYgKGNvcmVTZWxlY3Rpb24tPmlzTGlzdEJveCgpKQotICAgICAgICBj
b3JlU2VsZWN0aW9uLT5zZWxlY3RlZENoaWxkcmVuKHNlbGVjdGVkSXRlbXMpOwotICAgIGVsc2Ug
aWYgKGNvcmVTZWxlY3Rpb24tPmlzTWVudUxpc3QoKSkgeworICAgIGludCBzZWxlY3RlZEluZGV4
ID0gaW5kZXg7CisgICAgaWYgKGNvcmVTZWxlY3Rpb24tPmlzTWVudUxpc3QoKSkgewogICAgICAg
ICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29yZVNlbGVjdGlvbi0+cmVuZGVyZXIoKTsKICAg
ICAgICAgaWYgKCFyZW5kZXJlcikKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdE5vZGUg
PSB0b0hUTUxTZWxlY3RFbGVtZW50KHJlbmRlcmVyLT5ub2RlKCkpOwotICAgICAgICBpbnQgc2Vs
ZWN0ZWRJbmRleCA9IHNlbGVjdE5vZGUtPnNlbGVjdGVkSW5kZXgoKTsKLSAgICAgICAgY29uc3Qg
VmVjdG9yPEhUTUxFbGVtZW50Kj4gbGlzdEl0ZW1zID0gc2VsZWN0Tm9kZS0+bGlzdEl0ZW1zKCk7
CisgICAgICAgIGlmICghc2VsZWN0Tm9kZSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgMCB8fCBzZWxlY3RlZEluZGV4ID49IHN0YXRp
Y19jYXN0PGludD4obGlzdEl0ZW1zLnNpemUoKSkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgc2VsZWN0ZWRJbmRleCA9IHNlbGVjdE5vZGUtPnNlbGVjdGVkSW5kZXgoKTsKKyAgICAg
ICAgY29uc3QgYXV0byYgbGlzdEl0ZW1zID0gc2VsZWN0Tm9kZS0+bGlzdEl0ZW1zKCk7CiAKLSAg
ICAgICAgcmV0dXJuIG9wdGlvbkZyb21MaXN0KHNlbGVjdGlvbiwgc2VsZWN0ZWRJbmRleCk7Cisg
ICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgMCB8fCBzZWxlY3RlZEluZGV4ID49IHN0YXRpY19j
YXN0PGludD4obGlzdEl0ZW1zLnNpemUoKSkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICB9CiAKLSAgICBpZiAoaW5kZXggPCBzdGF0aWNfY2FzdDxnaW50PihzZWxlY3RlZEl0ZW1z
LnNpemUoKSkpCi0gICAgICAgIHJldHVybiBzZWxlY3RlZEl0ZW1zLmF0KGluZGV4KS5nZXQoKTsK
LQotICAgIHJldHVybiAwOworICAgIHJldHVybiBvcHRpb25Gcm9tTGlzdChzZWxlY3Rpb24sIHNl
bGVjdGVkSW5kZXgpOwogfQogCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0QWNjZXNzaWJsZVNlbGVj
dGlvbkFkZFNlbGVjdGlvbihBdGtTZWxlY3Rpb24qIHNlbGVjdGlvbiwgZ2ludCBpbmRleCkKQEAg
LTE2Niw4ICsxNjIsOCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0QWNjZXNzaWJsZVNlbGVjdGlv
bkNsZWFyU2VsZWN0aW9uKEF0a1NlbGVjdGlvbiogc2VsZWN0aW9uKQogCiBzdGF0aWMgQXRrT2Jq
ZWN0KiB3ZWJraXRBY2Nlc3NpYmxlU2VsZWN0aW9uUmVmU2VsZWN0aW9uKEF0a1NlbGVjdGlvbiog
c2VsZWN0aW9uLCBnaW50IGluZGV4KQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKEFUS19T
RUxFQ1RJT04oc2VsZWN0aW9uKSwgMCk7Ci0gICAgcmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxl
SXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKHNlbGVjdGlvbiksIDApOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKEFUS19TRUxFQ1RJT04oc2VsZWN0aW9uKSwgbnVsbHB0cik7CisgICAgcmV0
dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKHNlbGVj
dGlvbiksIG51bGxwdHIpOwogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb3B0aW9uID0gb3B0
aW9uRnJvbVNlbGVjdGlvbihzZWxlY3Rpb24sIGluZGV4KTsKICAgICBpZiAob3B0aW9uKSB7CkBA
IC0xNzYsNyArMTcyLDcgQEAgc3RhdGljIEF0a09iamVjdCogd2Via2l0QWNjZXNzaWJsZVNlbGVj
dGlvblJlZlNlbGVjdGlvbihBdGtTZWxlY3Rpb24qIHNlbGVjdGlvbiwKICAgICAgICAgcmV0dXJu
IGNoaWxkOwogICAgIH0KIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQog
CiBzdGF0aWMgZ2ludCB3ZWJraXRBY2Nlc3NpYmxlU2VsZWN0aW9uR2V0U2VsZWN0aW9uQ291bnQo
QXRrU2VsZWN0aW9uKiBzZWxlY3Rpb24pCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggOGE4ZTFjZC4uOGQ3NmFkOSAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTAy
LTIwICBLcnp5c3p0b2YgQ3plY2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtB
VEtdIFdyb25nIHNlbGVjdGVkIGVsZW1lbnQgYXQgYSBnaXZlbiBpbmRleCBpbiBhIGxpc3QgYm94
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
bWlzc2luZyBpbXBsZW1lbnRhdGlvbiBhbmQgcHJvcG9zZWQgc29tZSBuZXcgZnVuY3Rpb24gZm9y
IHRlc3Rpbmcgc2VsZWN0aW9uCisgICAgICAgIGluIGEgbGlzdCBib3hlcy4KKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAoc2V0
U2VsZWN0ZWRDaGlsZEF0SW5kZXhDYWxsYmFjayk6CisgICAgICAgIChyZW1vdmVTZWxlY3Rpb25D
aGlsZEF0SW5kZXhDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpn
ZXRKU0NsYXNzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRBdGsuY3BwOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGls
ZHJlbkNvdW50KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hp
bGRBdEluZGV4KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVk
Q2hpbGRBdEluZGV4KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNl
bGVjdGlvbkNoaWxkQXRJbmRleCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgpOgorICAgICAgICAoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25DaGlsZEF0SW5kZXgpOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHA6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRBdEluZGV4
KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJl
bkNvdW50KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0
ZWRDaGlsZEF0SW5kZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
ZW1vdmVTZWxlY3Rpb25DaGlsZEF0SW5kZXgpOgorCiAyMDE0LTAyLTE5ICBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvbT4KIAogICAgICAgICBbR1RL
XSBBZGQgbmV3IEFSTSBidWlsZCBzbGF2ZSBmb3IgR1RLKwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCA4NDg1MWQ0Li44ZWU3MjgzIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcApA
QCAtMTIwNyw2ICsxMjA3LDI4IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNlbnRlbmNlQXRPZmZzZXRD
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuCiAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIHNlbnRlbmNlQXRPZmZzZXQuZ2V0KCkpOwogfQog
CitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTZWxlY3RlZENoaWxkQXRJbmRleENhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10s
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpbnQgaW5kZXhOdW1iZXIgPSAtMTsKKyAg
ICBpZiAoYXJndW1lbnRDb3VudCA9PSAxKTsKKyAgICAgICAgaW5kZXhOdW1iZXIgPSBKU1ZhbHVl
VG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOworCisgICAgaWYgKGlu
ZGV4TnVtYmVyID49IDApCisgICAgICAgIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5zZXRTZWxl
Y3RlZENoaWxkQXRJbmRleChpbmRleE51bWJlcik7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiByZW1vdmVTZWxlY3Rpb25B
dEluZGV4Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGludCBp
bmRleE51bWJlciA9IC0xOworICAgIGlmIChhcmd1bWVudENvdW50ID09IDEpCisgICAgICAgIGlu
ZGV4TnVtYmVyID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0
aW9uKTsKKworICAgIGlmIChpbmRleE51bWJlciA+PSAwKQorICAgICAgICB0b0FYRWxlbWVudCh0
aGlzT2JqZWN0KS0+cmVtb3ZlU2VsZWN0aW9uQXRJbmRleChpbmRleE51bWJlcik7CisgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCiAjZWxpZiBQTEFURk9STShJ
T1MpCiAKIHN0YXRpYyBKU1ZhbHVlUmVmIHN0cmluZ0ZvclNlbGVjdGlvbkNhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKQEAgLTEyOTIsOCArMTMxNCw2IEBAIEpT
U3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNwZWFrKCkgeyByZXR1cm4gMDsgfQog
SlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmFuZ2VGb3JMaW5lKGludCBsaW5l
KSB7IHJldHVybiAwOyB9CiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyYW5n
ZUZvclBvc2l0aW9uKGludCwgaW50KSB7IHJldHVybiAwOyB9CiB2b2lkIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopIGNvbnN0
IHsgfQotdW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNv
dW50KCkgY29uc3QgeyByZXR1cm4gMDsgfQotQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QgeyBy
ZXR1cm4gMDsgfQogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpob3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogQWNjZXNzaWJpbGl0
eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2ZXJ0aWNhbFNjcm9sbGJhcigpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6dWlFbGVtZW50QXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KQEAgLTE1OTUsNiArMTYxNSw4IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Z2V0SlNDbGFzcygpCiAgICAgICAgIHsgIndvcmRBdE9mZnNldCIsIHdvcmRBdE9m
ZnNldENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImxpbmVBdE9mZnNldCIsIGxpbmVBdE9m
ZnNldENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNlbnRlbmNlQXRPZmZzZXQiLCBzZW50
ZW5jZUF0T2Zmc2V0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0U2VsZWN0ZWRDaGls
ZEF0SW5kZXgiLCBzZXRTZWxlY3RlZENoaWxkQXRJbmRleENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAg
ICAgIHsgInJlbW92ZVNlbGVjdGlvbkF0SW5kZXgiLCByZW1vdmVTZWxlY3Rpb25BdEluZGV4Q2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICNlbGlmIFBMQVRGT1JNKElPUykKICAgICAgICAgeyAibGlua2VkRWxl
bWVudCIsIGxpbmtlZEVsZW1lbnRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJoZWFkZXJF
bGVtZW50QXRJbmRleCIsIGhlYWRlckVsZW1lbnRBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCAxYzRk
NWNhLi43MWQxYTcyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5oCkBAIC0xNDgsNiArMTQ4LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2VsZWN0
ZWRDaGlsZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KikgY29uc3Q7CiAgICAgdW5zaWduZWQgc2Vs
ZWN0ZWRDaGlsZHJlbkNvdW50KCkgY29uc3Q7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBz
ZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3Q7CisgICAgdm9pZCBzZXRTZWxlY3Rl
ZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3Q7CisgICAgdm9pZCByZW1vdmVTZWxlY3Rpb25B
dEluZGV4KHVuc2lnbmVkKSBjb25zdDsKICAgICAKICAgICBib29sIGlzRXhwYW5kZWQoKSBjb25z
dDsKICAgICBib29sIGlzQ2hlY2tlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCmluZGV4IDU1OWZmYzcu
LjIwYmU1OTg3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudEF0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCkBAIC0xNjIzLDQgKzE2MjMsMzcgQEAgSlNTdHJpbmdS
ZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChpbnQgb2Zmc2V0KQog
ICAgIHJldHVybiBzdHJpbmdBdE9mZnNldChtX2VsZW1lbnQsIEFUS19URVhUX0JPVU5EQVJZX1NF
TlRFTkNFX1NUQVJULCBvZmZzZXQpOwogfQogCit1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdAoreworICAgIGlmICghQVRLX0lTX1NF
TEVDVElPTihtX2VsZW1lbnQpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBhdGtf
c2VsZWN0aW9uX2dldF9zZWxlY3Rpb25fY291bnQoQVRLX1NFTEVDVElPTihtX2VsZW1lbnQpKTsK
K30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxl
Y3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAoIUFUS19J
U19TRUxFQ1RJT04obV9lbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBH
UmVmUHRyPEF0a09iamVjdD4gY2hpbGQgPSBhZG9wdEdSZWYoYXRrX3NlbGVjdGlvbl9yZWZfc2Vs
ZWN0aW9uKEFUS19TRUxFQ1RJT04obV9lbGVtZW50KSwgaW5kZXgpKTsKKyAgICByZXR1cm4gY2hp
bGQgPyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGNoaWxkLmdldCgpKSA6IG51bGxwdHI7Cit9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5z
aWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgaWYgKCFBVEtfSVNfU0VMRUNUSU9OKG1fZWxlbWVu
dCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF0a19zZWxlY3Rpb25fYWRkX3NlbGVjdGlvbihB
VEtfU0VMRUNUSU9OKG1fZWxlbWVudCksIGluZGV4KTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAor
eworICAgIGlmICghQVRLX0lTX1NFTEVDVElPTihtX2VsZW1lbnQpKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdGtfc2VsZWN0aW9uX3JlbW92ZV9zZWxlY3Rpb24oQVRLX1NFTEVDVElPTihtX2Vs
ZW1lbnQpLCBpbmRleCk7Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5j
cHAKaW5kZXggZTZhNTNkOC4uMWU1YjI5NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
Y3BwCkBAIC01OSw2ICs1OSw4IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpjaGFyYWN0ZXJBdE9mZnNldChpbnQpIHsgcmV0dXJuCiBKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkg
eyByZXR1cm4gMDsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmxpbmVBdE9mZnNldChpbnQpIHsgcmV0dXJuIDA7IH0KIEpTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZW50ZW5jZUF0T2Zmc2V0KGludCkgeyBy
ZXR1cm4gMDsgfQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxk
QXRJbmRleCh1bnNpZ25lZCkgY29uc3QgeyB9Cit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgodW5zaWduZWQpIGNvbnN0IHsgfQogI2VuZGlmCiAKICNp
ZiAoIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZMKSkg
fHwgIUhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKaW5kZXgg
NjE5YTBlOS4uNDM0MTkyMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKQEAgLTE0MSw2
ICsxNDEsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1NlbGVjdGFibGUoKSBjb25zdDsKICAgICBi
b29sIGlzTXVsdGlTZWxlY3RhYmxlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTZWxlY3RlZENoaWxk
KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKSBjb25zdDsKKyAgICB2b2lkIHNldFNlbGVjdGVkQ2hp
bGRBdEluZGV4KHVuc2lnbmVkKSBjb25zdDsKKyAgICB2b2lkIHJlbW92ZVNlbGVjdGlvbkF0SW5k
ZXgodW5zaWduZWQpIGNvbnN0OwogICAgIHVuc2lnbmVkIHNlbGVjdGVkQ2hpbGRyZW5Db3VudCgp
IGNvbnN0OwogICAgIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gc2VsZWN0ZWRD
aGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0OwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKaW5kZXggZmM2MGRlZS4uZWE4ZmQ0YSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCkBAIC0zNyw2ICsz
Nyw4IEBAIGludGVyZmFjZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHsKICAgICBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50IGxpbmtlZFVJRWxlbWVudEF0SW5kZXgodW5zaWduZWQgbG9uZyBpbmRleCk7
CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25l
ZCBsb25nIGluZGV4KTsKICAgICB2b2lkIHNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCBlbGVtZW50KTsKKyAgICB2b2lkIHNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2ln
bmVkIGxvbmcgaW5kZXgpOworICAgIHZvaWQgcmVtb3ZlU2VsZWN0aW9uQXRJbmRleCh1bnNpZ25l
ZCBsb25nIGluZGV4KTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHRpdGxlVUlFbGVtZW50
KCk7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBwYXJlbnRFbGVtZW50KCk7CiAgICAgCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCmluZGV4IDYxODhhMDYu
LjBkMTg0NzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3Bw
CkBAIC03MDEsMTQgKzcwMSwxOCBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0F0SW5kZXgodW5zaWduZWQgaQogCiBQYXNzUmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVj
dGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAogewotICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoIUFUS19TRUxFQ1RJT04obV9l
bGVtZW50LmdldCgpKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBHUmVmUHRyPEF0
a09iamVjdD4gY2hpbGQgPSBhZG9wdEdSZWYoYXRrX3NlbGVjdGlvbl9yZWZfc2VsZWN0aW9uKEFU
S19TRUxFQ1RJT04obV9lbGVtZW50LmdldCgpKSwgaW5kZXgpKTsKKyAgICByZXR1cm4gY2hpbGQg
PyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoY2hpbGQuZ2V0KCkpIDogbnVsbHB0cjsK
IH0KIAogdW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNv
dW50KCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0dXJuIDA7Cisg
ICAgaWYgKCFBVEtfSVNfU0VMRUNUSU9OKG1fZWxlbWVudC5nZXQoKSkpCisgICAgICAgIHJldHVy
biAwOworICAgIHJldHVybiBhdGtfc2VsZWN0aW9uX2dldF9zZWxlY3Rpb25fY291bnQoQVRLX1NF
TEVDVElPTihtX2VsZW1lbnQuZ2V0KCkpKTsKIH0KIAogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFJvd0F0SW5kZXgodW5z
aWduZWQgaW5kZXgpCkBAIC0xNDY1LDYgKzE0NjksMjIgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzZXRTZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQp
IGMKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7Cisg
ICAgaWYgKCFBVEtfSVNfU0VMRUNUSU9OKG1fZWxlbWVudC5nZXQoKSkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF0a19zZWxlY3Rpb25fYWRkX3NlbGVjdGlvbihBVEtfU0VMRUNUSU9OKG1fZWxl
bWVudC5nZXQoKSksIGluZGV4KTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
ZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIGlmICgh
QVRLX0lTX1NFTEVDVElPTihtX2VsZW1lbnQuZ2V0KCkpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBhdGtfc2VsZWN0aW9uX3JlbW92ZV9zZWxlY3Rpb24oQVRLX1NFTEVDVElPTihtX2VsZW1lbnQu
Z2V0KCkpLCBpbmRleCk7Cit9CisKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5VmFsdWUoKSBjb25zdAogewogICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224752</attachid>
            <date>2014-02-20 06:21:39 -0800</date>
            <delta_ts>2014-02-24 01:25:48 -0800</delta_ts>
            <desc>patch - fixed win build</desc>
            <filename>a11y-selection.patch</filename>
            <type>text/plain</type>
            <size>23380</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNDJhZmRmLi5iZDlkNDdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDIt
MjAgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FU
S10gV3Jvbmcgc2VsZWN0ZWQgZWxlbWVudCBhdCBhIGdpdmVuIGluZGV4IGluIGEgbGlzdCBib3gu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwMzkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9wb3Nl
ZCB0ZXN0IHRoYXQgY2hlY2tzIHdoZXRoZXIgY29ycmVjdCBlbGVtZW50IGF0IGEgZ2l2ZW4gaW5k
ZXggaXMgcmV0cmlldmVkLgorICAgICAgICBBbHNvIHRlc3Rpbmcgc29tZSBvdGhlciBzY2VuYXJp
b3Mgc3VjaCBhcyByZW1vdmluZyBzZWxlY3Rpb24gZnJvbSByb3dzLCBjb3VudGluZyBhbGwKKyAg
ICAgICAgc2VsZWN0ZWQgcm93cyBhbmQgc2V0dGluZyBzZWxlY3Rpb24uCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1hdC1pbmRleC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczogU2tpcHBpbmcg
dGVzdCBpbiBNYWMsIG1pc3NpbmcgaW1wbGVtZW50YXRpb24uCisKIDIwMTQtMDItMjAgIEZyw6lk
w6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgogCiAgICAgICAgIEltcGxlbWVudCB0aGUg
TWF0aE1MIE9wZXJhdG9yIERpY3Rpb25hcnkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5kZXgtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2ZmIyNjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACisKK1Rlc3RzIHRoYXQgY2hlY2tzIHdoZXRoZXIg
c2V0dGluZyBzZWxlY3Rpb24gYXQgdGhlIGdpdmVuIGluZGV4IHdvcmtzIGNvcnJlY3RseQorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVk
Q2hpbGRyZW5Db3VudCBpcyAwCitQQVNTIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNv
dW50IGlzIDEKK1BBU1Mgb3B0aW9uMS5pc1NlbGVjdGVkIGlzIHRydWUKK1BBU1Mgc2VsZWN0RWxl
bWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgwKS5pc0VxdWFsKG9wdGlvbjEpIGlzIHRydWUKK1BB
U1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMgMgorUEFTUyBvcHRpb24y
LmlzU2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdElu
ZGV4KDEpLmlzRXF1YWwob3B0aW9uMikgaXMgdHJ1ZQorUEFTUyBvcHRpb24zLmlzU2VsZWN0ZWQg
aXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMgMwor
UEFTUyBvcHRpb240LmlzU2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBzZWxlY3RFbGVtZW50LnNlbGVj
dGVkQ2hpbGRBdEluZGV4KDMpLmlzRXF1YWwob3B0aW9uNCkgaXMgdHJ1ZQorUEFTUyBvcHRpb240
LmlzU2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVu
Q291bnQgaXMgMgorUEFTUyBvcHRpb24yLmlzU2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0
RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMgMQorUEFTUyBvcHRpb24xLmlzU2VsZWN0
ZWQgaXMgZmFsc2UKK1BBU1Mgc2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQgaXMg
MAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5k
ZXguaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQtYXQtaW5k
ZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmUzNzFiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC1h
dC1pbmRleC5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5
Ij4KKworPHNlbGVjdCBpZD0iZ3JvdXAiIG11bHRpcGxlPSJtdWx0aXBsZSI+CisgICAgPG9wdGlv
bj5PcHRpb24gMTwvb3B0aW9uPgorICAgIDxvcHRpb24+T3B0aW9uIDI8L29wdGlvbj4KKyAgICA8
b3B0aW9uPk9wdGlvbiAzPC9vcHRpb24+CisgICAgPG9wdGlvbj5PcHRpb24gNDwvb3B0aW9uPgor
PC9zZWxlY3Q+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBjaGVja3Mg
d2hldGhlciBzZXR0aW5nIHNlbGVjdGlvbiBhdCB0aGUgZ2l2ZW4gaW5kZXggd29ya3MgY29ycmVj
dGx5Iik7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncm91cCIpLmZvY3VzKCk7CisgICAgICAgIHZh
ciBzZWxlY3RFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7
CisKKyAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNvdW50
IiwgIjAiKTsKKworICAgICAgICB2YXIgb3B0aW9uMSA9IHNlbGVjdEVsZW1lbnQuY2hpbGRBdElu
ZGV4KDApOworICAgICAgICB2YXIgb3B0aW9uMiA9IHNlbGVjdEVsZW1lbnQuY2hpbGRBdEluZGV4
KDEpOworICAgICAgICB2YXIgb3B0aW9uMyA9IHNlbGVjdEVsZW1lbnQuY2hpbGRBdEluZGV4KDIp
OworICAgICAgICB2YXIgb3B0aW9uNCA9IHNlbGVjdEVsZW1lbnQuY2hpbGRBdEluZGV4KDMpOwor
CisgICAgICAgIHNlbGVjdEVsZW1lbnQuc2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgoMCk7CisgICAg
ICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRyZW5Db3VudCIsICIxIik7
CisgICAgICAgIHNob3VsZEJlVHJ1ZSgib3B0aW9uMS5pc1NlbGVjdGVkIik7CisgICAgICAgIHNo
b3VsZEJlVHJ1ZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkQXRJbmRleCgwKS5pc0VxdWFs
KG9wdGlvbjEpIik7CisKKyAgICAgICAgc2VsZWN0RWxlbWVudC5zZXRTZWxlY3RlZENoaWxkQXRJ
bmRleCgxKTsKKyAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJl
bkNvdW50IiwgIjIiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJvcHRpb24yLmlzU2VsZWN0ZWQi
KTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVkQ2hpbGRBdElu
ZGV4KDEpLmlzRXF1YWwob3B0aW9uMikiKTsKKworICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRp
b24zLmlzU2VsZWN0ZWQiKTsKKworICAgICAgICBzZWxlY3RFbGVtZW50LnNldFNlbGVjdGVkQ2hp
bGRBdEluZGV4KDMpOworICAgICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENo
aWxkcmVuQ291bnQiLCAiMyIpOworICAgICAgICBzaG91bGRCZVRydWUoIm9wdGlvbjQuaXNTZWxl
Y3RlZCIpOworICAgICAgICBzaG91bGRCZVRydWUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGls
ZEF0SW5kZXgoMykuaXNFcXVhbChvcHRpb240KSIpOworCisgICAgICAgIHNlbGVjdEVsZW1lbnQu
cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCgzKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgib3B0aW9u
NC5pc1NlbGVjdGVkIik7CisgICAgICAgIHNob3VsZEJlKCJzZWxlY3RFbGVtZW50LnNlbGVjdGVk
Q2hpbGRyZW5Db3VudCIsICIyIik7CisKKyAgICAgICAgc2VsZWN0RWxlbWVudC5yZW1vdmVTZWxl
Y3Rpb25BdEluZGV4KDEpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJvcHRpb24yLmlzU2VsZWN0
ZWQiKTsKKyAgICAgICAgc2hvdWxkQmUoInNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRDaGlsZHJlbkNv
dW50IiwgIjEiKTsKKworICAgICAgICBzZWxlY3RFbGVtZW50LnJlbW92ZVNlbGVjdGlvbkF0SW5k
ZXgoMCk7CisgICAgICAgIHNob3VsZEJlRmFsc2UoIm9wdGlvbjEuaXNTZWxlY3RlZCIpOworICAg
ICAgICBzaG91bGRCZSgic2VsZWN0RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMCIp
OworfQorCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwMjI3MDQxLi5iODAwMjgyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDksNiArNDksOCBAQCBhY2Nlc3Np
YmlsaXR5L211bHRpc2VsZWN0LWxpc3QtcmVwb3J0cy1hY3RpdmUtb3B0aW9uLmh0bWwKIAogIyBp
c0luZGV0ZXJtaW5hdGUgaXMgbm90IGltcGxlbWVudGVkIGluIG1hYwogd2Via2l0Lm9yZy9iLzEy
NTg1NSBhY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tlZC1taXhlZC12YWx1ZS5odG1sIFsgU2tpcCBd
CisjIE1pc3NpbmcgaW1wbGVtZW50YXRpb24gb2Ygc29tZSBmdW5jdGlvbnMgaW4gbWFjLgord2Vi
a2l0Lm9yZy9iLzEyOTAzOSBhY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LWF0LWluZGV4Lmh0
bWwgWyBTa2lwIF0KIAogIyBhcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCBpcyBub3QgaW1wbGVt
ZW50ZWQgaW4gbWFjCiB3ZWJraXQub3JnL2IvMTI3OTA4IGFjY2Vzc2liaWxpdHkvYXJpYS1jb250
cm9scy5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Y1YzlkYi4uN2I0NjhjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTAyLTIwICBLcnp5c3p0b2YgQ3plY2ggIDxrLmN6
ZWNoQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtBVEtdIFdyb25nIHNlbGVjdGVkIGVsZW1lbnQg
YXQgYSBnaXZlbiBpbmRleCBpbiBhIGxpc3QgYm94LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVu
dC1hdC1pbmRleC5odG1sCisKKyAgICAgICAgVGhlIHNlbGVjdGVkIGVsZW1lbnQgYXQgYSBnaXZl
biBpbmRleCB3YXMgd3JvbmcuIE9uZSBzaG91bGQgYmUgY29uc2lkZXJlZCBhbW9uZyB0aGUKKyAg
ICAgICAgYWxsIGNoaWxkcmVuIG9mIGEgbGlzdCBib3gsIG5vdCBvbmx5IHNlbGVjdGVkIG9uZXMu
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNl
U2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKGNvcmUpOgorICAgICAgICAobGlzdE9iamVjdEZvclNl
bGVjdGlvbik6CisgICAgICAgIChvcHRpb25Gcm9tTGlzdCk6CisgICAgICAgIChvcHRpb25Gcm9t
U2VsZWN0aW9uKToKKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVTZWxlY3Rpb25SZWZTZWxlY3Rp
b24pOgorCiAyMDE0LTAyLTIwICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgog
CiAgICAgICAgIFtDU1NSZWdpb25zXSBBZGQgaGVscGVyIG1ldGhvZCBmb3IgcmVnaW9uIGNsaXBw
aW5nIGZsb3cgY29udGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlU2VsZWN0aW9u
LmNwcAppbmRleCBjYjdhM2NjLi42YzRjYmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlU2VsZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50
ZXJmYWNlU2VsZWN0aW9uLmNwcApAQCAtNDUsNyArNDUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlKEF0a1NlbGVjdGlvbiogc2Vs
ZWN0aW9uKQogewogICAgIGlmICghV0VCS0lUX0lTX0FDQ0VTU0lCTEUoc2VsZWN0aW9uKSkKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIHdl
YmtpdEFjY2Vzc2libGVHZXRBY2Nlc3NpYmlsaXR5T2JqZWN0KFdFQktJVF9BQ0NFU1NJQkxFKHNl
bGVjdGlvbikpOwogfQpAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVj
dCogbGlzdE9iamVjdEZvclNlbGVjdGlvbihBdGtTZWxlY3Rpb24qIHNlbGVjdGlvbikKIAogICAg
IC8vIE9ubHkgbGlzdCBib3hlcyBhbmQgbWVudSBsaXN0cyBzdXBwb3J0ZWQgc28gZmFyLgogICAg
IGlmICghY29yZVNlbGVjdGlvbi0+aXNMaXN0Qm94KCkgJiYgIWNvcmVTZWxlY3Rpb24tPmlzTWVu
dUxpc3QoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgLy8gRm9yIGxpc3QgYm94ZXMgdGhlIGxpc3Qgb2JqZWN0IGlzIGp1c3QgaXRzZWxmLgogICAg
IGlmIChjb3JlU2VsZWN0aW9uLT5pc0xpc3RCb3goKSkKQEAgLTY3LDExICs2NywxMSBAQCBzdGF0
aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdE9iamVjdEZvclNlbGVjdGlvbihBdGtTZWxlY3Rp
b24qIHNlbGVjdGlvbikKICAgICAvLyBvZiBpdGVtcyB3aXRoIHJvbGUgTWVudUxpc3RPcHRpb25S
b2xlLgogICAgIGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3RvciYgY2hpbGRyZW4gPSBjb3JlU2VsZWN0aW9uLT5jaGlsZHJlbigpOwogICAgIGlmICgh
Y2hpbGRyZW4uc2l6ZSgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsaXN0T2JqZWN0ID0gY2hpbGRyZW4uYXQo
MCkuZ2V0KCk7CiAgICAgaWYgKCFsaXN0T2JqZWN0LT5pc01lbnVMaXN0UG9wdXAoKSkKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIGxpc3RP
YmplY3Q7CiB9CkBAIC04MCwxOCArODAsMTggQEAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9wdGlvbkZyb21MaXN0KEF0a1NlbGVjdGlvbiogc2VsZWN0aW9uLCBnaW50IGluZGV4KQogewog
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVTZWxlY3Rpb24gPSBjb3JlKHNlbGVjdGlvbik7
CiAgICAgaWYgKCFjb3JlU2VsZWN0aW9uIHx8IGluZGV4IDwgMCkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gTmVlZCB0byBzZWxlY3QgdGhlIHBy
b3BlciBsaXN0IG9iamVjdCBkZXBlbmRpbmcgb24gdGhlIHR5cGUuCiAgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogbGlzdE9iamVjdCA9IGxpc3RPYmplY3RGb3JTZWxlY3Rpb24oc2VsZWN0aW9uKTsK
ICAgICBpZiAoIWxpc3RPYmplY3QpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogICAgIGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciYgb3B0aW9ucyA9IGxpc3RPYmplY3QtPmNoaWxkcmVuKCk7CiAgICAgaWYg
KGluZGV4IDwgc3RhdGljX2Nhc3Q8Z2ludD4ob3B0aW9ucy5zaXplKCkpKQogICAgICAgICByZXR1
cm4gb3B0aW9ucy5hdChpbmRleCkuZ2V0KCk7CiAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAogc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9wdGlvbkZyb21TZWxl
Y3Rpb24oQXRrU2VsZWN0aW9uKiBzZWxlY3Rpb24sIGdpbnQgaW5kZXgpCkBAIC0xMDAsMzAgKzEw
MCwyNiBAQCBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogb3B0aW9uRnJvbVNlbGVjdGlvbihB
dGtTZWxlY3Rpb24qIHNlbGVjdGlvbiwgZ2ludCBpbgogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogY29yZVNlbGVjdGlvbiA9IGNvcmUoc2VsZWN0aW9uKTsKICAgICBpZiAoIWNvcmVTZWxlY3Rp
b24gfHwgIWNvcmVTZWxlY3Rpb24tPmlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpIHx8IGlu
ZGV4IDwgMCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVj
dGVkSXRlbXM7Ci0gICAgaWYgKGNvcmVTZWxlY3Rpb24tPmlzTGlzdEJveCgpKQotICAgICAgICBj
b3JlU2VsZWN0aW9uLT5zZWxlY3RlZENoaWxkcmVuKHNlbGVjdGVkSXRlbXMpOwotICAgIGVsc2Ug
aWYgKGNvcmVTZWxlY3Rpb24tPmlzTWVudUxpc3QoKSkgeworICAgIGludCBzZWxlY3RlZEluZGV4
ID0gaW5kZXg7CisgICAgaWYgKGNvcmVTZWxlY3Rpb24tPmlzTWVudUxpc3QoKSkgewogICAgICAg
ICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29yZVNlbGVjdGlvbi0+cmVuZGVyZXIoKTsKICAg
ICAgICAgaWYgKCFyZW5kZXJlcikKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdE5vZGUg
PSB0b0hUTUxTZWxlY3RFbGVtZW50KHJlbmRlcmVyLT5ub2RlKCkpOwotICAgICAgICBpbnQgc2Vs
ZWN0ZWRJbmRleCA9IHNlbGVjdE5vZGUtPnNlbGVjdGVkSW5kZXgoKTsKLSAgICAgICAgY29uc3Qg
VmVjdG9yPEhUTUxFbGVtZW50Kj4gbGlzdEl0ZW1zID0gc2VsZWN0Tm9kZS0+bGlzdEl0ZW1zKCk7
CisgICAgICAgIGlmICghc2VsZWN0Tm9kZSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgMCB8fCBzZWxlY3RlZEluZGV4ID49IHN0YXRp
Y19jYXN0PGludD4obGlzdEl0ZW1zLnNpemUoKSkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgc2VsZWN0ZWRJbmRleCA9IHNlbGVjdE5vZGUtPnNlbGVjdGVkSW5kZXgoKTsKKyAgICAg
ICAgY29uc3QgYXV0byYgbGlzdEl0ZW1zID0gc2VsZWN0Tm9kZS0+bGlzdEl0ZW1zKCk7CiAKLSAg
ICAgICAgcmV0dXJuIG9wdGlvbkZyb21MaXN0KHNlbGVjdGlvbiwgc2VsZWN0ZWRJbmRleCk7Cisg
ICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgMCB8fCBzZWxlY3RlZEluZGV4ID49IHN0YXRpY19j
YXN0PGludD4obGlzdEl0ZW1zLnNpemUoKSkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICB9CiAKLSAgICBpZiAoaW5kZXggPCBzdGF0aWNfY2FzdDxnaW50PihzZWxlY3RlZEl0ZW1z
LnNpemUoKSkpCi0gICAgICAgIHJldHVybiBzZWxlY3RlZEl0ZW1zLmF0KGluZGV4KS5nZXQoKTsK
LQotICAgIHJldHVybiAwOworICAgIHJldHVybiBvcHRpb25Gcm9tTGlzdChzZWxlY3Rpb24sIHNl
bGVjdGVkSW5kZXgpOwogfQogCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0QWNjZXNzaWJsZVNlbGVj
dGlvbkFkZFNlbGVjdGlvbihBdGtTZWxlY3Rpb24qIHNlbGVjdGlvbiwgZ2ludCBpbmRleCkKQEAg
LTE2Niw4ICsxNjIsOCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0QWNjZXNzaWJsZVNlbGVjdGlv
bkNsZWFyU2VsZWN0aW9uKEF0a1NlbGVjdGlvbiogc2VsZWN0aW9uKQogCiBzdGF0aWMgQXRrT2Jq
ZWN0KiB3ZWJraXRBY2Nlc3NpYmxlU2VsZWN0aW9uUmVmU2VsZWN0aW9uKEF0a1NlbGVjdGlvbiog
c2VsZWN0aW9uLCBnaW50IGluZGV4KQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKEFUS19T
RUxFQ1RJT04oc2VsZWN0aW9uKSwgMCk7Ci0gICAgcmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxl
SXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKHNlbGVjdGlvbiksIDApOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKEFUS19TRUxFQ1RJT04oc2VsZWN0aW9uKSwgbnVsbHB0cik7CisgICAgcmV0
dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKHNlbGVj
dGlvbiksIG51bGxwdHIpOwogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb3B0aW9uID0gb3B0
aW9uRnJvbVNlbGVjdGlvbihzZWxlY3Rpb24sIGluZGV4KTsKICAgICBpZiAob3B0aW9uKSB7CkBA
IC0xNzYsNyArMTcyLDcgQEAgc3RhdGljIEF0a09iamVjdCogd2Via2l0QWNjZXNzaWJsZVNlbGVj
dGlvblJlZlNlbGVjdGlvbihBdGtTZWxlY3Rpb24qIHNlbGVjdGlvbiwKICAgICAgICAgcmV0dXJu
IGNoaWxkOwogICAgIH0KIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQog
CiBzdGF0aWMgZ2ludCB3ZWJraXRBY2Nlc3NpYmxlU2VsZWN0aW9uR2V0U2VsZWN0aW9uQ291bnQo
QXRrU2VsZWN0aW9uKiBzZWxlY3Rpb24pCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggOGE4ZTFjZC4uZmZhMDFhOCAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTAy
LTIwICBLcnp5c3p0b2YgQ3plY2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtB
VEtdIFdyb25nIHNlbGVjdGVkIGVsZW1lbnQgYXQgYSBnaXZlbiBpbmRleCBpbiBhIGxpc3QgYm94
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
bWlzc2luZyBpbXBsZW1lbnRhdGlvbiBhbmQgcHJvcG9zZWQgc29tZSBuZXcgZnVuY3Rpb24gZm9y
IHRlc3Rpbmcgc2VsZWN0aW9uCisgICAgICAgIGluIGEgbGlzdCBib3hlcy4KKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAoc2V0
U2VsZWN0ZWRDaGlsZEF0SW5kZXhDYWxsYmFjayk6CisgICAgICAgIChyZW1vdmVTZWxlY3Rpb25B
dEluZGV4Q2FsbGJhY2spOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlND
bGFzcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5o
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRr
LmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5D
b3VudCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJ
bmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxk
QXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rp
b25BdEluZGV4KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudFdpbi5jcHA6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3Rl
ZENoaWxkcmVuQ291bnQpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0
ZWRDaGlsZEF0SW5kZXgpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcDoKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXgpOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQpOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxkQXRJ
bmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVj
dGlvbkF0SW5kZXgpOgorCiAyMDE0LTAyLTE5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0
YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgbmV3IEFSTSBi
dWlsZCBzbGF2ZSBmb3IgR1RLKwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmNwcAppbmRleCA4NDg1MWQ0Li44ZWU3MjgzIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcApAQCAtMTIwNyw2ICsxMjA3
LDI4IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNlbnRlbmNlQXRPZmZzZXRDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlU3Ry
aW5nKGNvbnRleHQsIHNlbnRlbmNlQXRPZmZzZXQuZ2V0KCkpOwogfQogCitzdGF0aWMgSlNWYWx1
ZVJlZiBzZXRTZWxlY3RlZENoaWxkQXRJbmRleENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKK3sKKyAgICBpbnQgaW5kZXhOdW1iZXIgPSAtMTsKKyAgICBpZiAoYXJndW1lbnRD
b3VudCA9PSAxKTsKKyAgICAgICAgaW5kZXhOdW1iZXIgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4
dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOworCisgICAgaWYgKGluZGV4TnVtYmVyID49IDAp
CisgICAgICAgIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5zZXRTZWxlY3RlZENoaWxkQXRJbmRl
eChpbmRleE51bWJlcik7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiByZW1vdmVTZWxlY3Rpb25BdEluZGV4Q2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGludCBpbmRleE51bWJlciA9IC0x
OworICAgIGlmIChhcmd1bWVudENvdW50ID09IDEpCisgICAgICAgIGluZGV4TnVtYmVyID0gSlNW
YWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKKworICAgIGlm
IChpbmRleE51bWJlciA+PSAwKQorICAgICAgICB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+cmVt
b3ZlU2VsZWN0aW9uQXRJbmRleChpbmRleE51bWJlcik7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOworfQorCiAjZWxpZiBQTEFURk9STShJT1MpCiAKIHN0YXRpYyBK
U1ZhbHVlUmVmIHN0cmluZ0ZvclNlbGVjdGlvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKQEAgLTEyOTIsOCArMTMxNCw2IEBAIEpTU3RyaW5nUmVmIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNwZWFrKCkgeyByZXR1cm4gMDsgfQogSlNTdHJpbmdSZWYgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6cmFuZ2VGb3JMaW5lKGludCBsaW5lKSB7IHJldHVybiAwOyB9
CiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyYW5nZUZvclBvc2l0aW9uKGlu
dCwgaW50KSB7IHJldHVybiAwOyB9CiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNl
bGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopIGNvbnN0IHsgfQotdW5zaWduZWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkgY29uc3QgeyBy
ZXR1cm4gMDsgfQotQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QgeyByZXR1cm4gMDsgfQogQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpob3Jpem9udGFsU2Ny
b2xsYmFyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp2ZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVt
ZW50QXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KQEAgLTE1
OTUsNiArMTYxNSw4IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlND
bGFzcygpCiAgICAgICAgIHsgIndvcmRBdE9mZnNldCIsIHdvcmRBdE9mZnNldENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgImxpbmVBdE9mZnNldCIsIGxpbmVBdE9mZnNldENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgInNlbnRlbmNlQXRPZmZzZXQiLCBzZW50ZW5jZUF0T2Zmc2V0Q2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgiLCBzZXRT
ZWxlY3RlZENoaWxkQXRJbmRleENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInJlbW92ZVNl
bGVjdGlvbkF0SW5kZXgiLCByZW1vdmVTZWxlY3Rpb25BdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICNlbGlmIFBMQVRGT1JNKElPUykKICAgICAgICAgeyAibGlua2VkRWxlbWVudCIsIGxpbmtlZEVs
ZW1lbnRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJoZWFkZXJFbGVtZW50QXRJbmRleCIs
IGhlYWRlckVsZW1lbnRBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCAxYzRkNWNhLi43MWQxYTcyIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCkBAIC0x
NDgsNiArMTQ4LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2VsZWN0ZWRDaGlsZChBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50KikgY29uc3Q7CiAgICAgdW5zaWduZWQgc2VsZWN0ZWRDaGlsZHJlbkNv
dW50KCkgY29uc3Q7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBzZWxlY3RlZENoaWxkQXRJ
bmRleCh1bnNpZ25lZCkgY29uc3Q7CisgICAgdm9pZCBzZXRTZWxlY3RlZENoaWxkQXRJbmRleCh1
bnNpZ25lZCkgY29uc3Q7CisgICAgdm9pZCByZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVk
KSBjb25zdDsKICAgICAKICAgICBib29sIGlzRXhwYW5kZWQoKSBjb25zdDsKICAgICBib29sIGlz
Q2hlY2tlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCmluZGV4IDU1OWZmYzcuLjIwYmU1OTg3IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0
ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRBdGsuY3BwCkBAIC0xNjIzLDQgKzE2MjMsMzcgQEAgSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChpbnQgb2Zmc2V0KQogICAgIHJldHVybiBzdHJp
bmdBdE9mZnNldChtX2VsZW1lbnQsIEFUS19URVhUX0JPVU5EQVJZX1NFTlRFTkNFX1NUQVJULCBv
ZmZzZXQpOwogfQogCit1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENo
aWxkcmVuQ291bnQoKSBjb25zdAoreworICAgIGlmICghQVRLX0lTX1NFTEVDVElPTihtX2VsZW1l
bnQpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBhdGtfc2VsZWN0aW9uX2dldF9z
ZWxlY3Rpb25fY291bnQoQVRLX1NFTEVDVElPTihtX2VsZW1lbnQpKTsKK30KKworQWNjZXNzaWJp
bGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRl
eCh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAoIUFUS19JU19TRUxFQ1RJT04obV9l
bGVtZW50KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBHUmVmUHRyPEF0a09iamVj
dD4gY2hpbGQgPSBhZG9wdEdSZWYoYXRrX3NlbGVjdGlvbl9yZWZfc2VsZWN0aW9uKEFUS19TRUxF
Q1RJT04obV9lbGVtZW50KSwgaW5kZXgpKTsKKyAgICByZXR1cm4gY2hpbGQgPyBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50KGNoaWxkLmdldCgpKSA6IG51bGxwdHI7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNv
bnN0Cit7CisgICAgaWYgKCFBVEtfSVNfU0VMRUNUSU9OKG1fZWxlbWVudCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGF0a19zZWxlY3Rpb25fYWRkX3NlbGVjdGlvbihBVEtfU0VMRUNUSU9OKG1f
ZWxlbWVudCksIGluZGV4KTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1v
dmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIGlmICghQVRL
X0lTX1NFTEVDVElPTihtX2VsZW1lbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdGtfc2Vs
ZWN0aW9uX3JlbW92ZV9zZWxlY3Rpb24oQVRLX1NFTEVDVElPTihtX2VsZW1lbnQpLCBpbmRleCk7
Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwCmluZGV4IGI4ZjNiMWIuLmM3YzYyNDAgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdp
bi5jcHAKQEAgLTg3MywzICs4NzMsMTUgQEAgSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y2xhc3NMaXN0KCkgY29uc3QKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiAgICAgcmV0
dXJuIDA7CiB9CisKK3Vuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hp
bGRyZW5Db3VudCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVy
biAwOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3Bw
CmluZGV4IGU2YTUzZDguLjFlNWIyOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cApAQCAtNTksNiArNTksOCBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Y2hhcmFjdGVyQXRPZmZzZXQoaW50KSB7IHJldHVybgogSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpIHsg
cmV0dXJuIDA7IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpsaW5lQXRPZmZzZXQoaW50KSB7IHJldHVybiAwOyB9CiBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChpbnQpIHsgcmV0
dXJuIDA7IH0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0
SW5kZXgodW5zaWduZWQpIGNvbnN0IHsgfQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
ZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkKSBjb25zdCB7IH0KICNlbmRpZgogCiAjaWYg
KCFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKEVGTCkpIHx8
ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4IDYx
OWEwZTkuLjQzNDE5MjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCkBAIC0xNDEsNiAr
MTQxLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNTZWxlY3RhYmxlKCkgY29uc3Q7CiAgICAgYm9v
bCBpc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2VsZWN0ZWRDaGlsZChB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50KikgY29uc3Q7CisgICAgdm9pZCBzZXRTZWxlY3RlZENoaWxk
QXRJbmRleCh1bnNpZ25lZCkgY29uc3Q7CisgICAgdm9pZCByZW1vdmVTZWxlY3Rpb25BdEluZGV4
KHVuc2lnbmVkKSBjb25zdDsKICAgICB1bnNpZ25lZCBzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBj
b25zdDsKICAgICBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IHNlbGVjdGVkQ2hp
bGRBdEluZGV4KHVuc2lnbmVkKSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IGZjNjBkZWUuLmVhOGZkNGEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbApAQCAtMzcsNiArMzcs
OCBAQCBpbnRlcmZhY2UgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCB7CiAgICAgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudCBsaW5rZWRVSUVsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGxvbmcgaW5kZXgpOwog
ICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgc2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQg
bG9uZyBpbmRleCk7CiAgICAgdm9pZCBzZXRTZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQgZWxlbWVudCk7CisgICAgdm9pZCBzZXRTZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25l
ZCBsb25nIGluZGV4KTsKKyAgICB2b2lkIHJlbW92ZVNlbGVjdGlvbkF0SW5kZXgodW5zaWduZWQg
bG9uZyBpbmRleCk7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCB0aXRsZVVJRWxlbWVudCgp
OwogICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgcGFyZW50RWxlbWVudCgpOwogICAgIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudEF0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAppbmRleCA2MTg4YTA2Li4w
ZDE4NDc0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcApA
QCAtNzAxLDE0ICs3MDEsMTggQEAgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dBdEluZGV4KHVuc2lnbmVkIGkKIAogUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3Rl
ZENoaWxkQXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogaW1w
bGVtZW50Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCFBVEtfU0VMRUNUSU9OKG1fZWxl
bWVudC5nZXQoKSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgR1JlZlB0cjxBdGtP
YmplY3Q+IGNoaWxkID0gYWRvcHRHUmVmKGF0a19zZWxlY3Rpb25fcmVmX3NlbGVjdGlvbihBVEtf
U0VMRUNUSU9OKG1fZWxlbWVudC5nZXQoKSksIGluZGV4KSk7CisgICAgcmV0dXJuIGNoaWxkID8g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKGNoaWxkLmdldCgpKSA6IG51bGxwdHI7CiB9
CiAKIHVuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3Vu
dCgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotICAgIHJldHVybiAwOworICAg
IGlmICghQVRLX0lTX1NFTEVDVElPTihtX2VsZW1lbnQuZ2V0KCkpKQorICAgICAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gYXRrX3NlbGVjdGlvbl9nZXRfc2VsZWN0aW9uX2NvdW50KEFUS19TRUxF
Q1RJT04obV9lbGVtZW50LmdldCgpKSk7CiB9CiAKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRSb3dBdEluZGV4KHVuc2ln
bmVkIGluZGV4KQpAQCAtMTQ2NSw2ICsxNDY5LDIyIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2V0U2VsZWN0ZWRDaGlsZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KSBj
CiAgICAgLy8gRklYTUU6IGltcGxlbWVudAogfQogCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAg
IGlmICghQVRLX0lTX1NFTEVDVElPTihtX2VsZW1lbnQuZ2V0KCkpKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdGtfc2VsZWN0aW9uX2FkZF9zZWxlY3Rpb24oQVRLX1NFTEVDVElPTihtX2VsZW1l
bnQuZ2V0KCkpLCBpbmRleCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVt
b3ZlU2VsZWN0aW9uQXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAoIUFU
S19JU19TRUxFQ1RJT04obV9lbGVtZW50LmdldCgpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
YXRrX3NlbGVjdGlvbl9yZW1vdmVfc2VsZWN0aW9uKEFUS19TRUxFQ1RJT04obV9lbGVtZW50Lmdl
dCgpKSwgaW5kZXgpOworfQorCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTog
aW1wbGVtZW50Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>