<?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>118151</bug_id>
          
          <creation_ts>2013-06-27 15:16:09 -0700</creation_ts>
          <short_desc>FTL should do loop peeling</short_desc>
          <delta_ts>2016-02-15 16:26:04 -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>INVALID</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>
          <dependson>118152</dependson>
          <blocked>132356</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>904360</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-06-27 15:16:09 -0700</bug_when>
    <thetext>We should at least try it and see what happens.

Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904432</commentid>
    <comment_count>1</comment_count>
      <attachid>205658</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-06-27 20:58:30 -0700</bug_when>
    <thetext>Created attachment 205658
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904435</commentid>
    <comment_count>2</comment_count>
      <attachid>205660</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-06-27 21:30:49 -0700</bug_when>
    <thetext>Created attachment 205660
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904643</commentid>
    <comment_count>3</comment_count>
      <attachid>205718</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-06-28 08:44:02 -0700</bug_when>
    <thetext>Created attachment 205718
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164949</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-02-15 16:26:04 -0800</bug_when>
    <thetext>This is almost certainly not a good idea.  We haven&apos;t seen any perf results that show this to be a good idea.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205658</attachid>
            <date>2013-06-27 20:58:30 -0700</date>
            <delta_ts>2013-06-27 21:30:49 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>21326</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNTIxNTEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTcwLDEzICsxNzAsMTMgQEAKIAkJMEY0NkU2QjkxNzZG
ODlEQjAwRTFGNzU1IC8qIEZUTFN3aXRjaENhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDZFNkI3MTc2Rjg5RDkwMEUxRjc1NSAvKiBGVExTd2l0
Y2hDYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEY0NkU2QzUxNzZGOEE1RTAwRTFGNzU1IC8qIERGR0xhenlKU1ZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDZFNkMyMTc2RjhBNUIw
MEUxRjc1NSAvKiBERkdMYXp5SlNWYWx1ZS5jcHAgKi87IH07CiAJCTBGNDZFNkM2MTc2RjhBNjAw
MEUxRjc1NSAvKiBERkdMYXp5SlNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY0NkU2QzMxNzZGOEE1QjAwRTFGNzU1IC8qIERGR0xhenlKU1Zh
bHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
MEY0NkU2RUYxNzdDRTk1QTAwRTFGNzU1IC8qIERGR0FuYWx5c2lzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ2RTZFRTE3N0NFOTVBMDBFMUY3NTUg
LyogREZHQW5hbHlzaXMuaCAqLzsgfTsKLQkJMEY0NkU2RjMxNzdDRjBEMjAwRTFGNzU1IC8qIERG
R05hdHVyYWxMb29wcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjQ2RTZGMTE3N0NGMEQyMDBFMUY3NTUgLyogREZHTmF0dXJhbExvb3BzLmNwcCAq
LzsgfTsKLQkJMEY0NkU2RjQxNzdDRjBEMjAwRTFGNzU1IC8qIERGR05hdHVyYWxMb29wcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NkU2RjIxNzdD
RjBEMjAwRTFGNzU1IC8qIERGR05hdHVyYWxMb29wcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNDZFNkQ5MTc3Q0I5MDAwMEUxRjc1NSAvKiBM
TFZNRGlzYXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNDZFNkQ3MTc3Q0I4RkMwMEUxRjc1NSAvKiBMTFZNRGlzYXNzZW1ibGVyLmNw
cCAqLzsgfTsKIAkJMEY0NkU2RTMxNzdDQzM2NjAwRTFGNzU1IC8qIExMVk1EaXNhc3NlbWJsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDZFNkUw
MTc3Q0MzNjYwMEUxRjc1NSAvKiBMTFZNRGlzYXNzZW1ibGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0NkU2RTQxNzdDQzM2NjAwRTFGNzU1
IC8qIFVEaXM4NkRpc2Fzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY0NkU2RTExNzdDQzM2NjAwRTFGNzU1IC8qIFVEaXM4NkRpc2Fzc2Vt
Ymxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGNDZFNkU1MTc3Q0MzNjYwMEUxRjc1NSAvKiBYODZEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NkU2RTIxNzdDQzM2NjAw
RTFGNzU1IC8qIFg4NkRpc2Fzc2VtYmxlci5jcHAgKi87IH07CisJCTBGNDZFNkVGMTc3Q0U5NUEw
MEUxRjc1NSAvKiBERkdBbmFseXNpcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY0NkU2RUUxNzdDRTk1QTAwRTFGNzU1IC8qIERGR0FuYWx5c2lzLmgg
Ki87IH07CisJCTBGNDZFNkYzMTc3Q0YwRDIwMEUxRjc1NSAvKiBERkdOYXR1cmFsTG9vcHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NkU2RjEx
NzdDRjBEMjAwRTFGNzU1IC8qIERGR05hdHVyYWxMb29wcy5jcHAgKi87IH07CisJCTBGNDZFNkY0
MTc3Q0YwRDIwMEUxRjc1NSAvKiBERkdOYXR1cmFsTG9vcHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDZFNkYyMTc3Q0YwRDIwMEUxRjc1NSAvKiBE
RkdOYXR1cmFsTG9vcHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0OTNBRjgx
NkQwQ0FEMTAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJMEY0RTFBMEUx
NzNBRUREQzAwN0VFMkQzIC8qIEludGVuZGVkU3RydWN0dXJlQ2hhaW4uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0RTFBMEMxNzNBRUREQzAwN0VF
MkQzIC8qIEludGVuZGVkU3RydWN0dXJlQ2hhaW4uY3BwICovOyB9OwogCQkwRjRFMUEwRjE3M0FF
RERDMDA3RUUyRDMgLyogSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0RTFBMEQxNzNBRUREQzAwN0VFMkQzIC8q
IEludGVuZGVkU3RydWN0dXJlQ2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMzUzLDYgKzM1Myw4IEBACiAJCTBGRERCRkI2MTY2NkVFREEw
MEM1NUZFRiAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkREQkZCMzE2NjZFRUQ1MDBDNTVGRUYgLyog
REZHVmFyaWFibGVBY2Nlc3NEYXRhRHVtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGRTIyOEVEMTQzNkFCMjcwMDE5NkM0OCAvKiBPcHRpb25z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkUyMjhF
QjE0MzZBQjIzMDAxOTZDNDggLyogT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRTIyOEVFMTQzNkFCMkMwMDE5NkM0OCAvKiBPcHRp
b25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RTIyOEVBMTQzNkFCMjMwMDE5NkM0OCAvKiBPcHRpb25zLmNwcCAqLzsgfTsKKwkJMEZFNDI0Mjgx
NzdENDBCNjAwNUU4Q0YyIC8qIERGR0xvb3BQZWVsaW5nUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFNDI0MjYxNzdENDBCNjAwNUU4Q0Yy
IC8qIERGR0xvb3BQZWVsaW5nUGhhc2UuY3BwICovOyB9OworCQkwRkU0MjQyOTE3N0Q0MEI2MDA1
RThDRjIgLyogREZHTG9vcFBlZWxpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFNDI0MjcxNzdENDBCNjAwNUU4Q0YyIC8qIERGR0xvb3BQ
ZWVsaW5nUGhhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRkU4NTM0QjE3MjNDREE1MDBCNjE4RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRTg1
MzQ5MTcyM0NEQTUwMEI2MThGNSAvKiBERkdEZXNpcmVkV2F0Y2hwb2ludHMuY3BwICovOyB9Owog
CQkwRkU4NTM0QzE3MjNDREE1MDBCNjE4RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU4NTM0QTE3MjND
REE1MDBCNjE4RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZFQTBBMDgxNzA1MTNEQjAwQkI3MjJD
IC8qIEZUTEFiYnJldmlhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGRUEwOUZEMTcwNTEzREIwMEJCNzIyQyAvKiBGVExBYmJyZXZpYXRpb25z
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEx
ODYsMTMgKzExODgsMTMgQEAKIAkJMEY0NkU2QjcxNzZGODlEOTAwRTFGNzU1IC8qIEZUTFN3aXRj
aENhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMU3dpdGNoQ2FzZS5o
OyBwYXRoID0gZnRsL0ZUTFN3aXRjaENhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY0NkU2QzIxNzZGOEE1QjAwRTFGNzU1IC8qIERGR0xhenlKU1ZhbHVlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0xhenlKU1ZhbHVlLmNwcDsgcGF0aCA9
IGRmZy9ERkdMYXp5SlNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NDZFNkMzMTc2RjhBNUIwMEUxRjc1NSAvKiBERkdMYXp5SlNWYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBERkdMYXp5SlNWYWx1ZS5oOyBwYXRoID0gZGZnL0RGR0xhenlK
U1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGNDZFNkVFMTc3Q0U5NUEw
MEUxRjc1NSAvKiBERkdBbmFseXNpcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBERkdBbmFseXNpcy5oOyBwYXRoID0gZGZnL0RGR0FuYWx5c2lzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTBGNDZFNkYxMTc3Q0YwRDIwMEUxRjc1NSAvKiBERkdOYXR1cmFsTG9v
cHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHTmF0dXJhbExv
b3BzLmNwcDsgcGF0aCA9IGRmZy9ERkdOYXR1cmFsTG9vcHMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkwRjQ2RTZGMjE3N0NGMEQyMDBFMUY3NTUgLyogREZHTmF0dXJhbExvb3Bz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR05hdHVyYWxMb29wcy5oOyBw
YXRoID0gZGZnL0RGR05hdHVyYWxMb29wcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjQ2RTZENzE3N0NCOEZDMDBFMUY3NTUgLyogTExWTURpc2Fzc2VtYmxlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMTFZNRGlzYXNzZW1ibGVyLmNwcDsgcGF0
aCA9IGRpc2Fzc2VtYmxlci9MTFZNRGlzYXNzZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0NkU2RTAxNzdDQzM2NjAwRTFGNzU1IC8qIExMVk1EaXNhc3NlbWJsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTExWTURpc2Fzc2VtYmxlci5oOyBw
YXRoID0gZGlzYXNzZW1ibGVyL0xMVk1EaXNhc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0NkU2RTExNzdDQzM2NjAwRTFGNzU1IC8qIFVEaXM4NkRpc2Fzc2VtYmxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBVRGlzODZEaXNhc3NlbWJsZXIu
aDsgcGF0aCA9IGRpc2Fzc2VtYmxlci9VRGlzODZEaXNhc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NkU2RTIxNzdDQzM2NjAwRTFGNzU1IC8qIFg4NkRpc2Fzc2Vt
Ymxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBYODZEaXNhc3Nl
bWJsZXIuY3BwOyBwYXRoID0gZGlzYXNzZW1ibGVyL1g4NkRpc2Fzc2VtYmxlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNDZFNkVFMTc3Q0U5NUEwMEUxRjc1NSAvKiBERkdB
bmFseXNpcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBbmFseXNpcy5o
OyBwYXRoID0gZGZnL0RGR0FuYWx5c2lzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNDZFNkYxMTc3Q0YwRDIwMEUxRjc1NSAvKiBERkdOYXR1cmFsTG9vcHMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHTmF0dXJhbExvb3BzLmNwcDsgcGF0aCA9
IGRmZy9ERkdOYXR1cmFsTG9vcHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
RjQ2RTZGMjE3N0NGMEQyMDBFMUY3NTUgLyogREZHTmF0dXJhbExvb3BzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR05hdHVyYWxMb29wcy5oOyBwYXRoID0gZGZnL0RGR05h
dHVyYWxMb29wcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ5M0FGODE2RDBD
QUQxMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjRFMUEwQzE3M0FFRERDMDA3RUUyRDMgLyogSW50ZW5kZWRTdHJ1Y3R1cmVDaGFp
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnRlbmRlZFN0cnVj
dHVyZUNoYWluLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0RTFBMEQxNzNB
RUREQzAwN0VFMkQzIC8qIEludGVuZGVkU3RydWN0dXJlQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTM4NCw2ICsxMzg2LDggQEAKIAkJMEZEREJGQjMxNjY2RUVENTAw
QzU1RkVGIC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YUR1bXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gREZHVmFyaWFibGVBY2Nlc3NEYXRhRHVtcC5oOyBwYXRoID0gZGZnL0RG
R1ZhcmlhYmxlQWNjZXNzRGF0YUR1bXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEZFMjI4RUExNDM2QUIyMzAwMTk2QzQ4IC8qIE9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gT3B0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGRTIyOEVCMTQzNkFCMjMwMDE5NkM0OCAvKiBPcHRpb25zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEZFNDI0MjYxNzdENDBCNjAwNUU4Q0YyIC8qIERGR0xvb3BQZWVsaW5nUGhhc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHTG9vcFBlZWxpbmdQaGFz
ZS5jcHA7IHBhdGggPSBkZmcvREZHTG9vcFBlZWxpbmdQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGRTQyNDI3MTc3RDQwQjYwMDVFOENGMiAvKiBERkdMb29wUGVlbGlu
Z1BoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0xvb3BQZWVsaW5n
UGhhc2UuaDsgcGF0aCA9IGRmZy9ERkdMb29wUGVlbGluZ1BoYXNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGRTg1MzQ5MTcyM0NEQTUwMEI2MThGNSAvKiBERkdEZXNpcmVkV2F0
Y2hwb2ludHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVz
aXJlZFdhdGNocG9pbnRzLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkV2F0Y2hwb2ludHMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkU4NTM0QTE3MjNDREE1MDBCNjE4RjUg
LyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERGR0Rlc2lyZWRXYXRjaHBvaW50cy5oOyBwYXRoID0gZGZnL0RGR0Rlc2lyZWRXYXRjaHBv
aW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVBMDlGRDE3MDUxM0RCMDBC
QjcyMkMgLyogRlRMQWJicmV2aWF0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBGVExBYmJyZXZpYXRpb25zLmg7IHBhdGggPSBmdGwvRlRMQWJicmV2aWF0aW9ucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAyNyw2ICszMDMxLDggQEAKIAkJCQkwRjQ2
RTZDMzE3NkY4QTVCMDBFMUY3NTUgLyogREZHTGF6eUpTVmFsdWUuaCAqLywKIAkJCQkwRkI0QjUx
QzE2QjYyNzcyMDAzRjY5NkIgLyogREZHTG9uZ0xpdmVkU3RhdGUuY3BwICovLAogCQkJCTBGQjRC
NTFEMTZCNjI3NzIwMDNGNjk2QiAvKiBERkdMb25nTGl2ZWRTdGF0ZS5oICovLAorCQkJCTBGRTQy
NDI2MTc3RDQwQjYwMDVFOENGMiAvKiBERkdMb29wUGVlbGluZ1BoYXNlLmNwcCAqLywKKwkJCQkw
RkU0MjQyNzE3N0Q0MEI2MDA1RThDRjIgLyogREZHTG9vcFBlZWxpbmdQaGFzZS5oICovLAogCQkJ
CTBGMkJEQzNEMTUyMjgwMTcwMENEODkxMCAvKiBERkdNaW5pZmllZEdyYXBoLmggKi8sCiAJCQkJ
MEZCNEI1MTAxNkIzQTk2NDAwM0Y2OTZCIC8qIERGR01pbmlmaWVkSUQuaCAqLywKIAkJCQkwRjJC
REM0QzE1MjI4MTgzMDBDRDg5MTAgLyogREZHTWluaWZpZWROb2RlLmNwcCAqLywKQEAgLTM4MzEs
NiArMzgzNyw3IEBACiAJCQkJMEY0NkU2RjQxNzdDRjBEMjAwRTFGNzU1IC8qIERGR05hdHVyYWxM
b29wcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NkU2RTMxNzdDQzM2NjAwRTFGNzU1IC8qIExM
Vk1EaXNhc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDZFNkU0MTc3Q0MzNjYwMEUx
Rjc1NSAvKiBVRGlzODZEaXNhc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTQyNDI5
MTc3RDQwQjYwMDVFOENGMiAvKiBERkdMb29wUGVlbGluZ1BoYXNlLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTQ1MjUsNiArNDUzMiw3IEBACiAJCQkJMEY0NkU2RjMxNzdDRjBEMjAwRTFGNzU1IC8qIERG
R05hdHVyYWxMb29wcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ2RTZEOTE3N0NCOTAwMDBF
MUY3NTUgLyogTExWTURpc2Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ2RTZF
NTE3N0NDMzY2MDBFMUY3NTUgLyogWDg2RGlzYXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGRTQyNDI4MTc3RDQwQjYwMDVFOENGMiAvKiBERkdMb29wUGVlbGluZ1BoYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Js
b2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Js
b2NrLmgJKHJldmlzaW9uIDE1MjE1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QmFzaWNCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBAIHN0cnVjdCBCYXNp
Y0Jsb2NrIDogVmVjdG9yPE5vZGUqLCA4PiB7CiAgICAgICAgICwgaXNMaW5rZWQoZmFsc2UpCiAj
ZW5kaWYKICAgICAgICAgLCBpc1JlYWNoYWJsZShmYWxzZSkKKyAgICAgICAgLCBkaWRQZWVsKGZh
bHNlKQogICAgICAgICAsIHZhcmlhYmxlc0F0SGVhZChudW1Bcmd1bWVudHMsIG51bUxvY2FscykK
ICAgICAgICAgLCB2YXJpYWJsZXNBdFRhaWwobnVtQXJndW1lbnRzLCBudW1Mb2NhbHMpCiAgICAg
ICAgICwgdmFsdWVzQXRIZWFkKG51bUFyZ3VtZW50cywgbnVtTG9jYWxzKQpAQCAtMTIwLDYgKzEy
MSw3IEBAIHN0cnVjdCBCYXNpY0Jsb2NrIDogVmVjdG9yPE5vZGUqLCA4PiB7CiAgICAgYm9vbCBp
c0xpbmtlZDsKICNlbmRpZgogICAgIGJvb2wgaXNSZWFjaGFibGU7CisgICAgYm9vbCBkaWRQZWVs
OwogICAgIAogICAgIFZlY3RvcjxOb2RlKj4gcGhpczsKICAgICBQcmVkZWNlc3Nvckxpc3QgbV9w
cmVkZWNlc3NvcnM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAko
cmV2aXNpb24gMTUyMTUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4NCw3ICs0ODQsMTc3IEBAIHZvaWQgR3JhcGg6OnN1YnN0
aXR1dGVHZXRMb2NhbChCYXNpY0Jsb2MKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KKwor
Ym9vbCBHcmFwaDo6Y2FuQmVEdXBsaWNhdGVkKE5vZGUqIG5vZGUpCit7CisgICAgLy8gRXhwbGlj
aXRseSBsaXN0IHRoZSB0aGluZ3MgdGhhdCBjYW4gYmUgZHVwbGljYXRlZCBzaW5jZSB3ZSBjb3Vs
ZCBnZXQgaXQKKyAgICAvLyB3cm9uZyBmb3Igc29tZSBub2Rlcy4gSWYgeW91IGFkZCBhIG5ldyBu
b2RlLCB5b3UgaGF2ZSB0byBkZWNpZGUgaWYgaXQncworICAgIC8vIHNhZmUgdG8gZHVwbGljYXRl
IGl0LgorICAgIAorICAgIHN3aXRjaCAocmVzdWx0LT5vcCgpKSB7CisgICAgY2FzZSBKU0NvbnN0
YW50OgorICAgIGNhc2UgV2Vha0pTQ29uc3RhbnQ6CisgICAgY2FzZSBJZGVudGl0eToKKyAgICBj
YXNlIFRvVGhpczoKKyAgICBjYXNlIENyZWF0ZVRoaXM6CisgICAgY2FzZSBHZXRDYWxsZWU6Cisg
ICAgY2FzZSBTZXRDYWxsZWU6CisgICAgY2FzZSBHZXRMb2NhbDoKKyAgICBjYXNlIFNldExvY2Fs
OgorICAgIGNhc2UgTW92SGludEFuZENoZWNrOgorICAgIGNhc2UgTW92SGludDoKKyAgICBjYXNl
IFpvbWJpZUhpbnQ6CisgICAgY2FzZSBQaGFudG9tOgorICAgIGNhc2UgTm9wOgorICAgIGNhc2Ug
UGhpOgorICAgIGNhc2UgRmx1c2g6CisgICAgY2FzZSBQaGFudG9tTG9jYWw6CisgICAgY2FzZSBH
ZXRMb2NhbFVubGlua2VkOgorICAgIGNhc2UgU2V0QXJndW1lbnQ6CisgICAgY2FzZSBCaXRBbmQ6
CisgICAgY2FzZSBCaXRPcjoKKyAgICBjYXNlIEJpdFhvcjoKKyAgICBjYXNlIEJpdExTaGlmdDoK
KyAgICBjYXNlIEJpdFJTaGlmdDoKKyAgICBjYXNlIEJpdFVSU2hpZnQ6CisgICAgY2FzZSBWYWx1
ZVRvSW50MzI6CisgICAgY2FzZSBVSW50MzJUb051bWJlcjoKKyAgICBjYXNlIEludDMyVG9Eb3Vi
bGU6CisgICAgY2FzZSBGb3J3YXJkSW50MzJUb0RvdWJsZToKKyAgICBjYXNlIERvdWJsZUFzSW50
MzI6CisgICAgY2FzZSBBcml0aEFkZDoKKyAgICBjYXNlIEFyaXRoU3ViOgorICAgIGNhc2UgQXJp
dGhOZWdhdGU6CisgICAgY2FzZSBBcml0aE11bDoKKyAgICBjYXNlIEFyaXRoRGl2OgorICAgIGNh
c2UgQXJpdGhNb2Q6CisgICAgY2FzZSBBcml0aEFiczoKKyAgICBjYXNlIEFyaXRoTWluOgorICAg
IGNhc2UgQXJpdGhNYXg6CisgICAgY2FzZSBBcml0aFNxcnQ6CisgICAgY2FzZSBWYWx1ZUFkZDoK
KyAgICBjYXNlIEdldEJ5VmFsOgorICAgIGNhc2UgUHV0QnlWYWw6CisgICAgY2FzZSBQdXRCeVZh
bEFsaWFzOgorICAgIGNhc2UgR2V0QnlJZDoKKyAgICBjYXNlIEdldEJ5SWRGbHVzaDoKKyAgICBj
YXNlIFB1dEJ5SWQ6CisgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgorICAgIGNhc2UgQ2hlY2tTdHJ1
Y3R1cmU6CisgICAgY2FzZSBDaGVja0V4ZWN1dGFibGU6CisgICAgY2FzZSBGb3J3YXJkQ2hlY2tT
dHJ1Y3R1cmU6CisgICAgY2FzZSBTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludDoKKyAgICBj
YXNlIEZvcndhcmRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludDoKKyAgICBjYXNlIFB1dFN0
cnVjdHVyZToKKyAgICBjYXNlIFBoYW50b21QdXRTdHJ1Y3R1cmU6CisgICAgY2FzZSBBbGxvY2F0
ZVByb3BlcnR5U3RvcmFnZToKKyAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6Cisg
ICAgY2FzZSBHZXRCdXR0ZXJmbHk6CisgICAgY2FzZSBDaGVja0FycmF5OgorICAgIGNhc2UgRm9y
d2FyZENoZWNrQXJyYXk6CisgICAgY2FzZSBBcnJheWlmeToKKyAgICBjYXNlIEFycmF5aWZ5VG9T
dHJ1Y3R1cmU6CisgICAgY2FzZSBHZXRJbmRleGVkUHJvcGVydHlTdG9yYWdlOgorICAgIGNhc2Ug
R2V0QnlPZmZzZXQ6CisgICAgY2FzZSBQdXRCeU9mZnNldDoKKyAgICBjYXNlIEdldEFycmF5TGVu
Z3RoOgorICAgIGNhc2UgR2V0U2NvcGU6CisgICAgY2FzZSBHZXRNeVNjb3BlOgorICAgIGNhc2Ug
U2V0TXlTY29wZToKKyAgICBjYXNlIFNraXBUb3BTY29wZToKKyAgICBjYXNlIFNraXBTY29wZToK
KyAgICBjYXNlIEdldENsb3N1cmVSZWdpc3RlcnM6CisgICAgY2FzZSBHZXRDbG9zdXJlVmFyOgor
ICAgIGNhc2UgUHV0Q2xvc3VyZVZhcjoKKyAgICBjYXNlIEdldEdsb2JhbFZhcjoKKyAgICBjYXNl
IFB1dEdsb2JhbFZhcjoKKyAgICBjYXNlIEdsb2JhbFZhcldhdGNocG9pbnQ6CisgICAgY2FzZSBW
YXJJbmplY3Rpb25XYXRjaHBvaW50OgorICAgIGNhc2UgQ2hlY2tGdW5jdGlvbjoKKyAgICBjYXNl
IEFsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludDoKKyAgICBjYXNlIEFycmF5UHVzaDoKKyAgICBj
YXNlIEFycmF5UG9wOgorICAgIGNhc2UgUmVnRXhwRXhlYzoKKyAgICBjYXNlIFJlZkV4cFRlc3Q6
CisgICAgY2FzZSBTdHJpbmdDaGFyQ29kZUF0OgorICAgIGNhc2UgU3RyaW5nQ2hhckF0OgorICAg
IGNhc2UgQ29tcGFyZUxlc3M6CisgICAgY2FzZSBDb21wYXJlTGVzc0VxOgorICAgIGNhc2UgQ29t
cGFyZUdyZWF0ZXI6CisgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgorICAgIGNhc2UgQ29tcGFy
ZUVxOgorICAgIGNhc2UgQ29tcGFyZUVxQ29uc3RhbnQ6CisgICAgY2FzZSBDb21wYXJlU3RyaWN0
RXE6CisgICAgY2FzZSBDb21wYXJlU3RyaWN0RXFDb25zdGFudDoKKyAgICBjYXNlIENhbGw6Cisg
ICAgY2FzZSBDb25zdHJ1Y3Q6CisgICAgY2FzZSBOZXdPYmplY3Q6CisgICAgY2FzZSBOZXdBcnJh
eToKKyAgICBjYXNlIE5ld0FycmF5V2l0aFNpemU6CisgICAgY2FzZSBOZXdBcnJheUJ1ZmZlcjoK
KyAgICBjYXNlIE5ld1JlZ2V4cDoKKyAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CisgICAgY2Fz
ZSBJbnN0YW5jZU9mOgorICAgIGNhc2UgSXNVbmRlZmluZWQ6CisgICAgY2FzZSBJc0Jvb2xlYW46
CisgICAgY2FzZSBJc051bWJlcjoKKyAgICBjYXNlIElzU3RyaW5nOgorICAgIGNhc2UgSXNPYmpl
Y3Q6CisgICAgY2FzZSBJc0Z1bmN0aW9uOgorICAgIGNhc2UgVHlwZU9mOgorICAgIGNhc2UgTG9n
aWNhbE5vdDoKKyAgICBjYXNlIFRvUHJpbWl0aXZlOgorICAgIGNhc2UgVG9TdHJpbmc6CisgICAg
Y2FzZSBOZXdTdHJpbmdPYmplY3Q6CisgICAgY2FzZSBNYWtlUm9wZToKKyAgICBjYXNlIEluOgor
ICAgIGNhc2UgQ3JlYXRlQWN0aXZhdGlvbjoKKyAgICBjYXNlIFRlYXJPZmZBY3RpdmF0aW9uOgor
ICAgIGNhc2UgQ3JlYXRlQXJndW1lbnRzOgorICAgIGNhc2UgUGhhbnRvbUFyZ3VtZW50czoKKyAg
ICBjYXNlIFRlYXJPZmZBcmd1bWVudHM6CisgICAgY2FzZSBHZXRNeUFyZ3VtZW50c0xlbmd0aDoK
KyAgICBjYXNlIEdldE15QXJndW1lbnRCeVZhbDoKKyAgICBjYXNlIEdldE15QXJndW1lbnRzTGVu
Z3RoU2FmZToKKyAgICBjYXNlIEdldE15QXJndW1lbnRCeVZhbFNhZmU6CisgICAgY2FzZSBDaGVj
a0FyZ3VtZW50c05vdENyZWF0ZWQ6CisgICAgY2FzZSBOZXdGdW5jdGlvbk5vQ2hlY2s6CisgICAg
Y2FzZSBOZXdGdW5jdGlvbjoKKyAgICBjYXNlIE5ld0Z1bmN0aW9uRXhwcmVzc2lvbjoKKyAgICBj
YXNlIEp1bXA6CisgICAgY2FzZSBCcmFuY2g6CisgICAgY2FzZSBSZXR1cm46CisgICAgY2FzZSBU
aHJvdzoKKyAgICBjYXNlIFRocm93UmVmZXJlbmNlRXJyb3I6CisgICAgY2FzZSBDb3VudEV4ZWN1
dGlvbjoKKyAgICBjYXNlIEZvcmNlT1NSRXhpdDoKKyAgICBjYXNlIEZvcndhcmRGb3JjZU9TUkV4
aXQ6CisgICAgY2FzZSBDaGVja1dhdGNoZG9nVGltZXI6CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAKKyAgICBjYXNlIElubGluZVN0YXJ0OgorICAgIGNhc2UgU3dpdGNoOgorICAgIGNh
c2UgQnJlYWtwb2ludDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworTm9k
ZSogR3JhcGg6OmR1cGxpY2F0ZU5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICBOb2RlKiByZXN1bHQg
PSBhZGROb2RlKG5vZGUtPnByZWRpY3Rpb24oKSwgKm5vZGUpOworICAgIAorICAgIGlmIChyZXN1
bHQtPmZsYWdzKCkgJiBOb2RlSGFzVmFyQXJncykgeworICAgICAgICByZXN1bHQtPmNoaWxkcmVu
LnNldEZpcnN0Q2hpbGQobV92YXJBcmdDaGlsZHJlbi5zaXplKCkpOworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbm9kZS0+Y2hpbGRyZW4ubnVtQ2hpbGRyZW4oKTsgKytpKQorICAg
ICAgICAgICAgbV92YXJBcmdDaGlsZHJlbi5hcHBlbmQobV92YXJBcmdDaGlsZHJlbltub2RlLT5j
aGlsZHJlbi5maXJzdENoaWxkKCkgKyBpXSk7CisgICAgfQogICAgIAorICAgIHJldHVybiByZXN1
bHQ7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAxNTIxNTEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0NCw2ICs2
NDQsOSBAQCBwdWJsaWM6CiAgICAgLy8gaW50cm9kdWNlZCBhbnl3aGVyZSBpbiB0aGUgYmFzaWMg
YmxvY2suCiAgICAgdm9pZCBzdWJzdGl0dXRlR2V0TG9jYWwoQmFzaWNCbG9jayYgYmxvY2ssIHVu
c2lnbmVkIHN0YXJ0SW5kZXhJbkJsb2NrLCBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlQWNj
ZXNzRGF0YSwgTm9kZSogbmV3R2V0TG9jYWwpOwogICAgIAorICAgIGJvb2wgY2FuQmVEdXBsaWNh
dGVkKE5vZGUqKTsKKyAgICBOb2RlKiBkdXBsaWNhdGVOb2RlKE5vZGUqKTsKKyAgICAKICAgICB2
b2lkIGludmFsaWRhdGVDRkcoKTsKICAgICAKICAgICBQcm9maWxlcjo6Q29tcGlsYXRpb24qIGNv
bXBpbGF0aW9uKCkgeyByZXR1cm4gbV9wbGFuLmNvbXBpbGF0aW9uLmdldCgpOyB9CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xvb3BQZWVsaW5nUGhhc2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTG9vcFBlZWxpbmdQaGFzZS5jcHAJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xvb3BQZWVsaW5n
UGhhc2UuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJERkdMb29wUGVlbGluZ1BoYXNlLmgiCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBMb29wUGVlbGluZ1BoYXNlIDog
cHVibGljIFBoYXNlIHsKK3B1YmxpYzoKKyAgICBMb29wUGVlbGluZ1BoYXNlKEdyYXBoJiBncmFw
aCkKKyAgICAgICAgOiBQaGFzZSgibG9vcCBwZWVsaW5nIikKKyAgICB7CisgICAgfQorICAgIAor
ICAgIGJvb2wgcnVuKCkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FIGRvIHRoaW5ncworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorfTsKKworYm9vbCBwZXJmb3JtTG9vcFBlZWxpbmcoR3Jh
cGgmIGdyYXBoKQoreworICAgIFNhbXBsaW5nUmVnaW9uIHNhbXBsaW5nUmVnaW9uKCJERkcgTG9v
cCBQZWVsaW5nIFBoYXNlIik7CisgICAgcmV0dXJuIHJ1blBoYXNlPExvb3BQZWVsaW5nUGhhc2U+
KGdyYXBoKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5B
QkxFKERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xvb3BQZWVs
aW5nUGhhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xv
b3BQZWVsaW5nUGhhc2UuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTG9vcFBlZWxpbmdQaGFzZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgREZH
TG9vcFBlZWxpbmdQaGFzZV9oCisjZGVmaW5lIERGR0xvb3BQZWVsaW5nUGhhc2VfaAorCisjaW5j
bHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBHcmFwaDsKKworLy8gTG9vcCBwZWVsaW5n
IGZvciBzbWFsbCBuYXR1cmFsIGxvb3BzLiBUaGlzIGNhbiBiZSBjYWxsZWQgaW4gYSBmaXhwb2lu
dAorLy8gYmVjYXVzZSBpdCB3aWxsIG5ldmVyIHBlZWwgYSBsb29wIHR3aWNlIChzZWUgQmFzaWNC
bG9jazo6ZGlkUGVlbCksIGl0CisvLyBvbmx5IHBlZWxzIHNtYWxsIGxvb3BzLCBhbmQgaXQgcHJv
cGVybHkgZGV0aHJlYWRzIHRoZSBncmFwaCBhbmQgc28KKy8vIGZvcnRoLiBJdCBkb2Vzbid0IHJl
cXVpcmUgdGhlIGdyYXBoIHRvIGJlIHRocmVhZGVkIHRvIGJlZ2luIHdpdGguCisKK2Jvb2wgcGVy
Zm9ybUxvb3BQZWVsaW5nKEdyYXBoJik7CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKwor
I2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZHTG9vcFBlZWxpbmdQaGFz
ZV9jcHAKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205660</attachid>
            <date>2013-06-27 21:30:49 -0700</date>
            <delta_ts>2013-06-28 08:44:02 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>27083</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNTIxNTEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTcwLDEzICsxNzAsMTMgQEAKIAkJMEY0NkU2QjkxNzZG
ODlEQjAwRTFGNzU1IC8qIEZUTFN3aXRjaENhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDZFNkI3MTc2Rjg5RDkwMEUxRjc1NSAvKiBGVExTd2l0
Y2hDYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEY0NkU2QzUxNzZGOEE1RTAwRTFGNzU1IC8qIERGR0xhenlKU1ZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDZFNkMyMTc2RjhBNUIw
MEUxRjc1NSAvKiBERkdMYXp5SlNWYWx1ZS5jcHAgKi87IH07CiAJCTBGNDZFNkM2MTc2RjhBNjAw
MEUxRjc1NSAvKiBERkdMYXp5SlNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY0NkU2QzMxNzZGOEE1QjAwRTFGNzU1IC8qIERGR0xhenlKU1Zh
bHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
MEY0NkU2RUYxNzdDRTk1QTAwRTFGNzU1IC8qIERGR0FuYWx5c2lzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ2RTZFRTE3N0NFOTVBMDBFMUY3NTUg
LyogREZHQW5hbHlzaXMuaCAqLzsgfTsKLQkJMEY0NkU2RjMxNzdDRjBEMjAwRTFGNzU1IC8qIERG
R05hdHVyYWxMb29wcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjQ2RTZGMTE3N0NGMEQyMDBFMUY3NTUgLyogREZHTmF0dXJhbExvb3BzLmNwcCAq
LzsgfTsKLQkJMEY0NkU2RjQxNzdDRjBEMjAwRTFGNzU1IC8qIERGR05hdHVyYWxMb29wcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NkU2RjIxNzdD
RjBEMjAwRTFGNzU1IC8qIERGR05hdHVyYWxMb29wcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNDZFNkQ5MTc3Q0I5MDAwMEUxRjc1NSAvKiBM
TFZNRGlzYXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNDZFNkQ3MTc3Q0I4RkMwMEUxRjc1NSAvKiBMTFZNRGlzYXNzZW1ibGVyLmNw
cCAqLzsgfTsKIAkJMEY0NkU2RTMxNzdDQzM2NjAwRTFGNzU1IC8qIExMVk1EaXNhc3NlbWJsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDZFNkUw
MTc3Q0MzNjYwMEUxRjc1NSAvKiBMTFZNRGlzYXNzZW1ibGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0NkU2RTQxNzdDQzM2NjAwRTFGNzU1
IC8qIFVEaXM4NkRpc2Fzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY0NkU2RTExNzdDQzM2NjAwRTFGNzU1IC8qIFVEaXM4NkRpc2Fzc2Vt
Ymxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGNDZFNkU1MTc3Q0MzNjYwMEUxRjc1NSAvKiBYODZEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NkU2RTIxNzdDQzM2NjAw
RTFGNzU1IC8qIFg4NkRpc2Fzc2VtYmxlci5jcHAgKi87IH07CisJCTBGNDZFNkVGMTc3Q0U5NUEw
MEUxRjc1NSAvKiBERkdBbmFseXNpcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY0NkU2RUUxNzdDRTk1QTAwRTFGNzU1IC8qIERGR0FuYWx5c2lzLmgg
Ki87IH07CisJCTBGNDZFNkYzMTc3Q0YwRDIwMEUxRjc1NSAvKiBERkdOYXR1cmFsTG9vcHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NkU2RjEx
NzdDRjBEMjAwRTFGNzU1IC8qIERGR05hdHVyYWxMb29wcy5jcHAgKi87IH07CisJCTBGNDZFNkY0
MTc3Q0YwRDIwMEUxRjc1NSAvKiBERkdOYXR1cmFsTG9vcHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDZFNkYyMTc3Q0YwRDIwMEUxRjc1NSAvKiBE
RkdOYXR1cmFsTG9vcHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0OTNBRjgx
NkQwQ0FEMTAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJMEY0RTFBMEUx
NzNBRUREQzAwN0VFMkQzIC8qIEludGVuZGVkU3RydWN0dXJlQ2hhaW4uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0RTFBMEMxNzNBRUREQzAwN0VF
MkQzIC8qIEludGVuZGVkU3RydWN0dXJlQ2hhaW4uY3BwICovOyB9OwogCQkwRjRFMUEwRjE3M0FF
RERDMDA3RUUyRDMgLyogSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0RTFBMEQxNzNBRUREQzAwN0VFMkQzIC8q
IEludGVuZGVkU3RydWN0dXJlQ2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMzUzLDYgKzM1Myw4IEBACiAJCTBGRERCRkI2MTY2NkVFREEw
MEM1NUZFRiAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkREQkZCMzE2NjZFRUQ1MDBDNTVGRUYgLyog
REZHVmFyaWFibGVBY2Nlc3NEYXRhRHVtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGRTIyOEVEMTQzNkFCMjcwMDE5NkM0OCAvKiBPcHRpb25z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkUyMjhF
QjE0MzZBQjIzMDAxOTZDNDggLyogT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRTIyOEVFMTQzNkFCMkMwMDE5NkM0OCAvKiBPcHRp
b25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RTIyOEVBMTQzNkFCMjMwMDE5NkM0OCAvKiBPcHRpb25zLmNwcCAqLzsgfTsKKwkJMEZFNDI0Mjgx
NzdENDBCNjAwNUU4Q0YyIC8qIERGR0xvb3BQZWVsaW5nUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFNDI0MjYxNzdENDBCNjAwNUU4Q0Yy
IC8qIERGR0xvb3BQZWVsaW5nUGhhc2UuY3BwICovOyB9OworCQkwRkU0MjQyOTE3N0Q0MEI2MDA1
RThDRjIgLyogREZHTG9vcFBlZWxpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFNDI0MjcxNzdENDBCNjAwNUU4Q0YyIC8qIERGR0xvb3BQ
ZWVsaW5nUGhhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRkU4NTM0QjE3MjNDREE1MDBCNjE4RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRTg1
MzQ5MTcyM0NEQTUwMEI2MThGNSAvKiBERkdEZXNpcmVkV2F0Y2hwb2ludHMuY3BwICovOyB9Owog
CQkwRkU4NTM0QzE3MjNDREE1MDBCNjE4RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU4NTM0QTE3MjND
REE1MDBCNjE4RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZFQTBBMDgxNzA1MTNEQjAwQkI3MjJD
IC8qIEZUTEFiYnJldmlhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGRUEwOUZEMTcwNTEzREIwMEJCNzIyQyAvKiBGVExBYmJyZXZpYXRpb25z
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEx
ODYsMTMgKzExODgsMTMgQEAKIAkJMEY0NkU2QjcxNzZGODlEOTAwRTFGNzU1IC8qIEZUTFN3aXRj
aENhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMU3dpdGNoQ2FzZS5o
OyBwYXRoID0gZnRsL0ZUTFN3aXRjaENhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY0NkU2QzIxNzZGOEE1QjAwRTFGNzU1IC8qIERGR0xhenlKU1ZhbHVlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0xhenlKU1ZhbHVlLmNwcDsgcGF0aCA9
IGRmZy9ERkdMYXp5SlNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NDZFNkMzMTc2RjhBNUIwMEUxRjc1NSAvKiBERkdMYXp5SlNWYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBERkdMYXp5SlNWYWx1ZS5oOyBwYXRoID0gZGZnL0RGR0xhenlK
U1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGNDZFNkVFMTc3Q0U5NUEw
MEUxRjc1NSAvKiBERkdBbmFseXNpcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBERkdBbmFseXNpcy5oOyBwYXRoID0gZGZnL0RGR0FuYWx5c2lzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTBGNDZFNkYxMTc3Q0YwRDIwMEUxRjc1NSAvKiBERkdOYXR1cmFsTG9v
cHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHTmF0dXJhbExv
b3BzLmNwcDsgcGF0aCA9IGRmZy9ERkdOYXR1cmFsTG9vcHMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkwRjQ2RTZGMjE3N0NGMEQyMDBFMUY3NTUgLyogREZHTmF0dXJhbExvb3Bz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR05hdHVyYWxMb29wcy5oOyBw
YXRoID0gZGZnL0RGR05hdHVyYWxMb29wcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjQ2RTZENzE3N0NCOEZDMDBFMUY3NTUgLyogTExWTURpc2Fzc2VtYmxlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMTFZNRGlzYXNzZW1ibGVyLmNwcDsgcGF0
aCA9IGRpc2Fzc2VtYmxlci9MTFZNRGlzYXNzZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0NkU2RTAxNzdDQzM2NjAwRTFGNzU1IC8qIExMVk1EaXNhc3NlbWJsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTExWTURpc2Fzc2VtYmxlci5oOyBw
YXRoID0gZGlzYXNzZW1ibGVyL0xMVk1EaXNhc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0NkU2RTExNzdDQzM2NjAwRTFGNzU1IC8qIFVEaXM4NkRpc2Fzc2VtYmxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBVRGlzODZEaXNhc3NlbWJsZXIu
aDsgcGF0aCA9IGRpc2Fzc2VtYmxlci9VRGlzODZEaXNhc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NkU2RTIxNzdDQzM2NjAwRTFGNzU1IC8qIFg4NkRpc2Fzc2Vt
Ymxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBYODZEaXNhc3Nl
bWJsZXIuY3BwOyBwYXRoID0gZGlzYXNzZW1ibGVyL1g4NkRpc2Fzc2VtYmxlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNDZFNkVFMTc3Q0U5NUEwMEUxRjc1NSAvKiBERkdB
bmFseXNpcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBbmFseXNpcy5o
OyBwYXRoID0gZGZnL0RGR0FuYWx5c2lzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNDZFNkYxMTc3Q0YwRDIwMEUxRjc1NSAvKiBERkdOYXR1cmFsTG9vcHMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHTmF0dXJhbExvb3BzLmNwcDsgcGF0aCA9
IGRmZy9ERkdOYXR1cmFsTG9vcHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
RjQ2RTZGMjE3N0NGMEQyMDBFMUY3NTUgLyogREZHTmF0dXJhbExvb3BzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR05hdHVyYWxMb29wcy5oOyBwYXRoID0gZGZnL0RGR05h
dHVyYWxMb29wcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ5M0FGODE2RDBD
QUQxMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjRFMUEwQzE3M0FFRERDMDA3RUUyRDMgLyogSW50ZW5kZWRTdHJ1Y3R1cmVDaGFp
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnRlbmRlZFN0cnVj
dHVyZUNoYWluLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0RTFBMEQxNzNB
RUREQzAwN0VFMkQzIC8qIEludGVuZGVkU3RydWN0dXJlQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTM4NCw2ICsxMzg2LDggQEAKIAkJMEZEREJGQjMxNjY2RUVENTAw
QzU1RkVGIC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YUR1bXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gREZHVmFyaWFibGVBY2Nlc3NEYXRhRHVtcC5oOyBwYXRoID0gZGZnL0RG
R1ZhcmlhYmxlQWNjZXNzRGF0YUR1bXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEZFMjI4RUExNDM2QUIyMzAwMTk2QzQ4IC8qIE9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gT3B0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGRTIyOEVCMTQzNkFCMjMwMDE5NkM0OCAvKiBPcHRpb25zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEZFNDI0MjYxNzdENDBCNjAwNUU4Q0YyIC8qIERGR0xvb3BQZWVsaW5nUGhhc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHTG9vcFBlZWxpbmdQaGFz
ZS5jcHA7IHBhdGggPSBkZmcvREZHTG9vcFBlZWxpbmdQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGRTQyNDI3MTc3RDQwQjYwMDVFOENGMiAvKiBERkdMb29wUGVlbGlu
Z1BoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0xvb3BQZWVsaW5n
UGhhc2UuaDsgcGF0aCA9IGRmZy9ERkdMb29wUGVlbGluZ1BoYXNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGRTg1MzQ5MTcyM0NEQTUwMEI2MThGNSAvKiBERkdEZXNpcmVkV2F0
Y2hwb2ludHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVz
aXJlZFdhdGNocG9pbnRzLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkV2F0Y2hwb2ludHMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkU4NTM0QTE3MjNDREE1MDBCNjE4RjUg
LyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERGR0Rlc2lyZWRXYXRjaHBvaW50cy5oOyBwYXRoID0gZGZnL0RGR0Rlc2lyZWRXYXRjaHBv
aW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVBMDlGRDE3MDUxM0RCMDBC
QjcyMkMgLyogRlRMQWJicmV2aWF0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBGVExBYmJyZXZpYXRpb25zLmg7IHBhdGggPSBmdGwvRlRMQWJicmV2aWF0aW9ucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAyNyw2ICszMDMxLDggQEAKIAkJCQkwRjQ2
RTZDMzE3NkY4QTVCMDBFMUY3NTUgLyogREZHTGF6eUpTVmFsdWUuaCAqLywKIAkJCQkwRkI0QjUx
QzE2QjYyNzcyMDAzRjY5NkIgLyogREZHTG9uZ0xpdmVkU3RhdGUuY3BwICovLAogCQkJCTBGQjRC
NTFEMTZCNjI3NzIwMDNGNjk2QiAvKiBERkdMb25nTGl2ZWRTdGF0ZS5oICovLAorCQkJCTBGRTQy
NDI2MTc3RDQwQjYwMDVFOENGMiAvKiBERkdMb29wUGVlbGluZ1BoYXNlLmNwcCAqLywKKwkJCQkw
RkU0MjQyNzE3N0Q0MEI2MDA1RThDRjIgLyogREZHTG9vcFBlZWxpbmdQaGFzZS5oICovLAogCQkJ
CTBGMkJEQzNEMTUyMjgwMTcwMENEODkxMCAvKiBERkdNaW5pZmllZEdyYXBoLmggKi8sCiAJCQkJ
MEZCNEI1MTAxNkIzQTk2NDAwM0Y2OTZCIC8qIERGR01pbmlmaWVkSUQuaCAqLywKIAkJCQkwRjJC
REM0QzE1MjI4MTgzMDBDRDg5MTAgLyogREZHTWluaWZpZWROb2RlLmNwcCAqLywKQEAgLTM4MzEs
NiArMzgzNyw3IEBACiAJCQkJMEY0NkU2RjQxNzdDRjBEMjAwRTFGNzU1IC8qIERGR05hdHVyYWxM
b29wcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NkU2RTMxNzdDQzM2NjAwRTFGNzU1IC8qIExM
Vk1EaXNhc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDZFNkU0MTc3Q0MzNjYwMEUx
Rjc1NSAvKiBVRGlzODZEaXNhc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTQyNDI5
MTc3RDQwQjYwMDVFOENGMiAvKiBERkdMb29wUGVlbGluZ1BoYXNlLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTQ1MjUsNiArNDUzMiw3IEBACiAJCQkJMEY0NkU2RjMxNzdDRjBEMjAwRTFGNzU1IC8qIERG
R05hdHVyYWxMb29wcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ2RTZEOTE3N0NCOTAwMDBF
MUY3NTUgLyogTExWTURpc2Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ2RTZF
NTE3N0NDMzY2MDBFMUY3NTUgLyogWDg2RGlzYXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGRTQyNDI4MTc3RDQwQjYwMDVFOENGMiAvKiBERkdMb29wUGVlbGluZ1BoYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Js
b2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Js
b2NrLmgJKHJldmlzaW9uIDE1MjE1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QmFzaWNCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBAIHN0cnVjdCBCYXNp
Y0Jsb2NrIDogVmVjdG9yPE5vZGUqLCA4PiB7CiAgICAgICAgICwgaXNMaW5rZWQoZmFsc2UpCiAj
ZW5kaWYKICAgICAgICAgLCBpc1JlYWNoYWJsZShmYWxzZSkKKyAgICAgICAgLCBkaWRQZWVsKGZh
bHNlKQogICAgICAgICAsIHZhcmlhYmxlc0F0SGVhZChudW1Bcmd1bWVudHMsIG51bUxvY2FscykK
ICAgICAgICAgLCB2YXJpYWJsZXNBdFRhaWwobnVtQXJndW1lbnRzLCBudW1Mb2NhbHMpCiAgICAg
ICAgICwgdmFsdWVzQXRIZWFkKG51bUFyZ3VtZW50cywgbnVtTG9jYWxzKQpAQCAtMTIwLDYgKzEy
MSw3IEBAIHN0cnVjdCBCYXNpY0Jsb2NrIDogVmVjdG9yPE5vZGUqLCA4PiB7CiAgICAgYm9vbCBp
c0xpbmtlZDsKICNlbmRpZgogICAgIGJvb2wgaXNSZWFjaGFibGU7CisgICAgYm9vbCBkaWRQZWVs
OwogICAgIAogICAgIFZlY3RvcjxOb2RlKj4gcGhpczsKICAgICBQcmVkZWNlc3Nvckxpc3QgbV9w
cmVkZWNlc3NvcnM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAko
cmV2aXNpb24gMTUyMTUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4NCw3ICs0ODQsMTg5IEBAIHZvaWQgR3JhcGg6OnN1YnN0
aXR1dGVHZXRMb2NhbChCYXNpY0Jsb2MKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KKwor
Ym9vbCBHcmFwaDo6Y2FuQmVEdXBsaWNhdGVkKE5vZGUqIG5vZGUpCit7CisgICAgLy8gRXhwbGlj
aXRseSBsaXN0IHRoZSB0aGluZ3MgdGhhdCBjYW4gYmUgZHVwbGljYXRlZCBzaW5jZSB3ZSBjb3Vs
ZCBnZXQgaXQKKyAgICAvLyB3cm9uZyBmb3Igc29tZSBub2Rlcy4gSWYgeW91IGFkZCBhIG5ldyBu
b2RlLCB5b3UgaGF2ZSB0byBkZWNpZGUgaWYgaXQncworICAgIC8vIHNhZmUgdG8gZHVwbGljYXRl
IGl0LgorICAgIAorICAgIHN3aXRjaCAocmVzdWx0LT5vcCgpKSB7CisgICAgY2FzZSBKU0NvbnN0
YW50OgorICAgIGNhc2UgV2Vha0pTQ29uc3RhbnQ6CisgICAgY2FzZSBJZGVudGl0eToKKyAgICBj
YXNlIFRvVGhpczoKKyAgICBjYXNlIENyZWF0ZVRoaXM6CisgICAgY2FzZSBHZXRDYWxsZWU6Cisg
ICAgY2FzZSBTZXRDYWxsZWU6CisgICAgY2FzZSBHZXRMb2NhbDoKKyAgICBjYXNlIFNldExvY2Fs
OgorICAgIGNhc2UgTW92SGludEFuZENoZWNrOgorICAgIGNhc2UgTW92SGludDoKKyAgICBjYXNl
IFpvbWJpZUhpbnQ6CisgICAgY2FzZSBQaGFudG9tOgorICAgIGNhc2UgTm9wOgorICAgIGNhc2Ug
UGhpOgorICAgIGNhc2UgRmx1c2g6CisgICAgY2FzZSBQaGFudG9tTG9jYWw6CisgICAgY2FzZSBH
ZXRMb2NhbFVubGlua2VkOgorICAgIGNhc2UgU2V0QXJndW1lbnQ6CisgICAgY2FzZSBCaXRBbmQ6
CisgICAgY2FzZSBCaXRPcjoKKyAgICBjYXNlIEJpdFhvcjoKKyAgICBjYXNlIEJpdExTaGlmdDoK
KyAgICBjYXNlIEJpdFJTaGlmdDoKKyAgICBjYXNlIEJpdFVSU2hpZnQ6CisgICAgY2FzZSBWYWx1
ZVRvSW50MzI6CisgICAgY2FzZSBVSW50MzJUb051bWJlcjoKKyAgICBjYXNlIEludDMyVG9Eb3Vi
bGU6CisgICAgY2FzZSBGb3J3YXJkSW50MzJUb0RvdWJsZToKKyAgICBjYXNlIERvdWJsZUFzSW50
MzI6CisgICAgY2FzZSBBcml0aEFkZDoKKyAgICBjYXNlIEFyaXRoU3ViOgorICAgIGNhc2UgQXJp
dGhOZWdhdGU6CisgICAgY2FzZSBBcml0aE11bDoKKyAgICBjYXNlIEFyaXRoRGl2OgorICAgIGNh
c2UgQXJpdGhNb2Q6CisgICAgY2FzZSBBcml0aEFiczoKKyAgICBjYXNlIEFyaXRoTWluOgorICAg
IGNhc2UgQXJpdGhNYXg6CisgICAgY2FzZSBBcml0aFNxcnQ6CisgICAgY2FzZSBWYWx1ZUFkZDoK
KyAgICBjYXNlIEdldEJ5VmFsOgorICAgIGNhc2UgUHV0QnlWYWw6CisgICAgY2FzZSBQdXRCeVZh
bEFsaWFzOgorICAgIGNhc2UgR2V0QnlJZDoKKyAgICBjYXNlIEdldEJ5SWRGbHVzaDoKKyAgICBj
YXNlIFB1dEJ5SWQ6CisgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgorICAgIGNhc2UgQ2hlY2tTdHJ1
Y3R1cmU6CisgICAgY2FzZSBDaGVja0V4ZWN1dGFibGU6CisgICAgY2FzZSBGb3J3YXJkQ2hlY2tT
dHJ1Y3R1cmU6CisgICAgY2FzZSBTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludDoKKyAgICBj
YXNlIEZvcndhcmRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludDoKKyAgICBjYXNlIFB1dFN0
cnVjdHVyZToKKyAgICBjYXNlIFBoYW50b21QdXRTdHJ1Y3R1cmU6CisgICAgY2FzZSBBbGxvY2F0
ZVByb3BlcnR5U3RvcmFnZToKKyAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6Cisg
ICAgY2FzZSBHZXRCdXR0ZXJmbHk6CisgICAgY2FzZSBDaGVja0FycmF5OgorICAgIGNhc2UgRm9y
d2FyZENoZWNrQXJyYXk6CisgICAgY2FzZSBBcnJheWlmeToKKyAgICBjYXNlIEFycmF5aWZ5VG9T
dHJ1Y3R1cmU6CisgICAgY2FzZSBHZXRJbmRleGVkUHJvcGVydHlTdG9yYWdlOgorICAgIGNhc2Ug
R2V0QnlPZmZzZXQ6CisgICAgY2FzZSBQdXRCeU9mZnNldDoKKyAgICBjYXNlIEdldEFycmF5TGVu
Z3RoOgorICAgIGNhc2UgR2V0U2NvcGU6CisgICAgY2FzZSBHZXRNeVNjb3BlOgorICAgIGNhc2Ug
U2V0TXlTY29wZToKKyAgICBjYXNlIFNraXBUb3BTY29wZToKKyAgICBjYXNlIFNraXBTY29wZToK
KyAgICBjYXNlIEdldENsb3N1cmVSZWdpc3RlcnM6CisgICAgY2FzZSBHZXRDbG9zdXJlVmFyOgor
ICAgIGNhc2UgUHV0Q2xvc3VyZVZhcjoKKyAgICBjYXNlIEdldEdsb2JhbFZhcjoKKyAgICBjYXNl
IFB1dEdsb2JhbFZhcjoKKyAgICBjYXNlIEdsb2JhbFZhcldhdGNocG9pbnQ6CisgICAgY2FzZSBW
YXJJbmplY3Rpb25XYXRjaHBvaW50OgorICAgIGNhc2UgQ2hlY2tGdW5jdGlvbjoKKyAgICBjYXNl
IEFsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludDoKKyAgICBjYXNlIEFycmF5UHVzaDoKKyAgICBj
YXNlIEFycmF5UG9wOgorICAgIGNhc2UgUmVnRXhwRXhlYzoKKyAgICBjYXNlIFJlZkV4cFRlc3Q6
CisgICAgY2FzZSBTdHJpbmdDaGFyQ29kZUF0OgorICAgIGNhc2UgU3RyaW5nQ2hhckF0OgorICAg
IGNhc2UgQ29tcGFyZUxlc3M6CisgICAgY2FzZSBDb21wYXJlTGVzc0VxOgorICAgIGNhc2UgQ29t
cGFyZUdyZWF0ZXI6CisgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgorICAgIGNhc2UgQ29tcGFy
ZUVxOgorICAgIGNhc2UgQ29tcGFyZUVxQ29uc3RhbnQ6CisgICAgY2FzZSBDb21wYXJlU3RyaWN0
RXE6CisgICAgY2FzZSBDb21wYXJlU3RyaWN0RXFDb25zdGFudDoKKyAgICBjYXNlIENhbGw6Cisg
ICAgY2FzZSBDb25zdHJ1Y3Q6CisgICAgY2FzZSBOZXdPYmplY3Q6CisgICAgY2FzZSBOZXdBcnJh
eToKKyAgICBjYXNlIE5ld0FycmF5V2l0aFNpemU6CisgICAgY2FzZSBOZXdBcnJheUJ1ZmZlcjoK
KyAgICBjYXNlIE5ld1JlZ2V4cDoKKyAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CisgICAgY2Fz
ZSBJbnN0YW5jZU9mOgorICAgIGNhc2UgSXNVbmRlZmluZWQ6CisgICAgY2FzZSBJc0Jvb2xlYW46
CisgICAgY2FzZSBJc051bWJlcjoKKyAgICBjYXNlIElzU3RyaW5nOgorICAgIGNhc2UgSXNPYmpl
Y3Q6CisgICAgY2FzZSBJc0Z1bmN0aW9uOgorICAgIGNhc2UgVHlwZU9mOgorICAgIGNhc2UgTG9n
aWNhbE5vdDoKKyAgICBjYXNlIFRvUHJpbWl0aXZlOgorICAgIGNhc2UgVG9TdHJpbmc6CisgICAg
Y2FzZSBOZXdTdHJpbmdPYmplY3Q6CisgICAgY2FzZSBNYWtlUm9wZToKKyAgICBjYXNlIEluOgor
ICAgIGNhc2UgQ3JlYXRlQWN0aXZhdGlvbjoKKyAgICBjYXNlIFRlYXJPZmZBY3RpdmF0aW9uOgor
ICAgIGNhc2UgQ3JlYXRlQXJndW1lbnRzOgorICAgIGNhc2UgUGhhbnRvbUFyZ3VtZW50czoKKyAg
ICBjYXNlIFRlYXJPZmZBcmd1bWVudHM6CisgICAgY2FzZSBHZXRNeUFyZ3VtZW50c0xlbmd0aDoK
KyAgICBjYXNlIEdldE15QXJndW1lbnRCeVZhbDoKKyAgICBjYXNlIEdldE15QXJndW1lbnRzTGVu
Z3RoU2FmZToKKyAgICBjYXNlIEdldE15QXJndW1lbnRCeVZhbFNhZmU6CisgICAgY2FzZSBDaGVj
a0FyZ3VtZW50c05vdENyZWF0ZWQ6CisgICAgY2FzZSBOZXdGdW5jdGlvbk5vQ2hlY2s6CisgICAg
Y2FzZSBOZXdGdW5jdGlvbjoKKyAgICBjYXNlIE5ld0Z1bmN0aW9uRXhwcmVzc2lvbjoKKyAgICBj
YXNlIEp1bXA6CisgICAgY2FzZSBCcmFuY2g6CisgICAgY2FzZSBSZXR1cm46CisgICAgY2FzZSBU
aHJvdzoKKyAgICBjYXNlIFRocm93UmVmZXJlbmNlRXJyb3I6CisgICAgY2FzZSBDb3VudEV4ZWN1
dGlvbjoKKyAgICBjYXNlIEZvcmNlT1NSRXhpdDoKKyAgICBjYXNlIEZvcndhcmRGb3JjZU9TUkV4
aXQ6CisgICAgY2FzZSBDaGVja1dhdGNoZG9nVGltZXI6CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAKKyAgICBjYXNlIElubGluZVN0YXJ0OgorICAgICAgICAvLyBFdmVyeXdoZXJlIHRo
YXQgd2UgaW5saW5lIGludG8gcmVxdWlyZXMgc29tZSBtZXRhLWRhdGEuIEl0J3Mgbm90IGNsZWFy
CisgICAgICAgIC8vIHRoYXQgZHVwbGljYXRpbmcgaW5saW5lZCBjb2RlIHNvIHRoYXQgaXQncyBp
bmxpbmVkIGZyb20gdHdvIGRpZmZlcmVudAorICAgICAgICAvLyBwbGFjZXMgaXMgc291bmQgaW4g
dGhlIGN1cnJlbnQgSVIuIFBhcnRpY3VsYXJseSBzaW5jZSBjb21waWxpbmcKKyAgICAgICAgLy8g
SW5saW5lU3RhcnQgZWRpdHMgYW4gSW5saW5lQ2FsbEZyYW1lIC0gc28gZHVwbGljYXRpbmcgd291
bGQgbWVhbiB0aGF0CisgICAgICAgIC8vIHRoZSBzYW1lIElubGluZUNhbGxGcmFtZSB3b3VsZCBi
ZSBlZGl0ZWQgdHdpY2UuIFNlZW1zIGJvcmtlZC4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAKKyAgICBjYXNlIFN3aXRjaDoKKyAgICAgICAgLy8gV2Ugd291bGQgaGF2ZSB0byBkdXBs
aWNhdGUgdGhlIFN3aXRjaERhdGEgYW5kIHRoZSBKdW1wVGFibGUuIFdlIGNhbiBkbworICAgICAg
ICAvLyBpdCwgYnV0IGl0IGRvZXNuJ3Qgd29yayB5ZXQuCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgCisgICAgY2FzZSBCcmVha3BvaW50OgorICAgICAgICAvLyBJIGRvbid0IGV2ZW4g
d2FudCB0byB0aGluayBhYm91dCB3aGF0IGR1cGxpY2F0aW5nIGEgQnJlYWtwb2ludCBtZWFucy4K
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworTm9kZSogR3JhcGg6OmR1cGxp
Y2F0ZU5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICBOb2RlKiByZXN1bHQgPSBhZGROb2RlKG5vZGUt
PnByZWRpY3Rpb24oKSwgKm5vZGUpOworICAgIAorICAgIGlmIChyZXN1bHQtPmZsYWdzKCkgJiBO
b2RlSGFzVmFyQXJncykgeworICAgICAgICByZXN1bHQtPmNoaWxkcmVuLnNldEZpcnN0Q2hpbGQo
bV92YXJBcmdDaGlsZHJlbi5zaXplKCkpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbm9kZS0+Y2hpbGRyZW4ubnVtQ2hpbGRyZW4oKTsgKytpKQorICAgICAgICAgICAgbV92YXJB
cmdDaGlsZHJlbi5hcHBlbmQobV92YXJBcmdDaGlsZHJlbltub2RlLT5jaGlsZHJlbi5maXJzdENo
aWxkKCkgKyBpXSk7CisgICAgfQogICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gfSAv
LyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdHcmFwaC5oCShyZXZpc2lvbiAxNTIxNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0NCw2ICs2NDQsOSBAQCBwdWJsaWM6
CiAgICAgLy8gaW50cm9kdWNlZCBhbnl3aGVyZSBpbiB0aGUgYmFzaWMgYmxvY2suCiAgICAgdm9p
ZCBzdWJzdGl0dXRlR2V0TG9jYWwoQmFzaWNCbG9jayYgYmxvY2ssIHVuc2lnbmVkIHN0YXJ0SW5k
ZXhJbkJsb2NrLCBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlQWNjZXNzRGF0YSwgTm9kZSog
bmV3R2V0TG9jYWwpOwogICAgIAorICAgIGJvb2wgY2FuQmVEdXBsaWNhdGVkKE5vZGUqKTsKKyAg
ICBOb2RlKiBkdXBsaWNhdGVOb2RlKE5vZGUqKTsKKyAgICAKICAgICB2b2lkIGludmFsaWRhdGVD
RkcoKTsKICAgICAKICAgICBQcm9maWxlcjo6Q29tcGlsYXRpb24qIGNvbXBpbGF0aW9uKCkgeyBy
ZXR1cm4gbV9wbGFuLmNvbXBpbGF0aW9uLmdldCgpOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0xvb3BQZWVsaW5nUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTG9vcFBlZWxpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xvb3BQZWVsaW5nUGhhc2UuY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiREZHTG9vcFBl
ZWxpbmdQaGFzZS5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgREZHIHsKKworY2xhc3MgTG9vcFBlZWxpbmdQaGFzZSA6IHB1YmxpYyBQaGFzZSB7
CitwdWJsaWM6CisgICAgTG9vcFBlZWxpbmdQaGFzZShHcmFwaCYgZ3JhcGgpCisgICAgICAgIDog
UGhhc2UoImxvb3AgcGVlbGluZyIpCisgICAgeworICAgIH0KKyAgICAKKyAgICBib29sIHJ1bigp
CisgICAgeworICAgICAgICAvLyBGaXJzdCBmaWd1cmUgb3V0IGlmIHRoZXJlIGFyZSBuYXR1cmFs
IGxvb3BzIGFueXdoZXJlIGluIHRoZSBwcm9ncmFtLgorICAgICAgICAvLyBJZiBub3QsIGdpdmUg
dXAgZWFybHkuIElmIHRoZXJlIGFyZSwgc2V0IGEgYml0IGZvciBlYWNoIGJsb2NrIHRoYXQKKyAg
ICAgICAgLy8gYmVsb25ncyB0byBhbnkgbG9vcCwgc2luY2Ugd2UnbGwgaGF2ZSB0byBkbyBhZGRp
dGlvbmFsIGNvbXB1dGF0aW9uCisgICAgICAgIC8vIGZvciB0aG9zZSBibG9ja3MuCisgICAgICAg
IAorICAgICAgICBtX2dyYXBoLm1fbmF0dXJhbExvb3BzLmNvbXB1dGVJZk5lY2Vzc2FyeShtX2dy
YXBoKTsKKyAgICAgICAgaWYgKCFtX2dyYXBoLm1fbmF0dXJhbExvb3BzLm51bUxvb3BzKCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBGYXN0Qml0VmVjdG9y
IGJsb2Nrc1RoYXRNYXlCZUR1cGxpY2F0ZWQ7CisgICAgICAgIEZhc3RCaXRWZWN0b3IgbG9vcEhl
YWRlcnM7CisgICAgICAgIGJsb2Nrc1RoYXRNYXlCZUR1cGxpY2F0ZWQucmVzaXplKG1fZ3JhcGgu
bV9ibG9ja3Muc2l6ZSgpKTsKKyAgICAgICAgbG9vcEhlYWRlcnMucmVzaXplKG1fZ3JhcGgubV9i
bG9ja3Muc2l6ZSgpKTsKKyAgICAgICAgCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1fZ3Jh
cGgubV9uYXR1cmFsTG9vcHMubnVtTG9vcHMoKTsgaS0tOykgeworICAgICAgICAgICAgY29uc3Qg
TmF0dXJhbExvb3AmIGxvb3AgPSBtX2dyYXBoLm1fbmF0dXJhbExvb3BzLmxvb3AoaSk7CisgICAg
ICAgICAgICBsb29wSGVhZGVycy5zZXQobG9vcC5oZWFkZXIoKSk7CisgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGogPSBsb29wLnNpemUoKTsgai0tOykKKyAgICAgICAgICAgICAgICBibG9ja3NU
aGF0TWF5QmVEdXBsaWNhdGVkLnNldChsb29wW2pdKTsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgRmFzdEJpdFZlY3RvciBvdXRlckxvb3BzOworICAgICAgICBvdXRlckxvb3BzLnJlc2l6
ZShtX2dyYXBoLm1fYmxvY2tzLnNpemUoKSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1f
Z3JhcGgubV9uYXR1cmFsTG9vcHMubnVtTG9vcHMoKTsgaS0tOykgeworICAgICAgICAgICAgY29u
c3QgTmF0dXJhbExvb3AmIGxvb3AgPSBtX2dyYXBoLm1fbmF0dXJhbExvb3BzLmxvb3AoaSk7Cisg
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSBsb29wLnNpemUoKTsgai0tOykgeworICAgICAg
ICAgICAgICAgIGlmIChsb29wW2pdID09IGxvb3AuaGVhZGVyKCkpCisgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmICghbG9vcEhlYWRlcnMuZ2V0KGxvb3Bb
al0pKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBvdXRl
ckxvb3BzLnNldChsb29wLmhlYWRlcigpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVmVjdG9yPGRvdWJsZT4gbG9v
cENvc3Q7CisgICAgICAgIGxvb3BDb3N0LmZpbGwoMCwgbV9ncmFwaC5tX2Jsb2Nrcy5zaXplKCkp
OworICAgICAgICBmb3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IG1fZ3JhcGgubV9ibG9ja3Mu
c2l6ZSgpOyBibG9ja0luZGV4LS07KSB7CisgICAgICAgICAgICBpZiAoIWJsb2Nrc1RoYXRNYXlC
ZUR1cGxpY2F0ZWQuZ2V0KGJsb2NrSW5kZXgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSBtX2dyYXBoLm1fYmxvY2tzW2Jsb2NrSW5k
ZXhdLmdldCgpOworICAgICAgICAgICAgZG91YmxlIGNvc3QgPSAwOworICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCBibG9jay0+c2l6ZSgpOyArK25v
ZGVJbmRleCkgeworICAgICAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQobm9kZUlu
ZGV4KTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgICAg
ICAgICBjYXNlIFBoYW50b206CisgICAgICAgICAgICAgICAgY2FzZSBNb3ZIaW50OgorICAgICAg
ICAgICAgICAgIGNhc2UgTW92SGludEFuZENoZWNrOgorICAgICAgICAgICAgICAgIGNhc2UgWm9t
YmllSGludDoKKyAgICAgICAgICAgICAgICBjYXNlIFBoYW50b21Mb2NhbDoKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNh
c2UgRm9yY2VPU1JFeGl0OgorICAgICAgICAgICAgICAgIGNhc2UgRm9yd2FyZEZvcmNlT1NSRXhp
dDoKKyAgICAgICAgICAgICAgICAgICAgbm9kZUluZGV4ID0gYmxvY2stPnNpemUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGNvc3QrKzsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb29wQ29zdFtibG9ja0luZGV4XSA9IGNv
c3Q7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEZpZ3VyZSBvdXQgd2hpY2ggbG9v
cHMgd2Ugd2FudCB0byBwZWVsLiBEb24ndCBhdHRlbXB0IHRvIHBlZWwgbG9vcHMKKyAgICAgICAg
Ly8gdGhhdCBvdmVybGFwLiBTZWxlY3Qgd2hpY2ggZ2V0IHBlZWxlZCB1c2luZyBncmVlZHkgc2Vs
ZWN0aW9uLiBEb24ndAorICAgICAgICAvLyBwZWVsIGxvb3BzIHRoYXQgaGF2ZSBhbHJlYWR5IGJl
ZW4gcGVlbGVkLiBEb24ndCBwZWVsIG91dGVyIGxvb3BzIGF0CisgICAgICAgIC8vIGFsbC4KKyAg
ICAgICAgCisgICAgICAgIEZhc3RCaXRWZWN0b3IgYmxvY2tzVGhhdFdpbGxCZUR1cGxpY2F0ZWQ7
CisgICAgICAgIGJsb2Nrc1RoYXRXaWxsQmVEdXBsaWNhdGVkLnJlc2l6ZShtX2dyYXBoLm1fYmxv
Y2tzLnNpemUoKSk7CisgICAgICAgIFZlY3Rvcjxjb25zdCBOYXR1cmFsTG9vcCo+IGxvb3BzVG9Q
ZWVsOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2dyYXBoLm1fbmF0dXJhbExvb3BzLm51
bUxvb3BzKCk7IGktLTspIHsKKyAgICAgICAgICAgIGNvbnN0IE5hdHVyYWxMb29wJiBsb29wID0g
bV9ncmFwaC5tX25hdHVyYWxMb29wcy5sb29wKGkpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICAvLyBEb24ndCBwZWVsIG91dGVyIGxvb3BzLgorICAgICAgICAgICAgaWYgKG91dGVyTG9vcHMu
Z2V0KGxvb3AuaGVhZGVyKCkpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBCYXNpY0Jsb2NrKiBoZWFkZXJCbG9jayA9IG1fZ3JhcGgubV9ibG9j
a3NbbG9vcC5oZWFkZXIoKV0uZ2V0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIERv
bid0IHBlZWwgbG9vcHMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBwZWVsZWQuCisgICAgICAgICAg
ICBpZiAoaGVhZGVyQmxvY2stPmRpZFBlZWwpCisgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGRvdWJsZSBjb3N0ID0gMDsKKyAgICAgICAgICAgIGJv
b2wgb3ZlcmxhcHNPdGhlclBlZWwgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aiA9IGxvb3Auc2l6ZSgpOyBqLS07KSB7CisgICAgICAgICAgICAgICAgaWYgKGJsb2Nrc1RoYXRX
aWxsQmVEdXBsaWNhdGVkLmdldChsb29wW2pdKSkgeworICAgICAgICAgICAgICAgICAgICBvdmVy
bGFwc090aGVyUGVlbCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb3N0ICs9IGxvb3BDb3N0W2xvb3Bbal1dOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBEb24ndCBwZWVsIGxv
b3BzIHRoYXQgb3ZlcmxhcCBvdGhlciBsb29wcyB0aGF0IHdlJ3JlIGFscmVhZHkKKyAgICAgICAg
ICAgIC8vIHBlZWxpbmcKKyAgICAgICAgICAgIGlmIChvdmVybGFwc090aGVyUGVlbCkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gT25seSBw
ZWVsIHNtYWxsIGxvb3BzLgorICAgICAgICAgICAgaWYgKGNvc3QgPiBPcHRpb25zOjptYXhpbXVt
TG9vcFBlZWxDb3N0KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGxvb3BzVG9QZWVsLmFwcGVuZCgmbG9vcCk7CisgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGogPSBsb29wLnNpemUoKTsgai0tOykKKyAgICAgICAgICAgICAgICBibG9ja3NU
aGF0V2lsbEJlRHVwbGljYXRlZC5zZXQobG9vcFtqXSk7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIC8vIEZpbmFsbHksIGNyZWF0ZSB0aGUgcGVlbHMuCisgICAgICAgIC8vIEZJWE1FCisg
ICAgICAgIAorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfTsKKworYm9vbCBwZXJmb3Jt
TG9vcFBlZWxpbmcoR3JhcGgmIGdyYXBoKQoreworICAgIFNhbXBsaW5nUmVnaW9uIHNhbXBsaW5n
UmVnaW9uKCJERkcgTG9vcCBQZWVsaW5nIFBoYXNlIik7CisgICAgcmV0dXJuIHJ1blBoYXNlPExv
b3BQZWVsaW5nUGhhc2U+KGdyYXBoKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwor
CisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0xvb3BQZWVsaW5nUGhhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0xvb3BQZWVsaW5nUGhhc2UuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTG9vcFBlZWxpbmdQaGFzZS5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgREZHTG9vcFBlZWxpbmdQaGFzZV9oCisjZGVmaW5lIERGR0xvb3BQZWVsaW5n
UGhhc2VfaAorCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBFTkFCTEUoREZHX0pJ
VCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBHcmFwaDsKKwor
Ly8gTG9vcCBwZWVsaW5nIGZvciBzbWFsbCBuYXR1cmFsIGxvb3BzLiBUaGlzIGNhbiBiZSBjYWxs
ZWQgaW4gYSBmaXhwb2ludAorLy8gYmVjYXVzZSBpdCB3aWxsIG5ldmVyIHBlZWwgYSBsb29wIHR3
aWNlIChzZWUgQmFzaWNCbG9jazo6ZGlkUGVlbCksIGl0CisvLyBvbmx5IHBlZWxzIHNtYWxsIGxv
b3BzLCBhbmQgaXQgcHJvcGVybHkgZGV0aHJlYWRzIHRoZSBncmFwaCBhbmQgc28KKy8vIGZvcnRo
LiBJdCBkb2Vzbid0IHJlcXVpcmUgdGhlIGdyYXBoIHRvIGJlIHRocmVhZGVkIHRvIGJlZ2luIHdp
dGguCisKK2Jvb2wgcGVyZm9ybUxvb3BQZWVsaW5nKEdyYXBoJik7CisKK30gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZH
TG9vcFBlZWxpbmdQaGFzZV9jcHAKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuaAkocmV2aXNpb24gMTUyMTUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksOSArMTA5LDkgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgXAogICAgIC8qIERlcHRoIG9mIGlubGluZSBzdGFjaywgc28gMSA9IG5v
IGlubGluaW5nLCAyID0gb25lIGxldmVsLCBldGMuICovIFwKICAgICB2KHVuc2lnbmVkLCBtYXhp
bXVtSW5saW5pbmdEZXB0aCwgNSkgXAotICAgIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVtQmlu
YXJ5U3RyaW5nU3dpdGNoQ2FzZUxlbmd0aCwgNTApIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVt
QmluYXJ5U3RyaW5nU3dpdGNoVG90YWxMZW5ndGgsIDIwMDApIFwKKyAgICB2KGRvdWJsZSwgbWF4
aW11bUxvb3BQZWVsQ29zdCwgNTApIFwKICAgICBcCiAgICAgdihpbnQzMiwgdGhyZXNob2xkRm9y
SklUQWZ0ZXJXYXJtVXAsIDEwMCkgXAogICAgIHYoaW50MzIsIHRocmVzaG9sZEZvckpJVFNvb24s
IDEwMCkgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205718</attachid>
            <date>2013-06-28 08:44:02 -0700</date>
            <delta_ts>2013-06-28 08:44:02 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>blah2.patch</filename>
            <type>text/plain</type>
            <size>27203</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNTIxNTEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTcwLDEzICsxNzAsMTMgQEAKIAkJMEY0NkU2QjkxNzZG
ODlEQjAwRTFGNzU1IC8qIEZUTFN3aXRjaENhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDZFNkI3MTc2Rjg5RDkwMEUxRjc1NSAvKiBGVExTd2l0
Y2hDYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEY0NkU2QzUxNzZGOEE1RTAwRTFGNzU1IC8qIERGR0xhenlKU1ZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDZFNkMyMTc2RjhBNUIw
MEUxRjc1NSAvKiBERkdMYXp5SlNWYWx1ZS5jcHAgKi87IH07CiAJCTBGNDZFNkM2MTc2RjhBNjAw
MEUxRjc1NSAvKiBERkdMYXp5SlNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY0NkU2QzMxNzZGOEE1QjAwRTFGNzU1IC8qIERGR0xhenlKU1Zh
bHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
MEY0NkU2RUYxNzdDRTk1QTAwRTFGNzU1IC8qIERGR0FuYWx5c2lzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ2RTZFRTE3N0NFOTVBMDBFMUY3NTUg
LyogREZHQW5hbHlzaXMuaCAqLzsgfTsKLQkJMEY0NkU2RjMxNzdDRjBEMjAwRTFGNzU1IC8qIERG
R05hdHVyYWxMb29wcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjQ2RTZGMTE3N0NGMEQyMDBFMUY3NTUgLyogREZHTmF0dXJhbExvb3BzLmNwcCAq
LzsgfTsKLQkJMEY0NkU2RjQxNzdDRjBEMjAwRTFGNzU1IC8qIERGR05hdHVyYWxMb29wcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NkU2RjIxNzdD
RjBEMjAwRTFGNzU1IC8qIERGR05hdHVyYWxMb29wcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNDZFNkQ5MTc3Q0I5MDAwMEUxRjc1NSAvKiBM
TFZNRGlzYXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNDZFNkQ3MTc3Q0I4RkMwMEUxRjc1NSAvKiBMTFZNRGlzYXNzZW1ibGVyLmNw
cCAqLzsgfTsKIAkJMEY0NkU2RTMxNzdDQzM2NjAwRTFGNzU1IC8qIExMVk1EaXNhc3NlbWJsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDZFNkUw
MTc3Q0MzNjYwMEUxRjc1NSAvKiBMTFZNRGlzYXNzZW1ibGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0NkU2RTQxNzdDQzM2NjAwRTFGNzU1
IC8qIFVEaXM4NkRpc2Fzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY0NkU2RTExNzdDQzM2NjAwRTFGNzU1IC8qIFVEaXM4NkRpc2Fzc2Vt
Ymxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGNDZFNkU1MTc3Q0MzNjYwMEUxRjc1NSAvKiBYODZEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NkU2RTIxNzdDQzM2NjAw
RTFGNzU1IC8qIFg4NkRpc2Fzc2VtYmxlci5jcHAgKi87IH07CisJCTBGNDZFNkVGMTc3Q0U5NUEw
MEUxRjc1NSAvKiBERkdBbmFseXNpcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY0NkU2RUUxNzdDRTk1QTAwRTFGNzU1IC8qIERGR0FuYWx5c2lzLmgg
Ki87IH07CisJCTBGNDZFNkYzMTc3Q0YwRDIwMEUxRjc1NSAvKiBERkdOYXR1cmFsTG9vcHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NkU2RjEx
NzdDRjBEMjAwRTFGNzU1IC8qIERGR05hdHVyYWxMb29wcy5jcHAgKi87IH07CisJCTBGNDZFNkY0
MTc3Q0YwRDIwMEUxRjc1NSAvKiBERkdOYXR1cmFsTG9vcHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDZFNkYyMTc3Q0YwRDIwMEUxRjc1NSAvKiBE
RkdOYXR1cmFsTG9vcHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0OTNBRjgx
NkQwQ0FEMTAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJMEY0RTFBMEUx
NzNBRUREQzAwN0VFMkQzIC8qIEludGVuZGVkU3RydWN0dXJlQ2hhaW4uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0RTFBMEMxNzNBRUREQzAwN0VF
MkQzIC8qIEludGVuZGVkU3RydWN0dXJlQ2hhaW4uY3BwICovOyB9OwogCQkwRjRFMUEwRjE3M0FF
RERDMDA3RUUyRDMgLyogSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0RTFBMEQxNzNBRUREQzAwN0VFMkQzIC8q
IEludGVuZGVkU3RydWN0dXJlQ2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMzUzLDYgKzM1Myw4IEBACiAJCTBGRERCRkI2MTY2NkVFREEw
MEM1NUZFRiAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkREQkZCMzE2NjZFRUQ1MDBDNTVGRUYgLyog
REZHVmFyaWFibGVBY2Nlc3NEYXRhRHVtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGRTIyOEVEMTQzNkFCMjcwMDE5NkM0OCAvKiBPcHRpb25z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkUyMjhF
QjE0MzZBQjIzMDAxOTZDNDggLyogT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRTIyOEVFMTQzNkFCMkMwMDE5NkM0OCAvKiBPcHRp
b25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RTIyOEVBMTQzNkFCMjMwMDE5NkM0OCAvKiBPcHRpb25zLmNwcCAqLzsgfTsKKwkJMEZFNDI0Mjgx
NzdENDBCNjAwNUU4Q0YyIC8qIERGR0xvb3BQZWVsaW5nUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFNDI0MjYxNzdENDBCNjAwNUU4Q0Yy
IC8qIERGR0xvb3BQZWVsaW5nUGhhc2UuY3BwICovOyB9OworCQkwRkU0MjQyOTE3N0Q0MEI2MDA1
RThDRjIgLyogREZHTG9vcFBlZWxpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFNDI0MjcxNzdENDBCNjAwNUU4Q0YyIC8qIERGR0xvb3BQ
ZWVsaW5nUGhhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRkU4NTM0QjE3MjNDREE1MDBCNjE4RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRTg1
MzQ5MTcyM0NEQTUwMEI2MThGNSAvKiBERkdEZXNpcmVkV2F0Y2hwb2ludHMuY3BwICovOyB9Owog
CQkwRkU4NTM0QzE3MjNDREE1MDBCNjE4RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU4NTM0QTE3MjND
REE1MDBCNjE4RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZFQTBBMDgxNzA1MTNEQjAwQkI3MjJD
IC8qIEZUTEFiYnJldmlhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGRUEwOUZEMTcwNTEzREIwMEJCNzIyQyAvKiBGVExBYmJyZXZpYXRpb25z
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEx
ODYsMTMgKzExODgsMTMgQEAKIAkJMEY0NkU2QjcxNzZGODlEOTAwRTFGNzU1IC8qIEZUTFN3aXRj
aENhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMU3dpdGNoQ2FzZS5o
OyBwYXRoID0gZnRsL0ZUTFN3aXRjaENhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY0NkU2QzIxNzZGOEE1QjAwRTFGNzU1IC8qIERGR0xhenlKU1ZhbHVlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0xhenlKU1ZhbHVlLmNwcDsgcGF0aCA9
IGRmZy9ERkdMYXp5SlNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NDZFNkMzMTc2RjhBNUIwMEUxRjc1NSAvKiBERkdMYXp5SlNWYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBERkdMYXp5SlNWYWx1ZS5oOyBwYXRoID0gZGZnL0RGR0xhenlK
U1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGNDZFNkVFMTc3Q0U5NUEw
MEUxRjc1NSAvKiBERkdBbmFseXNpcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBERkdBbmFseXNpcy5oOyBwYXRoID0gZGZnL0RGR0FuYWx5c2lzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTBGNDZFNkYxMTc3Q0YwRDIwMEUxRjc1NSAvKiBERkdOYXR1cmFsTG9v
cHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHTmF0dXJhbExv
b3BzLmNwcDsgcGF0aCA9IGRmZy9ERkdOYXR1cmFsTG9vcHMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkwRjQ2RTZGMjE3N0NGMEQyMDBFMUY3NTUgLyogREZHTmF0dXJhbExvb3Bz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR05hdHVyYWxMb29wcy5oOyBw
YXRoID0gZGZnL0RGR05hdHVyYWxMb29wcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjQ2RTZENzE3N0NCOEZDMDBFMUY3NTUgLyogTExWTURpc2Fzc2VtYmxlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMTFZNRGlzYXNzZW1ibGVyLmNwcDsgcGF0
aCA9IGRpc2Fzc2VtYmxlci9MTFZNRGlzYXNzZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0NkU2RTAxNzdDQzM2NjAwRTFGNzU1IC8qIExMVk1EaXNhc3NlbWJsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTExWTURpc2Fzc2VtYmxlci5oOyBw
YXRoID0gZGlzYXNzZW1ibGVyL0xMVk1EaXNhc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0NkU2RTExNzdDQzM2NjAwRTFGNzU1IC8qIFVEaXM4NkRpc2Fzc2VtYmxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBVRGlzODZEaXNhc3NlbWJsZXIu
aDsgcGF0aCA9IGRpc2Fzc2VtYmxlci9VRGlzODZEaXNhc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NkU2RTIxNzdDQzM2NjAwRTFGNzU1IC8qIFg4NkRpc2Fzc2Vt
Ymxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBYODZEaXNhc3Nl
bWJsZXIuY3BwOyBwYXRoID0gZGlzYXNzZW1ibGVyL1g4NkRpc2Fzc2VtYmxlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNDZFNkVFMTc3Q0U5NUEwMEUxRjc1NSAvKiBERkdB
bmFseXNpcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBbmFseXNpcy5o
OyBwYXRoID0gZGZnL0RGR0FuYWx5c2lzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNDZFNkYxMTc3Q0YwRDIwMEUxRjc1NSAvKiBERkdOYXR1cmFsTG9vcHMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHTmF0dXJhbExvb3BzLmNwcDsgcGF0aCA9
IGRmZy9ERkdOYXR1cmFsTG9vcHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
RjQ2RTZGMjE3N0NGMEQyMDBFMUY3NTUgLyogREZHTmF0dXJhbExvb3BzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR05hdHVyYWxMb29wcy5oOyBwYXRoID0gZGZnL0RGR05h
dHVyYWxMb29wcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ5M0FGODE2RDBD
QUQxMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjRFMUEwQzE3M0FFRERDMDA3RUUyRDMgLyogSW50ZW5kZWRTdHJ1Y3R1cmVDaGFp
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnRlbmRlZFN0cnVj
dHVyZUNoYWluLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0RTFBMEQxNzNB
RUREQzAwN0VFMkQzIC8qIEludGVuZGVkU3RydWN0dXJlQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTM4NCw2ICsxMzg2LDggQEAKIAkJMEZEREJGQjMxNjY2RUVENTAw
QzU1RkVGIC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YUR1bXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gREZHVmFyaWFibGVBY2Nlc3NEYXRhRHVtcC5oOyBwYXRoID0gZGZnL0RG
R1ZhcmlhYmxlQWNjZXNzRGF0YUR1bXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEZFMjI4RUExNDM2QUIyMzAwMTk2QzQ4IC8qIE9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gT3B0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGRTIyOEVCMTQzNkFCMjMwMDE5NkM0OCAvKiBPcHRpb25zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEZFNDI0MjYxNzdENDBCNjAwNUU4Q0YyIC8qIERGR0xvb3BQZWVsaW5nUGhhc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHTG9vcFBlZWxpbmdQaGFz
ZS5jcHA7IHBhdGggPSBkZmcvREZHTG9vcFBlZWxpbmdQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGRTQyNDI3MTc3RDQwQjYwMDVFOENGMiAvKiBERkdMb29wUGVlbGlu
Z1BoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0xvb3BQZWVsaW5n
UGhhc2UuaDsgcGF0aCA9IGRmZy9ERkdMb29wUGVlbGluZ1BoYXNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGRTg1MzQ5MTcyM0NEQTUwMEI2MThGNSAvKiBERkdEZXNpcmVkV2F0
Y2hwb2ludHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVz
aXJlZFdhdGNocG9pbnRzLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkV2F0Y2hwb2ludHMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkU4NTM0QTE3MjNDREE1MDBCNjE4RjUg
LyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERGR0Rlc2lyZWRXYXRjaHBvaW50cy5oOyBwYXRoID0gZGZnL0RGR0Rlc2lyZWRXYXRjaHBv
aW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVBMDlGRDE3MDUxM0RCMDBC
QjcyMkMgLyogRlRMQWJicmV2aWF0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBGVExBYmJyZXZpYXRpb25zLmg7IHBhdGggPSBmdGwvRlRMQWJicmV2aWF0aW9ucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAyNyw2ICszMDMxLDggQEAKIAkJCQkwRjQ2
RTZDMzE3NkY4QTVCMDBFMUY3NTUgLyogREZHTGF6eUpTVmFsdWUuaCAqLywKIAkJCQkwRkI0QjUx
QzE2QjYyNzcyMDAzRjY5NkIgLyogREZHTG9uZ0xpdmVkU3RhdGUuY3BwICovLAogCQkJCTBGQjRC
NTFEMTZCNjI3NzIwMDNGNjk2QiAvKiBERkdMb25nTGl2ZWRTdGF0ZS5oICovLAorCQkJCTBGRTQy
NDI2MTc3RDQwQjYwMDVFOENGMiAvKiBERkdMb29wUGVlbGluZ1BoYXNlLmNwcCAqLywKKwkJCQkw
RkU0MjQyNzE3N0Q0MEI2MDA1RThDRjIgLyogREZHTG9vcFBlZWxpbmdQaGFzZS5oICovLAogCQkJ
CTBGMkJEQzNEMTUyMjgwMTcwMENEODkxMCAvKiBERkdNaW5pZmllZEdyYXBoLmggKi8sCiAJCQkJ
MEZCNEI1MTAxNkIzQTk2NDAwM0Y2OTZCIC8qIERGR01pbmlmaWVkSUQuaCAqLywKIAkJCQkwRjJC
REM0QzE1MjI4MTgzMDBDRDg5MTAgLyogREZHTWluaWZpZWROb2RlLmNwcCAqLywKQEAgLTM4MzEs
NiArMzgzNyw3IEBACiAJCQkJMEY0NkU2RjQxNzdDRjBEMjAwRTFGNzU1IC8qIERGR05hdHVyYWxM
b29wcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NkU2RTMxNzdDQzM2NjAwRTFGNzU1IC8qIExM
Vk1EaXNhc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDZFNkU0MTc3Q0MzNjYwMEUx
Rjc1NSAvKiBVRGlzODZEaXNhc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTQyNDI5
MTc3RDQwQjYwMDVFOENGMiAvKiBERkdMb29wUGVlbGluZ1BoYXNlLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTQ1MjUsNiArNDUzMiw3IEBACiAJCQkJMEY0NkU2RjMxNzdDRjBEMjAwRTFGNzU1IC8qIERG
R05hdHVyYWxMb29wcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ2RTZEOTE3N0NCOTAwMDBF
MUY3NTUgLyogTExWTURpc2Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ2RTZF
NTE3N0NDMzY2MDBFMUY3NTUgLyogWDg2RGlzYXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGRTQyNDI4MTc3RDQwQjYwMDVFOENGMiAvKiBERkdMb29wUGVlbGluZ1BoYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Js
b2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Js
b2NrLmgJKHJldmlzaW9uIDE1MjE1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QmFzaWNCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBAIHN0cnVjdCBCYXNp
Y0Jsb2NrIDogVmVjdG9yPE5vZGUqLCA4PiB7CiAgICAgICAgICwgaXNMaW5rZWQoZmFsc2UpCiAj
ZW5kaWYKICAgICAgICAgLCBpc1JlYWNoYWJsZShmYWxzZSkKKyAgICAgICAgLCBkaWRQZWVsKGZh
bHNlKQogICAgICAgICAsIHZhcmlhYmxlc0F0SGVhZChudW1Bcmd1bWVudHMsIG51bUxvY2FscykK
ICAgICAgICAgLCB2YXJpYWJsZXNBdFRhaWwobnVtQXJndW1lbnRzLCBudW1Mb2NhbHMpCiAgICAg
ICAgICwgdmFsdWVzQXRIZWFkKG51bUFyZ3VtZW50cywgbnVtTG9jYWxzKQpAQCAtMTIwLDYgKzEy
MSw3IEBAIHN0cnVjdCBCYXNpY0Jsb2NrIDogVmVjdG9yPE5vZGUqLCA4PiB7CiAgICAgYm9vbCBp
c0xpbmtlZDsKICNlbmRpZgogICAgIGJvb2wgaXNSZWFjaGFibGU7CisgICAgYm9vbCBkaWRQZWVs
OwogICAgIAogICAgIFZlY3RvcjxOb2RlKj4gcGhpczsKICAgICBQcmVkZWNlc3Nvckxpc3QgbV9w
cmVkZWNlc3NvcnM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAko
cmV2aXNpb24gMTUyMTUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4NCw3ICs0ODQsMTg5IEBAIHZvaWQgR3JhcGg6OnN1YnN0
aXR1dGVHZXRMb2NhbChCYXNpY0Jsb2MKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KKwor
Ym9vbCBHcmFwaDo6Y2FuQmVEdXBsaWNhdGVkKE5vZGUqIG5vZGUpCit7CisgICAgLy8gRXhwbGlj
aXRseSBsaXN0IHRoZSB0aGluZ3MgdGhhdCBjYW4gYmUgZHVwbGljYXRlZCBzaW5jZSB3ZSBjb3Vs
ZCBnZXQgaXQKKyAgICAvLyB3cm9uZyBmb3Igc29tZSBub2Rlcy4gSWYgeW91IGFkZCBhIG5ldyBu
b2RlLCB5b3UgaGF2ZSB0byBkZWNpZGUgaWYgaXQncworICAgIC8vIHNhZmUgdG8gZHVwbGljYXRl
IGl0LgorICAgIAorICAgIHN3aXRjaCAocmVzdWx0LT5vcCgpKSB7CisgICAgY2FzZSBKU0NvbnN0
YW50OgorICAgIGNhc2UgV2Vha0pTQ29uc3RhbnQ6CisgICAgY2FzZSBJZGVudGl0eToKKyAgICBj
YXNlIFRvVGhpczoKKyAgICBjYXNlIENyZWF0ZVRoaXM6CisgICAgY2FzZSBHZXRDYWxsZWU6Cisg
ICAgY2FzZSBTZXRDYWxsZWU6CisgICAgY2FzZSBHZXRMb2NhbDoKKyAgICBjYXNlIFNldExvY2Fs
OgorICAgIGNhc2UgTW92SGludEFuZENoZWNrOgorICAgIGNhc2UgTW92SGludDoKKyAgICBjYXNl
IFpvbWJpZUhpbnQ6CisgICAgY2FzZSBQaGFudG9tOgorICAgIGNhc2UgTm9wOgorICAgIGNhc2Ug
UGhpOgorICAgIGNhc2UgRmx1c2g6CisgICAgY2FzZSBQaGFudG9tTG9jYWw6CisgICAgY2FzZSBH
ZXRMb2NhbFVubGlua2VkOgorICAgIGNhc2UgU2V0QXJndW1lbnQ6CisgICAgY2FzZSBCaXRBbmQ6
CisgICAgY2FzZSBCaXRPcjoKKyAgICBjYXNlIEJpdFhvcjoKKyAgICBjYXNlIEJpdExTaGlmdDoK
KyAgICBjYXNlIEJpdFJTaGlmdDoKKyAgICBjYXNlIEJpdFVSU2hpZnQ6CisgICAgY2FzZSBWYWx1
ZVRvSW50MzI6CisgICAgY2FzZSBVSW50MzJUb051bWJlcjoKKyAgICBjYXNlIEludDMyVG9Eb3Vi
bGU6CisgICAgY2FzZSBGb3J3YXJkSW50MzJUb0RvdWJsZToKKyAgICBjYXNlIERvdWJsZUFzSW50
MzI6CisgICAgY2FzZSBBcml0aEFkZDoKKyAgICBjYXNlIEFyaXRoU3ViOgorICAgIGNhc2UgQXJp
dGhOZWdhdGU6CisgICAgY2FzZSBBcml0aE11bDoKKyAgICBjYXNlIEFyaXRoRGl2OgorICAgIGNh
c2UgQXJpdGhNb2Q6CisgICAgY2FzZSBBcml0aEFiczoKKyAgICBjYXNlIEFyaXRoTWluOgorICAg
IGNhc2UgQXJpdGhNYXg6CisgICAgY2FzZSBBcml0aFNxcnQ6CisgICAgY2FzZSBWYWx1ZUFkZDoK
KyAgICBjYXNlIEdldEJ5VmFsOgorICAgIGNhc2UgUHV0QnlWYWw6CisgICAgY2FzZSBQdXRCeVZh
bEFsaWFzOgorICAgIGNhc2UgR2V0QnlJZDoKKyAgICBjYXNlIEdldEJ5SWRGbHVzaDoKKyAgICBj
YXNlIFB1dEJ5SWQ6CisgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgorICAgIGNhc2UgQ2hlY2tTdHJ1
Y3R1cmU6CisgICAgY2FzZSBDaGVja0V4ZWN1dGFibGU6CisgICAgY2FzZSBGb3J3YXJkQ2hlY2tT
dHJ1Y3R1cmU6CisgICAgY2FzZSBTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludDoKKyAgICBj
YXNlIEZvcndhcmRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludDoKKyAgICBjYXNlIFB1dFN0
cnVjdHVyZToKKyAgICBjYXNlIFBoYW50b21QdXRTdHJ1Y3R1cmU6CisgICAgY2FzZSBBbGxvY2F0
ZVByb3BlcnR5U3RvcmFnZToKKyAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6Cisg
ICAgY2FzZSBHZXRCdXR0ZXJmbHk6CisgICAgY2FzZSBDaGVja0FycmF5OgorICAgIGNhc2UgRm9y
d2FyZENoZWNrQXJyYXk6CisgICAgY2FzZSBBcnJheWlmeToKKyAgICBjYXNlIEFycmF5aWZ5VG9T
dHJ1Y3R1cmU6CisgICAgY2FzZSBHZXRJbmRleGVkUHJvcGVydHlTdG9yYWdlOgorICAgIGNhc2Ug
R2V0QnlPZmZzZXQ6CisgICAgY2FzZSBQdXRCeU9mZnNldDoKKyAgICBjYXNlIEdldEFycmF5TGVu
Z3RoOgorICAgIGNhc2UgR2V0U2NvcGU6CisgICAgY2FzZSBHZXRNeVNjb3BlOgorICAgIGNhc2Ug
U2V0TXlTY29wZToKKyAgICBjYXNlIFNraXBUb3BTY29wZToKKyAgICBjYXNlIFNraXBTY29wZToK
KyAgICBjYXNlIEdldENsb3N1cmVSZWdpc3RlcnM6CisgICAgY2FzZSBHZXRDbG9zdXJlVmFyOgor
ICAgIGNhc2UgUHV0Q2xvc3VyZVZhcjoKKyAgICBjYXNlIEdldEdsb2JhbFZhcjoKKyAgICBjYXNl
IFB1dEdsb2JhbFZhcjoKKyAgICBjYXNlIEdsb2JhbFZhcldhdGNocG9pbnQ6CisgICAgY2FzZSBW
YXJJbmplY3Rpb25XYXRjaHBvaW50OgorICAgIGNhc2UgQ2hlY2tGdW5jdGlvbjoKKyAgICBjYXNl
IEFsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludDoKKyAgICBjYXNlIEFycmF5UHVzaDoKKyAgICBj
YXNlIEFycmF5UG9wOgorICAgIGNhc2UgUmVnRXhwRXhlYzoKKyAgICBjYXNlIFJlZkV4cFRlc3Q6
CisgICAgY2FzZSBTdHJpbmdDaGFyQ29kZUF0OgorICAgIGNhc2UgU3RyaW5nQ2hhckF0OgorICAg
IGNhc2UgQ29tcGFyZUxlc3M6CisgICAgY2FzZSBDb21wYXJlTGVzc0VxOgorICAgIGNhc2UgQ29t
cGFyZUdyZWF0ZXI6CisgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgorICAgIGNhc2UgQ29tcGFy
ZUVxOgorICAgIGNhc2UgQ29tcGFyZUVxQ29uc3RhbnQ6CisgICAgY2FzZSBDb21wYXJlU3RyaWN0
RXE6CisgICAgY2FzZSBDb21wYXJlU3RyaWN0RXFDb25zdGFudDoKKyAgICBjYXNlIENhbGw6Cisg
ICAgY2FzZSBDb25zdHJ1Y3Q6CisgICAgY2FzZSBOZXdPYmplY3Q6CisgICAgY2FzZSBOZXdBcnJh
eToKKyAgICBjYXNlIE5ld0FycmF5V2l0aFNpemU6CisgICAgY2FzZSBOZXdBcnJheUJ1ZmZlcjoK
KyAgICBjYXNlIE5ld1JlZ2V4cDoKKyAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CisgICAgY2Fz
ZSBJbnN0YW5jZU9mOgorICAgIGNhc2UgSXNVbmRlZmluZWQ6CisgICAgY2FzZSBJc0Jvb2xlYW46
CisgICAgY2FzZSBJc051bWJlcjoKKyAgICBjYXNlIElzU3RyaW5nOgorICAgIGNhc2UgSXNPYmpl
Y3Q6CisgICAgY2FzZSBJc0Z1bmN0aW9uOgorICAgIGNhc2UgVHlwZU9mOgorICAgIGNhc2UgTG9n
aWNhbE5vdDoKKyAgICBjYXNlIFRvUHJpbWl0aXZlOgorICAgIGNhc2UgVG9TdHJpbmc6CisgICAg
Y2FzZSBOZXdTdHJpbmdPYmplY3Q6CisgICAgY2FzZSBNYWtlUm9wZToKKyAgICBjYXNlIEluOgor
ICAgIGNhc2UgQ3JlYXRlQWN0aXZhdGlvbjoKKyAgICBjYXNlIFRlYXJPZmZBY3RpdmF0aW9uOgor
ICAgIGNhc2UgQ3JlYXRlQXJndW1lbnRzOgorICAgIGNhc2UgUGhhbnRvbUFyZ3VtZW50czoKKyAg
ICBjYXNlIFRlYXJPZmZBcmd1bWVudHM6CisgICAgY2FzZSBHZXRNeUFyZ3VtZW50c0xlbmd0aDoK
KyAgICBjYXNlIEdldE15QXJndW1lbnRCeVZhbDoKKyAgICBjYXNlIEdldE15QXJndW1lbnRzTGVu
Z3RoU2FmZToKKyAgICBjYXNlIEdldE15QXJndW1lbnRCeVZhbFNhZmU6CisgICAgY2FzZSBDaGVj
a0FyZ3VtZW50c05vdENyZWF0ZWQ6CisgICAgY2FzZSBOZXdGdW5jdGlvbk5vQ2hlY2s6CisgICAg
Y2FzZSBOZXdGdW5jdGlvbjoKKyAgICBjYXNlIE5ld0Z1bmN0aW9uRXhwcmVzc2lvbjoKKyAgICBj
YXNlIEp1bXA6CisgICAgY2FzZSBCcmFuY2g6CisgICAgY2FzZSBSZXR1cm46CisgICAgY2FzZSBU
aHJvdzoKKyAgICBjYXNlIFRocm93UmVmZXJlbmNlRXJyb3I6CisgICAgY2FzZSBDb3VudEV4ZWN1
dGlvbjoKKyAgICBjYXNlIEZvcmNlT1NSRXhpdDoKKyAgICBjYXNlIEZvcndhcmRGb3JjZU9TUkV4
aXQ6CisgICAgY2FzZSBDaGVja1dhdGNoZG9nVGltZXI6CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAKKyAgICBjYXNlIElubGluZVN0YXJ0OgorICAgICAgICAvLyBFdmVyeXdoZXJlIHRo
YXQgd2UgaW5saW5lIGludG8gcmVxdWlyZXMgc29tZSBtZXRhLWRhdGEuIEl0J3Mgbm90IGNsZWFy
CisgICAgICAgIC8vIHRoYXQgZHVwbGljYXRpbmcgaW5saW5lZCBjb2RlIHNvIHRoYXQgaXQncyBp
bmxpbmVkIGZyb20gdHdvIGRpZmZlcmVudAorICAgICAgICAvLyBwbGFjZXMgaXMgc291bmQgaW4g
dGhlIGN1cnJlbnQgSVIuIFBhcnRpY3VsYXJseSBzaW5jZSBjb21waWxpbmcKKyAgICAgICAgLy8g
SW5saW5lU3RhcnQgZWRpdHMgYW4gSW5saW5lQ2FsbEZyYW1lIC0gc28gZHVwbGljYXRpbmcgd291
bGQgbWVhbiB0aGF0CisgICAgICAgIC8vIHRoZSBzYW1lIElubGluZUNhbGxGcmFtZSB3b3VsZCBi
ZSBlZGl0ZWQgdHdpY2UuIFNlZW1zIGJvcmtlZC4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAKKyAgICBjYXNlIFN3aXRjaDoKKyAgICAgICAgLy8gV2Ugd291bGQgaGF2ZSB0byBkdXBs
aWNhdGUgdGhlIFN3aXRjaERhdGEgYW5kIHRoZSBKdW1wVGFibGUuIFdlIGNhbiBkbworICAgICAg
ICAvLyBpdCwgYnV0IGl0IGRvZXNuJ3Qgd29yayB5ZXQuCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgCisgICAgY2FzZSBCcmVha3BvaW50OgorICAgICAgICAvLyBJIGRvbid0IGV2ZW4g
d2FudCB0byB0aGluayBhYm91dCB3aGF0IGR1cGxpY2F0aW5nIGEgQnJlYWtwb2ludCBtZWFucy4K
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworTm9kZSogR3JhcGg6OmR1cGxp
Y2F0ZU5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICBOb2RlKiByZXN1bHQgPSBhZGROb2RlKG5vZGUt
PnByZWRpY3Rpb24oKSwgKm5vZGUpOworICAgIAorICAgIGlmIChyZXN1bHQtPmZsYWdzKCkgJiBO
b2RlSGFzVmFyQXJncykgeworICAgICAgICByZXN1bHQtPmNoaWxkcmVuLnNldEZpcnN0Q2hpbGQo
bV92YXJBcmdDaGlsZHJlbi5zaXplKCkpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbm9kZS0+Y2hpbGRyZW4ubnVtQ2hpbGRyZW4oKTsgKytpKQorICAgICAgICAgICAgbV92YXJB
cmdDaGlsZHJlbi5hcHBlbmQobV92YXJBcmdDaGlsZHJlbltub2RlLT5jaGlsZHJlbi5maXJzdENo
aWxkKCkgKyBpXSk7CisgICAgfQogICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gfSAv
LyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdHcmFwaC5oCShyZXZpc2lvbiAxNTIxNTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0NCw2ICs2NDQsOSBAQCBwdWJsaWM6
CiAgICAgLy8gaW50cm9kdWNlZCBhbnl3aGVyZSBpbiB0aGUgYmFzaWMgYmxvY2suCiAgICAgdm9p
ZCBzdWJzdGl0dXRlR2V0TG9jYWwoQmFzaWNCbG9jayYgYmxvY2ssIHVuc2lnbmVkIHN0YXJ0SW5k
ZXhJbkJsb2NrLCBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlQWNjZXNzRGF0YSwgTm9kZSog
bmV3R2V0TG9jYWwpOwogICAgIAorICAgIGJvb2wgY2FuQmVEdXBsaWNhdGVkKE5vZGUqKTsKKyAg
ICBOb2RlKiBkdXBsaWNhdGVOb2RlKE5vZGUqKTsKKyAgICAKICAgICB2b2lkIGludmFsaWRhdGVD
RkcoKTsKICAgICAKICAgICBQcm9maWxlcjo6Q29tcGlsYXRpb24qIGNvbXBpbGF0aW9uKCkgeyBy
ZXR1cm4gbV9wbGFuLmNvbXBpbGF0aW9uLmdldCgpOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0xvb3BQZWVsaW5nUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTG9vcFBlZWxpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xvb3BQZWVsaW5nUGhhc2UuY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiREZHTG9vcFBl
ZWxpbmdQaGFzZS5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgREZHIHsKKworY2xhc3MgTG9vcFBlZWxpbmdQaGFzZSA6IHB1YmxpYyBQaGFzZSB7
CitwdWJsaWM6CisgICAgTG9vcFBlZWxpbmdQaGFzZShHcmFwaCYgZ3JhcGgpCisgICAgICAgIDog
UGhhc2UoImxvb3AgcGVlbGluZyIpCisgICAgeworICAgIH0KKyAgICAKKyAgICBib29sIHJ1bigp
CisgICAgeworICAgICAgICAvLyBGaXJzdCBmaWd1cmUgb3V0IGlmIHRoZXJlIGFyZSBuYXR1cmFs
IGxvb3BzIGFueXdoZXJlIGluIHRoZSBwcm9ncmFtLgorICAgICAgICAvLyBJZiBub3QsIGdpdmUg
dXAgZWFybHkuIElmIHRoZXJlIGFyZSwgc2V0IGEgYml0IGZvciBlYWNoIGJsb2NrIHRoYXQKKyAg
ICAgICAgLy8gYmVsb25ncyB0byBhbnkgbG9vcCwgc2luY2Ugd2UnbGwgaGF2ZSB0byBkbyBhZGRp
dGlvbmFsIGNvbXB1dGF0aW9uCisgICAgICAgIC8vIGZvciB0aG9zZSBibG9ja3MuCisgICAgICAg
IAorICAgICAgICBtX2dyYXBoLm1fbmF0dXJhbExvb3BzLmNvbXB1dGVJZk5lY2Vzc2FyeShtX2dy
YXBoKTsKKyAgICAgICAgaWYgKCFtX2dyYXBoLm1fbmF0dXJhbExvb3BzLm51bUxvb3BzKCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBGYXN0Qml0VmVjdG9y
IGJsb2Nrc1RoYXRNYXlCZUR1cGxpY2F0ZWQ7CisgICAgICAgIEZhc3RCaXRWZWN0b3IgbG9vcEhl
YWRlcnM7CisgICAgICAgIGJsb2Nrc1RoYXRNYXlCZUR1cGxpY2F0ZWQucmVzaXplKG1fZ3JhcGgu
bV9ibG9ja3Muc2l6ZSgpKTsKKyAgICAgICAgbG9vcEhlYWRlcnMucmVzaXplKG1fZ3JhcGgubV9i
bG9ja3Muc2l6ZSgpKTsKKyAgICAgICAgCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1fZ3Jh
cGgubV9uYXR1cmFsTG9vcHMubnVtTG9vcHMoKTsgaS0tOykgeworICAgICAgICAgICAgY29uc3Qg
TmF0dXJhbExvb3AmIGxvb3AgPSBtX2dyYXBoLm1fbmF0dXJhbExvb3BzLmxvb3AoaSk7CisgICAg
ICAgICAgICBsb29wSGVhZGVycy5zZXQobG9vcC5oZWFkZXIoKSk7CisgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGogPSBsb29wLnNpemUoKTsgai0tOykKKyAgICAgICAgICAgICAgICBibG9ja3NU
aGF0TWF5QmVEdXBsaWNhdGVkLnNldChsb29wW2pdKTsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgRmFzdEJpdFZlY3RvciBvdXRlckxvb3BzOworICAgICAgICBvdXRlckxvb3BzLnJlc2l6
ZShtX2dyYXBoLm1fYmxvY2tzLnNpemUoKSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1f
Z3JhcGgubV9uYXR1cmFsTG9vcHMubnVtTG9vcHMoKTsgaS0tOykgeworICAgICAgICAgICAgY29u
c3QgTmF0dXJhbExvb3AmIGxvb3AgPSBtX2dyYXBoLm1fbmF0dXJhbExvb3BzLmxvb3AoaSk7Cisg
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSBsb29wLnNpemUoKTsgai0tOykgeworICAgICAg
ICAgICAgICAgIGlmIChsb29wW2pdID09IGxvb3AuaGVhZGVyKCkpCisgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmICghbG9vcEhlYWRlcnMuZ2V0KGxvb3Bb
al0pKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBvdXRl
ckxvb3BzLnNldChsb29wLmhlYWRlcigpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVmVjdG9yPGRvdWJsZT4gbG9v
cENvc3Q7CisgICAgICAgIGxvb3BDb3N0LmZpbGwoMCwgbV9ncmFwaC5tX2Jsb2Nrcy5zaXplKCkp
OworICAgICAgICBmb3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IG1fZ3JhcGgubV9ibG9ja3Mu
c2l6ZSgpOyBibG9ja0luZGV4LS07KSB7CisgICAgICAgICAgICBpZiAoIWJsb2Nrc1RoYXRNYXlC
ZUR1cGxpY2F0ZWQuZ2V0KGJsb2NrSW5kZXgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSBtX2dyYXBoLm1fYmxvY2tzW2Jsb2NrSW5k
ZXhdLmdldCgpOworICAgICAgICAgICAgaWYgKCFibG9jay0+Y2ZhRGlkVmlzaXQpCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBkb3VibGUgY29zdCA9IDA7CisgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IGJsb2NrLT5zaXpl
KCk7ICsrbm9kZUluZGV4KSB7CisgICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5h
dChub2RlSW5kZXgpOworICAgICAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAg
ICAgICAgICAgICAgIGNhc2UgUGhhbnRvbToKKyAgICAgICAgICAgICAgICBjYXNlIE1vdkhpbnQ6
CisgICAgICAgICAgICAgICAgY2FzZSBNb3ZIaW50QW5kQ2hlY2s6CisgICAgICAgICAgICAgICAg
Y2FzZSBab21iaWVIaW50OgorICAgICAgICAgICAgICAgIGNhc2UgUGhhbnRvbUxvY2FsOgorICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CisgICAgICAgICAgICAgICAgY2FzZSBGb3J3YXJkRm9y
Y2VPU1JFeGl0OgorICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXggPSBibG9jay0+c2l6ZSgp
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgY29zdCsrOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvb3BDb3N0W2Jsb2NrSW5k
ZXhdID0gY29zdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gRmlndXJlIG91dCB3
aGljaCBsb29wcyB3ZSB3YW50IHRvIHBlZWwuIERvbid0IGF0dGVtcHQgdG8gcGVlbCBsb29wcwor
ICAgICAgICAvLyB0aGF0IG92ZXJsYXAuIFNlbGVjdCB3aGljaCBnZXQgcGVlbGVkIHVzaW5nIGdy
ZWVkeSBzZWxlY3Rpb24uIERvbid0CisgICAgICAgIC8vIHBlZWwgbG9vcHMgdGhhdCBoYXZlIGFs
cmVhZHkgYmVlbiBwZWVsZWQuIERvbid0IHBlZWwgb3V0ZXIgbG9vcHMgYXQKKyAgICAgICAgLy8g
YWxsLgorICAgICAgICAKKyAgICAgICAgRmFzdEJpdFZlY3RvciBibG9ja3NUaGF0V2lsbEJlRHVw
bGljYXRlZDsKKyAgICAgICAgYmxvY2tzVGhhdFdpbGxCZUR1cGxpY2F0ZWQucmVzaXplKG1fZ3Jh
cGgubV9ibG9ja3Muc2l6ZSgpKTsKKyAgICAgICAgVmVjdG9yPGNvbnN0IE5hdHVyYWxMb29wKj4g
bG9vcHNUb1BlZWw7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1fZ3JhcGgubV9uYXR1cmFs
TG9vcHMubnVtTG9vcHMoKTsgaS0tOykgeworICAgICAgICAgICAgY29uc3QgTmF0dXJhbExvb3Am
IGxvb3AgPSBtX2dyYXBoLm1fbmF0dXJhbExvb3BzLmxvb3AoaSk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIC8vIERvbid0IHBlZWwgb3V0ZXIgbG9vcHMuCisgICAgICAgICAgICBpZiAob3V0
ZXJMb29wcy5nZXQobG9vcC5oZWFkZXIoKSkpCisgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIEJhc2ljQmxvY2sqIGhlYWRlckJsb2NrID0gbV9ncmFw
aC5tX2Jsb2Nrc1tsb29wLmhlYWRlcigpXS5nZXQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgLy8gRG9uJ3QgcGVlbCBsb29wcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHBlZWxlZC4KKyAg
ICAgICAgICAgIGlmIChoZWFkZXJCbG9jay0+ZGlkUGVlbCkKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZG91YmxlIGNvc3QgPSAwOworICAgICAg
ICAgICAgYm9vbCBvdmVybGFwc090aGVyUGVlbCA9IGZhbHNlOworICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBqID0gbG9vcC5zaXplKCk7IGotLTspIHsKKyAgICAgICAgICAgICAgICBpZiAoYmxv
Y2tzVGhhdFdpbGxCZUR1cGxpY2F0ZWQuZ2V0KGxvb3Bbal0pKSB7CisgICAgICAgICAgICAgICAg
ICAgIG92ZXJsYXBzT3RoZXJQZWVsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvc3QgKz0gbG9vcENvc3RbbG9v
cFtqXV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIERvbid0
IHBlZWwgbG9vcHMgdGhhdCBvdmVybGFwIG90aGVyIGxvb3BzIHRoYXQgd2UncmUgYWxyZWFkeQor
ICAgICAgICAgICAgLy8gcGVlbGluZworICAgICAgICAgICAgaWYgKG92ZXJsYXBzT3RoZXJQZWVs
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICAv
LyBPbmx5IHBlZWwgc21hbGwgbG9vcHMuCisgICAgICAgICAgICBpZiAoY29zdCA+IE9wdGlvbnM6
Om1heGltdW1Mb29wUGVlbENvc3QoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgbG9vcHNUb1BlZWwuYXBwZW5kKCZsb29wKTsKKyAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaiA9IGxvb3Auc2l6ZSgpOyBqLS07KQorICAgICAgICAgICAgICAg
IGJsb2Nrc1RoYXRXaWxsQmVEdXBsaWNhdGVkLnNldChsb29wW2pdKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmICghbG9vcHNUb1BlZWwpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIAorICAgICAgICAvLyBGaW5hbGx5LCBjcmVhdGUgdGhlIHBlZWxzLgorICAgICAgICAvLyBG
SVhNRQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworYm9vbCBw
ZXJmb3JtTG9vcFBlZWxpbmcoR3JhcGgmIGdyYXBoKQoreworICAgIFNhbXBsaW5nUmVnaW9uIHNh
bXBsaW5nUmVnaW9uKCJERkcgTG9vcCBQZWVsaW5nIFBoYXNlIik7CisgICAgcmV0dXJuIHJ1blBo
YXNlPExvb3BQZWVsaW5nUGhhc2U+KGdyYXBoKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0xvb3BQZWVsaW5nUGhhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0xvb3BQZWVsaW5nUGhhc2UuaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTG9vcFBlZWxpbmdQaGFzZS5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgREZHTG9vcFBlZWxpbmdQaGFzZV9oCisjZGVmaW5lIERGR0xvb3BQ
ZWVsaW5nUGhhc2VfaAorCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBFTkFCTEUo
REZHX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBHcmFw
aDsKKworLy8gTG9vcCBwZWVsaW5nIGZvciBzbWFsbCBuYXR1cmFsIGxvb3BzLiBUaGlzIGNhbiBi
ZSBjYWxsZWQgaW4gYSBmaXhwb2ludAorLy8gYmVjYXVzZSBpdCB3aWxsIG5ldmVyIHBlZWwgYSBs
b29wIHR3aWNlIChzZWUgQmFzaWNCbG9jazo6ZGlkUGVlbCksIGl0CisvLyBvbmx5IHBlZWxzIHNt
YWxsIGxvb3BzLCBhbmQgaXQgcHJvcGVybHkgZGV0aHJlYWRzIHRoZSBncmFwaCBhbmQgc28KKy8v
IGZvcnRoLiBJdCBkb2Vzbid0IHJlcXVpcmUgdGhlIGdyYXBoIHRvIGJlIHRocmVhZGVkIHRvIGJl
Z2luIHdpdGguCisKK2Jvb2wgcGVyZm9ybUxvb3BQZWVsaW5nKEdyYXBoJik7CisKK30gfSAvLyBu
YW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYg
Ly8gREZHTG9vcFBlZWxpbmdQaGFzZV9jcHAKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMTUyMTUxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksOSArMTA5LDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgXAogICAgIC8qIERlcHRoIG9mIGlubGluZSBzdGFjaywgc28g
MSA9IG5vIGlubGluaW5nLCAyID0gb25lIGxldmVsLCBldGMuICovIFwKICAgICB2KHVuc2lnbmVk
LCBtYXhpbXVtSW5saW5pbmdEZXB0aCwgNSkgXAotICAgIFwKICAgICB2KHVuc2lnbmVkLCBtYXhp
bXVtQmluYXJ5U3RyaW5nU3dpdGNoQ2FzZUxlbmd0aCwgNTApIFwKICAgICB2KHVuc2lnbmVkLCBt
YXhpbXVtQmluYXJ5U3RyaW5nU3dpdGNoVG90YWxMZW5ndGgsIDIwMDApIFwKKyAgICB2KGRvdWJs
ZSwgbWF4aW11bUxvb3BQZWVsQ29zdCwgNTApIFwKICAgICBcCiAgICAgdihpbnQzMiwgdGhyZXNo
b2xkRm9ySklUQWZ0ZXJXYXJtVXAsIDEwMCkgXAogICAgIHYoaW50MzIsIHRocmVzaG9sZEZvckpJ
VFNvb24sIDEwMCkgXAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>