<?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>141369</bug_id>
          
          <creation_ts>2015-02-08 11:00:06 -0800</creation_ts>
          <short_desc>DFG should only have two mechanisms for describing effectfulness of nodes; previously there were three</short_desc>
          <delta_ts>2015-02-09 11:58:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1067675</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-08 11:00:06 -0800</bug_when>
    <thetext>We previously used the NodeMightClobber and NodeClobbersWorld NodeFlags to describe effectfulness.  Starting over a year ago, we introduced a more powerful mechanism - the DFG::clobberize() function.  Now we only have one remaining client of the old NodeFlags, and everyone else uses DFG::clobberize().  We should get rid of those NodeFlags and finally switch everyone over to DFG::clobberize().  This means that going forward, there will only be two places where the effectfulness of a node has to be described:

- DFG::clobberize()
- DFG::AbstractInterpreter

Unfortunately, the AbstractInterpreter has to duplicate the knowledge of effects, mostly because of efficiency concerns: calling into clobberize() from the abstract interpreter would slow things down too much.  Also, AbstractInterpreter might still have a more precise model of effects in some places, particularly when dealing with structure transitions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067678</commentid>
    <comment_count>1</comment_count>
      <attachid>246243</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-08 11:05:00 -0800</bug_when>
    <thetext>Created attachment 246243
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067680</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-08 11:07:12 -0800</bug_when>
    <thetext>Attachment 246243 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGClobberize.h:937:  The parameter name &quot;graph&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/dfg/DFGClobberize.h:937:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/dfg/DFGClobberize.cpp:64:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067682</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-08 11:12:13 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 246243 [details] did not pass style-queue:
&gt; 
&gt; 
&gt; ERROR: Source/JavaScriptCore/dfg/DFGClobberize.h:937:  The parameter name
&gt; &quot;graph&quot; adds no information, so it should be removed. 
&gt; [readability/parameter_name] [5]
&gt; ERROR: Source/JavaScriptCore/dfg/DFGClobberize.h:937:  The parameter name
&gt; &quot;node&quot; adds no information, so it should be removed. 
&gt; [readability/parameter_name] [5]

Fixed locally.

&gt; ERROR: Source/JavaScriptCore/dfg/DFGClobberize.cpp:64:  Place brace on its
&gt; own line for function definitions.  [whitespace/braces] [4]
&gt; Total errors found: 3 in 8 files

No, that&apos;s not our style for lambdas.

&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against
&gt; check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067688</commentid>
    <comment_count>4</comment_count>
      <attachid>246245</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-08 11:28:50 -0800</bug_when>
    <thetext>Created attachment 246245
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067689</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-08 11:31:17 -0800</bug_when>
    <thetext>Attachment 246245 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGClobberize.cpp:64:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067862</commentid>
    <comment_count>6</comment_count>
      <attachid>246245</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-02-09 10:52:51 -0800</bug_when>
    <thetext>Comment on attachment 246245
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067875</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-09 11:58:06 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/179840</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246243</attachid>
            <date>2015-02-08 11:05:00 -0800</date>
            <delta_ts>2015-02-08 11:28:50 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>25161</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5Nzk3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDE1LTAyLTA4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBvbmx5IGhhdmUgdHdvIG1lY2hhbmlzbXMgZm9yIGRlc2NyaWJpbmcgZWZmZWN0
ZnVsbmVzcyBvZiBub2RlczsgcHJldmlvdXNseSB0aGVyZSB3ZXJlIHRocmVlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEzNjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBwcmV2aW91c2x5IHVzZWQg
dGhlIE5vZGVNaWdodENsb2JiZXIgYW5kIE5vZGVDbG9iYmVyc1dvcmxkIE5vZGVGbGFncyB0byBk
ZXNjcmliZQorICAgICAgICBlZmZlY3RmdWxuZXNzLiAgU3RhcnRpbmcgb3ZlciBhIHllYXIgYWdv
LCB3ZSBpbnRyb2R1Y2VkIGEgbW9yZSBwb3dlcmZ1bCBtZWNoYW5pc20gLSB0aGUKKyAgICAgICAg
REZHOjpjbG9iYmVyaXplKCkgZnVuY3Rpb24uICBOb3cgd2Ugb25seSBoYXZlIG9uZSByZW1haW5p
bmcgY2xpZW50IG9mIHRoZSBvbGQgTm9kZUZsYWdzLAorICAgICAgICBhbmQgZXZlcnlvbmUgZWxz
ZSB1c2VzIERGRzo6Y2xvYmJlcml6ZSgpLiAgV2Ugc2hvdWxkIGdldCByaWQgb2YgdGhvc2UgTm9k
ZUZsYWdzIGFuZAorICAgICAgICBmaW5hbGx5IHN3aXRjaCBldmVyeW9uZSBvdmVyIHRvIERGRzo6
Y2xvYmJlcml6ZSgpLgorICAgICAgICAKKyAgICAgICAgVW5mb3J0dW5hdGVseSB0aGVyZSBpcyBz
dGlsbCBhbm90aGVyIHBsYWNlIHdoZXJlIGVmZmVjdGZ1bG5lc3Mgb2Ygbm9kZXMgaXMgZGVzY3Jp
YmVkOiB0aGUKKyAgICAgICAgQWJzdHJhY3RJbnRlcnByZXRlci4gVGhpcyBpcyBiZWNhdXNlIHRo
ZSBBYnN0cmFjdEludGVycHJldGVyIGhhcyBzcGVjaWFsIHR1bmluZyBib3RoIGZvcgorICAgICAg
ICBjb21waWxlIHRpbWUgcGVyZm9ybWFuY2UgYW5kIHRoZXJlIGFyZSBwbGFjZXMgd2hlcmUgdGhl
IEFJIGlzIG1vcmUgcHJlY2lzZSB0aGFuCisgICAgICAgIGNsb2JiZXJpemUoKSBiZWNhdXNlIG9m
IGl0cyBmbG93LXNlbnNpdGl2aXR5LgorICAgICAgICAKKyAgICAgICAgVGhpcyBtZWFucyB0aGF0
IGFmdGVyIHRoaXMgY2hhbmdlIHRoZXJlIHdpbGwgYmUgb25seSB0d28gcGxhY2VzLCByYXRoZXIg
dGhhbiB0aHJlZSwgd2hlcmUKKyAgICAgICAgdGhlIGVmZmVjdGZ1bG5lc3Mgb2YgYSBub2RlIGhh
cyB0byBiZSBkZXNjcmliZWQ6CisKKyAgICAgICAgLSBERkc6OmNsb2JiZXJpemUoKQorICAgICAg
ICAtIERGRzo6QWJzdHJhY3RJbnRlcnByZXRlcgorCisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJp
emUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJzV29ybGQpOgorICAgICAgICAqIGRm
Zy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjphdHRlbXB0VG9NYWtlR2V0VHlwZWRBcnJheUJ5dGVMZW5ndGgpOgor
ICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmNvbnZlcnRUb0dldEFycmF5TGVuZ3RoKToK
KyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjphdHRlbXB0VG9NYWtlR2V0VHlwZWRBcnJh
eUJ5dGVPZmZzZXQpOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAoSlNDOjpE
Rkc6OkdyYXBoOjppc1ByZWRpY3RlZE51bWVyaWNhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6R3JhcGg6OmJ5VmFsSXNQdXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpH
cmFwaDo6Y2xvYmJlcnNXb3JsZCk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpjb252ZXJ0VG9Db25zdGFudCk6CisgICAgICAgIChK
U0M6OkRGRzo6Tm9kZTo6Y29udmVydFRvR2V0TG9jYWxVbmxpbmtlZCk6CisgICAgICAgIChKU0M6
OkRGRzo6Tm9kZTo6Y29udmVydFRvR2V0QnlPZmZzZXQpOgorICAgICAgICAoSlNDOjpERkc6Ok5v
ZGU6OmNvbnZlcnRUb011bHRpR2V0QnlPZmZzZXQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6
OmNvbnZlcnRUb1B1dEJ5T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpjb252ZXJ0
VG9NdWx0aVB1dEJ5T2Zmc2V0KToKKyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpkdW1wTm9kZUZsYWdzKToKKyAgICAgICAgKiBkZmcvREZHTm9kZUZs
YWdzLmg6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisKIDIwMTUtMDItMDcgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgVmVjdG9yOjpyZW1vdmVG
aXJzdE1hdGNoaW5nKCkgLyByZW1vdmVBbGxNYXRjaGluZygpIG1ldGhvZHMgdGFraW5nIGxhbWJk
YSBmdW5jdGlvbnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVy
aXplLmNwcAkocmV2aXNpb24gMTc5NzYzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDbG9iYmVyaXplLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw2ICs1NiwxOSBAQCBib29s
IHdyaXRlc092ZXJsYXAoR3JhcGgmIGdyYXBoLCBOb2RlKiBuCiAgICAgcmV0dXJuIGFkZFdyaXRl
LnJlc3VsdCgpOwogfQogCitib29sIGNsb2JiZXJzV29ybGQoR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlKQoreworICAgIGJvb2wgcmVzdWx0OworICAgIGNsb2JiZXJpemUoCisgICAgICAgIGdyYXBo
LCBub2RlLCBOb09wQ2xvYmJlcml6ZSgpLAorICAgICAgICBbJl0gKEFic3RyYWN0SGVhcCBoZWFw
KSB7CisgICAgICAgICAgICBpZiAoaGVhcCA9PSBBYnN0cmFjdEhlYXAoV29ybGQpKQorICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgIH0sCisgICAgICAgIE5vT3BDbG9iYmVy
aXplKCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpE
RkcKIAogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHJldmlzaW9uIDE3OTc2MykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkzNCw2
ICs5MzQsOCBAQCBwcml2YXRlOgogYm9vbCBhY2Nlc3Nlc092ZXJsYXAoR3JhcGgmLCBOb2RlKiwg
QWJzdHJhY3RIZWFwKTsKIGJvb2wgd3JpdGVzT3ZlcmxhcChHcmFwaCYsIE5vZGUqLCBBYnN0cmFj
dEhlYXApOwogCitib29sIGNsb2JiZXJzV29ybGQoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKTsK
KwogLy8gV2Ugd291bGQgaGF2ZSB1c2VkIGJpbmQoKSBmb3IgdGhlc2UsIGJ1dCBiZWNhdXNlIG9m
IHRoZSBvdmVybGFvZGluZyB0aGF0IHdlIGFyZSBkb2luZywKIC8vIGl0J3MgcXVpdGUgYSBiaXQg
b2YgY2xlYXJlciB0byBqdXN0IHdyaXRlIHRoaXMgb3V0IHRoZSB0cmFkaXRpb25hbCB3YXkuCiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAJKHJldmlzaW9uIDE3
OTc2MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKKyNpbmNsdWRl
ICJERkdDbG9iYmVyaXplLmgiCiAjaW5jbHVkZSAiREZHR3JhcGguaCIKICNpbmNsdWRlICJERkdO
b2RlLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgpAQCAtMzYsNyArMzcsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9k
ZSogbm9kZSkKIHsKLSAgICBpZiAoZ3JhcGguY2xvYmJlcnNXb3JsZChub2RlKSkKKyAgICBpZiAo
Y2xvYmJlcnNXb3JsZChncmFwaCwgbm9kZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAog
ICAgIC8vIE5vdyBjb25zaWRlciBub2RlcyB0aGF0IGRvbid0IGNsb2JiZXIgdGhlIHdvcmxkIGJ1
dCB0aGF0IHN0aWxsIG1heSBHQy4gVGhpcyBpbmNsdWRlcyBhbGwKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTc5NzYzKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0xNjEsMTQgKzE2MSwxNCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFZh
bHVlQWRkOiB7CiAgICAgICAgICAgICBpZiAoYXR0ZW1wdFRvTWFrZUludGVnZXJBZGQobm9kZSkp
IHsKICAgICAgICAgICAgICAgICBub2RlLT5zZXRPcChBcml0aEFkZCk7Ci0gICAgICAgICAgICAg
ICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29ybGQp
OworICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoTm9k
ZTo6c2hvdWxkU3BlY3VsYXRlTnVtYmVyT3JCb29sZWFuRXhwZWN0aW5nRGVmaW5lZChub2RlLT5j
aGlsZDEoKS5ub2RlKCksIG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKICAgICAgICAgICAgICAg
ICBmaXhEb3VibGVPckJvb2xlYW5FZGdlKG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAg
ICBmaXhEb3VibGVPckJvb2xlYW5FZGdlKG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAg
ICBub2RlLT5zZXRPcChBcml0aEFkZCk7Ci0gICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFn
cyhOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29ybGQpOworICAgICAgICAgICAgICAg
IG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7CiAgICAgICAgICAgICAgICAgbm9k
ZS0+c2V0UmVzdWx0KE5vZGVSZXN1bHREb3VibGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQpAQCAtMzgyLDI2ICszODIsMjYgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICAmJiBOb2RlOjpzaG91bGRTcGVjdWxhdGVCb29sZWFuKG5vZGUtPmNoaWxkMSgpLm5vZGUo
KSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8Qm9v
bGVhblVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8Qm9vbGVh
blVzZT4obm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3Mo
Tm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKTsKKyAgICAgICAgICAgICAgICBu
b2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUlu
dDMyT3JCb29sZWFuKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgp
KSkgewogICAgICAgICAgICAgICAgIGZpeEludE9yQm9vbGVhbkVkZ2Uobm9kZS0+Y2hpbGQxKCkp
OwogICAgICAgICAgICAgICAgIGZpeEludE9yQm9vbGVhbkVkZ2Uobm9kZS0+Y2hpbGQyKCkpOwot
ICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVD
bG9iYmVyc1dvcmxkKTsKKyAgICAgICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0
R2VuZXJhdGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgaWYgKGVuYWJsZUludDUyKCkKICAgICAgICAgICAgICAgICAmJiBOb2RlOjpzaG91bGRT
cGVjdWxhdGVNYWNoaW5lSW50KG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCku
bm9kZSgpKSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50NTJSZXBVc2U+KG5vZGUtPmNo
aWxkMSgpKTsKICAgICAgICAgICAgICAgICBmaXhFZGdlPEludDUyUmVwVXNlPihub2RlLT5jaGls
ZDIoKSk7Ci0gICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRl
IHwgTm9kZUNsb2JiZXJzV29ybGQpOworICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3Mo
Tm9kZU11c3RHZW5lcmF0ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlTnVtYmVyT3JCb29sZWFuKG5v
ZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgewogICAgICAgICAg
ICAgICAgIGZpeERvdWJsZU9yQm9vbGVhbkVkZ2Uobm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAg
ICAgICAgIGZpeERvdWJsZU9yQm9vbGVhbkVkZ2Uobm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAg
ICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dv
cmxkKTsKKyAgICAgICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYg
KG5vZGUtPm9wKCkgIT0gQ29tcGFyZUVxKQpAQCAtNDA5LDMxICs0MDksMzEgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlU3RyaW5nSWRl
bnQoKSAmJiBub2RlLT5jaGlsZDIoKS0+c2hvdWxkU3BlY3VsYXRlU3RyaW5nSWRlbnQoKSkgewog
ICAgICAgICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nSWRlbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
ICAgICAgICAgICAgICAgICBmaXhFZGdlPFN0cmluZ0lkZW50VXNlPihub2RlLT5jaGlsZDIoKSk7
Ci0gICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlIHwgTm9k
ZUNsb2JiZXJzV29ybGQpOworICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11
c3RHZW5lcmF0ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZVN0cmluZygpICYmIG5v
ZGUtPmNoaWxkMigpLT5zaG91bGRTcGVjdWxhdGVTdHJpbmcoKSAmJiBHUFJJbmZvOjpudW1iZXJP
ZlJlZ2lzdGVycyA+PSA3KSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxTdHJpbmdVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBmaXhFZGdlPFN0cmluZ1VzZT4obm9kZS0+
Y2hpbGQyKCkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5l
cmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKTsKKyAgICAgICAgICAgICAgICBub2RlLT5jbGVhckZs
YWdzKE5vZGVNdXN0R2VuZXJhdGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVPYmpl
Y3QoKSAmJiBub2RlLT5jaGlsZDIoKS0+c2hvdWxkU3BlY3VsYXRlT2JqZWN0KCkpIHsKICAgICAg
ICAgICAgICAgICBmaXhFZGdlPE9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAg
ICAgICAgIGZpeEVkZ2U8T2JqZWN0VXNlPihub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICAg
ICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29ybGQp
OworICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAobm9k
ZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZU9iamVjdCgpICYmIG5vZGUtPmNoaWxkMigpLT5z
aG91bGRTcGVjdWxhdGVPYmplY3RPck90aGVyKCkpIHsKICAgICAgICAgICAgICAgICBmaXhFZGdl
PE9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8T2Jq
ZWN0T3JPdGhlclVzZT4obm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNs
ZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKTsKKyAgICAgICAg
ICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgp
LT5zaG91bGRTcGVjdWxhdGVPYmplY3RPck90aGVyKCkgJiYgbm9kZS0+Y2hpbGQyKCktPnNob3Vs
ZFNwZWN1bGF0ZU9iamVjdCgpKSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxPYmplY3RPck90
aGVyVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxPYmplY3RV
c2U+KG5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5v
ZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCk7CisgICAgICAgICAgICAgICAgbm9k
ZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlKTsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtODI5LDcgKzgyOSw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIGNhc2UgTmV3VHlwZWRBcnJheTogewogICAgICAgICAgICAgaWYgKG5v
ZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVJbnQzMigpKSB7CiAgICAgICAgICAgICAgICAg
Zml4RWRnZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgICAgIG5vZGUt
PmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKTsKKyAgICAg
ICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0xOTQ3
LDcgKzE5NDcsNyBAQCBwcml2YXRlOgogICAgICAgICAvLyBXZSBjYW4gdXNlIGEgQml0TFNoaWZ0
IGhlcmUgYmVjYXVzZSB0eXBlZCBhcnJheXMgd2lsbCBuZXZlciBoYXZlIGEgYnl0ZUxlbmd0aAog
ICAgICAgICAvLyB0aGF0IG92ZXJmbG93cyBpbnQzMi4KICAgICAgICAgbm9kZS0+c2V0T3AoQml0
TFNoaWZ0KTsKLSAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlIHwgTm9k
ZUNsb2JiZXJzV29ybGQpOworICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJh
dGUpOwogICAgICAgICBvYnNlcnZlVXNlS2luZE9uTm9kZShsZW5ndGgsIEludDMyVXNlKTsKICAg
ICAgICAgb2JzZXJ2ZVVzZUtpbmRPbk5vZGUoc2hpZnRBbW91bnQsIEludDMyVXNlKTsKICAgICAg
ICAgbm9kZS0+Y2hpbGQxKCkgPSBFZGdlKGxlbmd0aCwgSW50MzJVc2UpOwpAQCAtMTk1OCw3ICsx
OTU4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbnZlcnRUb0dldEFycmF5TGVuZ3RoKE5vZGUq
IG5vZGUsIEFycmF5TW9kZSBhcnJheU1vZGUpCiAgICAgewogICAgICAgICBub2RlLT5zZXRPcChH
ZXRBcnJheUxlbmd0aCk7Ci0gICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0
ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKTsKKyAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVz
dEdlbmVyYXRlKTsKICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKGFycmF5TW9kZSk7CiAgICAgICAgICAgICAK
QEAgLTE5OTEsNyArMTk5MSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAwLCBuZXZlck5lZWRz
U3RvcmFnZSk7CiAgICAgICAgIAogICAgICAgICBub2RlLT5zZXRPcChHZXRUeXBlZEFycmF5Qnl0
ZU9mZnNldCk7Ci0gICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSB8IE5v
ZGVDbG9iYmVyc1dvcmxkKTsKKyAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVy
YXRlKTsKICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdHcmFwaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
R3JhcGguaAkocmV2aXNpb24gMTc5NzYzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NDUsNzIgKzU0NSw2IEBAIHB1YmxpYzoKICAg
ICAKICAgICB2b2lkIGtpbGxVbnJlYWNoYWJsZUJsb2NrcygpOwogICAgIAotICAgIGJvb2wgaXNQ
cmVkaWN0ZWROdW1lcmljYWwoTm9kZSogbm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBpc051
bWVyaWNhbChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpICYmIGlzTnVtZXJpY2FsKG5vZGUtPmNo
aWxkMigpLnVzZUtpbmQoKSk7Ci0gICAgfQotICAgIAotICAgIC8vIE5vdGUgdGhhdCBhICd0cnVl
JyByZXR1cm4gZG9lcyBub3QgYWN0dWFsbHkgbWVhbiB0aGF0IHRoZSBCeVZhbCBhY2Nlc3MgY2xv
YmJlcnMgbm90aGluZy4KLSAgICAvLyBJdCByZWFsbHkgbWVhbnMgdGhhdCBpdCB3aWxsIG5vdCBj
bG9iYmVyIHRoZSBlbnRpcmUgd29ybGQuIEl0J3Mgc3RpbGwgdXAgdG8geW91IHRvCi0gICAgLy8g
Y2FyZWZ1bGx5IGNvbnNpZGVyIHRoaW5ncyBsaWtlOgotICAgIC8vIC0gUHV0QnlWYWwgZGVmaW5p
dGVseSBjaGFuZ2VzIHRoZSBhcnJheSBpdCBzdG9yZXMgdG8sIGFuZCBtYXkgZXZlbiBjaGFuZ2Ug
aXRzIGxlbmd0aC4KLSAgICAvLyAtIFB1dEJ5T2Zmc2V0IGRlZmluaXRlbHkgY2hhbmdlcyB0aGUg
b2JqZWN0IGl0IHN0b3JlcyB0by4KLSAgICAvLyAtIGFuZCBzbyBvbi4KLSAgICBib29sIGJ5VmFs
SXNQdXJlKE5vZGUqIG5vZGUpCi0gICAgewotICAgICAgICBzd2l0Y2ggKG5vZGUtPmFycmF5TW9k
ZSgpLnR5cGUoKSkgewotICAgICAgICBjYXNlIEFycmF5OjpHZW5lcmljOgotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKLSAgICAgICAgY2FzZSBB
cnJheTo6RG91YmxlOgotICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAgICAgICBj
YXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6Ci0gICAgICAgICAgICByZXR1cm4gIW5vZGUtPmFycmF5
TW9kZSgpLmlzT3V0T2ZCb3VuZHMoKTsKLSAgICAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5
U3RvcmFnZToKLSAgICAgICAgICAgIHJldHVybiAhbm9kZS0+YXJyYXlNb2RlKCkubWF5U3RvcmVU
b0hvbGUoKTsKLSAgICAgICAgY2FzZSBBcnJheTo6U3RyaW5nOgotICAgICAgICAgICAgcmV0dXJu
IG5vZGUtPm9wKCkgPT0gR2V0QnlWYWwgJiYgbm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygp
OwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgIGNhc2UgQXJyYXk6OkFyZ3VtZW50czoK
LSAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEdldEJ5VmFsKQotICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmIC8vIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICBib29sIGNsb2JiZXJzV29ybGQoTm9kZSogbm9k
ZSkKLSAgICB7Ci0gICAgICAgIGlmIChub2RlLT5mbGFncygpICYgTm9kZUNsb2JiZXJzV29ybGQp
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKCEobm9kZS0+ZmxhZ3MoKSAm
IE5vZGVNaWdodENsb2JiZXIpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBz
d2l0Y2ggKG5vZGUtPm9wKCkpIHsKLSAgICAgICAgY2FzZSBHZXRCeVZhbDoKLSAgICAgICAgY2Fz
ZSBQdXRCeVZhbERpcmVjdDoKLSAgICAgICAgY2FzZSBQdXRCeVZhbDoKLSAgICAgICAgY2FzZSBQ
dXRCeVZhbEFsaWFzOgotICAgICAgICAgICAgcmV0dXJuICFieVZhbElzUHVyZShub2RlKTsKLSAg
ICAgICAgY2FzZSBUb1N0cmluZzoKLSAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQxKCku
dXNlS2luZCgpKSB7Ci0gICAgICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKLSAgICAgICAg
ICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICAgICAgY2FzZSBDZWxsVXNlOgotICAgICAgICAgICAgY2FzZSBVbnR5
cGVkVXNlOgotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOyAvLyBJZiBieSBzb21lIG9kZGl0eSB3ZSBoaXQgdGhpcyBjYXNlIGluIHJlbGVh
c2UgYnVpbGQgaXQncyBzYWZlciB0byBoYXZlIENTRSBhc3N1bWUgdGhlIHdvcnN0LgotICAgICAg
ICB9Ci0gICAgfQotICAgIAogICAgIHZvaWQgZGV0ZXJtaW5lUmVhY2hhYmlsaXR5KCk7CiAgICAg
dm9pZCByZXNldFJlYWNoYWJpbGl0eSgpOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmgJKHJldmlzaW9uIDE3OTc2MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NDgsNyArNDQ4LDcgQEAgc3RydWN0IE5v
ZGUgewogICAgICAgICAgICAgbV9vcCA9IEludDUyQ29uc3RhbnQ7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIG1fb3AgPSBKU0NvbnN0YW50OwotICAgICAgICBtX2ZsYWdzICY9IH4oTm9kZU11
c3RHZW5lcmF0ZSB8IE5vZGVNaWdodENsb2JiZXIgfCBOb2RlQ2xvYmJlcnNXb3JsZCk7CisgICAg
ICAgIG1fZmxhZ3MgJj0gfk5vZGVNdXN0R2VuZXJhdGU7CiAgICAgICAgIG1fb3BJbmZvID0gYml0
d2lzZV9jYXN0PHVpbnRwdHJfdD4odmFsdWUpOwogICAgICAgICBjaGlsZHJlbi5yZXNldCgpOwog
ICAgIH0KQEAgLTQ2NCw3ICs0NjQsNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgdm9pZCBjb252ZXJ0
VG9HZXRMb2NhbFVubGlua2VkKFZpcnR1YWxSZWdpc3RlciBsb2NhbCkKICAgICB7CiAgICAgICAg
IG1fb3AgPSBHZXRMb2NhbFVubGlua2VkOwotICAgICAgICBtX2ZsYWdzICY9IH4oTm9kZU11c3RH
ZW5lcmF0ZSB8IE5vZGVNaWdodENsb2JiZXIgfCBOb2RlQ2xvYmJlcnNXb3JsZCk7CisgICAgICAg
IG1fZmxhZ3MgJj0gfk5vZGVNdXN0R2VuZXJhdGU7CiAgICAgICAgIG1fb3BJbmZvID0gbG9jYWwu
b2Zmc2V0KCk7CiAgICAgICAgIG1fb3BJbmZvMiA9IFZpcnR1YWxSZWdpc3RlcigpLm9mZnNldCgp
OwogICAgICAgICBjaGlsZHJlbi5yZXNldCgpOwpAQCAtNDc4LDcgKzQ3OCw3IEBAIHN0cnVjdCBO
b2RlIHsKICAgICAgICAgY2hpbGRyZW4uY2hpbGQyKCkuc2V0VXNlS2luZChLbm93bkNlbGxVc2Up
OwogICAgICAgICBjaGlsZHJlbi5zZXRDaGlsZDEoc3RvcmFnZSk7CiAgICAgICAgIG1fb3AgPSBH
ZXRCeU9mZnNldDsKLSAgICAgICAgbV9mbGFncyAmPSB+KE5vZGVDbG9iYmVyc1dvcmxkIHwgTm9k
ZU11c3RHZW5lcmF0ZSk7CisgICAgICAgIG1fZmxhZ3MgJj0gfk5vZGVNdXN0R2VuZXJhdGU7CiAg
ICAgfQogICAgIAogICAgIHZvaWQgY29udmVydFRvTXVsdGlHZXRCeU9mZnNldChNdWx0aUdldEJ5
T2Zmc2V0RGF0YSogZGF0YSkKQEAgLTQ4Nyw3ICs0ODcsNiBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAg
ICAgIG1fb3BJbmZvID0gYml0d2lzZV9jYXN0PGludHB0cl90PihkYXRhKTsKICAgICAgICAgY2hp
bGQxKCkuc2V0VXNlS2luZChDZWxsVXNlKTsKICAgICAgICAgbV9vcCA9IE11bHRpR2V0QnlPZmZz
ZXQ7Ci0gICAgICAgIG1fZmxhZ3MgJj0gfk5vZGVDbG9iYmVyc1dvcmxkOwogICAgICAgICBBU1NF
UlQobV9mbGFncyAmIE5vZGVNdXN0R2VuZXJhdGUpOwogICAgIH0KICAgICAKQEAgLTQ5OSw3ICs0
OTgsNiBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIGNoaWxkcmVuLnNldENoaWxkMihjaGlsZHJl
bi5jaGlsZDEoKSk7CiAgICAgICAgIGNoaWxkcmVuLnNldENoaWxkMShzdG9yYWdlKTsKICAgICAg
ICAgbV9vcCA9IFB1dEJ5T2Zmc2V0OwotICAgICAgICBtX2ZsYWdzICY9IH5Ob2RlQ2xvYmJlcnNX
b3JsZDsKICAgICB9CiAgICAgCiAgICAgdm9pZCBjb252ZXJ0VG9NdWx0aVB1dEJ5T2Zmc2V0KE11
bHRpUHV0QnlPZmZzZXREYXRhKiBkYXRhKQpAQCAtNTA3LDcgKzUwNSw2IEBAIHN0cnVjdCBOb2Rl
IHsKICAgICAgICAgQVNTRVJUKG1fb3AgPT0gUHV0QnlJZCB8fCBtX29wID09IFB1dEJ5SWREaXJl
Y3QgfHwgbV9vcCA9PSBQdXRCeUlkRmx1c2gpOwogICAgICAgICBtX29wSW5mbyA9IGJpdHdpc2Vf
Y2FzdDxpbnRwdHJfdD4oZGF0YSk7CiAgICAgICAgIG1fb3AgPSBNdWx0aVB1dEJ5T2Zmc2V0Owot
ICAgICAgICBtX2ZsYWdzICY9IH5Ob2RlQ2xvYmJlcnNXb3JsZDsKICAgICB9CiAgICAgCiAgICAg
dm9pZCBjb252ZXJ0VG9QdXRCeU9mZnNldEhpbnQoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAkocmV2aXNpb24gMTc5NzYzKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCwx
MiArNzQsNiBAQCB2b2lkIGR1bXBOb2RlRmxhZ3MoUHJpbnRTdHJlYW0mIGFjdHVhbE91CiAgICAg
aWYgKGZsYWdzICYgTm9kZUhhc1ZhckFyZ3MpCiAgICAgICAgIG91dC5wcmludChjb21tYSwgIlZh
ckFyZ3MiKTsKICAgICAKLSAgICBpZiAoZmxhZ3MgJiBOb2RlQ2xvYmJlcnNXb3JsZCkKLSAgICAg
ICAgb3V0LnByaW50KGNvbW1hLCAiQ2xvYmJlcnMiKTsKLSAgICAKLSAgICBpZiAoZmxhZ3MgJiBO
b2RlTWlnaHRDbG9iYmVyKQotICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNaWdodENsb2JiZXIi
KTsKLSAgICAKICAgICBpZiAoZmxhZ3MgJiBOb2RlUmVzdWx0TWFzaykgewogICAgICAgICBpZiAo
IShmbGFncyAmIE5vZGVCeXRlY29kZVVzZXNBc051bWJlcikgJiYgIShmbGFncyAmIE5vZGVCeXRl
Y29kZU5lZWRzTmVnWmVybykpCiAgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICJQdXJlSW50
Iik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgJKHJldmlz
aW9uIDE3OTc2MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEy
LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMi0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDYsOCArNDYsNyBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmlu
ZSBOb2RlTXVzdEdlbmVyYXRlICAgICAgICAgICAgICAgICAweDAwMDggLy8gc2V0IG9uIG5vZGVz
IHRoYXQgaGF2ZSBzaWRlIGVmZmVjdHMsIGFuZCBtYXkgbm90IHRyaXZpYWxseSBiZSByZW1vdmVk
IGJ5IERDRS4KICNkZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAgICAgICAgICAgICAgICAgMHgwMDEw
Ci0jZGVmaW5lIE5vZGVDbG9iYmVyc1dvcmxkICAgICAgICAgICAgICAgIDB4MDAyMAotI2RlZmlu
ZSBOb2RlTWlnaHRDbG9iYmVyICAgICAgICAgICAgICAgICAweDAwNDAKKy8vIDB4MDAyMCBhbmQg
MHgwMDQwIGFyZSBmcmVlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZp
bmUgTm9kZUJlaGF2aW9yTWFzayAgICAgICAgICAgICAgICAgMHgwNzgwCiAjZGVmaW5lIE5vZGVN
YXlPdmVyZmxvd0luQmFzZWxpbmUgICAgICAgIDB4MDA4MApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMTc5NzYzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEz
OSwyMiArMTM5LDIyIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNy
byhBcml0aENvcywgTm9kZVJlc3VsdE51bWJlcikgXAogICAgIFwKICAgICAvKiBBZGQgb2YgdmFs
dWVzIG1heSBlaXRoZXIgYmUgYXJpdGhtZXRpYywgb3IgcmVzdWx0IGluIHN0cmluZyBjb25jYXRl
bmF0aW9uLiAqL1wKLSAgICBtYWNybyhWYWx1ZUFkZCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RH
ZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBcCisgICAgbWFjcm8oVmFsdWVBZGQsIE5vZGVS
ZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBcCiAgICAgLyogUHJvcGVydHkgYWNj
ZXNzLiAqL1wKICAgICAvKiBQdXRCeVZhbEFsaWFzIGluZGljYXRlcyBhICdwdXQnIGFsaWFzZXMg
YSBwcmlvciB3cml0ZSB0byB0aGUgc2FtZSBwcm9wZXJ0eS4gKi9cCiAgICAgLyogU2luY2UgYSBw
dXQgdG8gJ2xlbmd0aCcgbWF5IGludmFsaWRhdGUgb3B0aW1pemF0aW9ucyBoZXJlLCAqL1wKICAg
ICAvKiB0aGlzIG11c3QgYmUgdGhlIGRpcmVjdGx5IHN1YnNlcXVlbnQgcHJvcGVydHkgcHV0LiBO
b3RlIHRoYXQgUHV0QnlWYWwgKi9cCiAgICAgLyogb3Bjb2RlcyB1c2UgVmFyQXJncyBiZWF1c2Ug
dGhleSBtYXkgaGF2ZSB1cCB0byA0IGNoaWxkcmVuLiAqL1wKLSAgICBtYWNybyhHZXRCeVZhbCwg
Tm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVNaWdodENsb2JiZXIpIFwKLSAg
ICBtYWNybyhQdXRCeVZhbERpcmVjdCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdz
IHwgTm9kZU1pZ2h0Q2xvYmJlcikgXAotICAgIG1hY3JvKFB1dEJ5VmFsLCBOb2RlTXVzdEdlbmVy
YXRlIHwgTm9kZUhhc1ZhckFyZ3MgfCBOb2RlTWlnaHRDbG9iYmVyKSBcCi0gICAgbWFjcm8oUHV0
QnlWYWxBbGlhcywgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzIHwgTm9kZU1pZ2h0
Q2xvYmJlcikgXAotICAgIG1hY3JvKEdldEJ5SWQsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2Vu
ZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAotICAgIG1hY3JvKEdldEJ5SWRGbHVzaCwgTm9k
ZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBcCi0gICAg
bWFjcm8oUHV0QnlJZCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBcCi0g
ICAgbWFjcm8oUHV0QnlJZEZsdXNoLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZU11c3RHZW5lcmF0
ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBcCi0gICAgbWFjcm8oUHV0QnlJZERpcmVjdCwgTm9kZU11
c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBcCisgICAgbWFjcm8oR2V0QnlWYWwsIE5v
ZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhQdXRCeVZhbERpcmVj
dCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCisgICAgbWFjcm8oUHV0QnlW
YWwsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAorICAgIG1hY3JvKFB1dEJ5
VmFsQWxpYXMsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAorICAgIG1hY3Jv
KEdldEJ5SWQsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhH
ZXRCeUlkRmx1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNy
byhQdXRCeUlkLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0QnlJZEZsdXNoLCBO
b2RlTXVzdEdlbmVyYXRlIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1dEJ5SWRE
aXJlY3QsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja1N0cnVjdHVyZSwgTm9k
ZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldEV4ZWN1dGFibGUsIE5vZGVSZXN1bHRKUykg
XAogICAgIG1hY3JvKFB1dFN0cnVjdHVyZSwgTm9kZU11c3RHZW5lcmF0ZSkgXApAQCAtMTkzLDgg
KzE5Myw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhDaGVj
a0luQm91bmRzLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlv
bnMgZm9yIGFycmF5IG11dGF0aW9uLiAqL1wKLSAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1
bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAotICAgIG1hY3Jv
KEFycmF5UG9wLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJz
V29ybGQpIFwKKyAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2Vu
ZXJhdGUpIFwKKyAgICBtYWNybyhBcnJheVBvcCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5l
cmF0ZSkgXAogICAgIFwKICAgICAvKiBPcHRpbWl6YXRpb25zIGZvciByZWd1bGFyIGV4cHJlc3Np
b24gbWF0Y2hpbmcuICovXAogICAgIG1hY3JvKFJlZ0V4cEV4ZWMsIE5vZGVSZXN1bHRKUyB8IE5v
ZGVNdXN0R2VuZXJhdGUpIFwKQEAgLTIwNiwyNiArMjA2LDI2IEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhTdHJpbmdGcm9tQ2hhckNvZGUsIE5vZGVSZXN1bHRK
UykgXAogICAgIFwKICAgICAvKiBOb2RlcyBmb3IgY29tcGFyaXNvbiBvcGVyYXRpb25zLiAqL1wK
LSAgICBtYWNybyhDb21wYXJlTGVzcywgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVy
YXRlIHwgTm9kZUNsb2JiZXJzV29ybGQpIFwKLSAgICBtYWNybyhDb21wYXJlTGVzc0VxLCBOb2Rl
UmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAot
ICAgIG1hY3JvKENvbXBhcmVHcmVhdGVyLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2Vu
ZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAotICAgIG1hY3JvKENvbXBhcmVHcmVhdGVyRXEs
IE5vZGVSZXN1bHRCb29sZWFuIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxk
KSBcCi0gICAgbWFjcm8oQ29tcGFyZUVxLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2Vu
ZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAorICAgIG1hY3JvKENvbXBhcmVMZXNzLCBOb2Rl
UmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDb21wYXJlTGVz
c0VxLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhD
b21wYXJlR3JlYXRlciwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRlKSBcCisg
ICAgbWFjcm8oQ29tcGFyZUdyZWF0ZXJFcSwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdl
bmVyYXRlKSBcCisgICAgbWFjcm8oQ29tcGFyZUVxLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVN
dXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDb21wYXJlRXFDb25zdGFudCwgTm9kZVJlc3VsdEJv
b2xlYW4pIFwKICAgICBtYWNybyhDb21wYXJlU3RyaWN0RXEsIE5vZGVSZXN1bHRCb29sZWFuKSBc
CiAgICAgXAogICAgIC8qIENhbGxzLiAqL1wKLSAgICBtYWNybyhDYWxsLCBOb2RlUmVzdWx0SlMg
fCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MgfCBOb2RlQ2xvYmJlcnNXb3JsZCkg
XAotICAgIG1hY3JvKENvbnN0cnVjdCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8
IE5vZGVIYXNWYXJBcmdzIHwgTm9kZUNsb2JiZXJzV29ybGQpIFwKLSAgICBtYWNybyhOYXRpdmVD
YWxsLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MgfCBO
b2RlQ2xvYmJlcnNXb3JsZCkgXAotICAgIG1hY3JvKE5hdGl2ZUNvbnN0cnVjdCwgTm9kZVJlc3Vs
dEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzIHwgTm9kZUNsb2JiZXJzV29y
bGQpIFwKKyAgICBtYWNybyhDYWxsLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwg
Tm9kZUhhc1ZhckFyZ3MpIFwKKyAgICBtYWNybyhDb25zdHJ1Y3QsIE5vZGVSZXN1bHRKUyB8IE5v
ZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAorICAgIG1hY3JvKE5hdGl2ZUNhbGws
IE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAorICAg
IG1hY3JvKE5hdGl2ZUNvbnN0cnVjdCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8
IE5vZGVIYXNWYXJBcmdzKSBcCiAgICAgXAogICAgIC8qIEFsbG9jYXRpb25zLiAqL1wKICAgICBt
YWNybyhOZXdPYmplY3QsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKE5ld0FycmF5LCBOb2Rl
UmVzdWx0SlMgfCBOb2RlSGFzVmFyQXJncykgXAogICAgIG1hY3JvKE5ld0FycmF5V2l0aFNpemUs
IE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhOZXdBcnJheUJ1
ZmZlciwgTm9kZVJlc3VsdEpTKSBcCi0gICAgbWFjcm8oTmV3VHlwZWRBcnJheSwgTm9kZVJlc3Vs
dEpTIHwgTm9kZUNsb2JiZXJzV29ybGQgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8o
TmV3VHlwZWRBcnJheSwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1h
Y3JvKE5ld1JlZ2V4cCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgXAogICAgIC8qIFN1cHBvcnQgZm9y
IGFsbG9jYXRpb24gc2lua2luZy4gKi9cCkBAIC0yNDksMTEgKzI0OSwxMSBAQCBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oSXNGdW5jdGlvbiwgTm9kZVJlc3VsdEJv
b2xlYW4pIFwKICAgICBtYWNybyhUeXBlT2YsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKExv
Z2ljYWxOb3QsIE5vZGVSZXN1bHRCb29sZWFuKSBcCi0gICAgbWFjcm8oVG9QcmltaXRpdmUsIE5v
ZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAotICAg
IG1hY3JvKFRvU3RyaW5nLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZU1p
Z2h0Q2xvYmJlcikgXAorICAgIG1hY3JvKFRvUHJpbWl0aXZlLCBOb2RlUmVzdWx0SlMgfCBOb2Rl
TXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oVG9TdHJpbmcsIE5vZGVSZXN1bHRKUyB8IE5vZGVN
dXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhOZXdTdHJpbmdPYmplY3QsIE5vZGVSZXN1bHRKUykg
XAogICAgIG1hY3JvKE1ha2VSb3BlLCBOb2RlUmVzdWx0SlMpIFwKLSAgICBtYWNybyhJbiwgTm9k
ZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29ybGQpIFwK
KyAgICBtYWNybyhJbiwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAg
ICAgbWFjcm8oUHJvZmlsZVR5cGUsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhQcm9m
aWxlQ29udHJvbEZsb3csIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBcCkBAIC0yNjksOCArMjY5
LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKFRlYXJPZmZB
cmd1bWVudHMsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhHZXRNeUFyZ3VtZW50c0xl
bmd0aCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldE15
QXJndW1lbnRCeVZhbCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAotICAgIG1h
Y3JvKEdldE15QXJndW1lbnRzTGVuZ3RoU2FmZSwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5l
cmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBcCi0gICAgbWFjcm8oR2V0TXlBcmd1bWVudEJ5VmFs
U2FmZSwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxk
KSBcCisgICAgbWFjcm8oR2V0TXlBcmd1bWVudHNMZW5ndGhTYWZlLCBOb2RlUmVzdWx0SlMgfCBO
b2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oR2V0TXlBcmd1bWVudEJ5VmFsU2FmZSwgTm9k
ZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrQXJndW1lbnRz
Tm90Q3JlYXRlZCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIFwKICAgICAvKiBOb2RlcyBmb3Ig
Y3JlYXRpbmcgZnVuY3Rpb25zLiAqL1wK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246245</attachid>
            <date>2015-02-08 11:28:50 -0800</date>
            <delta_ts>2015-02-09 10:52:51 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>25158</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5Nzk3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDE1LTAyLTA4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBvbmx5IGhhdmUgdHdvIG1lY2hhbmlzbXMgZm9yIGRlc2NyaWJpbmcgZWZmZWN0
ZnVsbmVzcyBvZiBub2RlczsgcHJldmlvdXNseSB0aGVyZSB3ZXJlIHRocmVlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEzNjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBwcmV2aW91c2x5IHVzZWQg
dGhlIE5vZGVNaWdodENsb2JiZXIgYW5kIE5vZGVDbG9iYmVyc1dvcmxkIE5vZGVGbGFncyB0byBk
ZXNjcmliZQorICAgICAgICBlZmZlY3RmdWxuZXNzLiAgU3RhcnRpbmcgb3ZlciBhIHllYXIgYWdv
LCB3ZSBpbnRyb2R1Y2VkIGEgbW9yZSBwb3dlcmZ1bCBtZWNoYW5pc20gLSB0aGUKKyAgICAgICAg
REZHOjpjbG9iYmVyaXplKCkgZnVuY3Rpb24uICBOb3cgd2Ugb25seSBoYXZlIG9uZSByZW1haW5p
bmcgY2xpZW50IG9mIHRoZSBvbGQgTm9kZUZsYWdzLAorICAgICAgICBhbmQgZXZlcnlvbmUgZWxz
ZSB1c2VzIERGRzo6Y2xvYmJlcml6ZSgpLiAgV2Ugc2hvdWxkIGdldCByaWQgb2YgdGhvc2UgTm9k
ZUZsYWdzIGFuZAorICAgICAgICBmaW5hbGx5IHN3aXRjaCBldmVyeW9uZSBvdmVyIHRvIERGRzo6
Y2xvYmJlcml6ZSgpLgorICAgICAgICAKKyAgICAgICAgVW5mb3J0dW5hdGVseSB0aGVyZSBpcyBz
dGlsbCBhbm90aGVyIHBsYWNlIHdoZXJlIGVmZmVjdGZ1bG5lc3Mgb2Ygbm9kZXMgaXMgZGVzY3Jp
YmVkOiB0aGUKKyAgICAgICAgQWJzdHJhY3RJbnRlcnByZXRlci4gVGhpcyBpcyBiZWNhdXNlIHRo
ZSBBYnN0cmFjdEludGVycHJldGVyIGhhcyBzcGVjaWFsIHR1bmluZyBib3RoIGZvcgorICAgICAg
ICBjb21waWxlIHRpbWUgcGVyZm9ybWFuY2UgYW5kIHRoZXJlIGFyZSBwbGFjZXMgd2hlcmUgdGhl
IEFJIGlzIG1vcmUgcHJlY2lzZSB0aGFuCisgICAgICAgIGNsb2JiZXJpemUoKSBiZWNhdXNlIG9m
IGl0cyBmbG93LXNlbnNpdGl2aXR5LgorICAgICAgICAKKyAgICAgICAgVGhpcyBtZWFucyB0aGF0
IGFmdGVyIHRoaXMgY2hhbmdlIHRoZXJlIHdpbGwgYmUgb25seSB0d28gcGxhY2VzLCByYXRoZXIg
dGhhbiB0aHJlZSwgd2hlcmUKKyAgICAgICAgdGhlIGVmZmVjdGZ1bG5lc3Mgb2YgYSBub2RlIGhh
cyB0byBiZSBkZXNjcmliZWQ6CisKKyAgICAgICAgLSBERkc6OmNsb2JiZXJpemUoKQorICAgICAg
ICAtIERGRzo6QWJzdHJhY3RJbnRlcnByZXRlcgorCisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJp
emUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJzV29ybGQpOgorICAgICAgICAqIGRm
Zy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjphdHRlbXB0VG9NYWtlR2V0VHlwZWRBcnJheUJ5dGVMZW5ndGgpOgor
ICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmNvbnZlcnRUb0dldEFycmF5TGVuZ3RoKToK
KyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjphdHRlbXB0VG9NYWtlR2V0VHlwZWRBcnJh
eUJ5dGVPZmZzZXQpOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAoSlNDOjpE
Rkc6OkdyYXBoOjppc1ByZWRpY3RlZE51bWVyaWNhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6R3JhcGg6OmJ5VmFsSXNQdXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpH
cmFwaDo6Y2xvYmJlcnNXb3JsZCk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpjb252ZXJ0VG9Db25zdGFudCk6CisgICAgICAgIChK
U0M6OkRGRzo6Tm9kZTo6Y29udmVydFRvR2V0TG9jYWxVbmxpbmtlZCk6CisgICAgICAgIChKU0M6
OkRGRzo6Tm9kZTo6Y29udmVydFRvR2V0QnlPZmZzZXQpOgorICAgICAgICAoSlNDOjpERkc6Ok5v
ZGU6OmNvbnZlcnRUb011bHRpR2V0QnlPZmZzZXQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6
OmNvbnZlcnRUb1B1dEJ5T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpjb252ZXJ0
VG9NdWx0aVB1dEJ5T2Zmc2V0KToKKyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpkdW1wTm9kZUZsYWdzKToKKyAgICAgICAgKiBkZmcvREZHTm9kZUZs
YWdzLmg6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisKIDIwMTUtMDItMDcgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgVmVjdG9yOjpyZW1vdmVG
aXJzdE1hdGNoaW5nKCkgLyByZW1vdmVBbGxNYXRjaGluZygpIG1ldGhvZHMgdGFraW5nIGxhbWJk
YSBmdW5jdGlvbnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVy
aXplLmNwcAkocmV2aXNpb24gMTc5NzYzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDbG9iYmVyaXplLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw2ICs1NiwxOSBAQCBib29s
IHdyaXRlc092ZXJsYXAoR3JhcGgmIGdyYXBoLCBOb2RlKiBuCiAgICAgcmV0dXJuIGFkZFdyaXRl
LnJlc3VsdCgpOwogfQogCitib29sIGNsb2JiZXJzV29ybGQoR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlKQoreworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgY2xvYmJlcml6ZSgKKyAgICAg
ICAgZ3JhcGgsIG5vZGUsIE5vT3BDbG9iYmVyaXplKCksCisgICAgICAgIFsmXSAoQWJzdHJhY3RI
ZWFwIGhlYXApIHsKKyAgICAgICAgICAgIGlmIChoZWFwID09IEFic3RyYWN0SGVhcChXb3JsZCkp
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgfSwKKyAgICAgICAgTm9P
cENsb2JiZXJpemUoKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkRGRwogCiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkocmV2aXNpb24gMTc5NzYzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtOTM0LDYgKzkzNCw4IEBAIHByaXZhdGU6CiBib29sIGFjY2Vzc2VzT3ZlcmxhcChHcmFwaCYs
IE5vZGUqLCBBYnN0cmFjdEhlYXApOwogYm9vbCB3cml0ZXNPdmVybGFwKEdyYXBoJiwgTm9kZSos
IEFic3RyYWN0SGVhcCk7CiAKK2Jvb2wgY2xvYmJlcnNXb3JsZChHcmFwaCYsIE5vZGUqKTsKKwog
Ly8gV2Ugd291bGQgaGF2ZSB1c2VkIGJpbmQoKSBmb3IgdGhlc2UsIGJ1dCBiZWNhdXNlIG9mIHRo
ZSBvdmVybGFvZGluZyB0aGF0IHdlIGFyZSBkb2luZywKIC8vIGl0J3MgcXVpdGUgYSBiaXQgb2Yg
Y2xlYXJlciB0byBqdXN0IHdyaXRlIHRoaXMgb3V0IHRoZSB0cmFkaXRpb25hbCB3YXkuCiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAJKHJldmlzaW9uIDE3OTc2
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKKyNpbmNsdWRlICJE
RkdDbG9iYmVyaXplLmgiCiAjaW5jbHVkZSAiREZHR3JhcGguaCIKICNpbmNsdWRlICJERkdOb2Rl
LmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgpAQCAtMzYsNyArMzcsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSog
bm9kZSkKIHsKLSAgICBpZiAoZ3JhcGguY2xvYmJlcnNXb3JsZChub2RlKSkKKyAgICBpZiAoY2xv
YmJlcnNXb3JsZChncmFwaCwgbm9kZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAg
IC8vIE5vdyBjb25zaWRlciBub2RlcyB0aGF0IGRvbid0IGNsb2JiZXIgdGhlIHdvcmxkIGJ1dCB0
aGF0IHN0aWxsIG1heSBHQy4gVGhpcyBpbmNsdWRlcyBhbGwKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTc5NzYzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0xNjEsMTQgKzE2MSwxNCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFZhbHVl
QWRkOiB7CiAgICAgICAgICAgICBpZiAoYXR0ZW1wdFRvTWFrZUludGVnZXJBZGQobm9kZSkpIHsK
ICAgICAgICAgICAgICAgICBub2RlLT5zZXRPcChBcml0aEFkZCk7Ci0gICAgICAgICAgICAgICAg
bm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29ybGQpOwor
ICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoTm9kZTo6
c2hvdWxkU3BlY3VsYXRlTnVtYmVyT3JCb29sZWFuRXhwZWN0aW5nRGVmaW5lZChub2RlLT5jaGls
ZDEoKS5ub2RlKCksIG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBm
aXhEb3VibGVPckJvb2xlYW5FZGdlKG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBm
aXhEb3VibGVPckJvb2xlYW5FZGdlKG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBu
b2RlLT5zZXRPcChBcml0aEFkZCk7Ci0gICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhO
b2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29ybGQpOworICAgICAgICAgICAgICAgIG5v
ZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7CiAgICAgICAgICAgICAgICAgbm9kZS0+
c2V0UmVzdWx0KE5vZGVSZXN1bHREb3VibGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQpAQCAtMzgyLDI2ICszODIsMjYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAg
ICAmJiBOb2RlOjpzaG91bGRTcGVjdWxhdGVCb29sZWFuKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwg
bm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8Qm9vbGVh
blVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8Qm9vbGVhblVz
ZT4obm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9k
ZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKTsKKyAgICAgICAgICAgICAgICBub2Rl
LT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUludDMy
T3JCb29sZWFuKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkg
ewogICAgICAgICAgICAgICAgIGZpeEludE9yQm9vbGVhbkVkZ2Uobm9kZS0+Y2hpbGQxKCkpOwog
ICAgICAgICAgICAgICAgIGZpeEludE9yQm9vbGVhbkVkZ2Uobm9kZS0+Y2hpbGQyKCkpOwotICAg
ICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9i
YmVyc1dvcmxkKTsKKyAgICAgICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2Vu
ZXJhdGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgaWYgKGVuYWJsZUludDUyKCkKICAgICAgICAgICAgICAgICAmJiBOb2RlOjpzaG91bGRTcGVj
dWxhdGVNYWNoaW5lSW50KG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9k
ZSgpKSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50NTJSZXBVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgICAgICBmaXhFZGdlPEludDUyUmVwVXNlPihub2RlLT5jaGlsZDIo
KSk7Ci0gICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlIHwg
Tm9kZUNsb2JiZXJzV29ybGQpOworICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9k
ZU11c3RHZW5lcmF0ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlTnVtYmVyT3JCb29sZWFuKG5vZGUt
PmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgewogICAgICAgICAgICAg
ICAgIGZpeERvdWJsZU9yQm9vbGVhbkVkZ2Uobm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAg
ICAgIGZpeERvdWJsZU9yQm9vbGVhbkVkZ2Uobm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAg
ICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxk
KTsKKyAgICAgICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKG5v
ZGUtPm9wKCkgIT0gQ29tcGFyZUVxKQpAQCAtNDA5LDMxICs0MDksMzEgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlU3RyaW5nSWRlbnQo
KSAmJiBub2RlLT5jaGlsZDIoKS0+c2hvdWxkU3BlY3VsYXRlU3RyaW5nSWRlbnQoKSkgewogICAg
ICAgICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nSWRlbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgICAgICAgICBmaXhFZGdlPFN0cmluZ0lkZW50VXNlPihub2RlLT5jaGlsZDIoKSk7Ci0g
ICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNs
b2JiZXJzV29ybGQpOworICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RH
ZW5lcmF0ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZVN0cmluZygpICYmIG5vZGUt
PmNoaWxkMigpLT5zaG91bGRTcGVjdWxhdGVTdHJpbmcoKSAmJiBHUFJJbmZvOjpudW1iZXJPZlJl
Z2lzdGVycyA+PSA3KSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxTdHJpbmdVc2U+KG5vZGUt
PmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBmaXhFZGdlPFN0cmluZ1VzZT4obm9kZS0+Y2hp
bGQyKCkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0
ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKTsKKyAgICAgICAgICAgICAgICBub2RlLT5jbGVhckZsYWdz
KE5vZGVNdXN0R2VuZXJhdGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVPYmplY3Qo
KSAmJiBub2RlLT5jaGlsZDIoKS0+c2hvdWxkU3BlY3VsYXRlT2JqZWN0KCkpIHsKICAgICAgICAg
ICAgICAgICBmaXhFZGdlPE9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAg
ICAgIGZpeEVkZ2U8T2JqZWN0VXNlPihub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICAgICAg
bm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29ybGQpOwor
ICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAobm9kZS0+
Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZU9iamVjdCgpICYmIG5vZGUtPmNoaWxkMigpLT5zaG91
bGRTcGVjdWxhdGVPYmplY3RPck90aGVyKCkpIHsKICAgICAgICAgICAgICAgICBmaXhFZGdlPE9i
amVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8T2JqZWN0
T3JPdGhlclVzZT4obm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFy
RmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKTsKKyAgICAgICAgICAg
ICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5z
aG91bGRTcGVjdWxhdGVPYmplY3RPck90aGVyKCkgJiYgbm9kZS0+Y2hpbGQyKCktPnNob3VsZFNw
ZWN1bGF0ZU9iamVjdCgpKSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxPYmplY3RPck90aGVy
VXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxPYmplY3RVc2U+
KG5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVN
dXN0R2VuZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCk7CisgICAgICAgICAgICAgICAgbm9kZS0+
Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtODI5LDcgKzgyOSw3IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgTmV3VHlwZWRBcnJheTogewogICAgICAgICAgICAgaWYgKG5vZGUt
PmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVJbnQzMigpKSB7CiAgICAgICAgICAgICAgICAgZml4
RWRnZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNs
ZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKTsKKyAgICAgICAg
ICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0xOTQ3LDcg
KzE5NDcsNyBAQCBwcml2YXRlOgogICAgICAgICAvLyBXZSBjYW4gdXNlIGEgQml0TFNoaWZ0IGhl
cmUgYmVjYXVzZSB0eXBlZCBhcnJheXMgd2lsbCBuZXZlciBoYXZlIGEgYnl0ZUxlbmd0aAogICAg
ICAgICAvLyB0aGF0IG92ZXJmbG93cyBpbnQzMi4KICAgICAgICAgbm9kZS0+c2V0T3AoQml0TFNo
aWZ0KTsKLSAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNs
b2JiZXJzV29ybGQpOworICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUp
OwogICAgICAgICBvYnNlcnZlVXNlS2luZE9uTm9kZShsZW5ndGgsIEludDMyVXNlKTsKICAgICAg
ICAgb2JzZXJ2ZVVzZUtpbmRPbk5vZGUoc2hpZnRBbW91bnQsIEludDMyVXNlKTsKICAgICAgICAg
bm9kZS0+Y2hpbGQxKCkgPSBFZGdlKGxlbmd0aCwgSW50MzJVc2UpOwpAQCAtMTk1OCw3ICsxOTU4
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbnZlcnRUb0dldEFycmF5TGVuZ3RoKE5vZGUqIG5v
ZGUsIEFycmF5TW9kZSBhcnJheU1vZGUpCiAgICAgewogICAgICAgICBub2RlLT5zZXRPcChHZXRB
cnJheUxlbmd0aCk7Ci0gICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSB8
IE5vZGVDbG9iYmVyc1dvcmxkKTsKKyAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdl
bmVyYXRlKTsKICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
ICAgICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKGFycmF5TW9kZSk7CiAgICAgICAgICAgICAKQEAg
LTE5OTEsNyArMTk5MSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAwLCBuZXZlck5lZWRzU3Rv
cmFnZSk7CiAgICAgICAgIAogICAgICAgICBub2RlLT5zZXRPcChHZXRUeXBlZEFycmF5Qnl0ZU9m
ZnNldCk7Ci0gICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVD
bG9iYmVyc1dvcmxkKTsKKyAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRl
KTsKICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3Jh
cGguaAkocmV2aXNpb24gMTc5NzYzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NDUsNzIgKzU0NSw2IEBAIHB1YmxpYzoKICAgICAK
ICAgICB2b2lkIGtpbGxVbnJlYWNoYWJsZUJsb2NrcygpOwogICAgIAotICAgIGJvb2wgaXNQcmVk
aWN0ZWROdW1lcmljYWwoTm9kZSogbm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBpc051bWVy
aWNhbChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpICYmIGlzTnVtZXJpY2FsKG5vZGUtPmNoaWxk
MigpLnVzZUtpbmQoKSk7Ci0gICAgfQotICAgIAotICAgIC8vIE5vdGUgdGhhdCBhICd0cnVlJyBy
ZXR1cm4gZG9lcyBub3QgYWN0dWFsbHkgbWVhbiB0aGF0IHRoZSBCeVZhbCBhY2Nlc3MgY2xvYmJl
cnMgbm90aGluZy4KLSAgICAvLyBJdCByZWFsbHkgbWVhbnMgdGhhdCBpdCB3aWxsIG5vdCBjbG9i
YmVyIHRoZSBlbnRpcmUgd29ybGQuIEl0J3Mgc3RpbGwgdXAgdG8geW91IHRvCi0gICAgLy8gY2Fy
ZWZ1bGx5IGNvbnNpZGVyIHRoaW5ncyBsaWtlOgotICAgIC8vIC0gUHV0QnlWYWwgZGVmaW5pdGVs
eSBjaGFuZ2VzIHRoZSBhcnJheSBpdCBzdG9yZXMgdG8sIGFuZCBtYXkgZXZlbiBjaGFuZ2UgaXRz
IGxlbmd0aC4KLSAgICAvLyAtIFB1dEJ5T2Zmc2V0IGRlZmluaXRlbHkgY2hhbmdlcyB0aGUgb2Jq
ZWN0IGl0IHN0b3JlcyB0by4KLSAgICAvLyAtIGFuZCBzbyBvbi4KLSAgICBib29sIGJ5VmFsSXNQ
dXJlKE5vZGUqIG5vZGUpCi0gICAgewotICAgICAgICBzd2l0Y2ggKG5vZGUtPmFycmF5TW9kZSgp
LnR5cGUoKSkgewotICAgICAgICBjYXNlIEFycmF5OjpHZW5lcmljOgotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKLSAgICAgICAgY2FzZSBBcnJh
eTo6RG91YmxlOgotICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAgICAgICBjYXNl
IEFycmF5OjpBcnJheVN0b3JhZ2U6Ci0gICAgICAgICAgICByZXR1cm4gIW5vZGUtPmFycmF5TW9k
ZSgpLmlzT3V0T2ZCb3VuZHMoKTsKLSAgICAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3Rv
cmFnZToKLSAgICAgICAgICAgIHJldHVybiAhbm9kZS0+YXJyYXlNb2RlKCkubWF5U3RvcmVUb0hv
bGUoKTsKLSAgICAgICAgY2FzZSBBcnJheTo6U3RyaW5nOgotICAgICAgICAgICAgcmV0dXJuIG5v
ZGUtPm9wKCkgPT0gR2V0QnlWYWwgJiYgbm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpOwot
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgIGNhc2UgQXJyYXk6OkFyZ3VtZW50czoKLSAg
ICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEdldEJ5VmFsKQotICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmIC8vIFVTRShKU1ZB
TFVFMzJfNjQpCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgfQotICAgIH0KLSAgICAKLSAgICBib29sIGNsb2JiZXJzV29ybGQoTm9kZSogbm9kZSkK
LSAgICB7Ci0gICAgICAgIGlmIChub2RlLT5mbGFncygpICYgTm9kZUNsb2JiZXJzV29ybGQpCi0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKCEobm9kZS0+ZmxhZ3MoKSAmIE5v
ZGVNaWdodENsb2JiZXIpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBzd2l0
Y2ggKG5vZGUtPm9wKCkpIHsKLSAgICAgICAgY2FzZSBHZXRCeVZhbDoKLSAgICAgICAgY2FzZSBQ
dXRCeVZhbERpcmVjdDoKLSAgICAgICAgY2FzZSBQdXRCeVZhbDoKLSAgICAgICAgY2FzZSBQdXRC
eVZhbEFsaWFzOgotICAgICAgICAgICAgcmV0dXJuICFieVZhbElzUHVyZShub2RlKTsKLSAgICAg
ICAgY2FzZSBUb1N0cmluZzoKLSAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQxKCkudXNl
S2luZCgpKSB7Ci0gICAgICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKLSAgICAgICAgICAg
IGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgY2FzZSBDZWxsVXNlOgotICAgICAgICAgICAgY2FzZSBVbnR5cGVk
VXNlOgotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOyAvLyBJZiBieSBzb21lIG9kZGl0eSB3ZSBoaXQgdGhpcyBjYXNlIGluIHJlbGVhc2Ug
YnVpbGQgaXQncyBzYWZlciB0byBoYXZlIENTRSBhc3N1bWUgdGhlIHdvcnN0LgotICAgICAgICB9
Ci0gICAgfQotICAgIAogICAgIHZvaWQgZGV0ZXJtaW5lUmVhY2hhYmlsaXR5KCk7CiAgICAgdm9p
ZCByZXNldFJlYWNoYWJpbGl0eSgpOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlLmgJKHJldmlzaW9uIDE3OTc2MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NDgsNyArNDQ4LDcgQEAgc3RydWN0IE5vZGUg
ewogICAgICAgICAgICAgbV9vcCA9IEludDUyQ29uc3RhbnQ7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIG1fb3AgPSBKU0NvbnN0YW50OwotICAgICAgICBtX2ZsYWdzICY9IH4oTm9kZU11c3RH
ZW5lcmF0ZSB8IE5vZGVNaWdodENsb2JiZXIgfCBOb2RlQ2xvYmJlcnNXb3JsZCk7CisgICAgICAg
IG1fZmxhZ3MgJj0gfk5vZGVNdXN0R2VuZXJhdGU7CiAgICAgICAgIG1fb3BJbmZvID0gYml0d2lz
ZV9jYXN0PHVpbnRwdHJfdD4odmFsdWUpOwogICAgICAgICBjaGlsZHJlbi5yZXNldCgpOwogICAg
IH0KQEAgLTQ2NCw3ICs0NjQsNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgdm9pZCBjb252ZXJ0VG9H
ZXRMb2NhbFVubGlua2VkKFZpcnR1YWxSZWdpc3RlciBsb2NhbCkKICAgICB7CiAgICAgICAgIG1f
b3AgPSBHZXRMb2NhbFVubGlua2VkOwotICAgICAgICBtX2ZsYWdzICY9IH4oTm9kZU11c3RHZW5l
cmF0ZSB8IE5vZGVNaWdodENsb2JiZXIgfCBOb2RlQ2xvYmJlcnNXb3JsZCk7CisgICAgICAgIG1f
ZmxhZ3MgJj0gfk5vZGVNdXN0R2VuZXJhdGU7CiAgICAgICAgIG1fb3BJbmZvID0gbG9jYWwub2Zm
c2V0KCk7CiAgICAgICAgIG1fb3BJbmZvMiA9IFZpcnR1YWxSZWdpc3RlcigpLm9mZnNldCgpOwog
ICAgICAgICBjaGlsZHJlbi5yZXNldCgpOwpAQCAtNDc4LDcgKzQ3OCw3IEBAIHN0cnVjdCBOb2Rl
IHsKICAgICAgICAgY2hpbGRyZW4uY2hpbGQyKCkuc2V0VXNlS2luZChLbm93bkNlbGxVc2UpOwog
ICAgICAgICBjaGlsZHJlbi5zZXRDaGlsZDEoc3RvcmFnZSk7CiAgICAgICAgIG1fb3AgPSBHZXRC
eU9mZnNldDsKLSAgICAgICAgbV9mbGFncyAmPSB+KE5vZGVDbG9iYmVyc1dvcmxkIHwgTm9kZU11
c3RHZW5lcmF0ZSk7CisgICAgICAgIG1fZmxhZ3MgJj0gfk5vZGVNdXN0R2VuZXJhdGU7CiAgICAg
fQogICAgIAogICAgIHZvaWQgY29udmVydFRvTXVsdGlHZXRCeU9mZnNldChNdWx0aUdldEJ5T2Zm
c2V0RGF0YSogZGF0YSkKQEAgLTQ4Nyw3ICs0ODcsNiBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAg
IG1fb3BJbmZvID0gYml0d2lzZV9jYXN0PGludHB0cl90PihkYXRhKTsKICAgICAgICAgY2hpbGQx
KCkuc2V0VXNlS2luZChDZWxsVXNlKTsKICAgICAgICAgbV9vcCA9IE11bHRpR2V0QnlPZmZzZXQ7
Ci0gICAgICAgIG1fZmxhZ3MgJj0gfk5vZGVDbG9iYmVyc1dvcmxkOwogICAgICAgICBBU1NFUlQo
bV9mbGFncyAmIE5vZGVNdXN0R2VuZXJhdGUpOwogICAgIH0KICAgICAKQEAgLTQ5OSw3ICs0OTgs
NiBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIGNoaWxkcmVuLnNldENoaWxkMihjaGlsZHJlbi5j
aGlsZDEoKSk7CiAgICAgICAgIGNoaWxkcmVuLnNldENoaWxkMShzdG9yYWdlKTsKICAgICAgICAg
bV9vcCA9IFB1dEJ5T2Zmc2V0OwotICAgICAgICBtX2ZsYWdzICY9IH5Ob2RlQ2xvYmJlcnNXb3Js
ZDsKICAgICB9CiAgICAgCiAgICAgdm9pZCBjb252ZXJ0VG9NdWx0aVB1dEJ5T2Zmc2V0KE11bHRp
UHV0QnlPZmZzZXREYXRhKiBkYXRhKQpAQCAtNTA3LDcgKzUwNSw2IEBAIHN0cnVjdCBOb2RlIHsK
ICAgICAgICAgQVNTRVJUKG1fb3AgPT0gUHV0QnlJZCB8fCBtX29wID09IFB1dEJ5SWREaXJlY3Qg
fHwgbV9vcCA9PSBQdXRCeUlkRmx1c2gpOwogICAgICAgICBtX29wSW5mbyA9IGJpdHdpc2VfY2Fz
dDxpbnRwdHJfdD4oZGF0YSk7CiAgICAgICAgIG1fb3AgPSBNdWx0aVB1dEJ5T2Zmc2V0OwotICAg
ICAgICBtX2ZsYWdzICY9IH5Ob2RlQ2xvYmJlcnNXb3JsZDsKICAgICB9CiAgICAgCiAgICAgdm9p
ZCBjb252ZXJ0VG9QdXRCeU9mZnNldEhpbnQoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlRmxhZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZUZsYWdzLmNwcAkocmV2aXNpb24gMTc5NzYzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCwxMiAr
NzQsNiBAQCB2b2lkIGR1bXBOb2RlRmxhZ3MoUHJpbnRTdHJlYW0mIGFjdHVhbE91CiAgICAgaWYg
KGZsYWdzICYgTm9kZUhhc1ZhckFyZ3MpCiAgICAgICAgIG91dC5wcmludChjb21tYSwgIlZhckFy
Z3MiKTsKICAgICAKLSAgICBpZiAoZmxhZ3MgJiBOb2RlQ2xvYmJlcnNXb3JsZCkKLSAgICAgICAg
b3V0LnByaW50KGNvbW1hLCAiQ2xvYmJlcnMiKTsKLSAgICAKLSAgICBpZiAoZmxhZ3MgJiBOb2Rl
TWlnaHRDbG9iYmVyKQotICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNaWdodENsb2JiZXIiKTsK
LSAgICAKICAgICBpZiAoZmxhZ3MgJiBOb2RlUmVzdWx0TWFzaykgewogICAgICAgICBpZiAoIShm
bGFncyAmIE5vZGVCeXRlY29kZVVzZXNBc051bWJlcikgJiYgIShmbGFncyAmIE5vZGVCeXRlY29k
ZU5lZWRzTmVnWmVybykpCiAgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICJQdXJlSW50Iik7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgJKHJldmlzaW9u
IDE3OTc2MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAy
MDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMi0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDYsOCArNDYsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBO
b2RlTXVzdEdlbmVyYXRlICAgICAgICAgICAgICAgICAweDAwMDggLy8gc2V0IG9uIG5vZGVzIHRo
YXQgaGF2ZSBzaWRlIGVmZmVjdHMsIGFuZCBtYXkgbm90IHRyaXZpYWxseSBiZSByZW1vdmVkIGJ5
IERDRS4KICNkZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAgICAgICAgICAgICAgICAgMHgwMDEwCi0j
ZGVmaW5lIE5vZGVDbG9iYmVyc1dvcmxkICAgICAgICAgICAgICAgIDB4MDAyMAotI2RlZmluZSBO
b2RlTWlnaHRDbG9iYmVyICAgICAgICAgICAgICAgICAweDAwNDAKKy8vIDB4MDAyMCBhbmQgMHgw
MDQwIGFyZSBmcmVlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUg
Tm9kZUJlaGF2aW9yTWFzayAgICAgICAgICAgICAgICAgMHgwNzgwCiAjZGVmaW5lIE5vZGVNYXlP
dmVyZmxvd0luQmFzZWxpbmUgICAgICAgIDB4MDA4MApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMTc5NzYzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEzOSwy
MiArMTM5LDIyIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhB
cml0aENvcywgTm9kZVJlc3VsdE51bWJlcikgXAogICAgIFwKICAgICAvKiBBZGQgb2YgdmFsdWVz
IG1heSBlaXRoZXIgYmUgYXJpdGhtZXRpYywgb3IgcmVzdWx0IGluIHN0cmluZyBjb25jYXRlbmF0
aW9uLiAqL1wKLSAgICBtYWNybyhWYWx1ZUFkZCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5l
cmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBcCisgICAgbWFjcm8oVmFsdWVBZGQsIE5vZGVSZXN1
bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBcCiAgICAgLyogUHJvcGVydHkgYWNjZXNz
LiAqL1wKICAgICAvKiBQdXRCeVZhbEFsaWFzIGluZGljYXRlcyBhICdwdXQnIGFsaWFzZXMgYSBw
cmlvciB3cml0ZSB0byB0aGUgc2FtZSBwcm9wZXJ0eS4gKi9cCiAgICAgLyogU2luY2UgYSBwdXQg
dG8gJ2xlbmd0aCcgbWF5IGludmFsaWRhdGUgb3B0aW1pemF0aW9ucyBoZXJlLCAqL1wKICAgICAv
KiB0aGlzIG11c3QgYmUgdGhlIGRpcmVjdGx5IHN1YnNlcXVlbnQgcHJvcGVydHkgcHV0LiBOb3Rl
IHRoYXQgUHV0QnlWYWwgKi9cCiAgICAgLyogb3Bjb2RlcyB1c2UgVmFyQXJncyBiZWF1c2UgdGhl
eSBtYXkgaGF2ZSB1cCB0byA0IGNoaWxkcmVuLiAqL1wKLSAgICBtYWNybyhHZXRCeVZhbCwgTm9k
ZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVNaWdodENsb2JiZXIpIFwKLSAgICBt
YWNybyhQdXRCeVZhbERpcmVjdCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzIHwg
Tm9kZU1pZ2h0Q2xvYmJlcikgXAotICAgIG1hY3JvKFB1dEJ5VmFsLCBOb2RlTXVzdEdlbmVyYXRl
IHwgTm9kZUhhc1ZhckFyZ3MgfCBOb2RlTWlnaHRDbG9iYmVyKSBcCi0gICAgbWFjcm8oUHV0QnlW
YWxBbGlhcywgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzIHwgTm9kZU1pZ2h0Q2xv
YmJlcikgXAotICAgIG1hY3JvKEdldEJ5SWQsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJh
dGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAotICAgIG1hY3JvKEdldEJ5SWRGbHVzaCwgTm9kZVJl
c3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBcCi0gICAgbWFj
cm8oUHV0QnlJZCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBcCi0gICAg
bWFjcm8oUHV0QnlJZEZsdXNoLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZU11c3RHZW5lcmF0ZSB8
IE5vZGVDbG9iYmVyc1dvcmxkKSBcCi0gICAgbWFjcm8oUHV0QnlJZERpcmVjdCwgTm9kZU11c3RH
ZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBcCisgICAgbWFjcm8oR2V0QnlWYWwsIE5vZGVS
ZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhQdXRCeVZhbERpcmVjdCwg
Tm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCisgICAgbWFjcm8oUHV0QnlWYWws
IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAorICAgIG1hY3JvKFB1dEJ5VmFs
QWxpYXMsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAorICAgIG1hY3JvKEdl
dEJ5SWQsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhHZXRC
eUlkRmx1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhQ
dXRCeUlkLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0QnlJZEZsdXNoLCBOb2Rl
TXVzdEdlbmVyYXRlIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1dEJ5SWREaXJl
Y3QsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja1N0cnVjdHVyZSwgTm9kZU11
c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldEV4ZWN1dGFibGUsIE5vZGVSZXN1bHRKUykgXAog
ICAgIG1hY3JvKFB1dFN0cnVjdHVyZSwgTm9kZU11c3RHZW5lcmF0ZSkgXApAQCAtMTkzLDggKzE5
Myw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhDaGVja0lu
Qm91bmRzLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlvbnMg
Zm9yIGFycmF5IG11dGF0aW9uLiAqL1wKLSAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRK
UyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAotICAgIG1hY3JvKEFy
cmF5UG9wLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29y
bGQpIFwKKyAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJh
dGUpIFwKKyAgICBtYWNybyhBcnJheVBvcCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0
ZSkgXAogICAgIFwKICAgICAvKiBPcHRpbWl6YXRpb25zIGZvciByZWd1bGFyIGV4cHJlc3Npb24g
bWF0Y2hpbmcuICovXAogICAgIG1hY3JvKFJlZ0V4cEV4ZWMsIE5vZGVSZXN1bHRKUyB8IE5vZGVN
dXN0R2VuZXJhdGUpIFwKQEAgLTIwNiwyNiArMjA2LDI2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKICAgICBtYWNybyhTdHJpbmdGcm9tQ2hhckNvZGUsIE5vZGVSZXN1bHRKUykg
XAogICAgIFwKICAgICAvKiBOb2RlcyBmb3IgY29tcGFyaXNvbiBvcGVyYXRpb25zLiAqL1wKLSAg
ICBtYWNybyhDb21wYXJlTGVzcywgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRl
IHwgTm9kZUNsb2JiZXJzV29ybGQpIFwKLSAgICBtYWNybyhDb21wYXJlTGVzc0VxLCBOb2RlUmVz
dWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAotICAg
IG1hY3JvKENvbXBhcmVHcmVhdGVyLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJh
dGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAotICAgIG1hY3JvKENvbXBhcmVHcmVhdGVyRXEsIE5v
ZGVSZXN1bHRCb29sZWFuIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBc
Ci0gICAgbWFjcm8oQ29tcGFyZUVxLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJh
dGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAorICAgIG1hY3JvKENvbXBhcmVMZXNzLCBOb2RlUmVz
dWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDb21wYXJlTGVzc0Vx
LCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDb21w
YXJlR3JlYXRlciwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAg
bWFjcm8oQ29tcGFyZUdyZWF0ZXJFcSwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVy
YXRlKSBcCisgICAgbWFjcm8oQ29tcGFyZUVxLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0
R2VuZXJhdGUpIFwKICAgICBtYWNybyhDb21wYXJlRXFDb25zdGFudCwgTm9kZVJlc3VsdEJvb2xl
YW4pIFwKICAgICBtYWNybyhDb21wYXJlU3RyaWN0RXEsIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAg
ICAgXAogICAgIC8qIENhbGxzLiAqL1wKLSAgICBtYWNybyhDYWxsLCBOb2RlUmVzdWx0SlMgfCBO
b2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAot
ICAgIG1hY3JvKENvbnN0cnVjdCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5v
ZGVIYXNWYXJBcmdzIHwgTm9kZUNsb2JiZXJzV29ybGQpIFwKLSAgICBtYWNybyhOYXRpdmVDYWxs
LCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MgfCBOb2Rl
Q2xvYmJlcnNXb3JsZCkgXAotICAgIG1hY3JvKE5hdGl2ZUNvbnN0cnVjdCwgTm9kZVJlc3VsdEpT
IHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzIHwgTm9kZUNsb2JiZXJzV29ybGQp
IFwKKyAgICBtYWNybyhDYWxsLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9k
ZUhhc1ZhckFyZ3MpIFwKKyAgICBtYWNybyhDb25zdHJ1Y3QsIE5vZGVSZXN1bHRKUyB8IE5vZGVN
dXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAorICAgIG1hY3JvKE5hdGl2ZUNhbGwsIE5v
ZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAorICAgIG1h
Y3JvKE5hdGl2ZUNvbnN0cnVjdCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5v
ZGVIYXNWYXJBcmdzKSBcCiAgICAgXAogICAgIC8qIEFsbG9jYXRpb25zLiAqL1wKICAgICBtYWNy
byhOZXdPYmplY3QsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKE5ld0FycmF5LCBOb2RlUmVz
dWx0SlMgfCBOb2RlSGFzVmFyQXJncykgXAogICAgIG1hY3JvKE5ld0FycmF5V2l0aFNpemUsIE5v
ZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhOZXdBcnJheUJ1ZmZl
ciwgTm9kZVJlc3VsdEpTKSBcCi0gICAgbWFjcm8oTmV3VHlwZWRBcnJheSwgTm9kZVJlc3VsdEpT
IHwgTm9kZUNsb2JiZXJzV29ybGQgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oTmV3
VHlwZWRBcnJheSwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3Jv
KE5ld1JlZ2V4cCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgXAogICAgIC8qIFN1cHBvcnQgZm9yIGFs
bG9jYXRpb24gc2lua2luZy4gKi9cCkBAIC0yNDksMTEgKzI0OSwxMSBAQCBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oSXNGdW5jdGlvbiwgTm9kZVJlc3VsdEJvb2xl
YW4pIFwKICAgICBtYWNybyhUeXBlT2YsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKExvZ2lj
YWxOb3QsIE5vZGVSZXN1bHRCb29sZWFuKSBcCi0gICAgbWFjcm8oVG9QcmltaXRpdmUsIE5vZGVS
ZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAotICAgIG1h
Y3JvKFRvU3RyaW5nLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZU1pZ2h0
Q2xvYmJlcikgXAorICAgIG1hY3JvKFRvUHJpbWl0aXZlLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVz
dEdlbmVyYXRlKSBcCisgICAgbWFjcm8oVG9TdHJpbmcsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0
R2VuZXJhdGUpIFwKICAgICBtYWNybyhOZXdTdHJpbmdPYmplY3QsIE5vZGVSZXN1bHRKUykgXAog
ICAgIG1hY3JvKE1ha2VSb3BlLCBOb2RlUmVzdWx0SlMpIFwKLSAgICBtYWNybyhJbiwgTm9kZVJl
c3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29ybGQpIFwKKyAg
ICBtYWNybyhJbiwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAg
bWFjcm8oUHJvZmlsZVR5cGUsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhQcm9maWxl
Q29udHJvbEZsb3csIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBcCkBAIC0yNjksOCArMjY5LDgg
QEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKFRlYXJPZmZBcmd1
bWVudHMsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhHZXRNeUFyZ3VtZW50c0xlbmd0
aCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldE15QXJn
dW1lbnRCeVZhbCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAotICAgIG1hY3Jv
KEdldE15QXJndW1lbnRzTGVuZ3RoU2FmZSwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0
ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBcCi0gICAgbWFjcm8oR2V0TXlBcmd1bWVudEJ5VmFsU2Fm
ZSwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBc
CisgICAgbWFjcm8oR2V0TXlBcmd1bWVudHNMZW5ndGhTYWZlLCBOb2RlUmVzdWx0SlMgfCBOb2Rl
TXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oR2V0TXlBcmd1bWVudEJ5VmFsU2FmZSwgTm9kZVJl
c3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrQXJndW1lbnRzTm90
Q3JlYXRlZCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIFwKICAgICAvKiBOb2RlcyBmb3IgY3Jl
YXRpbmcgZnVuY3Rpb25zLiAqL1wK
</data>
<flag name="review"
          id="271177"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>