<?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>152035</bug_id>
          
          <creation_ts>2015-12-08 20:34:37 -0800</creation_ts>
          <short_desc>FTL B3 should have basic GetById support</short_desc>
          <delta_ts>2015-12-09 19:50:45 -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>WebKit 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>
          
          <blocked>151808</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</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>1147587</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-08 20:34:37 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147588</commentid>
    <comment_count>1</comment_count>
      <attachid>266964</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-08 20:39:13 -0800</bug_when>
    <thetext>Created attachment 266964
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147600</commentid>
    <comment_count>2</comment_count>
      <attachid>266967</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-08 22:13:17 -0800</bug_when>
    <thetext>Created attachment 266967
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147601</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-08 22:14:33 -0800</bug_when>
    <thetext>Attachment 266967 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6737:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6749:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6767:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 9 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>1147604</commentid>
    <comment_count>4</comment_count>
      <attachid>266969</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-08 22:20:28 -0800</bug_when>
    <thetext>Created attachment 266969
for real this time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147605</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-08 22:23:07 -0800</bug_when>
    <thetext>Attachment 266969 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6737:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6749:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6767:  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>1147606</commentid>
    <comment_count>6</comment_count>
      <attachid>266969</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-08 22:44:03 -0800</bug_when>
    <thetext>Comment on attachment 266969
for real this time

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

r=me

&gt; Source/WTF/wtf/Box.h:59
&gt; +    struct Data : ThreadSafeRefCounted&lt;Data&gt; {

shouldn&apos;t this be WTF_MAKE_FAST_ALLOCATED?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147770</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-09 08:06:37 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 266969 [details]
&gt; for real this time
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=266969&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WTF/wtf/Box.h:59
&gt; &gt; +    struct Data : ThreadSafeRefCounted&lt;Data&gt; {
&gt; 
&gt; shouldn&apos;t this be WTF_MAKE_FAST_ALLOCATED?

RefCounted and ThreadSafeRefCohnted both do WTF_MAKE_FAST_ALLOCATED and WTF_MAKE_NONCOPYABLE for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147926</commentid>
    <comment_count>8</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-09 13:23:14 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; Comment on attachment 266969 [details]
&gt; &gt; for real this time
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=266969&amp;action=review
&gt; &gt; 
&gt; &gt; r=me
&gt; &gt; 
&gt; &gt; &gt; Source/WTF/wtf/Box.h:59
&gt; &gt; &gt; +    struct Data : ThreadSafeRefCounted&lt;Data&gt; {
&gt; &gt; 
&gt; &gt; shouldn&apos;t this be WTF_MAKE_FAST_ALLOCATED?
&gt; 
&gt; RefCounted and ThreadSafeRefCohnted both do WTF_MAKE_FAST_ALLOCATED and
&gt; WTF_MAKE_NONCOPYABLE for you.

Oh, cool. I didn&apos;t know that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148054</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-09 19:50:45 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/193890</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266964</attachid>
            <date>2015-12-08 20:39:13 -0800</date>
            <delta_ts>2015-12-08 22:13:17 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>5029</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUuY3BwCShy
ZXZpc2lvbiAxOTM4MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFZh
bHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTggKzM0LDE4IEBAIFN0YWNrbWFwVmFsdWU6
On5TdGFja21hcFZhbHVlKCkKIHsKIH0KIAotdm9pZCBTdGFja21hcFZhbHVlOjphcHBlbmQoY29u
c3QgQ29uc3RyYWluZWRWYWx1ZSYgY29uc3RyYWluZWRWYWx1ZSkKK3ZvaWQgU3RhY2ttYXBWYWx1
ZTo6YXBwZW5kKFZhbHVlKiB2YWx1ZSwgY29uc3QgVmFsdWVSZXAmIHJlcCkKIHsKLSAgICBpZiAo
Y29uc3RyYWluZWRWYWx1ZS5yZXAoKSA9PSBWYWx1ZVJlcDo6Q29sZEFueSkgewotICAgICAgICBj
aGlsZHJlbigpLmFwcGVuZChjb25zdHJhaW5lZFZhbHVlLnZhbHVlKCkpOworICAgIGlmIChyZXAg
PT0gVmFsdWVSZXA6OkNvbGRBbnkpIHsKKyAgICAgICAgY2hpbGRyZW4oKS5hcHBlbmQodmFsdWUp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgd2hpbGUgKG1fcmVwcy5zaXplKCkgPCBu
dW1DaGlsZHJlbigpKQogICAgICAgICBtX3JlcHMuYXBwZW5kKFZhbHVlUmVwOjpDb2xkQW55KTsK
IAotICAgIGNoaWxkcmVuKCkuYXBwZW5kKGNvbnN0cmFpbmVkVmFsdWUudmFsdWUoKSk7Ci0gICAg
bV9yZXBzLmFwcGVuZChjb25zdHJhaW5lZFZhbHVlLnJlcCgpKTsKKyAgICBjaGlsZHJlbigpLmFw
cGVuZCh2YWx1ZSk7CisgICAgbV9yZXBzLmFwcGVuZChyZXApOwogfQogCiB2b2lkIFN0YWNrbWFw
VmFsdWU6OmFwcGVuZFNvbWVSZWdpc3RlcihWYWx1ZSogdmFsdWUpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBWYWx1ZS5oCShyZXZpc2lvbiAxOTM4MDQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFZhbHVlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTYzLDcgKzYzLDEyIEBAIHB1YmxpYzoKIAogICAgIC8vIFVzZSB0aGlzIHRvIGFkZCBjaGls
ZHJlbi4gTm90ZSB0aGF0IHlvdSBjb3VsZCBhbHNvIGFkZCBjaGlsZHJlbiBieSBkb2luZwogICAg
IC8vIGNoaWxkcmVuKCkuYXBwZW5kKCkuIFRoYXQgd2lsbCB3b3JrIGZpbmUsIGJ1dCBpdCdzIG5v
dCByZWNvbW1lbmRlZC4KLSAgICB2b2lkIGFwcGVuZChjb25zdCBDb25zdHJhaW5lZFZhbHVlJik7
CisgICAgdm9pZCBhcHBlbmQoY29uc3QgQ29uc3RyYWluZWRWYWx1ZSYgdmFsdWUpCisgICAgewor
ICAgICAgICBhcHBlbmQodmFsdWUudmFsdWUoKSwgdmFsdWUucmVwKCkpOworICAgIH0KKworICAg
IHZvaWQgYXBwZW5kKFZhbHVlKiwgY29uc3QgVmFsdWVSZXAmKTsKIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFZlY3RvclR5cGU+CiAgICAgdm9pZCBhcHBlbmRWZWN0b3IoY29uc3QgVmVjdG9yVHlw
ZSYgdmVjdG9yKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
TExWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvTExWTS5jcHAJKHJldmlzaW9uIDE5MzgwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NzIwLDE1ICs2
NzIwLDU1IEBAIHByaXZhdGU6CiAgICAgCiAgICAgTFZhbHVlIGdldEJ5SWQoTFZhbHVlIGJhc2Up
CiAgICAgeworICAgICAgICBOb2RlKiBub2RlID0gbV9ub2RlOworICAgICAgICBVbmlxdWVkU3Ry
aW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW25vZGUtPmlkZW50aWZpZXJOdW1i
ZXIoKV07CisKICNpZiBGVExfVVNFU19CMwotICAgICAgICBVTlVTRURfUEFSQU0oYmFzZSk7Cisg
ICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgZG8gZXhjZXB0aW9ucy4KKyAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTY4NgorICAgICAgICAKKyAg
ICAgICAgQjM6OlBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQo
SW50NjQpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQoYmFzZSwgVmFsdWVSZXA6OlNvbWVS
ZWdpc3Rlcik7CisgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3Jv
U2NyYXRjaFJlZ2lzdGVycygpKTsKIAotICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5h
YmxlZCgpIHx8ICF2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpCi0gICAgICAgICAgICBDUkFT
SCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSNlbHNlCi0gICAgICAgIGF1dG8gdWlkID0g
bV9ncmFwaC5pZGVudGlmaWVycygpW21fbm9kZS0+aWRlbnRpZmllck51bWJlcigpXTsKKyAgICAg
ICAgU3RhdGUqIHN0YXRlID0gJm1fZnRsU3RhdGU7CisgICAgICAgIHBhdGNocG9pbnQtPnNldEdl
bmVyYXRvcigKKyAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNr
bWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgQWxsb3dNYWNy
b1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOworCisgICAgICAgICAgICAg
ICAgLy8gTm90ZSBob3cgd2UgdGhyZWFkIHRoaXMgdGhyb3VnaCBieSB2YWx1ZSB0aHJvdWdoIG91
ciB2YXJpb3VzIGNsb3N1cmVzLgorICAgICAgICAgICAgICAgIEpJVEdldEJ5SWRHZW5lcmF0b3Ig
Z2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCksIG5vZGUtPm9y
aWdpbi5zZW1hbnRpYywKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmppdENvZGUtPmFkZFVu
aXF1ZUNhbGxTaXRlSW5kZXgobm9kZS0+b3JpZ2luLnNlbWFudGljKSwgdXNlZFJlZ2lzdGVycywK
KyAgICAgICAgICAgICAgICAgICAgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwog
CisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKyAgICAg
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGRvbmU7CisKKyAgICAgICAgICAgICAgICBw
YXJhbXMuYWRkTGF0ZVBhdGgoCisgICAgICAgICAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJz
JiBqaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgZG8g
c29tZXRoaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlz
dCBleGNlcHRpb25zOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIHNsb3dQYXRoQmVnaW4gPSBqaXQubGFiZWwoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBzbG93UGF0aENhbGwg
PSBjYWxsT3BlcmF0b24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnN0YXRlLCB1c2Vk
UmVnaXN0ZXJzLCBqaXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgZXhjZXB0aW9ucywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIHBhcmFtc1sw
XS5ncHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoZ2VuZXJhdG9yLnN0dWJJbmZvKCkpLCBwYXJhbXNbMV0uZ3ByKCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHVpZCkpLmNh
bGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5qdW1wKCkubGlua1RvKGRvbmUsICZq
aXQpOworCisgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3IucmVwb3J0U2xvd1BhdGhD
YWxsKHNsb3dQYXRoQmVnaW4sIHNsb3dQYXRoQ2FsbCk7CisKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbPV0gKExp
bmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2VuZXJhdG9yLmZpbmFsaXplKGxpbmtCdWZmZXIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworCisgICAg
ICAgIHJldHVybiBwYXRjaHBvaW50OworI2Vsc2UKICAgICAgICAgLy8gQXJndW1lbnRzOiBpZCwg
Ynl0ZXMsIHRhcmdldCwgbnVtQXJncywgYXJncy4uLgogICAgICAgICB1bnNpZ25lZCBzdGFja21h
cElEID0gbV9zdGFja21hcElEcysrOwogICAgICAgICAKQEAgLTY3NDgsNyArNjc4OCw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIExWYWx1ZSBjYWxsID0gbV9vdXQuY2FsbChtX291dC5pbnQ2NCwgbV9v
dXQucGF0Y2hwb2ludEludDY0SW50cmluc2ljKCksIGFyZ3VtZW50cyk7CiAgICAgICAgIHNldElu
c3RydWN0aW9uQ2FsbGluZ0NvbnZlbnRpb24oY2FsbCwgTExWTUFueVJlZ0NhbGxDb252KTsKICAg
ICAgICAgCi0gICAgICAgIG1fZnRsU3RhdGUuZ2V0QnlJZHMuYXBwZW5kKEdldEJ5SWREZXNjcmlw
dG9yKHN0YWNrbWFwSUQsIG1fbm9kZS0+b3JpZ2luLnNlbWFudGljLCB1aWQpKTsKKyAgICAgICAg
bV9mdGxTdGF0ZS5nZXRCeUlkcy5hcHBlbmQoR2V0QnlJZERlc2NyaXB0b3Ioc3RhY2ttYXBJRCwg
bm9kZS0+b3JpZ2luLnNlbWFudGljLCB1aWQpKTsKICAgICAgICAgCiAgICAgICAgIHJldHVybiBj
YWxsOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266967</attachid>
            <date>2015-12-08 22:13:17 -0800</date>
            <delta_ts>2015-12-08 22:20:28 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>15757</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkzODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE1LTEyLTA4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIHNob3VsZCBoYXZlIGJhc2ljIEdldEJ5SWQgc3VwcG9ydAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyMDM1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBiYXNpYyBHZXRCeUlkIHN1cHBv
cnQuIFRoaXMgd2FzIHNvIGVhc3kgdG8gZG8uIFVubGlrZSB0aGUgTExWTSBjb2RlIGZvciB0aGlz
LCB0aGUgQjMgY29kZSBpcworICAgICAgICBlbnRpcmVseSBzZWxmLWNvbnRhaW5lZCB3aXRoaW4g
dGhlIGdldEJ5SWQoKSBtZXRob2QgaW4gTG93ZXJERkcuCisKKyAgICAgICAgSSBkaXNjb3ZlcmVk
IHRoYXQgd2Ugd2VyZW4ndCBmb2xkaW5nIENoZWNrKE5vdEVxdWFsKHgsIDApKSB0byBDaGVjayh4
KS4gVGhpcyB3YXMgcHJldmVudGluZyB1cworICAgICAgICBmcm9tIGdlbmVyYXRpbmcgZ29vZCBj
b2RlIGZvciBDaGVjayhOb3RFcXVhbChCaXRBbmQoeCwgdGFnTWFzayksIDApKSwgc2luY2UgdGhl
IEJpdEFuZCB3YXMKKyAgICAgICAgY29uY2VhbGVkLiBUaGlzIHdhcyBhbiBlYXN5IHN0cmVuZ3Ro
IHJlZHVjdGlvbiBydWxlIHRvIGFkZC4KKworICAgICAgICBGaW5hbGx5LCBJIGZvdW5kIGl0IGVh
c2llciB0byBzYXkgYXBwZW5kKHZhbHVlLCByZXApIHRoYW4gYXBwZW5kKENvbnN0cmFpbmVkVmFs
dWUodmFsdWUsIHJlcCkpLCBzbworICAgICAgICBJIGFkZGVkIHRoYXQgQVBJLiBUaGUgb2xkIENv
bnN0cmFpbmVkVmFsdWUgZm9ybSBpcyBzdGlsbCBzdXBlciB1c2VmdWwgaW4gb3RoZXIgcGxhY2Vz
LCBsaWtlCisgICAgICAgIGNvbXBpbGVDYWxsT3JDb25zdHJ1Y3QoKSwgd2hlcmUgdGhlIHR3by1h
cmd1bWVudCBmb3JtIHdvdWxkIGJlIGF3a3dhcmQuIEl0J3MgZ3JlYXQgdG8gaGF2ZSBib3RoCisg
ICAgICAgIEFQSXMgdG8gcGljayBmcm9tLgorCisgICAgICAgICogYjMvQjNSZWR1Y2VTdHJlbmd0
aC5jcHA6CisgICAgICAgICogYjMvQjNTdGFja21hcFZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6
QjM6OlN0YWNrbWFwVmFsdWU6On5TdGFja21hcFZhbHVlKToKKyAgICAgICAgKEpTQzo6QjM6OlN0
YWNrbWFwVmFsdWU6OmFwcGVuZCk6CisgICAgICAgICogYjMvQjNTdGFja21hcFZhbHVlLmg6Cisg
ICAgICAgICogZGZnL0RGR0NvbW1vbi5oOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExW
TS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Z2V0QnlJZCk6
CisKIDIwMTUtMTItMDggIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gSW1wcm92ZSBob3cgQjMgbG93ZXJzIEFkZCgpIGFuZCBTdWIoKSBvbiB4
ODYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5j
cHAJKHJldmlzaW9uIDE5MzgwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVj
ZVN0cmVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYxLDYgKzg2MSwxMiBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+
b3Bjb2RlKCkgPT0gTm90RXF1YWwgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0lu
dCgwKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hp
bGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKIAog
ICAgICAgICBjYXNlIEJyYW5jaDogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
U3RhY2ttYXBWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzU3RhY2ttYXBWYWx1ZS5jcHAJKHJldmlzaW9uIDE5MzgwNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxOCAr
MzQsMTggQEAgU3RhY2ttYXBWYWx1ZTo6flN0YWNrbWFwVmFsdWUoKQogewogfQogCi12b2lkIFN0
YWNrbWFwVmFsdWU6OmFwcGVuZChjb25zdCBDb25zdHJhaW5lZFZhbHVlJiBjb25zdHJhaW5lZFZh
bHVlKQordm9pZCBTdGFja21hcFZhbHVlOjphcHBlbmQoVmFsdWUqIHZhbHVlLCBjb25zdCBWYWx1
ZVJlcCYgcmVwKQogewotICAgIGlmIChjb25zdHJhaW5lZFZhbHVlLnJlcCgpID09IFZhbHVlUmVw
OjpDb2xkQW55KSB7Ci0gICAgICAgIGNoaWxkcmVuKCkuYXBwZW5kKGNvbnN0cmFpbmVkVmFsdWUu
dmFsdWUoKSk7CisgICAgaWYgKHJlcCA9PSBWYWx1ZVJlcDo6Q29sZEFueSkgeworICAgICAgICBj
aGlsZHJlbigpLmFwcGVuZCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICB3
aGlsZSAobV9yZXBzLnNpemUoKSA8IG51bUNoaWxkcmVuKCkpCiAgICAgICAgIG1fcmVwcy5hcHBl
bmQoVmFsdWVSZXA6OkNvbGRBbnkpOwogCi0gICAgY2hpbGRyZW4oKS5hcHBlbmQoY29uc3RyYWlu
ZWRWYWx1ZS52YWx1ZSgpKTsKLSAgICBtX3JlcHMuYXBwZW5kKGNvbnN0cmFpbmVkVmFsdWUucmVw
KCkpOworICAgIGNoaWxkcmVuKCkuYXBwZW5kKHZhbHVlKTsKKyAgICBtX3JlcHMuYXBwZW5kKHJl
cCk7CiB9CiAKIHZvaWQgU3RhY2ttYXBWYWx1ZTo6YXBwZW5kU29tZVJlZ2lzdGVyKFZhbHVlKiB2
YWx1ZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFZhbHVlLmgJ
KHJldmlzaW9uIDE5MzgwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFw
VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsMTIgQEAgcHVibGljOgogCiAgICAg
Ly8gVXNlIHRoaXMgdG8gYWRkIGNoaWxkcmVuLiBOb3RlIHRoYXQgeW91IGNvdWxkIGFsc28gYWRk
IGNoaWxkcmVuIGJ5IGRvaW5nCiAgICAgLy8gY2hpbGRyZW4oKS5hcHBlbmQoKS4gVGhhdCB3aWxs
IHdvcmsgZmluZSwgYnV0IGl0J3Mgbm90IHJlY29tbWVuZGVkLgotICAgIHZvaWQgYXBwZW5kKGNv
bnN0IENvbnN0cmFpbmVkVmFsdWUmKTsKKyAgICB2b2lkIGFwcGVuZChjb25zdCBDb25zdHJhaW5l
ZFZhbHVlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGFwcGVuZCh2YWx1ZS52YWx1ZSgpLCB2YWx1
ZS5yZXAoKSk7CisgICAgfQorCisgICAgdm9pZCBhcHBlbmQoVmFsdWUqLCBjb25zdCBWYWx1ZVJl
cCYpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4KICAgICB2b2lkIGFwcGVu
ZFZlY3Rvcihjb25zdCBWZWN0b3JUeXBlJiB2ZWN0b3IpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29tbW9uLmgJKHJldmlzaW9uIDE5MzgwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogLy8gV2UgYXJlIGluIHRoZSBtaWRkbGUgb2Yg
YW4gZXhwZXJpbWVudGFsIHRyYW5zaXRpb24gZnJvbSBMTFZNIHRvIEIzIGFzIHRoZSBiYWNrZW5k
IGZvciB0aGUgRlRMLiBXZSBkb24ndAogLy8geWV0IGtub3cgaG93IGl0IHdpbGwgdHVybiBvdXQu
IEZvciBub3csIHRoaXMgZmxhZyB3aWxsIGNvbnRyb2wgd2hldGhlciBGVEwgdXNlcyBCMy4gUmVt
ZW1iZXIgdG8gc2V0IHRoaXMKIC8vIHRvIDAgYmVmb3JlIGNvbW1pdHRpbmchCi0jZGVmaW5lIEZU
TF9VU0VTX0IzIDAKKyNkZWZpbmUgRlRMX1VTRVNfQjMgMQogCiBzdHJ1Y3QgTm9kZTsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJ
KHJldmlzaW9uIDE5MzgwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0xMVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw3IEBACiAjaW5jbHVkZSA8
ZGxmY24uaD4KICNpbmNsdWRlIDxsbHZtL0luaXRpYWxpemVMTFZNLmg+CiAjaW5jbHVkZSA8dW5v
cmRlcmVkX3NldD4KKyNpbmNsdWRlIDx3dGYvQm94Lmg+CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJ
RC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CkBAIC02NzIwLDE1ICs2NzIx
LDU3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgTFZhbHVlIGdldEJ5SWQoTFZhbHVlIGJhc2UpCiAg
ICAgeworICAgICAgICBOb2RlKiBub2RlID0gbV9ub2RlOworICAgICAgICBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW25vZGUtPmlkZW50aWZpZXJOdW1iZXIo
KV07CisKICNpZiBGVExfVVNFU19CMwotICAgICAgICBVTlVTRURfUEFSQU0oYmFzZSk7CisgICAg
ICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgZG8gZXhjZXB0aW9ucy4KKyAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTY4NgorICAgICAgICAKKyAgICAg
ICAgQjM6OlBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQoSW50
NjQpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQoYmFzZSwgVmFsdWVSZXA6OlNvbWVSZWdp
c3Rlcik7CisgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2Ny
YXRjaFJlZ2lzdGVycygpKTsKIAotICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxl
ZCgpIHx8ICF2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpCi0gICAgICAgICAgICBDUkFTSCgp
OwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSNlbHNlCi0gICAgICAgIGF1dG8gdWlkID0gbV9n
cmFwaC5pZGVudGlmaWVycygpW21fbm9kZS0+aWRlbnRpZmllck51bWJlcigpXTsKKyAgICAgICAg
U3RhdGUqIHN0YXRlID0gJm1fZnRsU3RhdGU7CisgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVy
YXRvcigKKyAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1Nj
cmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOworCisgICAgICAgICAgICAgICAg
YXV0byBnZW5lcmF0b3IgPSBCb3g8SklUR2V0QnlJZEdlbmVyYXRvcj46OmNyZWF0ZSgKKyAgICAg
ICAgICAgICAgICAgICAgaml0LmNvZGVCbG9jaygpLCBub2RlLT5vcmlnaW4uc2VtYW50aWMsCisg
ICAgICAgICAgICAgICAgICAgIHN0YXRlLT5qaXRDb2RlLT5jb21tb24uYWRkVW5pcXVlQ2FsbFNp
dGVJbmRleChub2RlLT5vcmlnaW4uc2VtYW50aWMpLAorICAgICAgICAgICAgICAgICAgICBwYXJh
bXMudXNlZFJlZ2lzdGVycygpLCBKU1ZhbHVlUmVncyhwYXJhbXNbMV0uZ3ByKCkpLCBKU1ZhbHVl
UmVncyhwYXJhbXNbMF0uZ3ByKCkpKTsKKworICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2Vu
ZXJhdGVGYXN0UGF0aChqaXQpOworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwg
ZG9uZSA9IGppdC5sYWJlbCgpOworCisgICAgICAgICAgICAgICAgcGFyYW1zLmFkZExhdGVQYXRo
KAorICAgICAgICAgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3Jh
dGNoKGppdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgZG8gc29tZXRoaW5nLgorICAgICAgICAgICAgICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBleGNlcHRpb25zOworCisgICAgICAgICAgICAg
ICAgICAgICAgICBnZW5lcmF0b3ItPnNsb3dQYXRoSnVtcCgpLmxpbmsoJmppdCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIHNsb3dQYXRoQmVnaW4gPSBqaXQu
bGFiZWwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBzbG93
UGF0aENhbGwgPSBjYWxsT3BlcmF0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICpz
dGF0ZSwgcGFyYW1zLnVzZWRSZWdpc3RlcnMoKSwgaml0LCBub2RlLT5vcmlnaW4uc2VtYW50aWMs
ICZleGNlcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbkdldEJ5
SWRPcHRpbWl6ZSwgcGFyYW1zWzBdLmdwcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihnZW5lcmF0b3ItPnN0dWJJbmZvKCkpLCBwYXJh
bXNbMV0uZ3ByKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKHVpZCkpLmNhbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5q
dW1wKCkubGlua1RvKGRvbmUsICZqaXQpOworCisgICAgICAgICAgICAgICAgICAgICAgICBnZW5l
cmF0b3ItPnJlcG9ydFNsb3dQYXRoQ2FsbChzbG93UGF0aEJlZ2luLCBzbG93UGF0aENhbGwpOwog
CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+ZmluYWxpemUobGlua0J1ZmZlcik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgcmV0dXJuIHBhdGNocG9pbnQ7CisjZWxzZQogICAg
ICAgICAvLyBBcmd1bWVudHM6IGlkLCBieXRlcywgdGFyZ2V0LCBudW1BcmdzLCBhcmdzLi4uCiAg
ICAgICAgIHVuc2lnbmVkIHN0YWNrbWFwSUQgPSBtX3N0YWNrbWFwSURzKys7CiAgICAgICAgIApA
QCAtNjc0OCw3ICs2NzkxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgTFZhbHVlIGNhbGwgPSBtX291
dC5jYWxsKG1fb3V0LmludDY0LCBtX291dC5wYXRjaHBvaW50SW50NjRJbnRyaW5zaWMoKSwgYXJn
dW1lbnRzKTsKICAgICAgICAgc2V0SW5zdHJ1Y3Rpb25DYWxsaW5nQ29udmVudGlvbihjYWxsLCBM
TFZNQW55UmVnQ2FsbENvbnYpOwogICAgICAgICAKLSAgICAgICAgbV9mdGxTdGF0ZS5nZXRCeUlk
cy5hcHBlbmQoR2V0QnlJZERlc2NyaXB0b3Ioc3RhY2ttYXBJRCwgbV9ub2RlLT5vcmlnaW4uc2Vt
YW50aWMsIHVpZCkpOworICAgICAgICBtX2Z0bFN0YXRlLmdldEJ5SWRzLmFwcGVuZChHZXRCeUlk
RGVzY3JpcHRvcihzdGFja21hcElELCBub2RlLT5vcmlnaW4uc2VtYW50aWMsIHVpZCkpOwogICAg
ICAgICAKICAgICAgICAgcmV0dXJuIGNhbGw7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTM4
MDQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4
IEBACisyMDE1LTEyLTA4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAg
ICAgRlRMIEIzIHNob3VsZCBoYXZlIGJhc2ljIEdldEJ5SWQgc3VwcG9ydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyMDM1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBkZWFsaW5nIHdpdGggc2hh
cmVkIHRhc2sgbGFtYmRhcywgeW91IG9mdGVuIHdhbnQgdG8gZm9yY2UgYSB2YWx1ZSB0byBiZSBh
bGxvY2F0ZWQgc28gdGhhdCBpdAorICAgICAgICBoYXMgcmVmZXJlbmNlIHNlbWFudGljcywgYnV0
IHlvdSBzdGlsbCB3YW50IHRoZSBsYW1iZGEgdG8gZXhlY3V0ZSBPSyB3aGVuIHdlIHBvcCBzdGFj
ay4gSW4gUEwgd2UKKyAgICAgICAgdXN1YWxseSBjYWxsIHRoaXMgYSAiYm94Ii4gVGhpcyBpcyBl
YXN5IHRvIGRvIGlmIHRoZSB2YWx1ZSB0aGF0IGhhcHBlbmVkIHRvIGJlIHN0YWNrLWFsbG9jYXRl
ZAorICAgICAgICBpcyBhbHNvIFJlZkNvdW50ZWQsIGJ1dCB0aGF0J3MgcmFyZSwgc2luY2Ugc3Rh
Y2stYWxsb2NhdGVkIHZhbHVlcyBvZnRlbiBoYXZlIGNvcHkgc2VtYW50aWNzLiBTbywKKyAgICAg
ICAgSSd2ZSBhZGRlZCBhIEJveCB0eXBlIHRvIFdURi4gQmVoaW5kIHRoZSBzY2VuZXMsIGl0IGFs
bG9jYXRlcyB5b3VyIG9iamVjdCB3aXRoIGZhc3QgbWFsbG9jIGluc2lkZQorICAgICAgICBhIFRo
cmVhZFNBZmVSZWZDb3VudGVkLiBXaGVuIHlvdSBwYXNzIEJveDxUPiwgeW91J3JlIHBhc3Npbmcg
dGhlIHJlZmVyZW5jZS4gVGhpcyBtYWtlcyBpdCBhIGxvdAorICAgICAgICBlYXNpZXIgdG8gd29y
ayB3aXRoIGJ5LXJlZmVyZW5jZSBjYXB0dXJlLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0JveC5oOiBBZGRlZC4KKyAgICAgICAgKFdU
Rjo6Qm94OjpCb3gpOgorICAgICAgICAoV1RGOjpCb3g6OmNyZWF0ZSk6CisgICAgICAgIChXVEY6
OkJveDo6Z2V0KToKKyAgICAgICAgKFdURjo6Qm94OjpvcGVyYXRvciopOgorICAgICAgICAoV1RG
OjpCb3g6Om9wZXJhdG9yLT4pOgorICAgICAgICAoV1RGOjpCb3g6Om9wZXJhdG9yIGJvb2wpOgor
ICAgICAgICAoV1RGOjpCb3g6OkRhdGE6OkRhdGEpOgorCiAyMDE1LTEyLTA4ICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgQ3JlYXRlIGEgU2FuZGJveCBT
UEkgaGVhZGVyCkluZGV4OiBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDE5MzgwNCkKKysrIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKIAkJMEY4RjJCOTExNzJFMDBG
QzAwN0RCREE1IC8qIENvbXBpbGF0aW9uVGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhGMkI5MDE3MkUwMEYwMDA3REJEQTUgLyogQ29tcGls
YXRpb25UaHJlYWQuaCAqLzsgfTsKIAkJMEY4RjJCOTIxNzJFMDEwMzAwN0RCREE1IC8qIENvbXBp
bGF0aW9uVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGOEYyQjhGMTcyRTAwRjAwMDdEQkRBNSAvKiBDb21waWxhdGlvblRocmVhZC5jcHAg
Ki87IH07CiAJCTBGOEYyQjlDMTcyRjI1OTYwMDdEQkRBNSAvKiBDb252ZXJzaW9uTW9kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RjJCOUIxNzJG
MjU5NDAwN0RCREE1IC8qIENvbnZlcnNpb25Nb2RlLmggKi87IH07CisJCTBGOTMyNzRCMUMxN0Y0
QjcwMENGNjU2NCAvKiBCb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGOTMyNzRBMUMxN0Y0QjcwMENGNjU2NCAvKiBCb3guaCAqLzsgfTsKIAkJMEY5
RDMzNjAxNjVEQkE3MzAwNUFEMzg3IC8qIEZpbGVQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlEMzM1QjE2NURCQTczMDA1QUQz
ODcgLyogRmlsZVByaW50U3RyZWFtLmNwcCAqLzsgfTsKIAkJMEY5RDMzNjExNjVEQkE3MzAwNUFE
Mzg3IC8qIEZpbGVQcmludFN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5RDMzNUMxNjVEQkE3MzAwNUFEMzg3IC8qIEZpbGVQcmludFN0cmVh
bS5oICovOyB9OwogCQkwRjlEMzM2MjE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5RDMzNUQx
NjVEQkE3MzAwNUFEMzg3IC8qIFByaW50U3RyZWFtLmNwcCAqLzsgfTsKQEAgLTMzNCw2ICszMzUs
NyBAQAogCQkwRjhGMkI4RjE3MkUwMEYwMDA3REJEQTUgLyogQ29tcGlsYXRpb25UaHJlYWQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcGlsYXRpb25UaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjhGMkI5MDE3MkUwMEYwMDA3REJEQTUgLyogQ29tcGlsYXRpb25U
aHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGlsYXRpb25UaHJlYWQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY4RjJCOUIxNzJGMjU5NDAwN0RCREE1IC8qIENvbnZlcnNpb25N
b2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnZlcnNpb25Nb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTBGOTMyNzRBMUMxN0Y0QjcwMENGNjU2NCAvKiBCb3guaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGOUQzMzVCMTY1REJBNzMwMDVBRDM4NyAvKiBGaWxlUHJpbnRTdHJlYW0uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVByaW50U3RyZWFtLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5RDMzNUMxNjVEQkE3MzAwNUFEMzg3IC8qIEZp
bGVQcmludFN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlUHJp
bnRTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5RDMzNUQxNjVEQkE3
MzAwNUFEMzg3IC8qIFByaW50U3RyZWFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFByaW50U3RyZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTc0OCw2ICs3NTAsNyBAQAogCQkJCUE4QTQ3MjYxMTUxQTgyNUEwMDQxMjNGRiAvKiBCaXRWZWN0
b3IuaCAqLywKIAkJCQlBOEE0NzI2NDE1MUE4MjVBMDA0MTIzRkYgLyogQmxvY2tTdGFjay5oICov
LAogCQkJCUE4QTQ3MjY1MTUxQTgyNUEwMDQxMjNGRiAvKiBCbG9vbUZpbHRlci5oICovLAorCQkJ
CTBGOTMyNzRBMUMxN0Y0QjcwMENGNjU2NCAvKiBCb3guaCAqLywKIAkJCQkwRjQ1NzA0NDFCRTgz
NDQxMDA2MkE2MjkgLyogQnViYmxlU29ydC5oICovLAogCQkJCUE4QTQ3MjY3MTUxQTgyNUEwMDQx
MjNGRiAvKiBCdW1wUG9pbnRlckFsbG9jYXRvci5oICovLAogCQkJCUVCOTVFMUVGMTYxQTcyNDEw
MDg5QTJGNSAvKiBCeXRlT3JkZXIuaCAqLywKQEAgLTEyNDYsNiArMTI0OSw3IEBACiAJCQkJQThB
NDc0M0QxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0J1aWxkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQzMEI0Nzg5MUFBQUFDMUEwMDEyMjNEQSAvKiBTdHJpbmdDb21tb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4QTQ3NDNFMTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdDb25jYXRlbmF0ZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY5MzI3NEIxQzE3RjRCNzAwQ0Y2NTY0IC8qIEJveC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MkMxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0V4dHJh
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0M0YxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmlu
Z0hhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NDg3NDU0MTdBMEJEQUUwMEZBMDRDQiAvKiBT
dHJpbmdIYXNoRHVtcENvbnRleHQuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dURi93
dGYvQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQm94LmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV1RGL3d0Zi9Cb3guaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
V1RGX0JveF9oCisjZGVmaW5lIFdURl9Cb3hfaAorCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV1RGIHsK
KworLy8gQm94PFQ+IGlzIGEgcmVmZXJlbmNlLWNvdW50ZWQgcG9pbnRlciB0byBUIHRoYXQgYWxs
b2NhdGVzIFQgdXNpbmcgRmFzdE1hbGxvYyBhbmQgcHJlcGVuZHMgYSByZWZlcmVuY2UKKy8vIGNv
dW50IHRvIGl0LgordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIEJveCB7CitwdWJsaWM6Cisg
ICAgQm94KCkKKyAgICB7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1l
bnRzPgorICAgIHN0YXRpYyBCb3ggY3JlYXRlKEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAg
ICB7CisgICAgICAgIEJveCByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2RhdGEgPSBhZG9wdFJl
ZihuZXcgRGF0YShzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKSk7CisgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgVCogZ2V0KCkgY29uc3QgeyByZXR1cm4g
Jm1fZGF0YS0+dmFsdWU7IH0KKworICAgIFQmIG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuIG1f
ZGF0YS0+dmFsdWU7IH0KKyAgICBUKiBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gJm1fZGF0
YS0+dmFsdWU7IH0KKworICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSB7IHJldHVybiBtX2Rh
dGE7IH0KKyAgICAKK3ByaXZhdGU6CisgICAgc3RydWN0IERhdGEgOiBUaHJlYWRTYWZlUmVmQ291
bnRlZDxEYXRhPiB7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KKyAg
ICAgICAgRGF0YShBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCisgICAgICAgICAgICA6IHZhbHVl
KHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pCisgICAgICAgIHsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgVCB2YWx1ZTsKKyAgICB9OworCisgICAgUmVmUHRyPERh
dGE+IG1fZGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OkJveDsK
KworI2VuZGlmIC8vIFdURl9Cb3hfaAorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266969</attachid>
            <date>2015-12-08 22:20:28 -0800</date>
            <delta_ts>2015-12-08 22:44:03 -0800</delta_ts>
            <desc>for real this time</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>15168</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkzODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE1LTEyLTA4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIHNob3VsZCBoYXZlIGJhc2ljIEdldEJ5SWQgc3VwcG9ydAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyMDM1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBiYXNpYyBHZXRCeUlkIHN1cHBv
cnQuIFRoaXMgd2FzIHNvIGVhc3kgdG8gZG8uIFVubGlrZSB0aGUgTExWTSBjb2RlIGZvciB0aGlz
LCB0aGUgQjMgY29kZSBpcworICAgICAgICBlbnRpcmVseSBzZWxmLWNvbnRhaW5lZCB3aXRoaW4g
dGhlIGdldEJ5SWQoKSBtZXRob2QgaW4gTG93ZXJERkcuCisKKyAgICAgICAgSSBkaXNjb3ZlcmVk
IHRoYXQgd2Ugd2VyZW4ndCBmb2xkaW5nIENoZWNrKE5vdEVxdWFsKHgsIDApKSB0byBDaGVjayh4
KS4gVGhpcyB3YXMgcHJldmVudGluZyB1cworICAgICAgICBmcm9tIGdlbmVyYXRpbmcgZ29vZCBj
b2RlIGZvciBDaGVjayhOb3RFcXVhbChCaXRBbmQoeCwgdGFnTWFzayksIDApKSwgc2luY2UgdGhl
IEJpdEFuZCB3YXMKKyAgICAgICAgY29uY2VhbGVkLiBUaGlzIHdhcyBhbiBlYXN5IHN0cmVuZ3Ro
IHJlZHVjdGlvbiBydWxlIHRvIGFkZC4KKworICAgICAgICBGaW5hbGx5LCBJIGZvdW5kIGl0IGVh
c2llciB0byBzYXkgYXBwZW5kKHZhbHVlLCByZXApIHRoYW4gYXBwZW5kKENvbnN0cmFpbmVkVmFs
dWUodmFsdWUsIHJlcCkpLCBzbworICAgICAgICBJIGFkZGVkIHRoYXQgQVBJLiBUaGUgb2xkIENv
bnN0cmFpbmVkVmFsdWUgZm9ybSBpcyBzdGlsbCBzdXBlciB1c2VmdWwgaW4gb3RoZXIgcGxhY2Vz
LCBsaWtlCisgICAgICAgIGNvbXBpbGVDYWxsT3JDb25zdHJ1Y3QoKSwgd2hlcmUgdGhlIHR3by1h
cmd1bWVudCBmb3JtIHdvdWxkIGJlIGF3a3dhcmQuIEl0J3MgZ3JlYXQgdG8gaGF2ZSBib3RoCisg
ICAgICAgIEFQSXMgdG8gcGljayBmcm9tLgorCisgICAgICAgICogYjMvQjNSZWR1Y2VTdHJlbmd0
aC5jcHA6CisgICAgICAgICogYjMvQjNTdGFja21hcFZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6
QjM6OlN0YWNrbWFwVmFsdWU6On5TdGFja21hcFZhbHVlKToKKyAgICAgICAgKEpTQzo6QjM6OlN0
YWNrbWFwVmFsdWU6OmFwcGVuZCk6CisgICAgICAgICogYjMvQjNTdGFja21hcFZhbHVlLmg6Cisg
ICAgICAgICogZGZnL0RGR0NvbW1vbi5oOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExW
TS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Z2V0QnlJZCk6
CisKIDIwMTUtMTItMDggIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gSW1wcm92ZSBob3cgQjMgbG93ZXJzIEFkZCgpIGFuZCBTdWIoKSBvbiB4
ODYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5j
cHAJKHJldmlzaW9uIDE5MzgwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVj
ZVN0cmVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYxLDYgKzg2MSwxMiBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+
b3Bjb2RlKCkgPT0gTm90RXF1YWwgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0lu
dCgwKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hp
bGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKIAog
ICAgICAgICBjYXNlIEJyYW5jaDogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
U3RhY2ttYXBWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzU3RhY2ttYXBWYWx1ZS5jcHAJKHJldmlzaW9uIDE5MzgwNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxOCAr
MzQsMTggQEAgU3RhY2ttYXBWYWx1ZTo6flN0YWNrbWFwVmFsdWUoKQogewogfQogCi12b2lkIFN0
YWNrbWFwVmFsdWU6OmFwcGVuZChjb25zdCBDb25zdHJhaW5lZFZhbHVlJiBjb25zdHJhaW5lZFZh
bHVlKQordm9pZCBTdGFja21hcFZhbHVlOjphcHBlbmQoVmFsdWUqIHZhbHVlLCBjb25zdCBWYWx1
ZVJlcCYgcmVwKQogewotICAgIGlmIChjb25zdHJhaW5lZFZhbHVlLnJlcCgpID09IFZhbHVlUmVw
OjpDb2xkQW55KSB7Ci0gICAgICAgIGNoaWxkcmVuKCkuYXBwZW5kKGNvbnN0cmFpbmVkVmFsdWUu
dmFsdWUoKSk7CisgICAgaWYgKHJlcCA9PSBWYWx1ZVJlcDo6Q29sZEFueSkgeworICAgICAgICBj
aGlsZHJlbigpLmFwcGVuZCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICB3
aGlsZSAobV9yZXBzLnNpemUoKSA8IG51bUNoaWxkcmVuKCkpCiAgICAgICAgIG1fcmVwcy5hcHBl
bmQoVmFsdWVSZXA6OkNvbGRBbnkpOwogCi0gICAgY2hpbGRyZW4oKS5hcHBlbmQoY29uc3RyYWlu
ZWRWYWx1ZS52YWx1ZSgpKTsKLSAgICBtX3JlcHMuYXBwZW5kKGNvbnN0cmFpbmVkVmFsdWUucmVw
KCkpOworICAgIGNoaWxkcmVuKCkuYXBwZW5kKHZhbHVlKTsKKyAgICBtX3JlcHMuYXBwZW5kKHJl
cCk7CiB9CiAKIHZvaWQgU3RhY2ttYXBWYWx1ZTo6YXBwZW5kU29tZVJlZ2lzdGVyKFZhbHVlKiB2
YWx1ZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFZhbHVlLmgJ
KHJldmlzaW9uIDE5MzgwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFw
VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsMTIgQEAgcHVibGljOgogCiAgICAg
Ly8gVXNlIHRoaXMgdG8gYWRkIGNoaWxkcmVuLiBOb3RlIHRoYXQgeW91IGNvdWxkIGFsc28gYWRk
IGNoaWxkcmVuIGJ5IGRvaW5nCiAgICAgLy8gY2hpbGRyZW4oKS5hcHBlbmQoKS4gVGhhdCB3aWxs
IHdvcmsgZmluZSwgYnV0IGl0J3Mgbm90IHJlY29tbWVuZGVkLgotICAgIHZvaWQgYXBwZW5kKGNv
bnN0IENvbnN0cmFpbmVkVmFsdWUmKTsKKyAgICB2b2lkIGFwcGVuZChjb25zdCBDb25zdHJhaW5l
ZFZhbHVlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGFwcGVuZCh2YWx1ZS52YWx1ZSgpLCB2YWx1
ZS5yZXAoKSk7CisgICAgfQorCisgICAgdm9pZCBhcHBlbmQoVmFsdWUqLCBjb25zdCBWYWx1ZVJl
cCYpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4KICAgICB2b2lkIGFwcGVu
ZFZlY3Rvcihjb25zdCBWZWN0b3JUeXBlJiB2ZWN0b3IpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkocmV2aXNpb24gMTkzODA0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlIDxkbGZjbi5oPgogI2luY2x1ZGUg
PGxsdm0vSW5pdGlhbGl6ZUxMVk0uaD4KICNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgorI2luY2x1
ZGUgPHd0Zi9Cb3guaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgRlRMIHsKQEAgLTY3MjAsMTUgKzY3MjEsNTcgQEAgcHJpdmF0ZToKICAg
ICAKICAgICBMVmFsdWUgZ2V0QnlJZChMVmFsdWUgYmFzZSkKICAgICB7CisgICAgICAgIE5vZGUq
IG5vZGUgPSBtX25vZGU7CisgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBtX2dyYXBo
LmlkZW50aWZpZXJzKClbbm9kZS0+aWRlbnRpZmllck51bWJlcigpXTsKKwogI2lmIEZUTF9VU0VT
X0IzCi0gICAgICAgIFVOVVNFRF9QQVJBTShiYXNlKTsKKyAgICAgICAgLy8gRklYTUU6IE1ha2Ug
dGhpcyBkbyBleGNlcHRpb25zLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUxNjg2CisgICAgICAgIAorICAgICAgICBCMzo6UGF0Y2hwb2ludFZh
bHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChJbnQ2NCk7CisgICAgICAgIHBhdGNo
cG9pbnQtPmFwcGVuZChiYXNlLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKTsKKyAgICAgICAgcGF0
Y2hwb2ludC0+Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkpOwog
Ci0gICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkgfHwgIXZlcmJvc2VDb21w
aWxhdGlvbkVuYWJsZWQoKSkKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgIHJldHVybiBu
dWxscHRyOwotI2Vsc2UKLSAgICAgICAgYXV0byB1aWQgPSBtX2dyYXBoLmlkZW50aWZpZXJzKClb
bV9ub2RlLT5pZGVudGlmaWVyTnVtYmVyKCldOworICAgICAgICBTdGF0ZSogc3RhdGUgPSAmbV9m
dGxTdGF0ZTsKKyAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAorICAgICAgICAgICAg
Wz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBw
YXJhbXMpIHsKKyAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2Ug
YWxsb3dTY3JhdGNoKGppdCk7CisKKyAgICAgICAgICAgICAgICBhdXRvIGdlbmVyYXRvciA9IEJv
eDxKSVRHZXRCeUlkR2VuZXJhdG9yPjo6Y3JlYXRlKAorICAgICAgICAgICAgICAgICAgICBqaXQu
Y29kZUJsb2NrKCksIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywKKyAgICAgICAgICAgICAgICAgICAg
c3RhdGUtPmppdENvZGUtPmNvbW1vbi5hZGRVbmlxdWVDYWxsU2l0ZUluZGV4KG5vZGUtPm9yaWdp
bi5zZW1hbnRpYyksCisgICAgICAgICAgICAgICAgICAgIHBhcmFtcy51c2VkUmVnaXN0ZXJzKCks
IEpTVmFsdWVSZWdzKHBhcmFtc1sxXS5ncHIoKSksIEpTVmFsdWVSZWdzKHBhcmFtc1swXS5ncHIo
KSkpOworCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5nZW5lcmF0ZUZhc3RQYXRoKGppdCk7
CisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBkb25lID0gaml0LmxhYmVsKCk7
CisKKyAgICAgICAgICAgICAgICBwYXJhbXMuYWRkTGF0ZVBhdGgoCisgICAgICAgICAgICAgICAg
ICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFs
bG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IE1ha2Ug
dGhpcyBkbyBzb21ldGhpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
Okp1bXBMaXN0IGV4Y2VwdGlvbnM7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRv
ci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEND
YWxsSGVscGVyczo6TGFiZWwgc2xvd1BhdGhCZWdpbiA9IGppdC5sYWJlbCgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIHNsb3dQYXRoQ2FsbCA9IGNhbGxPcGVy
YXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnN0YXRlLCBwYXJhbXMudXNlZFJl
Z2lzdGVycygpLCBqaXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgJmV4Y2VwdGlvbnMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBwYXJhbXNb
MF0uZ3ByKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyKGdlbmVyYXRvci0+c3R1YkluZm8oKSksIHBhcmFtc1sxXS5ncHIoKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodWlkKSku
Y2FsbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaml0Lmp1bXAoKS5saW5rVG8oZG9uZSwg
JmppdCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+cmVwb3J0U2xvd1Bh
dGhDYWxsKHNsb3dQYXRoQmVnaW4sIHNsb3dQYXRoQ2FsbCk7CiAKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbPV0g
KExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2VuZXJhdG9yLT5maW5hbGl6ZShsaW5rQnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKwor
ICAgICAgICByZXR1cm4gcGF0Y2hwb2ludDsKKyNlbHNlCiAgICAgICAgIC8vIEFyZ3VtZW50czog
aWQsIGJ5dGVzLCB0YXJnZXQsIG51bUFyZ3MsIGFyZ3MuLi4KICAgICAgICAgdW5zaWduZWQgc3Rh
Y2ttYXBJRCA9IG1fc3RhY2ttYXBJRHMrKzsKICAgICAgICAgCkBAIC02NzQ4LDcgKzY3OTEsNyBA
QCBwcml2YXRlOgogICAgICAgICBMVmFsdWUgY2FsbCA9IG1fb3V0LmNhbGwobV9vdXQuaW50NjQs
IG1fb3V0LnBhdGNocG9pbnRJbnQ2NEludHJpbnNpYygpLCBhcmd1bWVudHMpOwogICAgICAgICBz
ZXRJbnN0cnVjdGlvbkNhbGxpbmdDb252ZW50aW9uKGNhbGwsIExMVk1BbnlSZWdDYWxsQ29udik7
CiAgICAgICAgIAotICAgICAgICBtX2Z0bFN0YXRlLmdldEJ5SWRzLmFwcGVuZChHZXRCeUlkRGVz
Y3JpcHRvcihzdGFja21hcElELCBtX25vZGUtPm9yaWdpbi5zZW1hbnRpYywgdWlkKSk7CisgICAg
ICAgIG1fZnRsU3RhdGUuZ2V0QnlJZHMuYXBwZW5kKEdldEJ5SWREZXNjcmlwdG9yKHN0YWNrbWFw
SUQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgdWlkKSk7CiAgICAgICAgIAogICAgICAgICByZXR1
cm4gY2FsbDsKICNlbmRpZgpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MzgwNCkKKysrIFNvdXJjZS9XVEYv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTUtMTItMDggIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBGVEwgQjMgc2hvdWxkIGhh
dmUgYmFzaWMgR2V0QnlJZCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTIwMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIGRlYWxpbmcgd2l0aCBzaGFyZWQgdGFzayBsYW1iZGFzLCB5
b3Ugb2Z0ZW4gd2FudCB0byBmb3JjZSBhIHZhbHVlIHRvIGJlIGFsbG9jYXRlZCBzbyB0aGF0IGl0
CisgICAgICAgIGhhcyByZWZlcmVuY2Ugc2VtYW50aWNzLCBidXQgeW91IHN0aWxsIHdhbnQgdGhl
IGxhbWJkYSB0byBleGVjdXRlIE9LIHdoZW4gd2UgcG9wIHN0YWNrLiBJbiBQTCB3ZQorICAgICAg
ICB1c3VhbGx5IGNhbGwgdGhpcyBhICJib3giLiBUaGlzIGlzIGVhc3kgdG8gZG8gaWYgdGhlIHZh
bHVlIHRoYXQgaGFwcGVuZWQgdG8gYmUgc3RhY2stYWxsb2NhdGVkCisgICAgICAgIGlzIGFsc28g
UmVmQ291bnRlZCwgYnV0IHRoYXQncyByYXJlLCBzaW5jZSBzdGFjay1hbGxvY2F0ZWQgdmFsdWVz
IG9mdGVuIGhhdmUgY29weSBzZW1hbnRpY3MuIFNvLAorICAgICAgICBJJ3ZlIGFkZGVkIGEgQm94
IHR5cGUgdG8gV1RGLiBCZWhpbmQgdGhlIHNjZW5lcywgaXQgYWxsb2NhdGVzIHlvdXIgb2JqZWN0
IHdpdGggZmFzdCBtYWxsb2MgaW5zaWRlCisgICAgICAgIGEgVGhyZWFkU0FmZVJlZkNvdW50ZWQu
IFdoZW4geW91IHBhc3MgQm94PFQ+LCB5b3UncmUgcGFzc2luZyB0aGUgcmVmZXJlbmNlLiBUaGlz
IG1ha2VzIGl0IGEgbG90CisgICAgICAgIGVhc2llciB0byB3b3JrIHdpdGggYnktcmVmZXJlbmNl
IGNhcHR1cmUuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiB3dGYvQm94Lmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpCb3g6OkJveCk6CisgICAg
ICAgIChXVEY6OkJveDo6Y3JlYXRlKToKKyAgICAgICAgKFdURjo6Qm94OjpnZXQpOgorICAgICAg
ICAoV1RGOjpCb3g6Om9wZXJhdG9yKik6CisgICAgICAgIChXVEY6OkJveDo6b3BlcmF0b3ItPik6
CisgICAgICAgIChXVEY6OkJveDo6b3BlcmF0b3IgYm9vbCk6CisgICAgICAgIChXVEY6OkJveDo6
RGF0YTo6RGF0YSk6CisKIDIwMTUtMTItMDggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KIAogICAgICAgICBDcmVhdGUgYSBTYW5kYm94IFNQSSBoZWFkZXIKSW5kZXg6IFNv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTkzODA0KQor
KysgU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMzQsNiArMzQsNyBAQAogCQkwRjhGMkI5MTE3MkUwMEZDMDA3REJEQTUgLyogQ29tcGls
YXRpb25UaHJlYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGOEYyQjkwMTcyRTAwRjAwMDdEQkRBNSAvKiBDb21waWxhdGlvblRocmVhZC5oICovOyB9
OwogCQkwRjhGMkI5MjE3MkUwMTAzMDA3REJEQTUgLyogQ29tcGlsYXRpb25UaHJlYWQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RjJCOEYxNzJF
MDBGMDAwN0RCREE1IC8qIENvbXBpbGF0aW9uVGhyZWFkLmNwcCAqLzsgfTsKIAkJMEY4RjJCOUMx
NzJGMjU5NjAwN0RCREE1IC8qIENvbnZlcnNpb25Nb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhGMkI5QjE3MkYyNTk0MDA3REJEQTUgLyogQ29u
dmVyc2lvbk1vZGUuaCAqLzsgfTsKKwkJMEY5MzI3NEIxQzE3RjRCNzAwQ0Y2NTY0IC8qIEJveC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5MzI3NEEx
QzE3RjRCNzAwQ0Y2NTY0IC8qIEJveC5oICovOyB9OwogCQkwRjlEMzM2MDE2NURCQTczMDA1QUQz
ODcgLyogRmlsZVByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOUQzMzVCMTY1REJBNzMwMDVBRDM4NyAvKiBGaWxlUHJpbnRTdHJl
YW0uY3BwICovOyB9OwogCQkwRjlEMzM2MTE2NURCQTczMDA1QUQzODcgLyogRmlsZVByaW50U3Ry
ZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlE
MzM1QzE2NURCQTczMDA1QUQzODcgLyogRmlsZVByaW50U3RyZWFtLmggKi87IH07CiAJCTBGOUQz
MzYyMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlEMzM1RDE2NURCQTczMDA1QUQzODcgLyog
UHJpbnRTdHJlYW0uY3BwICovOyB9OwpAQCAtMzM0LDYgKzMzNSw3IEBACiAJCTBGOEYyQjhGMTcy
RTAwRjAwMDdEQkRBNSAvKiBDb21waWxhdGlvblRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDb21waWxhdGlvblRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
OEYyQjkwMTcyRTAwRjAwMDdEQkRBNSAvKiBDb21waWxhdGlvblRocmVhZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb21waWxhdGlvblRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjhGMkI5QjE3MkYyNTk0MDA3REJEQTUgLyogQ29udmVyc2lvbk1vZGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ29udmVyc2lvbk1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY5MzI3
NEExQzE3RjRCNzAwQ0Y2NTY0IC8qIEJveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5RDMzNUIxNjVEQkE3
MzAwNUFEMzg3IC8qIEZpbGVQcmludFN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGaWxlUHJpbnRTdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjlEMzM1QzE2NURCQTczMDA1QUQzODcgLyogRmlsZVByaW50U3RyZWFtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVQcmludFN0cmVhbS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlEMzM1RDE2NURCQTczMDA1QUQzODcgLyogUHJpbnRT
dHJlYW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpbnRTdHJl
YW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzQ4LDYgKzc1MCw3IEBACiAJ
CQkJQThBNDcyNjExNTFBODI1QTAwNDEyM0ZGIC8qIEJpdFZlY3Rvci5oICovLAogCQkJCUE4QTQ3
MjY0MTUxQTgyNUEwMDQxMjNGRiAvKiBCbG9ja1N0YWNrLmggKi8sCiAJCQkJQThBNDcyNjUxNTFB
ODI1QTAwNDEyM0ZGIC8qIEJsb29tRmlsdGVyLmggKi8sCisJCQkJMEY5MzI3NEExQzE3RjRCNzAw
Q0Y2NTY0IC8qIEJveC5oICovLAogCQkJCTBGNDU3MDQ0MUJFODM0NDEwMDYyQTYyOSAvKiBCdWJi
bGVTb3J0LmggKi8sCiAJCQkJQThBNDcyNjcxNTFBODI1QTAwNDEyM0ZGIC8qIEJ1bXBQb2ludGVy
QWxsb2NhdG9yLmggKi8sCiAJCQkJRUI5NUUxRUYxNjFBNzI0MTAwODlBMkY1IC8qIEJ5dGVPcmRl
ci5oICovLApAQCAtMTI0Niw2ICsxMjQ5LDcgQEAKIAkJCQlBOEE0NzQzRDE1MUE4MjVCMDA0MTIz
RkYgLyogU3RyaW5nQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDMwQjQ3ODkxQUFBQUMx
QTAwMTIyM0RBIC8qIFN0cmluZ0NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0M0Ux
NTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0NvbmNhdGVuYXRlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjkzMjc0QjFDMTdGNEI3MDBDRjY1NjQgLyogQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OEE0NzQyQzE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEE0NzQzRjE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nSGFzaC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTc0ODc0NTQxN0EwQkRBRTAwRkEwNENCIC8qIFN0cmluZ0hhc2hEdW1wQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Cb3guaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Cb3guaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XVEYvd3Rm
L0JveC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBXVEZfQm94X2gKKyNkZWZpbmUg
V1RGX0JveF9oCisKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXVEYgeworCisvLyBCb3g8VD4gaXMgYSBy
ZWZlcmVuY2UtY291bnRlZCBwb2ludGVyIHRvIFQgdGhhdCBhbGxvY2F0ZXMgVCB1c2luZyBGYXN0
TWFsbG9jIGFuZCBwcmVwZW5kcyBhIHJlZmVyZW5jZQorLy8gY291bnQgdG8gaXQuCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgorY2xhc3MgQm94IHsKK3B1YmxpYzoKKyAgICBCb3goKQorICAgIHsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CisgICAgc3RhdGljIEJv
eCBjcmVhdGUoQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQorICAgIHsKKyAgICAgICAgQm94IHJl
c3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fZGF0YSA9IGFkb3B0UmVmKG5ldyBEYXRhKHN0ZDo6Zm9y
d2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisKKyAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiAmbV9kYXRhLT52YWx1ZTsgfQor
CisgICAgVCYgb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLT52YWx1ZTsgfQorICAg
IFQqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiAmbV9kYXRhLT52YWx1ZTsgfQorCisgICAg
ZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIHsgcmV0dXJuIG1fZGF0YTsgfQorICAgIAorcHJpdmF0
ZToKKyAgICBzdHJ1Y3QgRGF0YSA6IFRocmVhZFNhZmVSZWZDb3VudGVkPERhdGE+IHsKKyAgICAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgorICAgICAgICBEYXRhKEFyZ3VtZW50
cyYmLi4uIGFyZ3VtZW50cykKKyAgICAgICAgICAgIDogdmFsdWUoc3RkOjpmb3J3YXJkPEFyZ3Vt
ZW50cz4oYXJndW1lbnRzKS4uLikKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICBUIHZhbHVlOworICAgIH07CisKKyAgICBSZWZQdHI8RGF0YT4gbV9kYXRhOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6Qm94OworCisjZW5kaWYgLy8gV1RGX0Jv
eF9oCisK
</data>
<flag name="review"
          id="291998"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>