<?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>191103</bug_id>
          
          <creation_ts>2018-10-31 02:46:17 -0700</creation_ts>
          <short_desc>Remove LayerFlushScheduler</short_desc>
          <delta_ts>2018-10-31 08:09:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>191065</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1473641</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-31 02:46:17 -0700</bug_when>
    <thetext>Combine the little functionality it has into its only client in WK1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473651</commentid>
    <comment_count>1</comment_count>
      <attachid>353476</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-31 03:09:43 -0700</bug_when>
    <thetext>Created attachment 353476
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473658</commentid>
    <comment_count>2</comment_count>
      <attachid>353478</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-31 03:13:33 -0700</bug_when>
    <thetext>Created attachment 353478
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473659</commentid>
    <comment_count>3</comment_count>
      <attachid>353479</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-31 03:14:31 -0700</bug_when>
    <thetext>Created attachment 353479
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473660</commentid>
    <comment_count>4</comment_count>
      <attachid>353480</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-31 03:19:09 -0700</bug_when>
    <thetext>Created attachment 353480
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473682</commentid>
    <comment_count>5</comment_count>
      <attachid>353489</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-31 05:34:54 -0700</bug_when>
    <thetext>Created attachment 353489
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473684</commentid>
    <comment_count>6</comment_count>
      <attachid>353490</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-31 06:07:10 -0700</bug_when>
    <thetext>Created attachment 353490
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473686</commentid>
    <comment_count>7</comment_count>
      <attachid>353491</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-31 06:27:53 -0700</bug_when>
    <thetext>Created attachment 353491
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473707</commentid>
    <comment_count>8</comment_count>
      <attachid>353491</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-31 08:08:34 -0700</bug_when>
    <thetext>Comment on attachment 353491
patch

Clearing flags on attachment: 353491

Committed r237636: &lt;https://trac.webkit.org/changeset/237636&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473708</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-31 08:08:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473709</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-31 08:09:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/45700047&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353476</attachid>
            <date>2018-10-31 03:09:43 -0700</date>
            <delta_ts>2018-10-31 03:13:33 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remove-layerflushscheduler.patch</filename>
            <type>text/plain</type>
            <size>23017</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTEwLTMxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTGF5ZXJGbHVzaFNj
aGVkdWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkxMTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SXQgaXMgb25seSB1c2VkIGluIFdLMS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyQ2xp
ZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvTGF5
ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA6IFJlbW92ZWQuCisKIDIwMTgtMTAtMjkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJSVENdIEVuYWJsZSBWUDgg
YnkgZGVmYXVsdApJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyMzc1NDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0y
NTUsNyArMjU1LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaQog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyLm1tIEBuby11bmlmeQogCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJQb29sLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUFuaW1hdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXll
ci5jcHAKQEAgLTI2Myw3ICsyNjIsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJv
bGxlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb3ZlcmFnZU1hcC5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVHJhbnNm
b3JtYXRpb25NYXRyaXhDQS5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1
c2hTY2hlZHVsZXJNYWMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNB
QW5pbWF0aW9uQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FG
aWx0ZXJzQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXll
ckNvY29hLm1tCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY5Miw4ICs2
OTIsNiBAQAogCQkyNkY5QTgzOTE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkY5
QTgzNzE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjg1RDMyMDgyMDM1RDY1
NjAwNzBEMzJGIC8qIFNlcnZlclRpbWluZ1BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjg4RTgyRjAyMDM1RDRFRDAwQjBEQ0ZGIC8qIFNlcnZl
clRpbWluZ1BhcnNlci5oICovOyB9OwogCQkyOTE0RTMwODFDQUI1QTQ0MDA0OTk2NkYgLyogQWNj
ZXNzaWJpbGl0eUF0dGFjaG1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI5MTRFMzA2MUNBQjVBNDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0
YWNobWVudC5oICovOyB9OwotCQkyOTE3QjU2MjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkyOTE3QjU2MzE0
NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkxN0I1NjAxNDczNDk2QzAwNTJD
OUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyOTNFQUUxRjEzNTZCMkZFMDA2N0FDRjkgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMjk0ODlGQzcxMkMwMEYwMzAwRDgzRjBGIC8qIEFjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTQ4
OUZDNTEyQzAwRjAzMDBEODNGMEYgLyogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCAqLzsgfTsK
IAkJMjk3QkUzRDUxNkMwM0MwODAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
NTI3Q0M5MTE2QkY4QkExMDA5RERBQzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFu
Y2UuaCAqLzsgfTsKQEAgLTY0OTUsMTAgKzY0OTMsNiBAQAogCQkyOERCOUJDNzIwMjBFQTA0MDBF
NTRBMDcgLyogUGVyZm9ybWFuY2VTZXJ2ZXJUaW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFBlcmZvcm1hbmNlU2VydmVyVGltaW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjkxNEUzMDUxQ0FCNUE0NDAwNDk5NjZGIC8qIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlB
dHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkxNEUzMDYxQ0FC
NUE0NDAwNDk5NjZGIC8qIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlBdHRhY2htZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTI5MTdCNTVFMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNo
U2NoZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheWVy
Rmx1c2hTY2hlZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyOTE3QjU1
RjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXllckZsdXNoU2NoZWR1bGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTI5MTdCNTYwMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheWVyRmx1
c2hTY2hlZHVsZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjkxN0I1
NjUxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5M0VBRTFFMTM1NkIyRkUwMDY3QUNGOSAv
KiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI5NDg5RkM1MTJDMDBGMDMwMEQ4M0YwRiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTQ5ODY4MTE5NTM0MTk0MDA3
MkQyQkQgLyogVGV4dFVuZG9JbnNlcnRpb25NYXJrdXBNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXh0VW5kb0luc2VydGlvbk1hcmt1cE1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODkzLDcgKzE3ODg3LDYgQEAKIAkJNDk1ODc4
MUUxMkE1N0RCQzAwNzIzOEFDIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKLQkJCQkyOTE3QjU2NTE0NzM0OTk1MDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlck1hYy5jcHAgKi8sCiAJCQkJMEY1RTIwMDUxOEU3NzFGQzAwM0VDM0U1IC8qIFBs
YXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oICovLAogCQkJCTQ5NTg3ODFGMTJBNTdEREYwMDcyMzhB
QyAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EubW0gKi8sCiAJCQkJMEYxMzE2M0YxNkVEMENE
RTAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzQ29jb2EubW0gKi8sCkBAIC0xNzk2OCw5ICsx
Nzk2MSw2IEBACiAJCQkJNDk1ODc4MUUxMkE1N0RCQzAwNzIzOEFDIC8qIGNvY29hICovLAogCQkJ
CTQ5OUIzRUQ0MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuY3BwICovLAogCQkJ
CTQ5OUIzRUQ1MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuaCAqLywKLQkJCQky
OTE3QjU1RTE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAgKi8sCi0J
CQkJMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLywK
LQkJCQkyOTE3QjU2MDE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVu
dC5oICovLAogCQkJCTdBQTNBNjlEMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuY3BwICov
LAogCQkJCTdBQTNBNjlFMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuaCAqLywKIAkJCQkw
RkRGNDVBNjFCRDFDNkZEMDBFNEZBOEMgLyogUGxhdGZvcm1DQUFuaW1hdGlvbi5jcHAgKi8sCkBA
IC0yOTc4Niw4ICsyOTc3Niw2IEBACiAJCQkJRTE1RkY3RDUxOEM5NTUzODAwRkU0Qzg3IC8qIEtl
eXByZXNzQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDUwQ0VCRjExNTA3M0JCRTAwMkJC
MTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0NTZGQTI3MTFB
RDRBODMwMDIwQjQyMCAvKiBMYWJlbHNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMjkx
N0I1NjIxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTI5MTdCNTYzMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDkxNkZGNzE5NURGNkEwMDA1QUIzNDkgLyog
TGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MDM3MTY0MUE2
NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTZBMDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xh
eWVyRmx1c2hTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiTGF5ZXJGbHVzaFNj
aGVkdWxlci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi12b2lkIExheWVyRmx1c2hT
Y2hlZHVsZXI6OnN1c3BlbmQoKQotewotICAgIGlmIChtX2lzU3VzcGVuZGVkKQotICAgICAgICBy
ZXR1cm47Ci0gICAgCi0gICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7Ci0gICAgaW52YWxpZGF0ZSgp
OwotfQotICAgIAotdm9pZCBMYXllckZsdXNoU2NoZWR1bGVyOjpyZXN1bWUoKQotewotICAgIGlm
ICghbV9pc1N1c3BlbmRlZCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIG1faXNTdXNwZW5k
ZWQgPSBmYWxzZTsKLSAgICBzY2hlZHVsZSgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2No
ZWR1bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5oCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmgJKG5vbmV4aXN0
ZW50KQpAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTGF5ZXJGbHVzaFNjaGVkdWxl
ckNsaWVudC5oIgotI2luY2x1ZGUgIlJ1bkxvb3BPYnNlcnZlci5oIgotI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi1jbGFzcyBMYXllckZs
dXNoU2NoZWR1bGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMYXllckZsdXNoU2NoZWR1
bGVyKTsKLXB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBMYXllckZsdXNoU2NoZWR1bGVyKExh
eWVyRmx1c2hTY2hlZHVsZXJDbGllbnQqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5M
YXllckZsdXNoU2NoZWR1bGVyKCk7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxl
KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnZhbGlkYXRlKCk7Ci0KLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN1c3BlbmQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc3VtZSgp
OwotCi0gICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTdXNwZW5kZWQ7
IH0KLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9p
ZCBsYXllckZsdXNoQ2FsbGJhY2soKTsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIGJvb2wgbV9p
c1N1c3BlbmRlZDsKLSAgICBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50KiBtX2NsaWVudDsKLSAg
ICAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcE9ic2Vy
dmVyPiBtX3J1bkxvb3BPYnNlcnZlcjsKLSNlbmRpZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZs
dXNoU2NoZWR1bGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oCShyZXZpc2lvbiAyMzc1
NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgTGF5ZXJGbHVzaFNj
aGVkdWxlckNsaWVudF9oCi0jZGVmaW5lIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnRfaAotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQgewot
cHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfkxheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQoKSA9IGRl
ZmF1bHQ7Ci0KLXB1YmxpYzoKLSAgICAvLyBGbHVzaCB0aGUgbGF5ZXJzLiBSZXR1cm5zIHRydWUg
b24gc3VjY2Vzcy4KLSAgICB2aXJ0dWFsIGJvb2wgZmx1c2hMYXllcnMoKSA9IDA7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBMYXllckZsdXNoU2NoZWR1bGVyQ2xp
ZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xh
eWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCShyZXZp
c2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2Nv
YS9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDkwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkxheWVyRmx1c2hTY2hlZHVsZXIuaCIKLQotI2luY2x1
ZGUgPHd0Zi9BdXRvZHJhaW5lZFBvb2wuaD4KLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0j
aW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCi0jaW5jbHVkZSAiV2ViQ29yZVRo
cmVhZEludGVybmFsLmgiCi0jaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ0ZCdW5kbGUuaD4KLSNl
bmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBDRlJ1bkxvb3BSZWYgY3VycmVu
dFJ1bkxvb3AoKQotewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgLy8gQSByYWNlIGNv
bmRpdGlvbiBkdXJpbmcgV2ViVmlldyBkZWFsbG9jYXRpb24gY2FuIGxlYWQgdG8gYSBjcmFzaCBp
ZiB0aGUgbGF5ZXIgc3luYyBydW4gbG9vcAotICAgIC8vIG9ic2VydmVyIGlzIGFkZGVkIHRvIHRo
ZSBtYWluIHJ1biBsb29wIDxyZGFyOi8vcHJvYmxlbS85Nzk4NTUwPi4gSG93ZXZlciwgZm9yIHJl
c3BvbnNpdmVuZXNzLAotICAgIC8vIHdlIHN0aWxsIGFsbG93IHRoaXMsIHNlZSA8cmRhcjovL3By
b2JsZW0vNzQwMzMyOD4uIFNpbmNlIHRoZSByYWNlIGNvbmRpdGlvbiBhbmQgc3Vic2VxdWVudAot
ICAgIC8vIGNyYXNoIGFyZSBlc3BlY2lhbGx5IHRyb3VibGVzb21lIGZvciBpQm9va3MsIHdlIG5l
dmVyIGFsbG93IHRoZSBvYnNlcnZlciB0byBiZSBhZGRlZCB0byB0aGUKLSAgICAvLyBtYWluIHJ1
biBsb29wIGluIGlCb29rcy4KLSAgICBpZiAoSU9TQXBwbGljYXRpb246OmlzSUJvb2tzKCkpCi0g
ICAgICAgIHJldHVybiBXZWJUaHJlYWRSdW5Mb29wKCk7Ci0jZW5kaWYKLSAgICByZXR1cm4gQ0ZS
dW5Mb29wR2V0Q3VycmVudCgpOwotfQotCi1MYXllckZsdXNoU2NoZWR1bGVyOjpMYXllckZsdXNo
U2NoZWR1bGVyKExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQqIGNsaWVudCkKLSAgICA6IG1faXNT
dXNwZW5kZWQoZmFsc2UpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCi17Ci0gICAgQVNTRVJUX0FS
RyhjbGllbnQsIGNsaWVudCk7Ci0KLSAgICBtX3J1bkxvb3BPYnNlcnZlciA9IHN0ZDo6bWFrZV91
bmlxdWU8UnVuTG9vcE9ic2VydmVyPihzdGF0aWNfY2FzdDxDRkluZGV4PihSdW5Mb29wT2JzZXJ2
ZXI6OldlbGxLbm93blJ1bkxvb3BPcmRlcnM6OkxheWVyRmx1c2gpLCBbdGhpc10oKSB7Ci0gICAg
ICAgIGlmICh0aGlzLT5pc1N1c3BlbmRlZCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB0aGlzLT5sYXllckZsdXNoQ2FsbGJhY2soKTsKLSAgICB9KTsKLX0KLQotTGF5ZXJGbHVzaFNj
aGVkdWxlcjo6fkxheWVyRmx1c2hTY2hlZHVsZXIoKSA9IGRlZmF1bHQ7Ci0KLXZvaWQgTGF5ZXJG
bHVzaFNjaGVkdWxlcjo6bGF5ZXJGbHVzaENhbGxiYWNrKCkKLXsKLSAgICBBU1NFUlQoIW1faXNT
dXNwZW5kZWQpOwotCi0gICAgQXV0b2RyYWluZWRQb29sIHBvb2w7Ci0gICAgaWYgKG1fY2xpZW50
LT5mbHVzaExheWVycygpKQotICAgICAgICBpbnZhbGlkYXRlKCk7Ci19Ci0KLXZvaWQgTGF5ZXJG
bHVzaFNjaGVkdWxlcjo6c2NoZWR1bGUoKQotewotICAgIGlmIChtX2lzU3VzcGVuZGVkKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX3J1bkxvb3BPYnNlcnZlci0+c2NoZWR1bGUoY3VycmVudFJ1
bkxvb3AoKSk7Ci19Ci0KLXZvaWQgTGF5ZXJGbHVzaFNjaGVkdWxlcjo6aW52YWxpZGF0ZSgpCi17
Ci0gICAgbV9ydW5Mb29wT2JzZXJ2ZXItPmludmFsaWRhdGUoKTsKLX0KLSAgICAKLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46a2V5d29yZHMKIyMgLTEgKzAsMCAj
IwotRGF0ZSBBdXRob3IgSWQgUmV2aXNpb24gSGVhZFVSTApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzc2
MjgpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNCBAQAorMjAxOC0xMC0zMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIExheWVyRmx1c2hTY2hlZHVsZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTEwMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIFJ1bkxvb3BPYnNlcnZl
ciBkaXJlY3RseSBpbnRvIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyIGFuZCByZW1vdmUKKyAg
ICAgICAgYWxsIHRoZSB2aXJ0dWFsIGNydWZ0LgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
RGF0YS5oOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6On5XZWJWaWV3TGF5
ZXJGbHVzaFNjaGVkdWxlcik6IERlbGV0ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAgIChjdXJyZW50UnVuTG9vcCk6Cisg
ICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6V2ViVmlld0xheWVyRmx1c2hTY2hl
ZHVsZXIpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6On5XZWJWaWV3TGF5
ZXJGbHVzaFNjaGVkdWxlcik6CisgICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6
c2NoZWR1bGUpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmludmFsaWRh
dGUpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmxheWVyRmx1c2hDYWxs
YmFjayk6CisKIDIwMTgtMTAtMzAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CiAKICAgICAgICAgRW5hYmxlIEluc3RhbGxBUEkgZm9yIGlPUyB1bmNvbmRpdGlvbmFsbHkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgJKHJl
dmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
d0RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsNiBAQAogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9BVktpdFNQSS5oPgogI2VuZGlmCiAjaW1wb3J0IDxXZWJDb3JlL0FsdGVybmF0aXZl
VGV4dENsaWVudC5oPgotI2ltcG9ydCA8V2ViQ29yZS9MYXllckZsdXNoU2NoZWR1bGVyLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL0xheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5oPgog
I2ltcG9ydCA8d3RmL0xvY2suaD4KQEAgLTUxLDYgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyOwogY2xhc3MgSGlzdG9yeUl0ZW07
CiBjbGFzcyBQYWdlOworY2xhc3MgUnVuTG9vcE9ic2VydmVyOwogY2xhc3MgVGV4dEluZGljYXRv
cldpbmRvdzsKIGNsYXNzIFZhbGlkYXRpb25CdWJibGU7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCkBAIC0xMDksMjkgKzEwOCwyOSBAQCBjbGFz
cyBXZWJTZWxlY3Rpb25TZXJ2aWNlQ29udHJvbGxlcjsKIEBjbGFzcyBXZWJUZXh0VG91Y2hCYXJJ
dGVtQ29udHJvbGxlcjsKICNlbmRpZgogCi1jbGFzcyBXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxl
ciA6IHB1YmxpYyBXZWJDb3JlOjpMYXllckZsdXNoU2NoZWR1bGVyIHsKK2NsYXNzIFdlYlZpZXdM
YXllckZsdXNoU2NoZWR1bGVyIHsKIHB1YmxpYzoKICAgICBXZWJWaWV3TGF5ZXJGbHVzaFNjaGVk
dWxlcihMYXllckZsdXNoQ29udHJvbGxlciopOwotICAgIHZpcnR1YWwgfldlYlZpZXdMYXllckZs
dXNoU2NoZWR1bGVyKCkgeyB9CisgICAgfldlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyKCk7CisK
KyAgICB2b2lkIHNjaGVkdWxlKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKIHByaXZhdGU6
Ci0gICAgdm9pZCBsYXllckZsdXNoQ2FsbGJhY2soKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAg
UmVmUHRyPExheWVyRmx1c2hDb250cm9sbGVyPiBwcm90ZWN0b3IgPSBtX2ZsdXNoQ29udHJvbGxl
cjsKLSAgICAgICAgV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxlcjo6bGF5ZXJGbHVzaENhbGxi
YWNrKCk7Ci0gICAgfQorICAgIHZvaWQgbGF5ZXJGbHVzaENhbGxiYWNrKCk7CiAgICAgCiAgICAg
TGF5ZXJGbHVzaENvbnRyb2xsZXIqIG1fZmx1c2hDb250cm9sbGVyOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpSdW5Mb29wT2JzZXJ2ZXI+IG1fcnVuTG9vcE9ic2VydmVyOwogfTsKIAot
Y2xhc3MgTGF5ZXJGbHVzaENvbnRyb2xsZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxMYXllckZsdXNo
Q29udHJvbGxlcj4sIHB1YmxpYyBXZWJDb3JlOjpMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50IHsK
K2NsYXNzIExheWVyRmx1c2hDb250cm9sbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TGF5ZXJGbHVz
aENvbnRyb2xsZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPExheWVyRmx1c2hDb250cm9s
bGVyPiBjcmVhdGUoV2ViVmlldyogd2ViVmlldykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IExheWVyRmx1c2hDb250cm9sbGVyKHdlYlZpZXcpKTsKICAgICB9CiAgICAgCi0g
ICAgdmlydHVhbCBib29sIGZsdXNoTGF5ZXJzKCk7CisgICAgYm9vbCBmbHVzaExheWVycygpOwog
ICAgIAogICAgIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoKCk7CiAgICAgdm9pZCBpbnZhbGlkYXRl
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0Rh
dGEubW0JKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlld0RhdGEubW0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBv
cnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPFdlYkNv
cmUvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3Rv
cnlJdGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3BPYnNlcnZlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZhbGlkYXRp
b25CdWJibGUuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC01OCw2ICs1OSwyMCBA
QAogQk9PTCBhcHBsaWNhdGlvbklzVGVybWluYXRpbmcgPSBOTzsKIGludCBwbHVnaW5EYXRhYmFz
ZUNsaWVudENvdW50ID0gMDsKIAorc3RhdGljIENGUnVuTG9vcFJlZiBjdXJyZW50UnVuTG9vcCgp
Cit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBBIHJhY2UgY29uZGl0aW9uIGR1
cmluZyBXZWJWaWV3IGRlYWxsb2NhdGlvbiBjYW4gbGVhZCB0byBhIGNyYXNoIGlmIHRoZSBsYXll
ciBzeW5jIHJ1biBsb29wCisgICAgLy8gb2JzZXJ2ZXIgaXMgYWRkZWQgdG8gdGhlIG1haW4gcnVu
IGxvb3AgPHJkYXI6Ly9wcm9ibGVtLzk3OTg1NTA+LiBIb3dldmVyLCBmb3IgcmVzcG9uc2l2ZW5l
c3MsCisgICAgLy8gd2Ugc3RpbGwgYWxsb3cgdGhpcywgc2VlIDxyZGFyOi8vcHJvYmxlbS83NDAz
MzI4Pi4gU2luY2UgdGhlIHJhY2UgY29uZGl0aW9uIGFuZCBzdWJzZXF1ZW50CisgICAgLy8gY3Jh
c2ggYXJlIGVzcGVjaWFsbHkgdHJvdWJsZXNvbWUgZm9yIGlCb29rcywgd2UgbmV2ZXIgYWxsb3cg
dGhlIG9ic2VydmVyIHRvIGJlIGFkZGVkIHRvIHRoZQorICAgIC8vIG1haW4gcnVuIGxvb3AgaW4g
aUJvb2tzLgorICAgIGlmIChJT1NBcHBsaWNhdGlvbjo6aXNJQm9va3MoKSkKKyAgICAgICAgcmV0
dXJuIFdlYlRocmVhZFJ1bkxvb3AoKTsKKyNlbmRpZgorICAgIHJldHVybiBDRlJ1bkxvb3BHZXRD
dXJyZW50KCk7Cit9CisKIHZvaWQgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OnNjaGVkdWxlTGF5ZXJG
bHVzaCgpCiB7CiAgICAgbV9sYXllckZsdXNoU2NoZWR1bGVyLnNjaGVkdWxlKCk7CkBAIC03Nyw5
ICs5MiwzMyBAQCBMYXllckZsdXNoQ29udHJvbGxlcjo6TGF5ZXJGbHVzaENvbnRyb2xsCiB9CiAK
IFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcihM
YXllckZsdXNoQ29udHJvbGxlciogZmx1c2hDb250cm9sbGVyKQotICAgIDogV2ViQ29yZTo6TGF5
ZXJGbHVzaFNjaGVkdWxlcihmbHVzaENvbnRyb2xsZXIpCi0gICAgLCBtX2ZsdXNoQ29udHJvbGxl
cihmbHVzaENvbnRyb2xsZXIpCisgICAgOiBtX2ZsdXNoQ29udHJvbGxlcihmbHVzaENvbnRyb2xs
ZXIpCit7CisgICAgbV9ydW5Mb29wT2JzZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6
OlJ1bkxvb3BPYnNlcnZlcj4oc3RhdGljX2Nhc3Q8Q0ZJbmRleD4oV2ViQ29yZTo6UnVuTG9vcE9i
c2VydmVyOjpXZWxsS25vd25SdW5Mb29wT3JkZXJzOjpMYXllckZsdXNoKSwgW3RoaXNdKCkgewor
ICAgICAgICB0aGlzLT5sYXllckZsdXNoQ2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworV2ViVmll
d0xheWVyRmx1c2hTY2hlZHVsZXI6On5XZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcigpCit7Cit9
CisKK3ZvaWQgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OnNjaGVkdWxlKCkKK3sKKyAgICBt
X3J1bkxvb3BPYnNlcnZlci0+c2NoZWR1bGUoY3VycmVudFJ1bkxvb3AoKSk7Cit9CisKK3ZvaWQg
V2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmludmFsaWRhdGUoKQoreworICAgIG1fcnVuTG9v
cE9ic2VydmVyLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgV2ViVmlld0xheWVyRmx1c2hTY2hl
ZHVsZXI6OmxheWVyRmx1c2hDYWxsYmFjaygpCiB7CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7Cisg
ICAgICAgIGlmIChtX2ZsdXNoQ29udHJvbGxlci0+Zmx1c2hMYXllcnMoKSkKKyAgICAgICAgICAg
IGludmFsaWRhdGUoKTsKKyAgICB9CiB9CiAKICNpZiBQTEFURk9STShNQUMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353478</attachid>
            <date>2018-10-31 03:13:33 -0700</date>
            <delta_ts>2018-10-31 03:14:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remove-layerflushscheduler-2.patch</filename>
            <type>text/plain</type>
            <size>23085</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTEwLTMxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTGF5ZXJGbHVzaFNj
aGVkdWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkxMTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SXQgaXMgb25seSB1c2VkIGluIFdLMS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyQ2xp
ZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvTGF5
ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA6IFJlbW92ZWQuCisKIDIwMTgtMTAtMjkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJSVENdIEVuYWJsZSBWUDgg
YnkgZGVmYXVsdApJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyMzc1NDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0y
NTUsNyArMjU1LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaQog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyLm1tIEBuby11bmlmeQogCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJQb29sLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUFuaW1hdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXll
ci5jcHAKQEAgLTI2Myw3ICsyNjIsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJv
bGxlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb3ZlcmFnZU1hcC5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVHJhbnNm
b3JtYXRpb25NYXRyaXhDQS5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1
c2hTY2hlZHVsZXJNYWMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNB
QW5pbWF0aW9uQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FG
aWx0ZXJzQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXll
ckNvY29hLm1tCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY5Miw4ICs2
OTIsNiBAQAogCQkyNkY5QTgzOTE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkY5
QTgzNzE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjg1RDMyMDgyMDM1RDY1
NjAwNzBEMzJGIC8qIFNlcnZlclRpbWluZ1BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjg4RTgyRjAyMDM1RDRFRDAwQjBEQ0ZGIC8qIFNlcnZl
clRpbWluZ1BhcnNlci5oICovOyB9OwogCQkyOTE0RTMwODFDQUI1QTQ0MDA0OTk2NkYgLyogQWNj
ZXNzaWJpbGl0eUF0dGFjaG1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI5MTRFMzA2MUNBQjVBNDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0
YWNobWVudC5oICovOyB9OwotCQkyOTE3QjU2MjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkyOTE3QjU2MzE0
NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkxN0I1NjAxNDczNDk2QzAwNTJD
OUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyOTNFQUUxRjEzNTZCMkZFMDA2N0FDRjkgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMjk0ODlGQzcxMkMwMEYwMzAwRDgzRjBGIC8qIEFjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTQ4
OUZDNTEyQzAwRjAzMDBEODNGMEYgLyogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCAqLzsgfTsK
IAkJMjk3QkUzRDUxNkMwM0MwODAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
NTI3Q0M5MTE2QkY4QkExMDA5RERBQzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFu
Y2UuaCAqLzsgfTsKQEAgLTY0OTUsMTAgKzY0OTMsNiBAQAogCQkyOERCOUJDNzIwMjBFQTA0MDBF
NTRBMDcgLyogUGVyZm9ybWFuY2VTZXJ2ZXJUaW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFBlcmZvcm1hbmNlU2VydmVyVGltaW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjkxNEUzMDUxQ0FCNUE0NDAwNDk5NjZGIC8qIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlB
dHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkxNEUzMDYxQ0FC
NUE0NDAwNDk5NjZGIC8qIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlBdHRhY2htZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTI5MTdCNTVFMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNo
U2NoZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheWVy
Rmx1c2hTY2hlZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyOTE3QjU1
RjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXllckZsdXNoU2NoZWR1bGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTI5MTdCNTYwMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheWVyRmx1
c2hTY2hlZHVsZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjkxN0I1
NjUxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5M0VBRTFFMTM1NkIyRkUwMDY3QUNGOSAv
KiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI5NDg5RkM1MTJDMDBGMDMwMEQ4M0YwRiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTQ5ODY4MTE5NTM0MTk0MDA3
MkQyQkQgLyogVGV4dFVuZG9JbnNlcnRpb25NYXJrdXBNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXh0VW5kb0luc2VydGlvbk1hcmt1cE1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODkzLDcgKzE3ODg3LDYgQEAKIAkJNDk1ODc4
MUUxMkE1N0RCQzAwNzIzOEFDIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKLQkJCQkyOTE3QjU2NTE0NzM0OTk1MDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlck1hYy5jcHAgKi8sCiAJCQkJMEY1RTIwMDUxOEU3NzFGQzAwM0VDM0U1IC8qIFBs
YXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oICovLAogCQkJCTQ5NTg3ODFGMTJBNTdEREYwMDcyMzhB
QyAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EubW0gKi8sCiAJCQkJMEYxMzE2M0YxNkVEMENE
RTAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzQ29jb2EubW0gKi8sCkBAIC0xNzk2OCw5ICsx
Nzk2MSw2IEBACiAJCQkJNDk1ODc4MUUxMkE1N0RCQzAwNzIzOEFDIC8qIGNvY29hICovLAogCQkJ
CTQ5OUIzRUQ0MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuY3BwICovLAogCQkJ
CTQ5OUIzRUQ1MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuaCAqLywKLQkJCQky
OTE3QjU1RTE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAgKi8sCi0J
CQkJMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLywK
LQkJCQkyOTE3QjU2MDE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVu
dC5oICovLAogCQkJCTdBQTNBNjlEMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuY3BwICov
LAogCQkJCTdBQTNBNjlFMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuaCAqLywKIAkJCQkw
RkRGNDVBNjFCRDFDNkZEMDBFNEZBOEMgLyogUGxhdGZvcm1DQUFuaW1hdGlvbi5jcHAgKi8sCkBA
IC0yOTc4Niw4ICsyOTc3Niw2IEBACiAJCQkJRTE1RkY3RDUxOEM5NTUzODAwRkU0Qzg3IC8qIEtl
eXByZXNzQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDUwQ0VCRjExNTA3M0JCRTAwMkJC
MTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0NTZGQTI3MTFB
RDRBODMwMDIwQjQyMCAvKiBMYWJlbHNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMjkx
N0I1NjIxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTI5MTdCNTYzMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDkxNkZGNzE5NURGNkEwMDA1QUIzNDkgLyog
TGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MDM3MTY0MUE2
NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTZBMDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xh
eWVyRmx1c2hTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiTGF5ZXJGbHVzaFNj
aGVkdWxlci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi12b2lkIExheWVyRmx1c2hT
Y2hlZHVsZXI6OnN1c3BlbmQoKQotewotICAgIGlmIChtX2lzU3VzcGVuZGVkKQotICAgICAgICBy
ZXR1cm47Ci0gICAgCi0gICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7Ci0gICAgaW52YWxpZGF0ZSgp
OwotfQotICAgIAotdm9pZCBMYXllckZsdXNoU2NoZWR1bGVyOjpyZXN1bWUoKQotewotICAgIGlm
ICghbV9pc1N1c3BlbmRlZCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIG1faXNTdXNwZW5k
ZWQgPSBmYWxzZTsKLSAgICBzY2hlZHVsZSgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2No
ZWR1bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5oCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmgJKG5vbmV4aXN0
ZW50KQpAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTGF5ZXJGbHVzaFNjaGVkdWxl
ckNsaWVudC5oIgotI2luY2x1ZGUgIlJ1bkxvb3BPYnNlcnZlci5oIgotI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi1jbGFzcyBMYXllckZs
dXNoU2NoZWR1bGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMYXllckZsdXNoU2NoZWR1
bGVyKTsKLXB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBMYXllckZsdXNoU2NoZWR1bGVyKExh
eWVyRmx1c2hTY2hlZHVsZXJDbGllbnQqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5M
YXllckZsdXNoU2NoZWR1bGVyKCk7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxl
KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnZhbGlkYXRlKCk7Ci0KLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN1c3BlbmQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc3VtZSgp
OwotCi0gICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTdXNwZW5kZWQ7
IH0KLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9p
ZCBsYXllckZsdXNoQ2FsbGJhY2soKTsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIGJvb2wgbV9p
c1N1c3BlbmRlZDsKLSAgICBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50KiBtX2NsaWVudDsKLSAg
ICAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcE9ic2Vy
dmVyPiBtX3J1bkxvb3BPYnNlcnZlcjsKLSNlbmRpZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZs
dXNoU2NoZWR1bGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oCShyZXZpc2lvbiAyMzc1
NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgTGF5ZXJGbHVzaFNj
aGVkdWxlckNsaWVudF9oCi0jZGVmaW5lIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnRfaAotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQgewot
cHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfkxheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQoKSA9IGRl
ZmF1bHQ7Ci0KLXB1YmxpYzoKLSAgICAvLyBGbHVzaCB0aGUgbGF5ZXJzLiBSZXR1cm5zIHRydWUg
b24gc3VjY2Vzcy4KLSAgICB2aXJ0dWFsIGJvb2wgZmx1c2hMYXllcnMoKSA9IDA7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBMYXllckZsdXNoU2NoZWR1bGVyQ2xp
ZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xh
eWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCShyZXZp
c2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2Nv
YS9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDkwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkxheWVyRmx1c2hTY2hlZHVsZXIuaCIKLQotI2luY2x1
ZGUgPHd0Zi9BdXRvZHJhaW5lZFBvb2wuaD4KLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0j
aW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCi0jaW5jbHVkZSAiV2ViQ29yZVRo
cmVhZEludGVybmFsLmgiCi0jaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ0ZCdW5kbGUuaD4KLSNl
bmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBDRlJ1bkxvb3BSZWYgY3VycmVu
dFJ1bkxvb3AoKQotewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgLy8gQSByYWNlIGNv
bmRpdGlvbiBkdXJpbmcgV2ViVmlldyBkZWFsbG9jYXRpb24gY2FuIGxlYWQgdG8gYSBjcmFzaCBp
ZiB0aGUgbGF5ZXIgc3luYyBydW4gbG9vcAotICAgIC8vIG9ic2VydmVyIGlzIGFkZGVkIHRvIHRo
ZSBtYWluIHJ1biBsb29wIDxyZGFyOi8vcHJvYmxlbS85Nzk4NTUwPi4gSG93ZXZlciwgZm9yIHJl
c3BvbnNpdmVuZXNzLAotICAgIC8vIHdlIHN0aWxsIGFsbG93IHRoaXMsIHNlZSA8cmRhcjovL3By
b2JsZW0vNzQwMzMyOD4uIFNpbmNlIHRoZSByYWNlIGNvbmRpdGlvbiBhbmQgc3Vic2VxdWVudAot
ICAgIC8vIGNyYXNoIGFyZSBlc3BlY2lhbGx5IHRyb3VibGVzb21lIGZvciBpQm9va3MsIHdlIG5l
dmVyIGFsbG93IHRoZSBvYnNlcnZlciB0byBiZSBhZGRlZCB0byB0aGUKLSAgICAvLyBtYWluIHJ1
biBsb29wIGluIGlCb29rcy4KLSAgICBpZiAoSU9TQXBwbGljYXRpb246OmlzSUJvb2tzKCkpCi0g
ICAgICAgIHJldHVybiBXZWJUaHJlYWRSdW5Mb29wKCk7Ci0jZW5kaWYKLSAgICByZXR1cm4gQ0ZS
dW5Mb29wR2V0Q3VycmVudCgpOwotfQotCi1MYXllckZsdXNoU2NoZWR1bGVyOjpMYXllckZsdXNo
U2NoZWR1bGVyKExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQqIGNsaWVudCkKLSAgICA6IG1faXNT
dXNwZW5kZWQoZmFsc2UpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCi17Ci0gICAgQVNTRVJUX0FS
RyhjbGllbnQsIGNsaWVudCk7Ci0KLSAgICBtX3J1bkxvb3BPYnNlcnZlciA9IHN0ZDo6bWFrZV91
bmlxdWU8UnVuTG9vcE9ic2VydmVyPihzdGF0aWNfY2FzdDxDRkluZGV4PihSdW5Mb29wT2JzZXJ2
ZXI6OldlbGxLbm93blJ1bkxvb3BPcmRlcnM6OkxheWVyRmx1c2gpLCBbdGhpc10oKSB7Ci0gICAg
ICAgIGlmICh0aGlzLT5pc1N1c3BlbmRlZCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB0aGlzLT5sYXllckZsdXNoQ2FsbGJhY2soKTsKLSAgICB9KTsKLX0KLQotTGF5ZXJGbHVzaFNj
aGVkdWxlcjo6fkxheWVyRmx1c2hTY2hlZHVsZXIoKSA9IGRlZmF1bHQ7Ci0KLXZvaWQgTGF5ZXJG
bHVzaFNjaGVkdWxlcjo6bGF5ZXJGbHVzaENhbGxiYWNrKCkKLXsKLSAgICBBU1NFUlQoIW1faXNT
dXNwZW5kZWQpOwotCi0gICAgQXV0b2RyYWluZWRQb29sIHBvb2w7Ci0gICAgaWYgKG1fY2xpZW50
LT5mbHVzaExheWVycygpKQotICAgICAgICBpbnZhbGlkYXRlKCk7Ci19Ci0KLXZvaWQgTGF5ZXJG
bHVzaFNjaGVkdWxlcjo6c2NoZWR1bGUoKQotewotICAgIGlmIChtX2lzU3VzcGVuZGVkKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX3J1bkxvb3BPYnNlcnZlci0+c2NoZWR1bGUoY3VycmVudFJ1
bkxvb3AoKSk7Ci19Ci0KLXZvaWQgTGF5ZXJGbHVzaFNjaGVkdWxlcjo6aW52YWxpZGF0ZSgpCi17
Ci0gICAgbV9ydW5Mb29wT2JzZXJ2ZXItPmludmFsaWRhdGUoKTsKLX0KLSAgICAKLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46a2V5d29yZHMKIyMgLTEgKzAsMCAj
IwotRGF0ZSBBdXRob3IgSWQgUmV2aXNpb24gSGVhZFVSTApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzc2
MjgpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNCBAQAorMjAxOC0xMC0zMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIExheWVyRmx1c2hTY2hlZHVsZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTEwMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIFJ1bkxvb3BPYnNlcnZl
ciBkaXJlY3RseSBpbnRvIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyIGFuZCByZW1vdmUKKyAg
ICAgICAgYWxsIHRoZSB2aXJ0dWFsIGNydWZ0LgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
RGF0YS5oOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6On5XZWJWaWV3TGF5
ZXJGbHVzaFNjaGVkdWxlcik6IERlbGV0ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAgIChjdXJyZW50UnVuTG9vcCk6Cisg
ICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6V2ViVmlld0xheWVyRmx1c2hTY2hl
ZHVsZXIpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6On5XZWJWaWV3TGF5
ZXJGbHVzaFNjaGVkdWxlcik6CisgICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6
c2NoZWR1bGUpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmludmFsaWRh
dGUpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmxheWVyRmx1c2hDYWxs
YmFjayk6CisKIDIwMTgtMTAtMzAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CiAKICAgICAgICAgRW5hYmxlIEluc3RhbGxBUEkgZm9yIGlPUyB1bmNvbmRpdGlvbmFsbHkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgJKHJl
dmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
d0RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsNiBAQAogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9BVktpdFNQSS5oPgogI2VuZGlmCiAjaW1wb3J0IDxXZWJDb3JlL0FsdGVybmF0aXZl
VGV4dENsaWVudC5oPgotI2ltcG9ydCA8V2ViQ29yZS9MYXllckZsdXNoU2NoZWR1bGVyLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL0xheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5oPgog
I2ltcG9ydCA8d3RmL0xvY2suaD4KQEAgLTUxLDYgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyOwogY2xhc3MgSGlzdG9yeUl0ZW07
CiBjbGFzcyBQYWdlOworY2xhc3MgUnVuTG9vcE9ic2VydmVyOwogY2xhc3MgVGV4dEluZGljYXRv
cldpbmRvdzsKIGNsYXNzIFZhbGlkYXRpb25CdWJibGU7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCkBAIC0xMDksMjkgKzEwOCwyOSBAQCBjbGFz
cyBXZWJTZWxlY3Rpb25TZXJ2aWNlQ29udHJvbGxlcjsKIEBjbGFzcyBXZWJUZXh0VG91Y2hCYXJJ
dGVtQ29udHJvbGxlcjsKICNlbmRpZgogCi1jbGFzcyBXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxl
ciA6IHB1YmxpYyBXZWJDb3JlOjpMYXllckZsdXNoU2NoZWR1bGVyIHsKK2NsYXNzIFdlYlZpZXdM
YXllckZsdXNoU2NoZWR1bGVyIHsKIHB1YmxpYzoKICAgICBXZWJWaWV3TGF5ZXJGbHVzaFNjaGVk
dWxlcihMYXllckZsdXNoQ29udHJvbGxlciopOwotICAgIHZpcnR1YWwgfldlYlZpZXdMYXllckZs
dXNoU2NoZWR1bGVyKCkgeyB9CisgICAgfldlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyKCk7CisK
KyAgICB2b2lkIHNjaGVkdWxlKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKIHByaXZhdGU6
Ci0gICAgdm9pZCBsYXllckZsdXNoQ2FsbGJhY2soKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAg
UmVmUHRyPExheWVyRmx1c2hDb250cm9sbGVyPiBwcm90ZWN0b3IgPSBtX2ZsdXNoQ29udHJvbGxl
cjsKLSAgICAgICAgV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxlcjo6bGF5ZXJGbHVzaENhbGxi
YWNrKCk7Ci0gICAgfQorICAgIHZvaWQgbGF5ZXJGbHVzaENhbGxiYWNrKCk7CiAgICAgCiAgICAg
TGF5ZXJGbHVzaENvbnRyb2xsZXIqIG1fZmx1c2hDb250cm9sbGVyOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpSdW5Mb29wT2JzZXJ2ZXI+IG1fcnVuTG9vcE9ic2VydmVyOwogfTsKIAot
Y2xhc3MgTGF5ZXJGbHVzaENvbnRyb2xsZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxMYXllckZsdXNo
Q29udHJvbGxlcj4sIHB1YmxpYyBXZWJDb3JlOjpMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50IHsK
K2NsYXNzIExheWVyRmx1c2hDb250cm9sbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TGF5ZXJGbHVz
aENvbnRyb2xsZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPExheWVyRmx1c2hDb250cm9s
bGVyPiBjcmVhdGUoV2ViVmlldyogd2ViVmlldykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IExheWVyRmx1c2hDb250cm9sbGVyKHdlYlZpZXcpKTsKICAgICB9CiAgICAgCi0g
ICAgdmlydHVhbCBib29sIGZsdXNoTGF5ZXJzKCk7CisgICAgYm9vbCBmbHVzaExheWVycygpOwog
ICAgIAogICAgIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoKCk7CiAgICAgdm9pZCBpbnZhbGlkYXRl
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0Rh
dGEubW0JKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlld0RhdGEubW0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBv
cnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPFdlYkNv
cmUvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3Rv
cnlJdGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3BPYnNlcnZlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZhbGlkYXRp
b25CdWJibGUuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC01OCw2ICs1OSwyMCBA
QAogQk9PTCBhcHBsaWNhdGlvbklzVGVybWluYXRpbmcgPSBOTzsKIGludCBwbHVnaW5EYXRhYmFz
ZUNsaWVudENvdW50ID0gMDsKIAorc3RhdGljIENGUnVuTG9vcFJlZiBjdXJyZW50UnVuTG9vcCgp
Cit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBBIHJhY2UgY29uZGl0aW9uIGR1
cmluZyBXZWJWaWV3IGRlYWxsb2NhdGlvbiBjYW4gbGVhZCB0byBhIGNyYXNoIGlmIHRoZSBsYXll
ciBzeW5jIHJ1biBsb29wCisgICAgLy8gb2JzZXJ2ZXIgaXMgYWRkZWQgdG8gdGhlIG1haW4gcnVu
IGxvb3AgPHJkYXI6Ly9wcm9ibGVtLzk3OTg1NTA+LiBIb3dldmVyLCBmb3IgcmVzcG9uc2l2ZW5l
c3MsCisgICAgLy8gd2Ugc3RpbGwgYWxsb3cgdGhpcywgc2VlIDxyZGFyOi8vcHJvYmxlbS83NDAz
MzI4Pi4gU2luY2UgdGhlIHJhY2UgY29uZGl0aW9uIGFuZCBzdWJzZXF1ZW50CisgICAgLy8gY3Jh
c2ggYXJlIGVzcGVjaWFsbHkgdHJvdWJsZXNvbWUgZm9yIGlCb29rcywgd2UgbmV2ZXIgYWxsb3cg
dGhlIG9ic2VydmVyIHRvIGJlIGFkZGVkIHRvIHRoZQorICAgIC8vIG1haW4gcnVuIGxvb3AgaW4g
aUJvb2tzLgorICAgIGlmIChJT1NBcHBsaWNhdGlvbjo6aXNJQm9va3MoKSkKKyAgICAgICAgcmV0
dXJuIFdlYlRocmVhZFJ1bkxvb3AoKTsKKyNlbmRpZgorICAgIHJldHVybiBDRlJ1bkxvb3BHZXRD
dXJyZW50KCk7Cit9CisKIHZvaWQgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OnNjaGVkdWxlTGF5ZXJG
bHVzaCgpCiB7CiAgICAgbV9sYXllckZsdXNoU2NoZWR1bGVyLnNjaGVkdWxlKCk7CkBAIC03Nyw5
ICs5MiwzNCBAQCBMYXllckZsdXNoQ29udHJvbGxlcjo6TGF5ZXJGbHVzaENvbnRyb2xsCiB9CiAK
IFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcihM
YXllckZsdXNoQ29udHJvbGxlciogZmx1c2hDb250cm9sbGVyKQotICAgIDogV2ViQ29yZTo6TGF5
ZXJGbHVzaFNjaGVkdWxlcihmbHVzaENvbnRyb2xsZXIpCi0gICAgLCBtX2ZsdXNoQ29udHJvbGxl
cihmbHVzaENvbnRyb2xsZXIpCisgICAgOiBtX2ZsdXNoQ29udHJvbGxlcihmbHVzaENvbnRyb2xs
ZXIpCit7CisgICAgbV9ydW5Mb29wT2JzZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6
OlJ1bkxvb3BPYnNlcnZlcj4oc3RhdGljX2Nhc3Q8Q0ZJbmRleD4oV2ViQ29yZTo6UnVuTG9vcE9i
c2VydmVyOjpXZWxsS25vd25SdW5Mb29wT3JkZXJzOjpMYXllckZsdXNoKSwgW3RoaXNdKCkgewor
ICAgICAgICB0aGlzLT5sYXllckZsdXNoQ2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworV2ViVmll
d0xheWVyRmx1c2hTY2hlZHVsZXI6On5XZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcigpCit7Cit9
CisKK3ZvaWQgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OnNjaGVkdWxlKCkKK3sKKyAgICBt
X3J1bkxvb3BPYnNlcnZlci0+c2NoZWR1bGUoY3VycmVudFJ1bkxvb3AoKSk7Cit9CisKK3ZvaWQg
V2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmludmFsaWRhdGUoKQoreworICAgIG1fcnVuTG9v
cE9ic2VydmVyLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgV2ViVmlld0xheWVyRmx1c2hTY2hl
ZHVsZXI6OmxheWVyRmx1c2hDYWxsYmFjaygpCiB7CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7Cisg
ICAgICAgIFJlZlB0cjxMYXllckZsdXNoQ29udHJvbGxlcj4gcHJvdGVjdG9yID0gbV9mbHVzaENv
bnRyb2xsZXIKKyAgICAgICAgaWYgKG1fZmx1c2hDb250cm9sbGVyLT5mbHVzaExheWVycygpKQor
ICAgICAgICAgICAgaW52YWxpZGF0ZSgpOworICAgIH0KIH0KIAogI2lmIFBMQVRGT1JNKE1BQykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353479</attachid>
            <date>2018-10-31 03:14:31 -0700</date>
            <delta_ts>2018-10-31 03:19:09 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remove-layerflushscheduler-3.patch</filename>
            <type>text/plain</type>
            <size>23086</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTEwLTMxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTGF5ZXJGbHVzaFNj
aGVkdWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkxMTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SXQgaXMgb25seSB1c2VkIGluIFdLMS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyQ2xp
ZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvTGF5
ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA6IFJlbW92ZWQuCisKIDIwMTgtMTAtMjkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJSVENdIEVuYWJsZSBWUDgg
YnkgZGVmYXVsdApJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyMzc1NDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0y
NTUsNyArMjU1LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaQog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyLm1tIEBuby11bmlmeQogCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJQb29sLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUFuaW1hdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXll
ci5jcHAKQEAgLTI2Myw3ICsyNjIsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJv
bGxlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb3ZlcmFnZU1hcC5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVHJhbnNm
b3JtYXRpb25NYXRyaXhDQS5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1
c2hTY2hlZHVsZXJNYWMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNB
QW5pbWF0aW9uQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FG
aWx0ZXJzQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXll
ckNvY29hLm1tCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY5Miw4ICs2
OTIsNiBAQAogCQkyNkY5QTgzOTE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkY5
QTgzNzE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjg1RDMyMDgyMDM1RDY1
NjAwNzBEMzJGIC8qIFNlcnZlclRpbWluZ1BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjg4RTgyRjAyMDM1RDRFRDAwQjBEQ0ZGIC8qIFNlcnZl
clRpbWluZ1BhcnNlci5oICovOyB9OwogCQkyOTE0RTMwODFDQUI1QTQ0MDA0OTk2NkYgLyogQWNj
ZXNzaWJpbGl0eUF0dGFjaG1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI5MTRFMzA2MUNBQjVBNDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0
YWNobWVudC5oICovOyB9OwotCQkyOTE3QjU2MjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkyOTE3QjU2MzE0
NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkxN0I1NjAxNDczNDk2QzAwNTJD
OUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyOTNFQUUxRjEzNTZCMkZFMDA2N0FDRjkgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMjk0ODlGQzcxMkMwMEYwMzAwRDgzRjBGIC8qIEFjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTQ4
OUZDNTEyQzAwRjAzMDBEODNGMEYgLyogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCAqLzsgfTsK
IAkJMjk3QkUzRDUxNkMwM0MwODAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
NTI3Q0M5MTE2QkY4QkExMDA5RERBQzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFu
Y2UuaCAqLzsgfTsKQEAgLTY0OTUsMTAgKzY0OTMsNiBAQAogCQkyOERCOUJDNzIwMjBFQTA0MDBF
NTRBMDcgLyogUGVyZm9ybWFuY2VTZXJ2ZXJUaW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFBlcmZvcm1hbmNlU2VydmVyVGltaW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjkxNEUzMDUxQ0FCNUE0NDAwNDk5NjZGIC8qIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlB
dHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkxNEUzMDYxQ0FC
NUE0NDAwNDk5NjZGIC8qIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlBdHRhY2htZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTI5MTdCNTVFMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNo
U2NoZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheWVy
Rmx1c2hTY2hlZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyOTE3QjU1
RjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXllckZsdXNoU2NoZWR1bGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTI5MTdCNTYwMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheWVyRmx1
c2hTY2hlZHVsZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjkxN0I1
NjUxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5M0VBRTFFMTM1NkIyRkUwMDY3QUNGOSAv
KiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI5NDg5RkM1MTJDMDBGMDMwMEQ4M0YwRiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTQ5ODY4MTE5NTM0MTk0MDA3
MkQyQkQgLyogVGV4dFVuZG9JbnNlcnRpb25NYXJrdXBNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXh0VW5kb0luc2VydGlvbk1hcmt1cE1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODkzLDcgKzE3ODg3LDYgQEAKIAkJNDk1ODc4
MUUxMkE1N0RCQzAwNzIzOEFDIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKLQkJCQkyOTE3QjU2NTE0NzM0OTk1MDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlck1hYy5jcHAgKi8sCiAJCQkJMEY1RTIwMDUxOEU3NzFGQzAwM0VDM0U1IC8qIFBs
YXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oICovLAogCQkJCTQ5NTg3ODFGMTJBNTdEREYwMDcyMzhB
QyAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EubW0gKi8sCiAJCQkJMEYxMzE2M0YxNkVEMENE
RTAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzQ29jb2EubW0gKi8sCkBAIC0xNzk2OCw5ICsx
Nzk2MSw2IEBACiAJCQkJNDk1ODc4MUUxMkE1N0RCQzAwNzIzOEFDIC8qIGNvY29hICovLAogCQkJ
CTQ5OUIzRUQ0MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuY3BwICovLAogCQkJ
CTQ5OUIzRUQ1MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuaCAqLywKLQkJCQky
OTE3QjU1RTE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAgKi8sCi0J
CQkJMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLywK
LQkJCQkyOTE3QjU2MDE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVu
dC5oICovLAogCQkJCTdBQTNBNjlEMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuY3BwICov
LAogCQkJCTdBQTNBNjlFMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuaCAqLywKIAkJCQkw
RkRGNDVBNjFCRDFDNkZEMDBFNEZBOEMgLyogUGxhdGZvcm1DQUFuaW1hdGlvbi5jcHAgKi8sCkBA
IC0yOTc4Niw4ICsyOTc3Niw2IEBACiAJCQkJRTE1RkY3RDUxOEM5NTUzODAwRkU0Qzg3IC8qIEtl
eXByZXNzQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDUwQ0VCRjExNTA3M0JCRTAwMkJC
MTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0NTZGQTI3MTFB
RDRBODMwMDIwQjQyMCAvKiBMYWJlbHNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMjkx
N0I1NjIxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTI5MTdCNTYzMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDkxNkZGNzE5NURGNkEwMDA1QUIzNDkgLyog
TGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MDM3MTY0MUE2
NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTZBMDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xh
eWVyRmx1c2hTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiTGF5ZXJGbHVzaFNj
aGVkdWxlci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi12b2lkIExheWVyRmx1c2hT
Y2hlZHVsZXI6OnN1c3BlbmQoKQotewotICAgIGlmIChtX2lzU3VzcGVuZGVkKQotICAgICAgICBy
ZXR1cm47Ci0gICAgCi0gICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7Ci0gICAgaW52YWxpZGF0ZSgp
OwotfQotICAgIAotdm9pZCBMYXllckZsdXNoU2NoZWR1bGVyOjpyZXN1bWUoKQotewotICAgIGlm
ICghbV9pc1N1c3BlbmRlZCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIG1faXNTdXNwZW5k
ZWQgPSBmYWxzZTsKLSAgICBzY2hlZHVsZSgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2No
ZWR1bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5oCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmgJKG5vbmV4aXN0
ZW50KQpAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTGF5ZXJGbHVzaFNjaGVkdWxl
ckNsaWVudC5oIgotI2luY2x1ZGUgIlJ1bkxvb3BPYnNlcnZlci5oIgotI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi1jbGFzcyBMYXllckZs
dXNoU2NoZWR1bGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMYXllckZsdXNoU2NoZWR1
bGVyKTsKLXB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBMYXllckZsdXNoU2NoZWR1bGVyKExh
eWVyRmx1c2hTY2hlZHVsZXJDbGllbnQqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5M
YXllckZsdXNoU2NoZWR1bGVyKCk7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxl
KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnZhbGlkYXRlKCk7Ci0KLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN1c3BlbmQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc3VtZSgp
OwotCi0gICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTdXNwZW5kZWQ7
IH0KLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9p
ZCBsYXllckZsdXNoQ2FsbGJhY2soKTsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIGJvb2wgbV9p
c1N1c3BlbmRlZDsKLSAgICBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50KiBtX2NsaWVudDsKLSAg
ICAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcE9ic2Vy
dmVyPiBtX3J1bkxvb3BPYnNlcnZlcjsKLSNlbmRpZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZs
dXNoU2NoZWR1bGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oCShyZXZpc2lvbiAyMzc1
NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgTGF5ZXJGbHVzaFNj
aGVkdWxlckNsaWVudF9oCi0jZGVmaW5lIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnRfaAotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQgewot
cHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfkxheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQoKSA9IGRl
ZmF1bHQ7Ci0KLXB1YmxpYzoKLSAgICAvLyBGbHVzaCB0aGUgbGF5ZXJzLiBSZXR1cm5zIHRydWUg
b24gc3VjY2Vzcy4KLSAgICB2aXJ0dWFsIGJvb2wgZmx1c2hMYXllcnMoKSA9IDA7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBMYXllckZsdXNoU2NoZWR1bGVyQ2xp
ZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xh
eWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCShyZXZp
c2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2Nv
YS9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDkwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkxheWVyRmx1c2hTY2hlZHVsZXIuaCIKLQotI2luY2x1
ZGUgPHd0Zi9BdXRvZHJhaW5lZFBvb2wuaD4KLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0j
aW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCi0jaW5jbHVkZSAiV2ViQ29yZVRo
cmVhZEludGVybmFsLmgiCi0jaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ0ZCdW5kbGUuaD4KLSNl
bmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBDRlJ1bkxvb3BSZWYgY3VycmVu
dFJ1bkxvb3AoKQotewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgLy8gQSByYWNlIGNv
bmRpdGlvbiBkdXJpbmcgV2ViVmlldyBkZWFsbG9jYXRpb24gY2FuIGxlYWQgdG8gYSBjcmFzaCBp
ZiB0aGUgbGF5ZXIgc3luYyBydW4gbG9vcAotICAgIC8vIG9ic2VydmVyIGlzIGFkZGVkIHRvIHRo
ZSBtYWluIHJ1biBsb29wIDxyZGFyOi8vcHJvYmxlbS85Nzk4NTUwPi4gSG93ZXZlciwgZm9yIHJl
c3BvbnNpdmVuZXNzLAotICAgIC8vIHdlIHN0aWxsIGFsbG93IHRoaXMsIHNlZSA8cmRhcjovL3By
b2JsZW0vNzQwMzMyOD4uIFNpbmNlIHRoZSByYWNlIGNvbmRpdGlvbiBhbmQgc3Vic2VxdWVudAot
ICAgIC8vIGNyYXNoIGFyZSBlc3BlY2lhbGx5IHRyb3VibGVzb21lIGZvciBpQm9va3MsIHdlIG5l
dmVyIGFsbG93IHRoZSBvYnNlcnZlciB0byBiZSBhZGRlZCB0byB0aGUKLSAgICAvLyBtYWluIHJ1
biBsb29wIGluIGlCb29rcy4KLSAgICBpZiAoSU9TQXBwbGljYXRpb246OmlzSUJvb2tzKCkpCi0g
ICAgICAgIHJldHVybiBXZWJUaHJlYWRSdW5Mb29wKCk7Ci0jZW5kaWYKLSAgICByZXR1cm4gQ0ZS
dW5Mb29wR2V0Q3VycmVudCgpOwotfQotCi1MYXllckZsdXNoU2NoZWR1bGVyOjpMYXllckZsdXNo
U2NoZWR1bGVyKExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQqIGNsaWVudCkKLSAgICA6IG1faXNT
dXNwZW5kZWQoZmFsc2UpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCi17Ci0gICAgQVNTRVJUX0FS
RyhjbGllbnQsIGNsaWVudCk7Ci0KLSAgICBtX3J1bkxvb3BPYnNlcnZlciA9IHN0ZDo6bWFrZV91
bmlxdWU8UnVuTG9vcE9ic2VydmVyPihzdGF0aWNfY2FzdDxDRkluZGV4PihSdW5Mb29wT2JzZXJ2
ZXI6OldlbGxLbm93blJ1bkxvb3BPcmRlcnM6OkxheWVyRmx1c2gpLCBbdGhpc10oKSB7Ci0gICAg
ICAgIGlmICh0aGlzLT5pc1N1c3BlbmRlZCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB0aGlzLT5sYXllckZsdXNoQ2FsbGJhY2soKTsKLSAgICB9KTsKLX0KLQotTGF5ZXJGbHVzaFNj
aGVkdWxlcjo6fkxheWVyRmx1c2hTY2hlZHVsZXIoKSA9IGRlZmF1bHQ7Ci0KLXZvaWQgTGF5ZXJG
bHVzaFNjaGVkdWxlcjo6bGF5ZXJGbHVzaENhbGxiYWNrKCkKLXsKLSAgICBBU1NFUlQoIW1faXNT
dXNwZW5kZWQpOwotCi0gICAgQXV0b2RyYWluZWRQb29sIHBvb2w7Ci0gICAgaWYgKG1fY2xpZW50
LT5mbHVzaExheWVycygpKQotICAgICAgICBpbnZhbGlkYXRlKCk7Ci19Ci0KLXZvaWQgTGF5ZXJG
bHVzaFNjaGVkdWxlcjo6c2NoZWR1bGUoKQotewotICAgIGlmIChtX2lzU3VzcGVuZGVkKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX3J1bkxvb3BPYnNlcnZlci0+c2NoZWR1bGUoY3VycmVudFJ1
bkxvb3AoKSk7Ci19Ci0KLXZvaWQgTGF5ZXJGbHVzaFNjaGVkdWxlcjo6aW52YWxpZGF0ZSgpCi17
Ci0gICAgbV9ydW5Mb29wT2JzZXJ2ZXItPmludmFsaWRhdGUoKTsKLX0KLSAgICAKLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46a2V5d29yZHMKIyMgLTEgKzAsMCAj
IwotRGF0ZSBBdXRob3IgSWQgUmV2aXNpb24gSGVhZFVSTApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzc2
MjgpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNCBAQAorMjAxOC0xMC0zMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIExheWVyRmx1c2hTY2hlZHVsZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTEwMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIFJ1bkxvb3BPYnNlcnZl
ciBkaXJlY3RseSBpbnRvIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyIGFuZCByZW1vdmUKKyAg
ICAgICAgYWxsIHRoZSB2aXJ0dWFsIGNydWZ0LgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
RGF0YS5oOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6On5XZWJWaWV3TGF5
ZXJGbHVzaFNjaGVkdWxlcik6IERlbGV0ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAgIChjdXJyZW50UnVuTG9vcCk6Cisg
ICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6V2ViVmlld0xheWVyRmx1c2hTY2hl
ZHVsZXIpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6On5XZWJWaWV3TGF5
ZXJGbHVzaFNjaGVkdWxlcik6CisgICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6
c2NoZWR1bGUpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmludmFsaWRh
dGUpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmxheWVyRmx1c2hDYWxs
YmFjayk6CisKIDIwMTgtMTAtMzAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CiAKICAgICAgICAgRW5hYmxlIEluc3RhbGxBUEkgZm9yIGlPUyB1bmNvbmRpdGlvbmFsbHkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgJKHJl
dmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
d0RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsNiBAQAogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9BVktpdFNQSS5oPgogI2VuZGlmCiAjaW1wb3J0IDxXZWJDb3JlL0FsdGVybmF0aXZl
VGV4dENsaWVudC5oPgotI2ltcG9ydCA8V2ViQ29yZS9MYXllckZsdXNoU2NoZWR1bGVyLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL0xheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5oPgog
I2ltcG9ydCA8d3RmL0xvY2suaD4KQEAgLTUxLDYgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyOwogY2xhc3MgSGlzdG9yeUl0ZW07
CiBjbGFzcyBQYWdlOworY2xhc3MgUnVuTG9vcE9ic2VydmVyOwogY2xhc3MgVGV4dEluZGljYXRv
cldpbmRvdzsKIGNsYXNzIFZhbGlkYXRpb25CdWJibGU7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCkBAIC0xMDksMjkgKzEwOCwyOSBAQCBjbGFz
cyBXZWJTZWxlY3Rpb25TZXJ2aWNlQ29udHJvbGxlcjsKIEBjbGFzcyBXZWJUZXh0VG91Y2hCYXJJ
dGVtQ29udHJvbGxlcjsKICNlbmRpZgogCi1jbGFzcyBXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxl
ciA6IHB1YmxpYyBXZWJDb3JlOjpMYXllckZsdXNoU2NoZWR1bGVyIHsKK2NsYXNzIFdlYlZpZXdM
YXllckZsdXNoU2NoZWR1bGVyIHsKIHB1YmxpYzoKICAgICBXZWJWaWV3TGF5ZXJGbHVzaFNjaGVk
dWxlcihMYXllckZsdXNoQ29udHJvbGxlciopOwotICAgIHZpcnR1YWwgfldlYlZpZXdMYXllckZs
dXNoU2NoZWR1bGVyKCkgeyB9CisgICAgfldlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyKCk7CisK
KyAgICB2b2lkIHNjaGVkdWxlKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKIHByaXZhdGU6
Ci0gICAgdm9pZCBsYXllckZsdXNoQ2FsbGJhY2soKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAg
UmVmUHRyPExheWVyRmx1c2hDb250cm9sbGVyPiBwcm90ZWN0b3IgPSBtX2ZsdXNoQ29udHJvbGxl
cjsKLSAgICAgICAgV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxlcjo6bGF5ZXJGbHVzaENhbGxi
YWNrKCk7Ci0gICAgfQorICAgIHZvaWQgbGF5ZXJGbHVzaENhbGxiYWNrKCk7CiAgICAgCiAgICAg
TGF5ZXJGbHVzaENvbnRyb2xsZXIqIG1fZmx1c2hDb250cm9sbGVyOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpSdW5Mb29wT2JzZXJ2ZXI+IG1fcnVuTG9vcE9ic2VydmVyOwogfTsKIAot
Y2xhc3MgTGF5ZXJGbHVzaENvbnRyb2xsZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxMYXllckZsdXNo
Q29udHJvbGxlcj4sIHB1YmxpYyBXZWJDb3JlOjpMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50IHsK
K2NsYXNzIExheWVyRmx1c2hDb250cm9sbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TGF5ZXJGbHVz
aENvbnRyb2xsZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPExheWVyRmx1c2hDb250cm9s
bGVyPiBjcmVhdGUoV2ViVmlldyogd2ViVmlldykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IExheWVyRmx1c2hDb250cm9sbGVyKHdlYlZpZXcpKTsKICAgICB9CiAgICAgCi0g
ICAgdmlydHVhbCBib29sIGZsdXNoTGF5ZXJzKCk7CisgICAgYm9vbCBmbHVzaExheWVycygpOwog
ICAgIAogICAgIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoKCk7CiAgICAgdm9pZCBpbnZhbGlkYXRl
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0Rh
dGEubW0JKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlld0RhdGEubW0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBv
cnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPFdlYkNv
cmUvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3Rv
cnlJdGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3BPYnNlcnZlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZhbGlkYXRp
b25CdWJibGUuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC01OCw2ICs1OSwyMCBA
QAogQk9PTCBhcHBsaWNhdGlvbklzVGVybWluYXRpbmcgPSBOTzsKIGludCBwbHVnaW5EYXRhYmFz
ZUNsaWVudENvdW50ID0gMDsKIAorc3RhdGljIENGUnVuTG9vcFJlZiBjdXJyZW50UnVuTG9vcCgp
Cit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBBIHJhY2UgY29uZGl0aW9uIGR1
cmluZyBXZWJWaWV3IGRlYWxsb2NhdGlvbiBjYW4gbGVhZCB0byBhIGNyYXNoIGlmIHRoZSBsYXll
ciBzeW5jIHJ1biBsb29wCisgICAgLy8gb2JzZXJ2ZXIgaXMgYWRkZWQgdG8gdGhlIG1haW4gcnVu
IGxvb3AgPHJkYXI6Ly9wcm9ibGVtLzk3OTg1NTA+LiBIb3dldmVyLCBmb3IgcmVzcG9uc2l2ZW5l
c3MsCisgICAgLy8gd2Ugc3RpbGwgYWxsb3cgdGhpcywgc2VlIDxyZGFyOi8vcHJvYmxlbS83NDAz
MzI4Pi4gU2luY2UgdGhlIHJhY2UgY29uZGl0aW9uIGFuZCBzdWJzZXF1ZW50CisgICAgLy8gY3Jh
c2ggYXJlIGVzcGVjaWFsbHkgdHJvdWJsZXNvbWUgZm9yIGlCb29rcywgd2UgbmV2ZXIgYWxsb3cg
dGhlIG9ic2VydmVyIHRvIGJlIGFkZGVkIHRvIHRoZQorICAgIC8vIG1haW4gcnVuIGxvb3AgaW4g
aUJvb2tzLgorICAgIGlmIChJT1NBcHBsaWNhdGlvbjo6aXNJQm9va3MoKSkKKyAgICAgICAgcmV0
dXJuIFdlYlRocmVhZFJ1bkxvb3AoKTsKKyNlbmRpZgorICAgIHJldHVybiBDRlJ1bkxvb3BHZXRD
dXJyZW50KCk7Cit9CisKIHZvaWQgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OnNjaGVkdWxlTGF5ZXJG
bHVzaCgpCiB7CiAgICAgbV9sYXllckZsdXNoU2NoZWR1bGVyLnNjaGVkdWxlKCk7CkBAIC03Nyw5
ICs5MiwzNCBAQCBMYXllckZsdXNoQ29udHJvbGxlcjo6TGF5ZXJGbHVzaENvbnRyb2xsCiB9CiAK
IFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcihM
YXllckZsdXNoQ29udHJvbGxlciogZmx1c2hDb250cm9sbGVyKQotICAgIDogV2ViQ29yZTo6TGF5
ZXJGbHVzaFNjaGVkdWxlcihmbHVzaENvbnRyb2xsZXIpCi0gICAgLCBtX2ZsdXNoQ29udHJvbGxl
cihmbHVzaENvbnRyb2xsZXIpCisgICAgOiBtX2ZsdXNoQ29udHJvbGxlcihmbHVzaENvbnRyb2xs
ZXIpCit7CisgICAgbV9ydW5Mb29wT2JzZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6
OlJ1bkxvb3BPYnNlcnZlcj4oc3RhdGljX2Nhc3Q8Q0ZJbmRleD4oV2ViQ29yZTo6UnVuTG9vcE9i
c2VydmVyOjpXZWxsS25vd25SdW5Mb29wT3JkZXJzOjpMYXllckZsdXNoKSwgW3RoaXNdKCkgewor
ICAgICAgICB0aGlzLT5sYXllckZsdXNoQ2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworV2ViVmll
d0xheWVyRmx1c2hTY2hlZHVsZXI6On5XZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcigpCit7Cit9
CisKK3ZvaWQgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OnNjaGVkdWxlKCkKK3sKKyAgICBt
X3J1bkxvb3BPYnNlcnZlci0+c2NoZWR1bGUoY3VycmVudFJ1bkxvb3AoKSk7Cit9CisKK3ZvaWQg
V2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmludmFsaWRhdGUoKQoreworICAgIG1fcnVuTG9v
cE9ic2VydmVyLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgV2ViVmlld0xheWVyRmx1c2hTY2hl
ZHVsZXI6OmxheWVyRmx1c2hDYWxsYmFjaygpCiB7CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7Cisg
ICAgICAgIFJlZlB0cjxMYXllckZsdXNoQ29udHJvbGxlcj4gcHJvdGVjdG9yID0gbV9mbHVzaENv
bnRyb2xsZXI7CisgICAgICAgIGlmIChtX2ZsdXNoQ29udHJvbGxlci0+Zmx1c2hMYXllcnMoKSkK
KyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICB9CiB9CiAKICNpZiBQTEFURk9STShNQUMp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353480</attachid>
            <date>2018-10-31 03:19:09 -0700</date>
            <delta_ts>2018-10-31 05:34:54 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remove-layerflushscheduler-4.patch</filename>
            <type>text/plain</type>
            <size>23272</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTEwLTMxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTGF5ZXJGbHVzaFNj
aGVkdWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkxMTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SXQgaXMgb25seSB1c2VkIGluIFdLMS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyQ2xp
ZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvTGF5
ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA6IFJlbW92ZWQuCisKIDIwMTgtMTAtMjkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJSVENdIEVuYWJsZSBWUDgg
YnkgZGVmYXVsdApJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyMzc1NDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0y
NTUsNyArMjU1LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaQog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyLm1tIEBuby11bmlmeQogCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJQb29sLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUFuaW1hdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXll
ci5jcHAKQEAgLTI2Myw3ICsyNjIsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJv
bGxlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb3ZlcmFnZU1hcC5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVHJhbnNm
b3JtYXRpb25NYXRyaXhDQS5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1
c2hTY2hlZHVsZXJNYWMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNB
QW5pbWF0aW9uQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FG
aWx0ZXJzQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXll
ckNvY29hLm1tCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY5Miw4ICs2
OTIsNiBAQAogCQkyNkY5QTgzOTE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkY5
QTgzNzE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjg1RDMyMDgyMDM1RDY1
NjAwNzBEMzJGIC8qIFNlcnZlclRpbWluZ1BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjg4RTgyRjAyMDM1RDRFRDAwQjBEQ0ZGIC8qIFNlcnZl
clRpbWluZ1BhcnNlci5oICovOyB9OwogCQkyOTE0RTMwODFDQUI1QTQ0MDA0OTk2NkYgLyogQWNj
ZXNzaWJpbGl0eUF0dGFjaG1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI5MTRFMzA2MUNBQjVBNDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0
YWNobWVudC5oICovOyB9OwotCQkyOTE3QjU2MjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkyOTE3QjU2MzE0
NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkxN0I1NjAxNDczNDk2QzAwNTJD
OUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyOTNFQUUxRjEzNTZCMkZFMDA2N0FDRjkgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMjk0ODlGQzcxMkMwMEYwMzAwRDgzRjBGIC8qIEFjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTQ4
OUZDNTEyQzAwRjAzMDBEODNGMEYgLyogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCAqLzsgfTsK
IAkJMjk3QkUzRDUxNkMwM0MwODAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
NTI3Q0M5MTE2QkY4QkExMDA5RERBQzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFu
Y2UuaCAqLzsgfTsKQEAgLTY0OTUsMTAgKzY0OTMsNiBAQAogCQkyOERCOUJDNzIwMjBFQTA0MDBF
NTRBMDcgLyogUGVyZm9ybWFuY2VTZXJ2ZXJUaW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFBlcmZvcm1hbmNlU2VydmVyVGltaW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjkxNEUzMDUxQ0FCNUE0NDAwNDk5NjZGIC8qIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlB
dHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkxNEUzMDYxQ0FC
NUE0NDAwNDk5NjZGIC8qIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlBdHRhY2htZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTI5MTdCNTVFMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNo
U2NoZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheWVy
Rmx1c2hTY2hlZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyOTE3QjU1
RjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXllckZsdXNoU2NoZWR1bGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTI5MTdCNTYwMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheWVyRmx1
c2hTY2hlZHVsZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjkxN0I1
NjUxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5M0VBRTFFMTM1NkIyRkUwMDY3QUNGOSAv
KiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI5NDg5RkM1MTJDMDBGMDMwMEQ4M0YwRiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTQ5ODY4MTE5NTM0MTk0MDA3
MkQyQkQgLyogVGV4dFVuZG9JbnNlcnRpb25NYXJrdXBNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXh0VW5kb0luc2VydGlvbk1hcmt1cE1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODkzLDcgKzE3ODg3LDYgQEAKIAkJNDk1ODc4
MUUxMkE1N0RCQzAwNzIzOEFDIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKLQkJCQkyOTE3QjU2NTE0NzM0OTk1MDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlck1hYy5jcHAgKi8sCiAJCQkJMEY1RTIwMDUxOEU3NzFGQzAwM0VDM0U1IC8qIFBs
YXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oICovLAogCQkJCTQ5NTg3ODFGMTJBNTdEREYwMDcyMzhB
QyAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EubW0gKi8sCiAJCQkJMEYxMzE2M0YxNkVEMENE
RTAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzQ29jb2EubW0gKi8sCkBAIC0xNzk2OCw5ICsx
Nzk2MSw2IEBACiAJCQkJNDk1ODc4MUUxMkE1N0RCQzAwNzIzOEFDIC8qIGNvY29hICovLAogCQkJ
CTQ5OUIzRUQ0MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuY3BwICovLAogCQkJ
CTQ5OUIzRUQ1MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuaCAqLywKLQkJCQky
OTE3QjU1RTE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAgKi8sCi0J
CQkJMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLywK
LQkJCQkyOTE3QjU2MDE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVu
dC5oICovLAogCQkJCTdBQTNBNjlEMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuY3BwICov
LAogCQkJCTdBQTNBNjlFMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuaCAqLywKIAkJCQkw
RkRGNDVBNjFCRDFDNkZEMDBFNEZBOEMgLyogUGxhdGZvcm1DQUFuaW1hdGlvbi5jcHAgKi8sCkBA
IC0yOTc4Niw4ICsyOTc3Niw2IEBACiAJCQkJRTE1RkY3RDUxOEM5NTUzODAwRkU0Qzg3IC8qIEtl
eXByZXNzQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDUwQ0VCRjExNTA3M0JCRTAwMkJC
MTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0NTZGQTI3MTFB
RDRBODMwMDIwQjQyMCAvKiBMYWJlbHNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMjkx
N0I1NjIxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTI5MTdCNTYzMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDkxNkZGNzE5NURGNkEwMDA1QUIzNDkgLyog
TGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MDM3MTY0MUE2
NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTZBMDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xh
eWVyRmx1c2hTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiTGF5ZXJGbHVzaFNj
aGVkdWxlci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi12b2lkIExheWVyRmx1c2hT
Y2hlZHVsZXI6OnN1c3BlbmQoKQotewotICAgIGlmIChtX2lzU3VzcGVuZGVkKQotICAgICAgICBy
ZXR1cm47Ci0gICAgCi0gICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7Ci0gICAgaW52YWxpZGF0ZSgp
OwotfQotICAgIAotdm9pZCBMYXllckZsdXNoU2NoZWR1bGVyOjpyZXN1bWUoKQotewotICAgIGlm
ICghbV9pc1N1c3BlbmRlZCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIG1faXNTdXNwZW5k
ZWQgPSBmYWxzZTsKLSAgICBzY2hlZHVsZSgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2No
ZWR1bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5oCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmgJKG5vbmV4aXN0
ZW50KQpAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTGF5ZXJGbHVzaFNjaGVkdWxl
ckNsaWVudC5oIgotI2luY2x1ZGUgIlJ1bkxvb3BPYnNlcnZlci5oIgotI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi1jbGFzcyBMYXllckZs
dXNoU2NoZWR1bGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMYXllckZsdXNoU2NoZWR1
bGVyKTsKLXB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBMYXllckZsdXNoU2NoZWR1bGVyKExh
eWVyRmx1c2hTY2hlZHVsZXJDbGllbnQqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5M
YXllckZsdXNoU2NoZWR1bGVyKCk7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxl
KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnZhbGlkYXRlKCk7Ci0KLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN1c3BlbmQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc3VtZSgp
OwotCi0gICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTdXNwZW5kZWQ7
IH0KLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9p
ZCBsYXllckZsdXNoQ2FsbGJhY2soKTsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIGJvb2wgbV9p
c1N1c3BlbmRlZDsKLSAgICBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50KiBtX2NsaWVudDsKLSAg
ICAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcE9ic2Vy
dmVyPiBtX3J1bkxvb3BPYnNlcnZlcjsKLSNlbmRpZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZs
dXNoU2NoZWR1bGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oCShyZXZpc2lvbiAyMzc1
NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgTGF5ZXJGbHVzaFNj
aGVkdWxlckNsaWVudF9oCi0jZGVmaW5lIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnRfaAotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQgewot
cHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfkxheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQoKSA9IGRl
ZmF1bHQ7Ci0KLXB1YmxpYzoKLSAgICAvLyBGbHVzaCB0aGUgbGF5ZXJzLiBSZXR1cm5zIHRydWUg
b24gc3VjY2Vzcy4KLSAgICB2aXJ0dWFsIGJvb2wgZmx1c2hMYXllcnMoKSA9IDA7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBMYXllckZsdXNoU2NoZWR1bGVyQ2xp
ZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xh
eWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCShyZXZp
c2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2Nv
YS9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDkwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkxheWVyRmx1c2hTY2hlZHVsZXIuaCIKLQotI2luY2x1
ZGUgPHd0Zi9BdXRvZHJhaW5lZFBvb2wuaD4KLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0j
aW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCi0jaW5jbHVkZSAiV2ViQ29yZVRo
cmVhZEludGVybmFsLmgiCi0jaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ0ZCdW5kbGUuaD4KLSNl
bmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBDRlJ1bkxvb3BSZWYgY3VycmVu
dFJ1bkxvb3AoKQotewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgLy8gQSByYWNlIGNv
bmRpdGlvbiBkdXJpbmcgV2ViVmlldyBkZWFsbG9jYXRpb24gY2FuIGxlYWQgdG8gYSBjcmFzaCBp
ZiB0aGUgbGF5ZXIgc3luYyBydW4gbG9vcAotICAgIC8vIG9ic2VydmVyIGlzIGFkZGVkIHRvIHRo
ZSBtYWluIHJ1biBsb29wIDxyZGFyOi8vcHJvYmxlbS85Nzk4NTUwPi4gSG93ZXZlciwgZm9yIHJl
c3BvbnNpdmVuZXNzLAotICAgIC8vIHdlIHN0aWxsIGFsbG93IHRoaXMsIHNlZSA8cmRhcjovL3By
b2JsZW0vNzQwMzMyOD4uIFNpbmNlIHRoZSByYWNlIGNvbmRpdGlvbiBhbmQgc3Vic2VxdWVudAot
ICAgIC8vIGNyYXNoIGFyZSBlc3BlY2lhbGx5IHRyb3VibGVzb21lIGZvciBpQm9va3MsIHdlIG5l
dmVyIGFsbG93IHRoZSBvYnNlcnZlciB0byBiZSBhZGRlZCB0byB0aGUKLSAgICAvLyBtYWluIHJ1
biBsb29wIGluIGlCb29rcy4KLSAgICBpZiAoSU9TQXBwbGljYXRpb246OmlzSUJvb2tzKCkpCi0g
ICAgICAgIHJldHVybiBXZWJUaHJlYWRSdW5Mb29wKCk7Ci0jZW5kaWYKLSAgICByZXR1cm4gQ0ZS
dW5Mb29wR2V0Q3VycmVudCgpOwotfQotCi1MYXllckZsdXNoU2NoZWR1bGVyOjpMYXllckZsdXNo
U2NoZWR1bGVyKExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQqIGNsaWVudCkKLSAgICA6IG1faXNT
dXNwZW5kZWQoZmFsc2UpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCi17Ci0gICAgQVNTRVJUX0FS
RyhjbGllbnQsIGNsaWVudCk7Ci0KLSAgICBtX3J1bkxvb3BPYnNlcnZlciA9IHN0ZDo6bWFrZV91
bmlxdWU8UnVuTG9vcE9ic2VydmVyPihzdGF0aWNfY2FzdDxDRkluZGV4PihSdW5Mb29wT2JzZXJ2
ZXI6OldlbGxLbm93blJ1bkxvb3BPcmRlcnM6OkxheWVyRmx1c2gpLCBbdGhpc10oKSB7Ci0gICAg
ICAgIGlmICh0aGlzLT5pc1N1c3BlbmRlZCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB0aGlzLT5sYXllckZsdXNoQ2FsbGJhY2soKTsKLSAgICB9KTsKLX0KLQotTGF5ZXJGbHVzaFNj
aGVkdWxlcjo6fkxheWVyRmx1c2hTY2hlZHVsZXIoKSA9IGRlZmF1bHQ7Ci0KLXZvaWQgTGF5ZXJG
bHVzaFNjaGVkdWxlcjo6bGF5ZXJGbHVzaENhbGxiYWNrKCkKLXsKLSAgICBBU1NFUlQoIW1faXNT
dXNwZW5kZWQpOwotCi0gICAgQXV0b2RyYWluZWRQb29sIHBvb2w7Ci0gICAgaWYgKG1fY2xpZW50
LT5mbHVzaExheWVycygpKQotICAgICAgICBpbnZhbGlkYXRlKCk7Ci19Ci0KLXZvaWQgTGF5ZXJG
bHVzaFNjaGVkdWxlcjo6c2NoZWR1bGUoKQotewotICAgIGlmIChtX2lzU3VzcGVuZGVkKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX3J1bkxvb3BPYnNlcnZlci0+c2NoZWR1bGUoY3VycmVudFJ1
bkxvb3AoKSk7Ci19Ci0KLXZvaWQgTGF5ZXJGbHVzaFNjaGVkdWxlcjo6aW52YWxpZGF0ZSgpCi17
Ci0gICAgbV9ydW5Mb29wT2JzZXJ2ZXItPmludmFsaWRhdGUoKTsKLX0KLSAgICAKLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46a2V5d29yZHMKIyMgLTEgKzAsMCAj
IwotRGF0ZSBBdXRob3IgSWQgUmV2aXNpb24gSGVhZFVSTApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzc2
MjgpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNCBAQAorMjAxOC0xMC0zMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIExheWVyRmx1c2hTY2hlZHVsZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTEwMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIFJ1bkxvb3BPYnNlcnZl
ciBkaXJlY3RseSBpbnRvIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyIGFuZCByZW1vdmUKKyAg
ICAgICAgYWxsIHRoZSB2aXJ0dWFsIGNydWZ0LgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
RGF0YS5oOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6On5XZWJWaWV3TGF5
ZXJGbHVzaFNjaGVkdWxlcik6IERlbGV0ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAgIChjdXJyZW50UnVuTG9vcCk6Cisg
ICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6V2ViVmlld0xheWVyRmx1c2hTY2hl
ZHVsZXIpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6On5XZWJWaWV3TGF5
ZXJGbHVzaFNjaGVkdWxlcik6CisgICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6
c2NoZWR1bGUpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmludmFsaWRh
dGUpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmxheWVyRmx1c2hDYWxs
YmFjayk6CisKIDIwMTgtMTAtMzAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CiAKICAgICAgICAgRW5hYmxlIEluc3RhbGxBUEkgZm9yIGlPUyB1bmNvbmRpdGlvbmFsbHkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgJKHJl
dmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
d0RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsNiBAQAogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9BVktpdFNQSS5oPgogI2VuZGlmCiAjaW1wb3J0IDxXZWJDb3JlL0FsdGVybmF0aXZl
VGV4dENsaWVudC5oPgotI2ltcG9ydCA8V2ViQ29yZS9MYXllckZsdXNoU2NoZWR1bGVyLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL0xheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5oPgog
I2ltcG9ydCA8d3RmL0xvY2suaD4KQEAgLTUxLDYgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyOwogY2xhc3MgSGlzdG9yeUl0ZW07
CiBjbGFzcyBQYWdlOworY2xhc3MgUnVuTG9vcE9ic2VydmVyOwogY2xhc3MgVGV4dEluZGljYXRv
cldpbmRvdzsKIGNsYXNzIFZhbGlkYXRpb25CdWJibGU7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCkBAIC0xMDksMjkgKzEwOCwyOSBAQCBjbGFz
cyBXZWJTZWxlY3Rpb25TZXJ2aWNlQ29udHJvbGxlcjsKIEBjbGFzcyBXZWJUZXh0VG91Y2hCYXJJ
dGVtQ29udHJvbGxlcjsKICNlbmRpZgogCi1jbGFzcyBXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxl
ciA6IHB1YmxpYyBXZWJDb3JlOjpMYXllckZsdXNoU2NoZWR1bGVyIHsKK2NsYXNzIFdlYlZpZXdM
YXllckZsdXNoU2NoZWR1bGVyIHsKIHB1YmxpYzoKICAgICBXZWJWaWV3TGF5ZXJGbHVzaFNjaGVk
dWxlcihMYXllckZsdXNoQ29udHJvbGxlciopOwotICAgIHZpcnR1YWwgfldlYlZpZXdMYXllckZs
dXNoU2NoZWR1bGVyKCkgeyB9CisgICAgfldlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyKCk7CisK
KyAgICB2b2lkIHNjaGVkdWxlKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKIHByaXZhdGU6
Ci0gICAgdm9pZCBsYXllckZsdXNoQ2FsbGJhY2soKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAg
UmVmUHRyPExheWVyRmx1c2hDb250cm9sbGVyPiBwcm90ZWN0b3IgPSBtX2ZsdXNoQ29udHJvbGxl
cjsKLSAgICAgICAgV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxlcjo6bGF5ZXJGbHVzaENhbGxi
YWNrKCk7Ci0gICAgfQorICAgIHZvaWQgbGF5ZXJGbHVzaENhbGxiYWNrKCk7CiAgICAgCiAgICAg
TGF5ZXJGbHVzaENvbnRyb2xsZXIqIG1fZmx1c2hDb250cm9sbGVyOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpSdW5Mb29wT2JzZXJ2ZXI+IG1fcnVuTG9vcE9ic2VydmVyOwogfTsKIAot
Y2xhc3MgTGF5ZXJGbHVzaENvbnRyb2xsZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxMYXllckZsdXNo
Q29udHJvbGxlcj4sIHB1YmxpYyBXZWJDb3JlOjpMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50IHsK
K2NsYXNzIExheWVyRmx1c2hDb250cm9sbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TGF5ZXJGbHVz
aENvbnRyb2xsZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPExheWVyRmx1c2hDb250cm9s
bGVyPiBjcmVhdGUoV2ViVmlldyogd2ViVmlldykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IExheWVyRmx1c2hDb250cm9sbGVyKHdlYlZpZXcpKTsKICAgICB9CiAgICAgCi0g
ICAgdmlydHVhbCBib29sIGZsdXNoTGF5ZXJzKCk7CisgICAgYm9vbCBmbHVzaExheWVycygpOwog
ICAgIAogICAgIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoKCk7CiAgICAgdm9pZCBpbnZhbGlkYXRl
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0Rh
dGEubW0JKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlld0RhdGEubW0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDEyICszNywxNSBAQAogI2lt
cG9ydCA8SmF2YVNjcmlwdENvcmUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9BbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlz
dG9yeUl0ZW0uaD4KKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcE9ic2VydmVyLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmFsaWRh
dGlvbkJ1YmJsZS5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9S
dW5Mb29wLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2ltcG9ydCAiUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmgiCisjaW1wb3J0ICJXZWJDb3JlVGhyZWFkSW50ZXJuYWwuaCIKICNp
bXBvcnQgIldlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MuaCIKICNlbmRpZgogCkBAIC01OCw2ICs2
MSwyMCBAQAogQk9PTCBhcHBsaWNhdGlvbklzVGVybWluYXRpbmcgPSBOTzsKIGludCBwbHVnaW5E
YXRhYmFzZUNsaWVudENvdW50ID0gMDsKIAorc3RhdGljIENGUnVuTG9vcFJlZiBjdXJyZW50UnVu
TG9vcCgpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBBIHJhY2UgY29uZGl0
aW9uIGR1cmluZyBXZWJWaWV3IGRlYWxsb2NhdGlvbiBjYW4gbGVhZCB0byBhIGNyYXNoIGlmIHRo
ZSBsYXllciBzeW5jIHJ1biBsb29wCisgICAgLy8gb2JzZXJ2ZXIgaXMgYWRkZWQgdG8gdGhlIG1h
aW4gcnVuIGxvb3AgPHJkYXI6Ly9wcm9ibGVtLzk3OTg1NTA+LiBIb3dldmVyLCBmb3IgcmVzcG9u
c2l2ZW5lc3MsCisgICAgLy8gd2Ugc3RpbGwgYWxsb3cgdGhpcywgc2VlIDxyZGFyOi8vcHJvYmxl
bS83NDAzMzI4Pi4gU2luY2UgdGhlIHJhY2UgY29uZGl0aW9uIGFuZCBzdWJzZXF1ZW50CisgICAg
Ly8gY3Jhc2ggYXJlIGVzcGVjaWFsbHkgdHJvdWJsZXNvbWUgZm9yIGlCb29rcywgd2UgbmV2ZXIg
YWxsb3cgdGhlIG9ic2VydmVyIHRvIGJlIGFkZGVkIHRvIHRoZQorICAgIC8vIG1haW4gcnVuIGxv
b3AgaW4gaUJvb2tzLgorICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNJQm9va3Mo
KSkKKyAgICAgICAgcmV0dXJuIFdlYlRocmVhZFJ1bkxvb3AoKTsKKyNlbmRpZgorICAgIHJldHVy
biBDRlJ1bkxvb3BHZXRDdXJyZW50KCk7Cit9CisKIHZvaWQgTGF5ZXJGbHVzaENvbnRyb2xsZXI6
OnNjaGVkdWxlTGF5ZXJGbHVzaCgpCiB7CiAgICAgbV9sYXllckZsdXNoU2NoZWR1bGVyLnNjaGVk
dWxlKCk7CkBAIC03Nyw5ICs5NCwzNCBAQCBMYXllckZsdXNoQ29udHJvbGxlcjo6TGF5ZXJGbHVz
aENvbnRyb2xsCiB9CiAKIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpXZWJWaWV3TGF5ZXJG
bHVzaFNjaGVkdWxlcihMYXllckZsdXNoQ29udHJvbGxlciogZmx1c2hDb250cm9sbGVyKQotICAg
IDogV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxlcihmbHVzaENvbnRyb2xsZXIpCi0gICAgLCBt
X2ZsdXNoQ29udHJvbGxlcihmbHVzaENvbnRyb2xsZXIpCisgICAgOiBtX2ZsdXNoQ29udHJvbGxl
cihmbHVzaENvbnRyb2xsZXIpCit7CisgICAgbV9ydW5Mb29wT2JzZXJ2ZXIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkNvcmU6OlJ1bkxvb3BPYnNlcnZlcj4oc3RhdGljX2Nhc3Q8Q0ZJbmRleD4oV2Vi
Q29yZTo6UnVuTG9vcE9ic2VydmVyOjpXZWxsS25vd25SdW5Mb29wT3JkZXJzOjpMYXllckZsdXNo
KSwgW3RoaXNdKCkgeworICAgICAgICB0aGlzLT5sYXllckZsdXNoQ2FsbGJhY2soKTsKKyAgICB9
KTsKK30KKworV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6On5XZWJWaWV3TGF5ZXJGbHVzaFNj
aGVkdWxlcigpCit7Cit9CisKK3ZvaWQgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OnNjaGVk
dWxlKCkKK3sKKyAgICBtX3J1bkxvb3BPYnNlcnZlci0+c2NoZWR1bGUoY3VycmVudFJ1bkxvb3Ao
KSk7Cit9CisKK3ZvaWQgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmludmFsaWRhdGUoKQor
eworICAgIG1fcnVuTG9vcE9ic2VydmVyLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgV2ViVmll
d0xheWVyRmx1c2hTY2hlZHVsZXI6OmxheWVyRmx1c2hDYWxsYmFjaygpCiB7CisgICAgQGF1dG9y
ZWxlYXNlcG9vbCB7CisgICAgICAgIFJlZlB0cjxMYXllckZsdXNoQ29udHJvbGxlcj4gcHJvdGVj
dG9yID0gbV9mbHVzaENvbnRyb2xsZXI7CisgICAgICAgIGlmIChtX2ZsdXNoQ29udHJvbGxlci0+
Zmx1c2hMYXllcnMoKSkKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICB9CiB9CiAKICNp
ZiBQTEFURk9STShNQUMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353489</attachid>
            <date>2018-10-31 05:34:54 -0700</date>
            <delta_ts>2018-10-31 06:07:10 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remove-layerflushscheduler-5.patch</filename>
            <type>text/plain</type>
            <size>23780</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTEwLTMxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTGF5ZXJGbHVzaFNj
aGVkdWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkxMTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SXQgaXMgb25seSB1c2VkIGluIFdLMS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyQ2xp
ZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvTGF5
ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA6IFJlbW92ZWQuCisKIDIwMTgtMTAtMjkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJSVENdIEVuYWJsZSBWUDgg
YnkgZGVmYXVsdApJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyMzc1NDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0y
NTUsNyArMjU1LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaQog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyLm1tIEBuby11bmlmeQogCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJQb29sLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUFuaW1hdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXll
ci5jcHAKQEAgLTI2Myw3ICsyNjIsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJv
bGxlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb3ZlcmFnZU1hcC5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVHJhbnNm
b3JtYXRpb25NYXRyaXhDQS5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1
c2hTY2hlZHVsZXJNYWMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNB
QW5pbWF0aW9uQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FG
aWx0ZXJzQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXll
ckNvY29hLm1tCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY5Miw4ICs2
OTIsNiBAQAogCQkyNkY5QTgzOTE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkY5
QTgzNzE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjg1RDMyMDgyMDM1RDY1
NjAwNzBEMzJGIC8qIFNlcnZlclRpbWluZ1BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjg4RTgyRjAyMDM1RDRFRDAwQjBEQ0ZGIC8qIFNlcnZl
clRpbWluZ1BhcnNlci5oICovOyB9OwogCQkyOTE0RTMwODFDQUI1QTQ0MDA0OTk2NkYgLyogQWNj
ZXNzaWJpbGl0eUF0dGFjaG1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI5MTRFMzA2MUNBQjVBNDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0
YWNobWVudC5oICovOyB9OwotCQkyOTE3QjU2MjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkyOTE3QjU2MzE0
NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkxN0I1NjAxNDczNDk2QzAwNTJD
OUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyOTNFQUUxRjEzNTZCMkZFMDA2N0FDRjkgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMjk0ODlGQzcxMkMwMEYwMzAwRDgzRjBGIC8qIEFjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTQ4
OUZDNTEyQzAwRjAzMDBEODNGMEYgLyogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCAqLzsgfTsK
IAkJMjk3QkUzRDUxNkMwM0MwODAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
NTI3Q0M5MTE2QkY4QkExMDA5RERBQzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFu
Y2UuaCAqLzsgfTsKQEAgLTY0OTUsMTAgKzY0OTMsNiBAQAogCQkyOERCOUJDNzIwMjBFQTA0MDBF
NTRBMDcgLyogUGVyZm9ybWFuY2VTZXJ2ZXJUaW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFBlcmZvcm1hbmNlU2VydmVyVGltaW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjkxNEUzMDUxQ0FCNUE0NDAwNDk5NjZGIC8qIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlB
dHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkxNEUzMDYxQ0FC
NUE0NDAwNDk5NjZGIC8qIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlBdHRhY2htZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTI5MTdCNTVFMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNo
U2NoZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheWVy
Rmx1c2hTY2hlZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyOTE3QjU1
RjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXllckZsdXNoU2NoZWR1bGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTI5MTdCNTYwMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheWVyRmx1
c2hTY2hlZHVsZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjkxN0I1
NjUxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5M0VBRTFFMTM1NkIyRkUwMDY3QUNGOSAv
KiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI5NDg5RkM1MTJDMDBGMDMwMEQ4M0YwRiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTQ5ODY4MTE5NTM0MTk0MDA3
MkQyQkQgLyogVGV4dFVuZG9JbnNlcnRpb25NYXJrdXBNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXh0VW5kb0luc2VydGlvbk1hcmt1cE1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODkzLDcgKzE3ODg3LDYgQEAKIAkJNDk1ODc4
MUUxMkE1N0RCQzAwNzIzOEFDIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKLQkJCQkyOTE3QjU2NTE0NzM0OTk1MDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlck1hYy5jcHAgKi8sCiAJCQkJMEY1RTIwMDUxOEU3NzFGQzAwM0VDM0U1IC8qIFBs
YXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oICovLAogCQkJCTQ5NTg3ODFGMTJBNTdEREYwMDcyMzhB
QyAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EubW0gKi8sCiAJCQkJMEYxMzE2M0YxNkVEMENE
RTAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzQ29jb2EubW0gKi8sCkBAIC0xNzk2OCw5ICsx
Nzk2MSw2IEBACiAJCQkJNDk1ODc4MUUxMkE1N0RCQzAwNzIzOEFDIC8qIGNvY29hICovLAogCQkJ
CTQ5OUIzRUQ0MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuY3BwICovLAogCQkJ
CTQ5OUIzRUQ1MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuaCAqLywKLQkJCQky
OTE3QjU1RTE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAgKi8sCi0J
CQkJMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLywK
LQkJCQkyOTE3QjU2MDE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVu
dC5oICovLAogCQkJCTdBQTNBNjlEMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuY3BwICov
LAogCQkJCTdBQTNBNjlFMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuaCAqLywKIAkJCQkw
RkRGNDVBNjFCRDFDNkZEMDBFNEZBOEMgLyogUGxhdGZvcm1DQUFuaW1hdGlvbi5jcHAgKi8sCkBA
IC0yOTc4Niw4ICsyOTc3Niw2IEBACiAJCQkJRTE1RkY3RDUxOEM5NTUzODAwRkU0Qzg3IC8qIEtl
eXByZXNzQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDUwQ0VCRjExNTA3M0JCRTAwMkJC
MTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0NTZGQTI3MTFB
RDRBODMwMDIwQjQyMCAvKiBMYWJlbHNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMjkx
N0I1NjIxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTI5MTdCNTYzMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDkxNkZGNzE5NURGNkEwMDA1QUIzNDkgLyog
TGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MDM3MTY0MUE2
NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTZBMDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xh
eWVyRmx1c2hTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiTGF5ZXJGbHVzaFNj
aGVkdWxlci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi12b2lkIExheWVyRmx1c2hT
Y2hlZHVsZXI6OnN1c3BlbmQoKQotewotICAgIGlmIChtX2lzU3VzcGVuZGVkKQotICAgICAgICBy
ZXR1cm47Ci0gICAgCi0gICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7Ci0gICAgaW52YWxpZGF0ZSgp
OwotfQotICAgIAotdm9pZCBMYXllckZsdXNoU2NoZWR1bGVyOjpyZXN1bWUoKQotewotICAgIGlm
ICghbV9pc1N1c3BlbmRlZCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIG1faXNTdXNwZW5k
ZWQgPSBmYWxzZTsKLSAgICBzY2hlZHVsZSgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2No
ZWR1bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5oCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmgJKG5vbmV4aXN0
ZW50KQpAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTGF5ZXJGbHVzaFNjaGVkdWxl
ckNsaWVudC5oIgotI2luY2x1ZGUgIlJ1bkxvb3BPYnNlcnZlci5oIgotI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi1jbGFzcyBMYXllckZs
dXNoU2NoZWR1bGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMYXllckZsdXNoU2NoZWR1
bGVyKTsKLXB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBMYXllckZsdXNoU2NoZWR1bGVyKExh
eWVyRmx1c2hTY2hlZHVsZXJDbGllbnQqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5M
YXllckZsdXNoU2NoZWR1bGVyKCk7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxl
KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnZhbGlkYXRlKCk7Ci0KLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN1c3BlbmQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc3VtZSgp
OwotCi0gICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTdXNwZW5kZWQ7
IH0KLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9p
ZCBsYXllckZsdXNoQ2FsbGJhY2soKTsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIGJvb2wgbV9p
c1N1c3BlbmRlZDsKLSAgICBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50KiBtX2NsaWVudDsKLSAg
ICAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcE9ic2Vy
dmVyPiBtX3J1bkxvb3BPYnNlcnZlcjsKLSNlbmRpZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZs
dXNoU2NoZWR1bGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oCShyZXZpc2lvbiAyMzc1
NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgTGF5ZXJGbHVzaFNj
aGVkdWxlckNsaWVudF9oCi0jZGVmaW5lIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnRfaAotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQgewot
cHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfkxheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQoKSA9IGRl
ZmF1bHQ7Ci0KLXB1YmxpYzoKLSAgICAvLyBGbHVzaCB0aGUgbGF5ZXJzLiBSZXR1cm5zIHRydWUg
b24gc3VjY2Vzcy4KLSAgICB2aXJ0dWFsIGJvb2wgZmx1c2hMYXllcnMoKSA9IDA7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBMYXllckZsdXNoU2NoZWR1bGVyQ2xp
ZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xh
eWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCShyZXZp
c2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2Nv
YS9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDkwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkxheWVyRmx1c2hTY2hlZHVsZXIuaCIKLQotI2luY2x1
ZGUgPHd0Zi9BdXRvZHJhaW5lZFBvb2wuaD4KLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0j
aW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCi0jaW5jbHVkZSAiV2ViQ29yZVRo
cmVhZEludGVybmFsLmgiCi0jaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ0ZCdW5kbGUuaD4KLSNl
bmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBDRlJ1bkxvb3BSZWYgY3VycmVu
dFJ1bkxvb3AoKQotewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgLy8gQSByYWNlIGNv
bmRpdGlvbiBkdXJpbmcgV2ViVmlldyBkZWFsbG9jYXRpb24gY2FuIGxlYWQgdG8gYSBjcmFzaCBp
ZiB0aGUgbGF5ZXIgc3luYyBydW4gbG9vcAotICAgIC8vIG9ic2VydmVyIGlzIGFkZGVkIHRvIHRo
ZSBtYWluIHJ1biBsb29wIDxyZGFyOi8vcHJvYmxlbS85Nzk4NTUwPi4gSG93ZXZlciwgZm9yIHJl
c3BvbnNpdmVuZXNzLAotICAgIC8vIHdlIHN0aWxsIGFsbG93IHRoaXMsIHNlZSA8cmRhcjovL3By
b2JsZW0vNzQwMzMyOD4uIFNpbmNlIHRoZSByYWNlIGNvbmRpdGlvbiBhbmQgc3Vic2VxdWVudAot
ICAgIC8vIGNyYXNoIGFyZSBlc3BlY2lhbGx5IHRyb3VibGVzb21lIGZvciBpQm9va3MsIHdlIG5l
dmVyIGFsbG93IHRoZSBvYnNlcnZlciB0byBiZSBhZGRlZCB0byB0aGUKLSAgICAvLyBtYWluIHJ1
biBsb29wIGluIGlCb29rcy4KLSAgICBpZiAoSU9TQXBwbGljYXRpb246OmlzSUJvb2tzKCkpCi0g
ICAgICAgIHJldHVybiBXZWJUaHJlYWRSdW5Mb29wKCk7Ci0jZW5kaWYKLSAgICByZXR1cm4gQ0ZS
dW5Mb29wR2V0Q3VycmVudCgpOwotfQotCi1MYXllckZsdXNoU2NoZWR1bGVyOjpMYXllckZsdXNo
U2NoZWR1bGVyKExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQqIGNsaWVudCkKLSAgICA6IG1faXNT
dXNwZW5kZWQoZmFsc2UpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCi17Ci0gICAgQVNTRVJUX0FS
RyhjbGllbnQsIGNsaWVudCk7Ci0KLSAgICBtX3J1bkxvb3BPYnNlcnZlciA9IHN0ZDo6bWFrZV91
bmlxdWU8UnVuTG9vcE9ic2VydmVyPihzdGF0aWNfY2FzdDxDRkluZGV4PihSdW5Mb29wT2JzZXJ2
ZXI6OldlbGxLbm93blJ1bkxvb3BPcmRlcnM6OkxheWVyRmx1c2gpLCBbdGhpc10oKSB7Ci0gICAg
ICAgIGlmICh0aGlzLT5pc1N1c3BlbmRlZCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB0aGlzLT5sYXllckZsdXNoQ2FsbGJhY2soKTsKLSAgICB9KTsKLX0KLQotTGF5ZXJGbHVzaFNj
aGVkdWxlcjo6fkxheWVyRmx1c2hTY2hlZHVsZXIoKSA9IGRlZmF1bHQ7Ci0KLXZvaWQgTGF5ZXJG
bHVzaFNjaGVkdWxlcjo6bGF5ZXJGbHVzaENhbGxiYWNrKCkKLXsKLSAgICBBU1NFUlQoIW1faXNT
dXNwZW5kZWQpOwotCi0gICAgQXV0b2RyYWluZWRQb29sIHBvb2w7Ci0gICAgaWYgKG1fY2xpZW50
LT5mbHVzaExheWVycygpKQotICAgICAgICBpbnZhbGlkYXRlKCk7Ci19Ci0KLXZvaWQgTGF5ZXJG
bHVzaFNjaGVkdWxlcjo6c2NoZWR1bGUoKQotewotICAgIGlmIChtX2lzU3VzcGVuZGVkKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX3J1bkxvb3BPYnNlcnZlci0+c2NoZWR1bGUoY3VycmVudFJ1
bkxvb3AoKSk7Ci19Ci0KLXZvaWQgTGF5ZXJGbHVzaFNjaGVkdWxlcjo6aW52YWxpZGF0ZSgpCi17
Ci0gICAgbV9ydW5Mb29wT2JzZXJ2ZXItPmludmFsaWRhdGUoKTsKLX0KLSAgICAKLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46a2V5d29yZHMKIyMgLTEgKzAsMCAj
IwotRGF0ZSBBdXRob3IgSWQgUmV2aXNpb24gSGVhZFVSTApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2VDb2NvYS5jcHAJKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oIgorI2luY2x1ZGUg
IlJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCIKIAogQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVH
SU4KIApJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMjM3NjI4KQor
KysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTgtMTAtMzEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29t
PgorCisgICAgICAgIFJlbW92ZSBMYXllckZsdXNoU2NoZWR1bGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTExMDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBSdW5Mb29wT2JzZXJ2ZXIgZGly
ZWN0bHkgaW50byBXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlciBhbmQgcmVtb3ZlCisgICAgICAg
IGFsbCB0aGUgdmlydHVhbCBjcnVmdC4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEu
aDoKKyAgICAgICAgKFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjp+V2ViVmlld0xheWVyRmx1
c2hTY2hlZHVsZXIpOiBEZWxldGVkLgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXdEYXRhLm1tOgorICAgICAgICAoY3VycmVudFJ1bkxvb3ApOgorICAgICAg
ICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OldlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVy
KToKKyAgICAgICAgKFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjp+V2ViVmlld0xheWVyRmx1
c2hTY2hlZHVsZXIpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OnNjaGVk
dWxlKToKKyAgICAgICAgKFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjppbnZhbGlkYXRlKToK
KyAgICAgICAgKFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpsYXllckZsdXNoQ2FsbGJhY2sp
OgorCiAyMDE4LTEwLTMwICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIEVuYWJsZSBJbnN0YWxsQVBJIGZvciBpT1MgdW5jb25kaXRpb25hbGx5CkluZGV4OiBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCShyZXZpc2lv
biAyMzc1NDYpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRh
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDggKzM0LDYgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29j
b2EvQVZLaXRTUEkuaD4KICNlbmRpZgogI2ltcG9ydCA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRleHRD
bGllbnQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvTGF5ZXJGbHVzaFNjaGVkdWxlci5oPgotI2ltcG9y
dCA8V2ViQ29yZS9MYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVLZXlib2FyZFVJTW9kZS5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4KICNpbXBv
cnQgPHd0Zi9Mb2NrLmg+CkBAIC01MSw2ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjsKIGNsYXNzIEhpc3RvcnlJdGVtOwogY2xh
c3MgUGFnZTsKK2NsYXNzIFJ1bkxvb3BPYnNlcnZlcjsKIGNsYXNzIFRleHRJbmRpY2F0b3JXaW5k
b3c7CiBjbGFzcyBWYWxpZGF0aW9uQnViYmxlOwogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQpAQCAtMTA5LDI5ICsxMDgsMjkgQEAgY2xhc3MgV2Vi
U2VsZWN0aW9uU2VydmljZUNvbnRyb2xsZXI7CiBAY2xhc3MgV2ViVGV4dFRvdWNoQmFySXRlbUNv
bnRyb2xsZXI7CiAjZW5kaWYKIAotY2xhc3MgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXIgOiBw
dWJsaWMgV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxlciB7CitjbGFzcyBXZWJWaWV3TGF5ZXJG
bHVzaFNjaGVkdWxlciB7CiBwdWJsaWM6CiAgICAgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXIo
TGF5ZXJGbHVzaENvbnRyb2xsZXIqKTsKLSAgICB2aXJ0dWFsIH5XZWJWaWV3TGF5ZXJGbHVzaFNj
aGVkdWxlcigpIHsgfQorICAgIH5XZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcigpOworCisgICAg
dm9pZCBzY2hlZHVsZSgpOworICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiBwcml2YXRlOgotICAg
IHZvaWQgbGF5ZXJGbHVzaENhbGxiYWNrKCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIFJlZlB0
cjxMYXllckZsdXNoQ29udHJvbGxlcj4gcHJvdGVjdG9yID0gbV9mbHVzaENvbnRyb2xsZXI7Ci0g
ICAgICAgIFdlYkNvcmU6OkxheWVyRmx1c2hTY2hlZHVsZXI6OmxheWVyRmx1c2hDYWxsYmFjaygp
OwotICAgIH0KKyAgICB2b2lkIGxheWVyRmx1c2hDYWxsYmFjaygpOwogICAgIAogICAgIExheWVy
Rmx1c2hDb250cm9sbGVyKiBtX2ZsdXNoQ29udHJvbGxlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6UnVuTG9vcE9ic2VydmVyPiBtX3J1bkxvb3BPYnNlcnZlcjsKIH07CiAKLWNsYXNz
IExheWVyRmx1c2hDb250cm9sbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TGF5ZXJGbHVzaENvbnRy
b2xsZXI+LCBwdWJsaWMgV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudCB7CitjbGFz
cyBMYXllckZsdXNoQ29udHJvbGxlciA6IHB1YmxpYyBSZWZDb3VudGVkPExheWVyRmx1c2hDb250
cm9sbGVyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxMYXllckZsdXNoQ29udHJvbGxlcj4g
Y3JlYXRlKFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBMYXllckZsdXNoQ29udHJvbGxlcih3ZWJWaWV3KSk7CiAgICAgfQogICAgIAotICAgIHZp
cnR1YWwgYm9vbCBmbHVzaExheWVycygpOworICAgIGJvb2wgZmx1c2hMYXllcnMoKTsKICAgICAK
ICAgICB2b2lkIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpJ
bmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1t
CShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXdEYXRhLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMiArMzcsMTUgQEAKICNpbXBvcnQg
PEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUv
QWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3RvcnlJ
dGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3BPYnNlcnZlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZhbGlkYXRpb25C
dWJibGUuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9v
cC5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oIgorI2ltcG9ydCAiV2ViQ29yZVRocmVhZEludGVybmFsLmgiCiAjaW1wb3J0
ICJXZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLmgiCiAjZW5kaWYKIApAQCAtNTgsNiArNjEsMjAg
QEAKIEJPT0wgYXBwbGljYXRpb25Jc1Rlcm1pbmF0aW5nID0gTk87CiBpbnQgcGx1Z2luRGF0YWJh
c2VDbGllbnRDb3VudCA9IDA7CiAKK3N0YXRpYyBDRlJ1bkxvb3BSZWYgY3VycmVudFJ1bkxvb3Ao
KQoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLy8gQSByYWNlIGNvbmRpdGlvbiBk
dXJpbmcgV2ViVmlldyBkZWFsbG9jYXRpb24gY2FuIGxlYWQgdG8gYSBjcmFzaCBpZiB0aGUgbGF5
ZXIgc3luYyBydW4gbG9vcAorICAgIC8vIG9ic2VydmVyIGlzIGFkZGVkIHRvIHRoZSBtYWluIHJ1
biBsb29wIDxyZGFyOi8vcHJvYmxlbS85Nzk4NTUwPi4gSG93ZXZlciwgZm9yIHJlc3BvbnNpdmVu
ZXNzLAorICAgIC8vIHdlIHN0aWxsIGFsbG93IHRoaXMsIHNlZSA8cmRhcjovL3Byb2JsZW0vNzQw
MzMyOD4uIFNpbmNlIHRoZSByYWNlIGNvbmRpdGlvbiBhbmQgc3Vic2VxdWVudAorICAgIC8vIGNy
YXNoIGFyZSBlc3BlY2lhbGx5IHRyb3VibGVzb21lIGZvciBpQm9va3MsIHdlIG5ldmVyIGFsbG93
IHRoZSBvYnNlcnZlciB0byBiZSBhZGRlZCB0byB0aGUKKyAgICAvLyBtYWluIHJ1biBsb29wIGlu
IGlCb29rcy4KKyAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzSUJvb2tzKCkpCisg
ICAgICAgIHJldHVybiBXZWJUaHJlYWRSdW5Mb29wKCk7CisjZW5kaWYKKyAgICByZXR1cm4gQ0ZS
dW5Mb29wR2V0Q3VycmVudCgpOworfQorCiB2b2lkIExheWVyRmx1c2hDb250cm9sbGVyOjpzY2hl
ZHVsZUxheWVyRmx1c2goKQogewogICAgIG1fbGF5ZXJGbHVzaFNjaGVkdWxlci5zY2hlZHVsZSgp
OwpAQCAtNzcsOSArOTQsMzQgQEAgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OkxheWVyRmx1c2hDb250
cm9sbAogfQogCiBXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6V2ViVmlld0xheWVyRmx1c2hT
Y2hlZHVsZXIoTGF5ZXJGbHVzaENvbnRyb2xsZXIqIGZsdXNoQ29udHJvbGxlcikKLSAgICA6IFdl
YkNvcmU6OkxheWVyRmx1c2hTY2hlZHVsZXIoZmx1c2hDb250cm9sbGVyKQotICAgICwgbV9mbHVz
aENvbnRyb2xsZXIoZmx1c2hDb250cm9sbGVyKQorICAgIDogbV9mbHVzaENvbnRyb2xsZXIoZmx1
c2hDb250cm9sbGVyKQoreworICAgIG1fcnVuTG9vcE9ic2VydmVyID0gc3RkOjptYWtlX3VuaXF1
ZTxXZWJDb3JlOjpSdW5Mb29wT2JzZXJ2ZXI+KHN0YXRpY19jYXN0PENGSW5kZXg+KFdlYkNvcmU6
OlJ1bkxvb3BPYnNlcnZlcjo6V2VsbEtub3duUnVuTG9vcE9yZGVyczo6TGF5ZXJGbHVzaCksIFt0
aGlzXSgpIHsKKyAgICAgICAgdGhpcy0+bGF5ZXJGbHVzaENhbGxiYWNrKCk7CisgICAgfSk7Cit9
CisKK1dlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjp+V2ViVmlld0xheWVyRmx1c2hTY2hlZHVs
ZXIoKQoreworfQorCit2b2lkIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpzY2hlZHVsZSgp
Cit7CisgICAgbV9ydW5Mb29wT2JzZXJ2ZXItPnNjaGVkdWxlKGN1cnJlbnRSdW5Mb29wKCkpOwor
fQorCit2b2lkIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjppbnZhbGlkYXRlKCkKK3sKKyAg
ICBtX3J1bkxvb3BPYnNlcnZlci0+aW52YWxpZGF0ZSgpOworfQorCit2b2lkIFdlYlZpZXdMYXll
ckZsdXNoU2NoZWR1bGVyOjpsYXllckZsdXNoQ2FsbGJhY2soKQogeworICAgIEBhdXRvcmVsZWFz
ZXBvb2wgeworICAgICAgICBSZWZQdHI8TGF5ZXJGbHVzaENvbnRyb2xsZXI+IHByb3RlY3RvciA9
IG1fZmx1c2hDb250cm9sbGVyOworICAgICAgICBpZiAobV9mbHVzaENvbnRyb2xsZXItPmZsdXNo
TGF5ZXJzKCkpCisgICAgICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAgfQogfQogCiAjaWYgUExB
VEZPUk0oTUFDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353490</attachid>
            <date>2018-10-31 06:07:10 -0700</date>
            <delta_ts>2018-10-31 06:27:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remove-layerflushscheduler-6.patch</filename>
            <type>text/plain</type>
            <size>25387</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTEwLTMxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTGF5ZXJGbHVzaFNj
aGVkdWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkxMTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SXQgaXMgb25seSB1c2VkIGluIFdLMS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyQ2xp
ZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvTGF5
ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA6IFJlbW92ZWQuCisKIDIwMTgtMTAtMjkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJSVENdIEVuYWJsZSBWUDgg
YnkgZGVmYXVsdApJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyMzc1NDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0y
NTUsNyArMjU1LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaQog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyLm1tIEBuby11bmlmeQogCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJQb29sLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUFuaW1hdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXll
ci5jcHAKQEAgLTI2Myw3ICsyNjIsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJv
bGxlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb3ZlcmFnZU1hcC5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVHJhbnNm
b3JtYXRpb25NYXRyaXhDQS5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1
c2hTY2hlZHVsZXJNYWMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNB
QW5pbWF0aW9uQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FG
aWx0ZXJzQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXll
ckNvY29hLm1tCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY5Miw4ICs2
OTIsNiBAQAogCQkyNkY5QTgzOTE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkY5
QTgzNzE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjg1RDMyMDgyMDM1RDY1
NjAwNzBEMzJGIC8qIFNlcnZlclRpbWluZ1BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjg4RTgyRjAyMDM1RDRFRDAwQjBEQ0ZGIC8qIFNlcnZl
clRpbWluZ1BhcnNlci5oICovOyB9OwogCQkyOTE0RTMwODFDQUI1QTQ0MDA0OTk2NkYgLyogQWNj
ZXNzaWJpbGl0eUF0dGFjaG1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI5MTRFMzA2MUNBQjVBNDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0
YWNobWVudC5oICovOyB9OwotCQkyOTE3QjU2MjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkyOTE3QjU2MzE0
NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkxN0I1NjAxNDczNDk2QzAwNTJD
OUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyOTNFQUUxRjEzNTZCMkZFMDA2N0FDRjkgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMjk0ODlGQzcxMkMwMEYwMzAwRDgzRjBGIC8qIEFjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTQ4
OUZDNTEyQzAwRjAzMDBEODNGMEYgLyogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCAqLzsgfTsK
IAkJMjk3QkUzRDUxNkMwM0MwODAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
NTI3Q0M5MTE2QkY4QkExMDA5RERBQzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFu
Y2UuaCAqLzsgfTsKQEAgLTI5MzcsNyArMjkzNSw3IEBACiAJCUExNDgzMkM0MTg3RjY2M0MwMERB
NjNBNiAvKiBXS1ZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExNDgzMkE5MTg3RjUwODcwMERBNjNBNiAvKiBXS1ZpZXcuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTQ4MzJDNjE4N0Y2NjhGMDBE
QTYzQTYgLyogV0tWaWV3UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTE0ODMyQUIxODdGNTA4NzAwREE2M0E2IC8qIFdLVmlld1ByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTQ4
MzJDNzE4N0Y2NkM4MDBEQTYzQTYgLyogV2ViQ29yZVRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE0ODMyOTkxODdGNTA4NzAwREE2M0E2IC8q
IFdlYkNvcmVUaHJlYWQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQlBMTQ4MzJDOTE4N0Y2NzZCMDBEQTYzQTYgLyogV2ViQ29yZVRocmVhZEludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTQ4
MzI5QjE4N0Y1MDg3MDBEQTYzQTYgLyogV2ViQ29yZVRocmVhZEludGVybmFsLmggKi87IH07CisJ
CUExNDgzMkM5MTg3RjY3NkIwMERBNjNBNiAvKiBXZWJDb3JlVGhyZWFkSW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExNDgzMjlCMTg3RjUw
ODcwMERBNjNBNiAvKiBXZWJDb3JlVGhyZWFkSW50ZXJuYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTQ4MzJDQTE4N0Y2NzgwMDBEQTYzQTYg
LyogV2ViQ29yZVRocmVhZE1lc3NhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExNDgzMjlDMTg3RjUwODcwMERBNjNBNiAvKiBXZWJDb3JlVGhyZWFk
TWVzc2FnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUExNDgzMkNDMTg3RjY3QzQwMERBNjNBNiAvKiBXZWJDb3JlVGhyZWFkUnVuLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTQ4MzI5RTE4N0Y1MDg3
MDBEQTYzQTYgLyogV2ViQ29yZVRocmVhZFJ1bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExNDgzMkNGMTg3RjY4NDcwMERBNjNBNiAvKiBXZWJD
b3JlVGhyZWFkU3lzdGVtSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTQ4MzJBMTE4N0Y1MDg3MDBEQTYzQTYgLyogV2ViQ29yZVRocmVh
ZFN5c3RlbUludGVyZmFjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC02NDk1LDEwICs2NDkzLDYgQEAKIAkJMjhEQjlCQzcyMDIwRUEwNDAwRTU0
QTA3IC8qIFBlcmZvcm1hbmNlU2VydmVyVGltaW5nLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBQZXJmb3JtYW5jZVNlcnZlclRpbWluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTI5MTRFMzA1MUNBQjVBNDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5QXR0
YWNobWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MTRFMzA2MUNBQjVB
NDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkyOTE3QjU1RTE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNj
aGVkdWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXllckZs
dXNoU2NoZWR1bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjkxN0I1NUYx
NDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGF5ZXJGbHVzaFNjaGVkdWxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkyOTE3QjU2MDE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVk
dWxlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXllckZsdXNo
U2NoZWR1bGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTI5MTdCNTY1
MTQ3MzQ5OTUwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyOTQ4OUZDNTEyQzAwRjAzMDBEODNGMEYgLyogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjk0OTg2ODExOTUzNDE5NDAwNzJE
MkJEIC8qIFRleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dFVuZG9JbnNlcnRpb25NYXJrdXBNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzg5Myw3ICsxNzg4Nyw2IEBACiAJCTQ5NTg3ODFF
MTJBNTdEQkMwMDcyMzhBQyAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJMjkxN0I1NjUxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hT
Y2hlZHVsZXJNYWMuY3BwICovLAogCQkJCTBGNUUyMDA1MThFNzcxRkMwMDNFQzNFNSAvKiBQbGF0
Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaCAqLywKIAkJCQk0OTU4NzgxRjEyQTU3RERGMDA3MjM4QUMg
LyogUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hLm1tICovLAogCQkJCTBGMTMxNjNGMTZFRDBDREUw
MDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVyc0NvY29hLm1tICovLApAQCAtMTc5NjgsOSArMTc5
NjEsNiBAQAogCQkJCTQ5NTg3ODFFMTJBNTdEQkMwMDcyMzhBQyAvKiBjb2NvYSAqLywKIAkJCQk0
OTlCM0VENDEyOENEMzE0MDBFNzI2QzIgLyogR3JhcGhpY3NMYXllckNBLmNwcCAqLywKIAkJCQk0
OTlCM0VENTEyOENEMzE0MDBFNzI2QzIgLyogR3JhcGhpY3NMYXllckNBLmggKi8sCi0JCQkJMjkx
N0I1NUUxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuY3BwICovLAotCQkJ
CTI5MTdCNTVGMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmggKi8sCi0J
CQkJMjkxN0I1NjAxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQu
aCAqLywKIAkJCQk3QUEzQTY5RDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmNwcCAqLywK
IAkJCQk3QUEzQTY5RTE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggKi8sCiAJCQkJMEZE
RjQ1QTYxQkQxQzZGRDAwRTRGQThDIC8qIFBsYXRmb3JtQ0FBbmltYXRpb24uY3BwICovLApAQCAt
Mjk3ODYsOCArMjk3NzYsNiBAQAogCQkJCUUxNUZGN0Q1MThDOTU1MzgwMEZFNEM4NyAvKiBLZXlw
cmVzc0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MENFQkYxMTUwNzNCQkUwMDJCQjE0
OSAvKiBMYWJlbGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNDU2RkEyNzExQUQ0
QTgzMDAyMEI0MjAgLyogTGFiZWxzTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTI5MTdC
NTYyMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmggaW4gSGVhZGVycyAq
LywKLQkJCQkyOTE3QjU2MzE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5MTZGRjcxOTVERjZBMDAwNUFCMzQ5IC8qIExh
eWVyRmx1c2hUaHJvdHRsZVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1ODAzNzE2NDFBNjZG
MUQzMDBCQUY1MTkgLyogTGF5ZXJGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2
QTAxOTRCNTlCNjAwMUNCRDI0IC8qIExheWVyUG9vbC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXll
ckZsdXNoU2NoZWR1bGVyLmNwcAkocmV2aXNpb24gMjM3NTQ2KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAJKG5vbmV4aXN0ZW50
KQpAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIkxheWVyRmx1c2hTY2hl
ZHVsZXIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotdm9pZCBMYXllckZsdXNoU2No
ZWR1bGVyOjpzdXNwZW5kKCkKLXsKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkKLSAgICAgICAgcmV0
dXJuOwotICAgIAotICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOwotICAgIGludmFsaWRhdGUoKTsK
LX0KLSAgICAKLXZvaWQgTGF5ZXJGbHVzaFNjaGVkdWxlcjo6cmVzdW1lKCkKLXsKLSAgICBpZiAo
IW1faXNTdXNwZW5kZWQpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX2lzU3VzcGVuZGVk
ID0gZmFsc2U7Ci0gICAgc2NoZWR1bGUoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVk
dWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0xheWVyRmx1c2hTY2hlZHVsZXIuaAkocmV2aXNpb24gMjM3NTQ2KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5oCShub25leGlzdGVu
dCkKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkxheWVyRmx1c2hTY2hlZHVsZXJD
bGllbnQuaCIKLSNpbmNsdWRlICJSdW5Mb29wT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotY2xhc3MgTGF5ZXJGbHVz
aFNjaGVkdWxlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTGF5ZXJGbHVzaFNjaGVkdWxl
cik7Ci1wdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgTGF5ZXJGbHVzaFNjaGVkdWxlcihMYXll
ckZsdXNoU2NoZWR1bGVyQ2xpZW50Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+TGF5
ZXJGbHVzaFNjaGVkdWxlcigpOwotCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZSgp
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwotCi0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzdXNwZW5kKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXN1bWUoKTsK
LQotICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU3VzcGVuZGVkOyB9
Ci0KLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQg
bGF5ZXJGbHVzaENhbGxiYWNrKCk7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBib29sIG1faXNT
dXNwZW5kZWQ7Ci0gICAgTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudCogbV9jbGllbnQ7Ci0gICAg
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgc3RkOjp1bmlxdWVfcHRyPFJ1bkxvb3BPYnNlcnZl
cj4gbV9ydW5Mb29wT2JzZXJ2ZXI7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVz
aFNjaGVkdWxlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaAkocmV2aXNpb24gMjM3NTQ2
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVk
dWxlckNsaWVudC5oCShub25leGlzdGVudCkKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIExheWVyRmx1c2hTY2hl
ZHVsZXJDbGllbnRfaAotI2RlZmluZSBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50X2gKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50IHsKLXBy
b3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5MYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50KCkgPSBkZWZh
dWx0OwotCi1wdWJsaWM6Ci0gICAgLy8gRmx1c2ggdGhlIGxheWVycy4gUmV0dXJucyB0cnVlIG9u
IHN1Y2Nlc3MuCi0gICAgdmlydHVhbCBib29sIGZsdXNoTGF5ZXJzKCkgPSAwOwotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVu
dF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9MYXll
ckZsdXNoU2NoZWR1bGVyTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcAkocmV2aXNp
b24gMjM3NTQ2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2Ev
TGF5ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw5MCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJMYXllckZsdXNoU2NoZWR1bGVyLmgiCi0KLSNpbmNsdWRl
IDx3dGYvQXV0b2RyYWluZWRQb29sLmg+Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotI2lu
Y2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgotI2luY2x1ZGUgIldlYkNvcmVUaHJl
YWRJbnRlcm5hbC5oIgotI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NGQnVuZGxlLmg+Ci0jZW5k
aWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgQ0ZSdW5Mb29wUmVmIGN1cnJlbnRS
dW5Mb29wKCkKLXsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIC8vIEEgcmFjZSBjb25k
aXRpb24gZHVyaW5nIFdlYlZpZXcgZGVhbGxvY2F0aW9uIGNhbiBsZWFkIHRvIGEgY3Jhc2ggaWYg
dGhlIGxheWVyIHN5bmMgcnVuIGxvb3AKLSAgICAvLyBvYnNlcnZlciBpcyBhZGRlZCB0byB0aGUg
bWFpbiBydW4gbG9vcCA8cmRhcjovL3Byb2JsZW0vOTc5ODU1MD4uIEhvd2V2ZXIsIGZvciByZXNw
b25zaXZlbmVzcywKLSAgICAvLyB3ZSBzdGlsbCBhbGxvdyB0aGlzLCBzZWUgPHJkYXI6Ly9wcm9i
bGVtLzc0MDMzMjg+LiBTaW5jZSB0aGUgcmFjZSBjb25kaXRpb24gYW5kIHN1YnNlcXVlbnQKLSAg
ICAvLyBjcmFzaCBhcmUgZXNwZWNpYWxseSB0cm91Ymxlc29tZSBmb3IgaUJvb2tzLCB3ZSBuZXZl
ciBhbGxvdyB0aGUgb2JzZXJ2ZXIgdG8gYmUgYWRkZWQgdG8gdGhlCi0gICAgLy8gbWFpbiBydW4g
bG9vcCBpbiBpQm9va3MuCi0gICAgaWYgKElPU0FwcGxpY2F0aW9uOjppc0lCb29rcygpKQotICAg
ICAgICByZXR1cm4gV2ViVGhyZWFkUnVuTG9vcCgpOwotI2VuZGlmCi0gICAgcmV0dXJuIENGUnVu
TG9vcEdldEN1cnJlbnQoKTsKLX0KLQotTGF5ZXJGbHVzaFNjaGVkdWxlcjo6TGF5ZXJGbHVzaFNj
aGVkdWxlcihMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX2lzU3Vz
cGVuZGVkKGZhbHNlKQotICAgICwgbV9jbGllbnQoY2xpZW50KQotewotICAgIEFTU0VSVF9BUkco
Y2xpZW50LCBjbGllbnQpOwotCi0gICAgbV9ydW5Mb29wT2JzZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPFJ1bkxvb3BPYnNlcnZlcj4oc3RhdGljX2Nhc3Q8Q0ZJbmRleD4oUnVuTG9vcE9ic2VydmVy
OjpXZWxsS25vd25SdW5Mb29wT3JkZXJzOjpMYXllckZsdXNoKSwgW3RoaXNdKCkgewotICAgICAg
ICBpZiAodGhpcy0+aXNTdXNwZW5kZWQoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
dGhpcy0+bGF5ZXJGbHVzaENhbGxiYWNrKCk7Ci0gICAgfSk7Ci19Ci0KLUxheWVyRmx1c2hTY2hl
ZHVsZXI6On5MYXllckZsdXNoU2NoZWR1bGVyKCkgPSBkZWZhdWx0OwotCi12b2lkIExheWVyRmx1
c2hTY2hlZHVsZXI6OmxheWVyRmx1c2hDYWxsYmFjaygpCi17Ci0gICAgQVNTRVJUKCFtX2lzU3Vz
cGVuZGVkKTsKLQotICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOwotICAgIGlmIChtX2NsaWVudC0+
Zmx1c2hMYXllcnMoKSkKLSAgICAgICAgaW52YWxpZGF0ZSgpOwotfQotCi12b2lkIExheWVyRmx1
c2hTY2hlZHVsZXI6OnNjaGVkdWxlKCkKLXsKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9ydW5Mb29wT2JzZXJ2ZXItPnNjaGVkdWxlKGN1cnJlbnRSdW5M
b29wKCkpOwotfQotCi12b2lkIExheWVyRmx1c2hTY2hlZHVsZXI6OmludmFsaWRhdGUoKQotewot
ICAgIG1fcnVuTG9vcE9ic2VydmVyLT5pbnZhbGlkYXRlKCk7Ci19Ci0gICAgCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9jb2NvYS9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgcHJvcGVydHkKRGVsZXRlZDogc3ZuOmtleXdvcmRzCiMjIC0xICswLDAgIyMK
LURhdGUgQXV0aG9yIElkIFJldmlzaW9uIEhlYWRVUkwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBw
cm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlQ29jb2EuY3BwCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaCIKKyNpbmNsdWRlICJS
ZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCiAKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lO
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzYyOCkKKysr
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE4LTEwLTMxICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgTGF5ZXJGbHVzaFNjaGVkdWxlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMTAzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgUnVuTG9vcE9ic2VydmVyIGRpcmVj
dGx5IGludG8gV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXIgYW5kIHJlbW92ZQorICAgICAgICBh
bGwgdGhlIHZpcnR1YWwgY3J1ZnQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6
CisgICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6fldlYlZpZXdMYXllckZsdXNo
U2NoZWR1bGVyKTogRGVsZXRlZC4KKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3RGF0YS5tbToKKyAgICAgICAgKGN1cnJlbnRSdW5Mb29wKToKKyAgICAgICAg
KFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcik6
CisgICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6fldlYlZpZXdMYXllckZsdXNo
U2NoZWR1bGVyKToKKyAgICAgICAgKFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpzY2hlZHVs
ZSk6CisgICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6aW52YWxpZGF0ZSk6Cisg
ICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6bGF5ZXJGbHVzaENhbGxiYWNrKToK
KwogMjAxOC0xMC0zMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAg
ICAgICBFbmFibGUgSW5zdGFsbEFQSSBmb3IgaU9TIHVuY29uZGl0aW9uYWxseQpJbmRleDogU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAkocmV2aXNpb24g
MjM3NTQ2KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw4ICszNCw2IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L0FWS2l0U1BJLmg+CiAjZW5kaWYKICNpbXBvcnQgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0xheWVyRmx1c2hTY2hlZHVsZXIuaD4KLSNpbXBvcnQg
PFdlYkNvcmUvTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9X
ZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaD4KICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAjaW1wb3J0
IDx3dGYvTG9jay5oPgpAQCAtNTEsNiArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXI7CiBjbGFzcyBIaXN0b3J5SXRlbTsKIGNsYXNz
IFBhZ2U7CitjbGFzcyBSdW5Mb29wT2JzZXJ2ZXI7CiBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93
OwogY2xhc3MgVmFsaWRhdGlvbkJ1YmJsZTsKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkKQEAgLTEwOSwyOSArMTA4LDI5IEBAIGNsYXNzIFdlYlNl
bGVjdGlvblNlcnZpY2VDb250cm9sbGVyOwogQGNsYXNzIFdlYlRleHRUb3VjaEJhckl0ZW1Db250
cm9sbGVyOwogI2VuZGlmCiAKLWNsYXNzIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyIDogcHVi
bGljIFdlYkNvcmU6OkxheWVyRmx1c2hTY2hlZHVsZXIgeworY2xhc3MgV2ViVmlld0xheWVyRmx1
c2hTY2hlZHVsZXIgewogcHVibGljOgogICAgIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyKExh
eWVyRmx1c2hDb250cm9sbGVyKik7Ci0gICAgdmlydHVhbCB+V2ViVmlld0xheWVyRmx1c2hTY2hl
ZHVsZXIoKSB7IH0KKyAgICB+V2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXIoKTsKKworICAgIHZv
aWQgc2NoZWR1bGUoKTsKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKIAogcHJpdmF0ZToKLSAgICB2
b2lkIGxheWVyRmx1c2hDYWxsYmFjaygpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBSZWZQdHI8
TGF5ZXJGbHVzaENvbnRyb2xsZXI+IHByb3RlY3RvciA9IG1fZmx1c2hDb250cm9sbGVyOwotICAg
ICAgICBXZWJDb3JlOjpMYXllckZsdXNoU2NoZWR1bGVyOjpsYXllckZsdXNoQ2FsbGJhY2soKTsK
LSAgICB9CisgICAgdm9pZCBsYXllckZsdXNoQ2FsbGJhY2soKTsKICAgICAKICAgICBMYXllckZs
dXNoQ29udHJvbGxlciogbV9mbHVzaENvbnRyb2xsZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OlJ1bkxvb3BPYnNlcnZlcj4gbV9ydW5Mb29wT2JzZXJ2ZXI7CiB9OwogCi1jbGFzcyBM
YXllckZsdXNoQ29udHJvbGxlciA6IHB1YmxpYyBSZWZDb3VudGVkPExheWVyRmx1c2hDb250cm9s
bGVyPiwgcHVibGljIFdlYkNvcmU6OkxheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQgeworY2xhc3Mg
TGF5ZXJGbHVzaENvbnRyb2xsZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxMYXllckZsdXNoQ29udHJv
bGxlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TGF5ZXJGbHVzaENvbnRyb2xsZXI+IGNy
ZWF0ZShXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTGF5ZXJGbHVzaENvbnRyb2xsZXIod2ViVmlldykpOwogICAgIH0KICAgICAKLSAgICB2aXJ0
dWFsIGJvb2wgZmx1c2hMYXllcnMoKTsKKyAgICBib29sIGZsdXNoTGF5ZXJzKCk7CiAgICAgCiAg
ICAgdm9pZCBzY2hlZHVsZUxheWVyRmx1c2goKTsKICAgICB2b2lkIGludmFsaWRhdGUoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQko
cmV2aXNpb24gMjM3NTQ2KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3RGF0YS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8SmF2
YVNjcmlwdENvcmUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9BbHRl
cm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0u
aD4KKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcE9ic2VydmVyLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmFsaWRhdGlvbkJ1YmJs
ZS5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTQ0LDYgKzQ1LDggQEAKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW1wb3J0ICJXZWJHZW9sb2NhdGlvblByb3ZpZGVySU9T
LmgiCisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgorI2ltcG9y
dCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFkSW50ZXJuYWwuaD4KICNlbmRpZgogCiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC01
OCw2ICs2MSwyMCBAQAogQk9PTCBhcHBsaWNhdGlvbklzVGVybWluYXRpbmcgPSBOTzsKIGludCBw
bHVnaW5EYXRhYmFzZUNsaWVudENvdW50ID0gMDsKIAorc3RhdGljIENGUnVuTG9vcFJlZiBjdXJy
ZW50UnVuTG9vcCgpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBBIHJhY2Ug
Y29uZGl0aW9uIGR1cmluZyBXZWJWaWV3IGRlYWxsb2NhdGlvbiBjYW4gbGVhZCB0byBhIGNyYXNo
IGlmIHRoZSBsYXllciBzeW5jIHJ1biBsb29wCisgICAgLy8gb2JzZXJ2ZXIgaXMgYWRkZWQgdG8g
dGhlIG1haW4gcnVuIGxvb3AgPHJkYXI6Ly9wcm9ibGVtLzk3OTg1NTA+LiBIb3dldmVyLCBmb3Ig
cmVzcG9uc2l2ZW5lc3MsCisgICAgLy8gd2Ugc3RpbGwgYWxsb3cgdGhpcywgc2VlIDxyZGFyOi8v
cHJvYmxlbS83NDAzMzI4Pi4gU2luY2UgdGhlIHJhY2UgY29uZGl0aW9uIGFuZCBzdWJzZXF1ZW50
CisgICAgLy8gY3Jhc2ggYXJlIGVzcGVjaWFsbHkgdHJvdWJsZXNvbWUgZm9yIGlCb29rcywgd2Ug
bmV2ZXIgYWxsb3cgdGhlIG9ic2VydmVyIHRvIGJlIGFkZGVkIHRvIHRoZQorICAgIC8vIG1haW4g
cnVuIGxvb3AgaW4gaUJvb2tzLgorICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNJ
Qm9va3MoKSkKKyAgICAgICAgcmV0dXJuIFdlYlRocmVhZFJ1bkxvb3AoKTsKKyNlbmRpZgorICAg
IHJldHVybiBDRlJ1bkxvb3BHZXRDdXJyZW50KCk7Cit9CisKIHZvaWQgTGF5ZXJGbHVzaENvbnRy
b2xsZXI6OnNjaGVkdWxlTGF5ZXJGbHVzaCgpCiB7CiAgICAgbV9sYXllckZsdXNoU2NoZWR1bGVy
LnNjaGVkdWxlKCk7CkBAIC03Nyw5ICs5NCwzNCBAQCBMYXllckZsdXNoQ29udHJvbGxlcjo6TGF5
ZXJGbHVzaENvbnRyb2xsCiB9CiAKIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpXZWJWaWV3
TGF5ZXJGbHVzaFNjaGVkdWxlcihMYXllckZsdXNoQ29udHJvbGxlciogZmx1c2hDb250cm9sbGVy
KQotICAgIDogV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxlcihmbHVzaENvbnRyb2xsZXIpCi0g
ICAgLCBtX2ZsdXNoQ29udHJvbGxlcihmbHVzaENvbnRyb2xsZXIpCisgICAgOiBtX2ZsdXNoQ29u
dHJvbGxlcihmbHVzaENvbnRyb2xsZXIpCit7CisgICAgbV9ydW5Mb29wT2JzZXJ2ZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPFdlYkNvcmU6OlJ1bkxvb3BPYnNlcnZlcj4oc3RhdGljX2Nhc3Q8Q0ZJbmRl
eD4oV2ViQ29yZTo6UnVuTG9vcE9ic2VydmVyOjpXZWxsS25vd25SdW5Mb29wT3JkZXJzOjpMYXll
ckZsdXNoKSwgW3RoaXNdKCkgeworICAgICAgICB0aGlzLT5sYXllckZsdXNoQ2FsbGJhY2soKTsK
KyAgICB9KTsKK30KKworV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6On5XZWJWaWV3TGF5ZXJG
bHVzaFNjaGVkdWxlcigpCit7Cit9CisKK3ZvaWQgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6
OnNjaGVkdWxlKCkKK3sKKyAgICBtX3J1bkxvb3BPYnNlcnZlci0+c2NoZWR1bGUoY3VycmVudFJ1
bkxvb3AoKSk7Cit9CisKK3ZvaWQgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmludmFsaWRh
dGUoKQoreworICAgIG1fcnVuTG9vcE9ic2VydmVyLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQg
V2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OmxheWVyRmx1c2hDYWxsYmFjaygpCiB7CisgICAg
QGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgIFJlZlB0cjxMYXllckZsdXNoQ29udHJvbGxlcj4g
cHJvdGVjdG9yID0gbV9mbHVzaENvbnRyb2xsZXI7CisgICAgICAgIGlmIChtX2ZsdXNoQ29udHJv
bGxlci0+Zmx1c2hMYXllcnMoKSkKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICB9CiB9
CiAKICNpZiBQTEFURk9STShNQUMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353491</attachid>
            <date>2018-10-31 06:27:53 -0700</date>
            <delta_ts>2018-10-31 08:08:34 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remove-layerflushscheduler-7.patch</filename>
            <type>text/plain</type>
            <size>27977</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTEwLTMxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTGF5ZXJGbHVzaFNj
aGVkdWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkxMTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SXQgaXMgb25seSB1c2VkIGluIFdLMS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyQ2xp
ZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvTGF5
ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHA6IFJlbW92ZWQuCisKIDIwMTgtMTAtMjkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJSVENdIEVuYWJsZSBWUDgg
YnkgZGVmYXVsdApJbmRleDogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCShyZXZp
c2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCSh3
b3JraW5nIGNvcHkpCkBAIC05Miw3ICs5Miw2IEBAIGVsc2UgKCkKICAgICAgICAgcGFnZS93aW4v
RnJhbWVDR1dpbi5jcHAKIAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xh
eWVyQ0EuY3BwCi0gICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVs
ZXIuY3BwCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyUG9vbC5jcHAKICAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmNwcAogICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtTWFjLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
TWFjLmNtYWtlCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1h
Yy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjU2LDcgKzI1Niw2IEBAIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dl
YkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hl
ZHVsZXIuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJQb29sLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uY3BwCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmNwcApAQCAtMjY1LDcgKzI2NCw2IEBAIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlk
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RyYW5zZm9ybWF0aW9uTWF0cml4Q0EuY3Bw
CiAKLSAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9MYXllckZsdXNoU2NoZWR1bGVyTWFj
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FBbmltYXRpb25D
b2NvYS5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FGaWx0ZXJz
Q29jb2EubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJD
b2NvYS5tbQpJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyMzc1NDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNTUs
NyArMjU1LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaQogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyLm1tIEBuby11bmlmeQogCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvTGF5ZXJQb29sLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZv
cm1DQUFuaW1hdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5j
cHAKQEAgLTI2Myw3ICsyNjIsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxl
ci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb3ZlcmFnZU1hcC5jcHAKIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVHJhbnNmb3Jt
YXRpb25NYXRyaXhDQS5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL0xheWVyRmx1c2hT
Y2hlZHVsZXJNYWMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBQW5p
bWF0aW9uQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FGaWx0
ZXJzQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNv
Y29hLm1tCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY5Miw4ICs2OTIs
NiBAQAogCQkyNkY5QTgzOTE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkY5QTgz
NzE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjg1RDMyMDgyMDM1RDY1NjAw
NzBEMzJGIC8qIFNlcnZlclRpbWluZ1BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjg4RTgyRjAyMDM1RDRFRDAwQjBEQ0ZGIC8qIFNlcnZlclRp
bWluZ1BhcnNlci5oICovOyB9OwogCQkyOTE0RTMwODFDQUI1QTQ0MDA0OTk2NkYgLyogQWNjZXNz
aWJpbGl0eUF0dGFjaG1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDI5MTRFMzA2MUNBQjVBNDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0YWNo
bWVudC5oICovOyB9OwotCQkyOTE3QjU2MjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNj
aGVkdWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkyOTE3QjU2MzE0NzM0
OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkxN0I1NjAxNDczNDk2QzAwNTJDOUQw
IC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyOTNFQUUxRjEzNTZCMkZFMDA2N0FDRjkgLyogUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMjk0ODlGQzcxMkMwMEYwMzAwRDgzRjBGIC8qIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTQ4OUZD
NTEyQzAwRjAzMDBEODNGMEYgLyogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCAqLzsgfTsKIAkJ
Mjk3QkUzRDUxNkMwM0MwODAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNTI3
Q0M5MTE2QkY4QkExMDA5RERBQzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2Uu
aCAqLzsgfTsKQEAgLTI5MzcsNyArMjkzNSw3IEBACiAJCUExNDgzMkM0MTg3RjY2M0MwMERBNjNB
NiAvKiBXS1ZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExNDgzMkE5MTg3RjUwODcwMERBNjNBNiAvKiBXS1ZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTQ4MzJDNjE4N0Y2NjhGMDBEQTYz
QTYgLyogV0tWaWV3UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTE0ODMyQUIxODdGNTA4NzAwREE2M0E2IC8qIFdLVmlld1ByaXZhdGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTQ4MzJD
NzE4N0Y2NkM4MDBEQTYzQTYgLyogV2ViQ29yZVRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE0ODMyOTkxODdGNTA4NzAwREE2M0E2IC8qIFdl
YkNvcmVUaHJlYWQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQlBMTQ4MzJDOTE4N0Y2NzZCMDBEQTYzQTYgLyogV2ViQ29yZVRocmVhZEludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTQ4MzI5
QjE4N0Y1MDg3MDBEQTYzQTYgLyogV2ViQ29yZVRocmVhZEludGVybmFsLmggKi87IH07CisJCUEx
NDgzMkM5MTg3RjY3NkIwMERBNjNBNiAvKiBXZWJDb3JlVGhyZWFkSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExNDgzMjlCMTg3RjUwODcw
MERBNjNBNiAvKiBXZWJDb3JlVGhyZWFkSW50ZXJuYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTQ4MzJDQTE4N0Y2NzgwMDBEQTYzQTYgLyog
V2ViQ29yZVRocmVhZE1lc3NhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExNDgzMjlDMTg3RjUwODcwMERBNjNBNiAvKiBXZWJDb3JlVGhyZWFkTWVz
c2FnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUExNDgzMkNDMTg3RjY3QzQwMERBNjNBNiAvKiBXZWJDb3JlVGhyZWFkUnVuLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTQ4MzI5RTE4N0Y1MDg3MDBE
QTYzQTYgLyogV2ViQ29yZVRocmVhZFJ1bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUExNDgzMkNGMTg3RjY4NDcwMERBNjNBNiAvKiBXZWJDb3Jl
VGhyZWFkU3lzdGVtSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTQ4MzJBMTE4N0Y1MDg3MDBEQTYzQTYgLyogV2ViQ29yZVRocmVhZFN5
c3RlbUludGVyZmFjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC02NDk1LDEwICs2NDkzLDYgQEAKIAkJMjhEQjlCQzcyMDIwRUEwNDAwRTU0QTA3
IC8qIFBlcmZvcm1hbmNlU2VydmVyVGltaW5nLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQ
ZXJmb3JtYW5jZVNlcnZlclRpbWluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTI5MTRFMzA1MUNBQjVBNDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5QXR0YWNo
bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MTRFMzA2MUNBQjVBNDQw
MDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkyOTE3QjU1RTE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVk
dWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXllckZsdXNo
U2NoZWR1bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjkxN0I1NUYxNDcz
NDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTGF5ZXJGbHVzaFNjaGVkdWxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkyOTE3QjU2MDE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxl
ckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTI5MTdCNTY1MTQ3
MzQ5OTUwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyOTQ4OUZDNTEyQzAwRjAzMDBEODNGMEYgLyogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjk0OTg2ODExOTUzNDE5NDAwNzJEMkJE
IC8qIFRleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gVGV4dFVuZG9JbnNlcnRpb25NYXJrdXBNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzg5Myw3ICsxNzg4Nyw2IEBACiAJCTQ5NTg3ODFFMTJB
NTdEQkMwMDcyMzhBQyAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCi0JCQkJMjkxN0I1NjUxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hl
ZHVsZXJNYWMuY3BwICovLAogCQkJCTBGNUUyMDA1MThFNzcxRkMwMDNFQzNFNSAvKiBQbGF0Zm9y
bUNBQW5pbWF0aW9uQ29jb2EuaCAqLywKIAkJCQk0OTU4NzgxRjEyQTU3RERGMDA3MjM4QUMgLyog
UGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hLm1tICovLAogCQkJCTBGMTMxNjNGMTZFRDBDREUwMDM1
Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVyc0NvY29hLm1tICovLApAQCAtMTc5NjgsOSArMTc5NjEs
NiBAQAogCQkJCTQ5NTg3ODFFMTJBNTdEQkMwMDcyMzhBQyAvKiBjb2NvYSAqLywKIAkJCQk0OTlC
M0VENDEyOENEMzE0MDBFNzI2QzIgLyogR3JhcGhpY3NMYXllckNBLmNwcCAqLywKIAkJCQk0OTlC
M0VENTEyOENEMzE0MDBFNzI2QzIgLyogR3JhcGhpY3NMYXllckNBLmggKi8sCi0JCQkJMjkxN0I1
NUUxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuY3BwICovLAotCQkJCTI5
MTdCNTVGMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmggKi8sCi0JCQkJ
MjkxN0I1NjAxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCAq
LywKIAkJCQk3QUEzQTY5RDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmNwcCAqLywKIAkJ
CQk3QUEzQTY5RTE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggKi8sCiAJCQkJMEZERjQ1
QTYxQkQxQzZGRDAwRTRGQThDIC8qIFBsYXRmb3JtQ0FBbmltYXRpb24uY3BwICovLApAQCAtMjk3
ODYsOCArMjk3NzYsNiBAQAogCQkJCUUxNUZGN0Q1MThDOTU1MzgwMEZFNEM4NyAvKiBLZXlwcmVz
c0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MENFQkYxMTUwNzNCQkUwMDJCQjE0OSAv
KiBMYWJlbGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNDU2RkEyNzExQUQ0QTgz
MDAyMEI0MjAgLyogTGFiZWxzTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTI5MTdCNTYy
MTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywK
LQkJCQkyOTE3QjU2MzE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5MTZGRjcxOTVERjZBMDAwNUFCMzQ5IC8qIExheWVy
Rmx1c2hUaHJvdHRsZVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1ODAzNzE2NDFBNjZGMUQz
MDBCQUY1MTkgLyogTGF5ZXJGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2QTAx
OTRCNTlCNjAwMUNCRDI0IC8qIExheWVyUG9vbC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAko
cmV2aXNpb24gMjM3NTQ2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDcgQEAgYm9vbCBpc01v
YmlsZVN0b3JlKCk7CiBib29sIGlzU3ByaW5nQm9hcmQoKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wg
aXNXZWJBcHAoKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNXZWJQcm9jZXNzKCk7Ci1ib29sIGlz
SUJvb2tzKCk7CitXRUJDT1JFX0VYUE9SVCBib29sIGlzSUJvb2tzKCk7CiBib29sIGlzSUJvb2tz
U3Rvcnl0aW1lKCk7CiBXRUJDT1JFX0VYUE9SVCBib29sIGlzVGhlU2VjcmV0U29jaWV0eUhpZGRl
bk15c3RlcnkoKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNDYXJkaW9ncmFtKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXll
ckZsdXNoU2NoZWR1bGVyLmNwcAkocmV2aXNpb24gMjM3NTQ2KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAJKG5vbmV4aXN0ZW50
KQpAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIkxheWVyRmx1c2hTY2hl
ZHVsZXIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotdm9pZCBMYXllckZsdXNoU2No
ZWR1bGVyOjpzdXNwZW5kKCkKLXsKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkKLSAgICAgICAgcmV0
dXJuOwotICAgIAotICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOwotICAgIGludmFsaWRhdGUoKTsK
LX0KLSAgICAKLXZvaWQgTGF5ZXJGbHVzaFNjaGVkdWxlcjo6cmVzdW1lKCkKLXsKLSAgICBpZiAo
IW1faXNTdXNwZW5kZWQpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX2lzU3VzcGVuZGVk
ID0gZmFsc2U7Ci0gICAgc2NoZWR1bGUoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVk
dWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0xheWVyRmx1c2hTY2hlZHVsZXIuaAkocmV2aXNpb24gMjM3NTQ2KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5oCShub25leGlzdGVu
dCkKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkxheWVyRmx1c2hTY2hlZHVsZXJD
bGllbnQuaCIKLSNpbmNsdWRlICJSdW5Mb29wT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotY2xhc3MgTGF5ZXJGbHVz
aFNjaGVkdWxlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTGF5ZXJGbHVzaFNjaGVkdWxl
cik7Ci1wdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgTGF5ZXJGbHVzaFNjaGVkdWxlcihMYXll
ckZsdXNoU2NoZWR1bGVyQ2xpZW50Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+TGF5
ZXJGbHVzaFNjaGVkdWxlcigpOwotCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZSgp
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwotCi0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzdXNwZW5kKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXN1bWUoKTsK
LQotICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU3VzcGVuZGVkOyB9
Ci0KLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQg
bGF5ZXJGbHVzaENhbGxiYWNrKCk7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBib29sIG1faXNT
dXNwZW5kZWQ7Ci0gICAgTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudCogbV9jbGllbnQ7Ci0gICAg
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgc3RkOjp1bmlxdWVfcHRyPFJ1bkxvb3BPYnNlcnZl
cj4gbV9ydW5Mb29wT2JzZXJ2ZXI7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVz
aFNjaGVkdWxlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaAkocmV2aXNpb24gMjM3NTQ2
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVk
dWxlckNsaWVudC5oCShub25leGlzdGVudCkKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIExheWVyRmx1c2hTY2hl
ZHVsZXJDbGllbnRfaAotI2RlZmluZSBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50X2gKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50IHsKLXBy
b3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5MYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50KCkgPSBkZWZh
dWx0OwotCi1wdWJsaWM6Ci0gICAgLy8gRmx1c2ggdGhlIGxheWVycy4gUmV0dXJucyB0cnVlIG9u
IHN1Y2Nlc3MuCi0gICAgdmlydHVhbCBib29sIGZsdXNoTGF5ZXJzKCkgPSAwOwotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVu
dF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9MYXll
ckZsdXNoU2NoZWR1bGVyTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcAkocmV2aXNp
b24gMjM3NTQ2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2Ev
TGF5ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw5MCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJMYXllckZsdXNoU2NoZWR1bGVyLmgiCi0KLSNpbmNsdWRl
IDx3dGYvQXV0b2RyYWluZWRQb29sLmg+Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotI2lu
Y2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgotI2luY2x1ZGUgIldlYkNvcmVUaHJl
YWRJbnRlcm5hbC5oIgotI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NGQnVuZGxlLmg+Ci0jZW5k
aWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgQ0ZSdW5Mb29wUmVmIGN1cnJlbnRS
dW5Mb29wKCkKLXsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIC8vIEEgcmFjZSBjb25k
aXRpb24gZHVyaW5nIFdlYlZpZXcgZGVhbGxvY2F0aW9uIGNhbiBsZWFkIHRvIGEgY3Jhc2ggaWYg
dGhlIGxheWVyIHN5bmMgcnVuIGxvb3AKLSAgICAvLyBvYnNlcnZlciBpcyBhZGRlZCB0byB0aGUg
bWFpbiBydW4gbG9vcCA8cmRhcjovL3Byb2JsZW0vOTc5ODU1MD4uIEhvd2V2ZXIsIGZvciByZXNw
b25zaXZlbmVzcywKLSAgICAvLyB3ZSBzdGlsbCBhbGxvdyB0aGlzLCBzZWUgPHJkYXI6Ly9wcm9i
bGVtLzc0MDMzMjg+LiBTaW5jZSB0aGUgcmFjZSBjb25kaXRpb24gYW5kIHN1YnNlcXVlbnQKLSAg
ICAvLyBjcmFzaCBhcmUgZXNwZWNpYWxseSB0cm91Ymxlc29tZSBmb3IgaUJvb2tzLCB3ZSBuZXZl
ciBhbGxvdyB0aGUgb2JzZXJ2ZXIgdG8gYmUgYWRkZWQgdG8gdGhlCi0gICAgLy8gbWFpbiBydW4g
bG9vcCBpbiBpQm9va3MuCi0gICAgaWYgKElPU0FwcGxpY2F0aW9uOjppc0lCb29rcygpKQotICAg
ICAgICByZXR1cm4gV2ViVGhyZWFkUnVuTG9vcCgpOwotI2VuZGlmCi0gICAgcmV0dXJuIENGUnVu
TG9vcEdldEN1cnJlbnQoKTsKLX0KLQotTGF5ZXJGbHVzaFNjaGVkdWxlcjo6TGF5ZXJGbHVzaFNj
aGVkdWxlcihMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX2lzU3Vz
cGVuZGVkKGZhbHNlKQotICAgICwgbV9jbGllbnQoY2xpZW50KQotewotICAgIEFTU0VSVF9BUkco
Y2xpZW50LCBjbGllbnQpOwotCi0gICAgbV9ydW5Mb29wT2JzZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPFJ1bkxvb3BPYnNlcnZlcj4oc3RhdGljX2Nhc3Q8Q0ZJbmRleD4oUnVuTG9vcE9ic2VydmVy
OjpXZWxsS25vd25SdW5Mb29wT3JkZXJzOjpMYXllckZsdXNoKSwgW3RoaXNdKCkgewotICAgICAg
ICBpZiAodGhpcy0+aXNTdXNwZW5kZWQoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
dGhpcy0+bGF5ZXJGbHVzaENhbGxiYWNrKCk7Ci0gICAgfSk7Ci19Ci0KLUxheWVyRmx1c2hTY2hl
ZHVsZXI6On5MYXllckZsdXNoU2NoZWR1bGVyKCkgPSBkZWZhdWx0OwotCi12b2lkIExheWVyRmx1
c2hTY2hlZHVsZXI6OmxheWVyRmx1c2hDYWxsYmFjaygpCi17Ci0gICAgQVNTRVJUKCFtX2lzU3Vz
cGVuZGVkKTsKLQotICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOwotICAgIGlmIChtX2NsaWVudC0+
Zmx1c2hMYXllcnMoKSkKLSAgICAgICAgaW52YWxpZGF0ZSgpOwotfQotCi12b2lkIExheWVyRmx1
c2hTY2hlZHVsZXI6OnNjaGVkdWxlKCkKLXsKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9ydW5Mb29wT2JzZXJ2ZXItPnNjaGVkdWxlKGN1cnJlbnRSdW5M
b29wKCkpOwotfQotCi12b2lkIExheWVyRmx1c2hTY2hlZHVsZXI6OmludmFsaWRhdGUoKQotewot
ICAgIG1fcnVuTG9vcE9ic2VydmVyLT5pbnZhbGlkYXRlKCk7Ci19Ci0gICAgCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9jb2NvYS9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgcHJvcGVydHkKRGVsZXRlZDogc3ZuOmtleXdvcmRzCiMjIC0xICswLDAgIyMK
LURhdGUgQXV0aG9yIElkIFJldmlzaW9uIEhlYWRVUkwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBw
cm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhy
ZWFkSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
d2FrL1dlYkNvcmVUaHJlYWRJbnRlcm5hbC5oCShyZXZpc2lvbiAyMzc1NDYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJlYWRJbnRlcm5hbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIHZvaWQgV2ViUnVuTG9vcERpc2FibGVOZXN0ZWQoKTsK
IAogdm9pZCBXZWJUaHJlYWRJbml0UnVuUXVldWUoKTsKIAotQ0ZSdW5Mb29wUmVmIFdlYlRocmVh
ZFJ1bkxvb3Aodm9pZCk7CitXRUJDT1JFX0VYUE9SVCBDRlJ1bkxvb3BSZWYgV2ViVGhyZWFkUnVu
TG9vcCh2b2lkKTsKIFdlYlRocmVhZENvbnRleHQgKldlYlRocmVhZEN1cnJlbnRDb250ZXh0KHZv
aWQpOwogCiAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAkocmV2aXNpb24gMjM3NTQ2KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUNvY29hLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAog
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZUNvY29hLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oIgogCiBBTExP
V19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMzc2MjgpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxOC0xMC0zMSAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIExheWVyRmx1c2hTY2hl
ZHVsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MTEwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBhIFJ1bkxvb3BPYnNlcnZlciBkaXJlY3RseSBpbnRvIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1
bGVyIGFuZCByZW1vdmUKKyAgICAgICAgYWxsIHRoZSB2aXJ0dWFsIGNydWZ0LgorCisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hl
ZHVsZXI6On5XZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcik6IERlbGV0ZWQuCisgICAgICAgICgp
OiBEZWxldGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAgIChj
dXJyZW50UnVuTG9vcCk6CisgICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6V2Vi
Vmlld0xheWVyRmx1c2hTY2hlZHVsZXIpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hl
ZHVsZXI6On5XZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcik6CisgICAgICAgIChXZWJWaWV3TGF5
ZXJGbHVzaFNjaGVkdWxlcjo6c2NoZWR1bGUpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hT
Y2hlZHVsZXI6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViVmlld0xheWVyRmx1c2hTY2hlZHVs
ZXI6OmxheWVyRmx1c2hDYWxsYmFjayk6CisKIDIwMTgtMTAtMzAgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIEluc3RhbGxBUEkgZm9yIGlPUyB1
bmNvbmRpdGlvbmFsbHkKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXdEYXRhLmgJKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsNiBA
QAogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oPgogI2VuZGlmCiAjaW1wb3J0IDxX
ZWJDb3JlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oPgotI2ltcG9ydCA8V2ViQ29yZS9MYXllckZs
dXNoU2NoZWR1bGVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0xheWVyRmx1c2hTY2hlZHVsZXJDbGll
bnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW1wb3J0
IDx3dGYvSGFzaE1hcC5oPgogI2ltcG9ydCA8d3RmL0xvY2suaD4KQEAgLTUxLDYgKzQ5LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyOwog
Y2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBQYWdlOworY2xhc3MgUnVuTG9vcE9ic2VydmVyOwog
Y2xhc3MgVGV4dEluZGljYXRvcldpbmRvdzsKIGNsYXNzIFZhbGlkYXRpb25CdWJibGU7CiAjaWYg
UExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCkBAIC0xMDks
MjkgKzEwOCwyOSBAQCBjbGFzcyBXZWJTZWxlY3Rpb25TZXJ2aWNlQ29udHJvbGxlcjsKIEBjbGFz
cyBXZWJUZXh0VG91Y2hCYXJJdGVtQ29udHJvbGxlcjsKICNlbmRpZgogCi1jbGFzcyBXZWJWaWV3
TGF5ZXJGbHVzaFNjaGVkdWxlciA6IHB1YmxpYyBXZWJDb3JlOjpMYXllckZsdXNoU2NoZWR1bGVy
IHsKK2NsYXNzIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyIHsKIHB1YmxpYzoKICAgICBXZWJW
aWV3TGF5ZXJGbHVzaFNjaGVkdWxlcihMYXllckZsdXNoQ29udHJvbGxlciopOwotICAgIHZpcnR1
YWwgfldlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyKCkgeyB9CisgICAgfldlYlZpZXdMYXllckZs
dXNoU2NoZWR1bGVyKCk7CisKKyAgICB2b2lkIHNjaGVkdWxlKCk7CisgICAgdm9pZCBpbnZhbGlk
YXRlKCk7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBsYXllckZsdXNoQ2FsbGJhY2soKSBvdmVycmlk
ZQotICAgIHsKLSAgICAgICAgUmVmUHRyPExheWVyRmx1c2hDb250cm9sbGVyPiBwcm90ZWN0b3Ig
PSBtX2ZsdXNoQ29udHJvbGxlcjsKLSAgICAgICAgV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxl
cjo6bGF5ZXJGbHVzaENhbGxiYWNrKCk7Ci0gICAgfQorICAgIHZvaWQgbGF5ZXJGbHVzaENhbGxi
YWNrKCk7CiAgICAgCiAgICAgTGF5ZXJGbHVzaENvbnRyb2xsZXIqIG1fZmx1c2hDb250cm9sbGVy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpSdW5Mb29wT2JzZXJ2ZXI+IG1fcnVuTG9v
cE9ic2VydmVyOwogfTsKIAotY2xhc3MgTGF5ZXJGbHVzaENvbnRyb2xsZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxMYXllckZsdXNoQ29udHJvbGxlcj4sIHB1YmxpYyBXZWJDb3JlOjpMYXllckZsdXNo
U2NoZWR1bGVyQ2xpZW50IHsKK2NsYXNzIExheWVyRmx1c2hDb250cm9sbGVyIDogcHVibGljIFJl
ZkNvdW50ZWQ8TGF5ZXJGbHVzaENvbnRyb2xsZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PExheWVyRmx1c2hDb250cm9sbGVyPiBjcmVhdGUoV2ViVmlldyogd2ViVmlldykKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IExheWVyRmx1c2hDb250cm9sbGVyKHdlYlZpZXcp
KTsKICAgICB9CiAgICAgCi0gICAgdmlydHVhbCBib29sIGZsdXNoTGF5ZXJzKCk7CisgICAgYm9v
bCBmbHVzaExheWVycygpOwogICAgIAogICAgIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoKCk7CiAg
ICAgdm9pZCBpbnZhbGlkYXRlKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXdEYXRhLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlld0RhdGEubW0JKHJldmlzaW9uIDIzNzU0NikKKysrIFNvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0JKHdvcmtpbmcgY29weSkKQEAgLTM3
LDYgKzM3LDcgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcu
aD4KICNpbXBvcnQgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3BPYnNl
cnZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1ZhbGlkYXRpb25CdWJibGUuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+
CkBAIC00NCw2ICs0NSw4IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9ydCAi
V2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5oIgorI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVRocmVhZEludGVybmFs
Lmg+CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQ
TEFURk9STShJT1NfRkFNSUxZKQpAQCAtNTgsNiArNjEsMjAgQEAKIEJPT0wgYXBwbGljYXRpb25J
c1Rlcm1pbmF0aW5nID0gTk87CiBpbnQgcGx1Z2luRGF0YWJhc2VDbGllbnRDb3VudCA9IDA7CiAK
K3N0YXRpYyBDRlJ1bkxvb3BSZWYgY3VycmVudFJ1bkxvb3AoKQoreworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgLy8gQSByYWNlIGNvbmRpdGlvbiBkdXJpbmcgV2ViVmlldyBkZWFsbG9j
YXRpb24gY2FuIGxlYWQgdG8gYSBjcmFzaCBpZiB0aGUgbGF5ZXIgc3luYyBydW4gbG9vcAorICAg
IC8vIG9ic2VydmVyIGlzIGFkZGVkIHRvIHRoZSBtYWluIHJ1biBsb29wIDxyZGFyOi8vcHJvYmxl
bS85Nzk4NTUwPi4gSG93ZXZlciwgZm9yIHJlc3BvbnNpdmVuZXNzLAorICAgIC8vIHdlIHN0aWxs
IGFsbG93IHRoaXMsIHNlZSA8cmRhcjovL3Byb2JsZW0vNzQwMzMyOD4uIFNpbmNlIHRoZSByYWNl
IGNvbmRpdGlvbiBhbmQgc3Vic2VxdWVudAorICAgIC8vIGNyYXNoIGFyZSBlc3BlY2lhbGx5IHRy
b3VibGVzb21lIGZvciBpQm9va3MsIHdlIG5ldmVyIGFsbG93IHRoZSBvYnNlcnZlciB0byBiZSBh
ZGRlZCB0byB0aGUKKyAgICAvLyBtYWluIHJ1biBsb29wIGluIGlCb29rcy4KKyAgICBpZiAoV2Vi
Q29yZTo6SU9TQXBwbGljYXRpb246OmlzSUJvb2tzKCkpCisgICAgICAgIHJldHVybiBXZWJUaHJl
YWRSdW5Mb29wKCk7CisjZW5kaWYKKyAgICByZXR1cm4gQ0ZSdW5Mb29wR2V0Q3VycmVudCgpOwor
fQorCiB2b2lkIExheWVyRmx1c2hDb250cm9sbGVyOjpzY2hlZHVsZUxheWVyRmx1c2goKQogewog
ICAgIG1fbGF5ZXJGbHVzaFNjaGVkdWxlci5zY2hlZHVsZSgpOwpAQCAtNzcsOSArOTQsMzQgQEAg
TGF5ZXJGbHVzaENvbnRyb2xsZXI6OkxheWVyRmx1c2hDb250cm9sbAogfQogCiBXZWJWaWV3TGF5
ZXJGbHVzaFNjaGVkdWxlcjo6V2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXIoTGF5ZXJGbHVzaENv
bnRyb2xsZXIqIGZsdXNoQ29udHJvbGxlcikKLSAgICA6IFdlYkNvcmU6OkxheWVyRmx1c2hTY2hl
ZHVsZXIoZmx1c2hDb250cm9sbGVyKQotICAgICwgbV9mbHVzaENvbnRyb2xsZXIoZmx1c2hDb250
cm9sbGVyKQorICAgIDogbV9mbHVzaENvbnRyb2xsZXIoZmx1c2hDb250cm9sbGVyKQoreworICAg
IG1fcnVuTG9vcE9ic2VydmVyID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJDb3JlOjpSdW5Mb29wT2Jz
ZXJ2ZXI+KHN0YXRpY19jYXN0PENGSW5kZXg+KFdlYkNvcmU6OlJ1bkxvb3BPYnNlcnZlcjo6V2Vs
bEtub3duUnVuTG9vcE9yZGVyczo6TGF5ZXJGbHVzaCksIFt0aGlzXSgpIHsKKyAgICAgICAgdGhp
cy0+bGF5ZXJGbHVzaENhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK1dlYlZpZXdMYXllckZsdXNo
U2NoZWR1bGVyOjp+V2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXIoKQoreworfQorCit2b2lkIFdl
YlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpzY2hlZHVsZSgpCit7CisgICAgbV9ydW5Mb29wT2Jz
ZXJ2ZXItPnNjaGVkdWxlKGN1cnJlbnRSdW5Mb29wKCkpOworfQorCit2b2lkIFdlYlZpZXdMYXll
ckZsdXNoU2NoZWR1bGVyOjppbnZhbGlkYXRlKCkKK3sKKyAgICBtX3J1bkxvb3BPYnNlcnZlci0+
aW52YWxpZGF0ZSgpOworfQorCit2b2lkIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpsYXll
ckZsdXNoQ2FsbGJhY2soKQogeworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBSZWZQ
dHI8TGF5ZXJGbHVzaENvbnRyb2xsZXI+IHByb3RlY3RvciA9IG1fZmx1c2hDb250cm9sbGVyOwor
ICAgICAgICBpZiAobV9mbHVzaENvbnRyb2xsZXItPmZsdXNoTGF5ZXJzKCkpCisgICAgICAgICAg
ICBpbnZhbGlkYXRlKCk7CisgICAgfQogfQogCiAjaWYgUExBVEZPUk0oTUFDKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>