<?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>47738</bug_id>
          
          <creation_ts>2010-10-15 13:53:15 -0700</creation_ts>
          <short_desc>CSS aspect-ratio master bug</short_desc>
          <delta_ts>2025-07-28 02:37:28 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>http://www.xanthir.com/blog/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>295629</dependson>
    
    <dependson>70707</dependson>
    
    <dependson>72350</dependson>
    
    <dependson>73037</dependson>
    
    <dependson>73038</dependson>
    
    <dependson>73277</dependson>
    
    <dependson>218437</dependson>
    
    <dependson>219489</dependson>
    
    <dependson>219679</dependson>
    
    <dependson>219741</dependson>
    
    <dependson>220138</dependson>
    
    <dependson>220143</dependson>
    
    <dependson>220224</dependson>
    
    <dependson>220582</dependson>
    
    <dependson>220848</dependson>
    
    <dependson>220861</dependson>
    
    <dependson>220965</dependson>
    
    <dependson>220970</dependson>
    
    <dependson>220977</dependson>
    
    <dependson>221323</dependson>
    
    <dependson>221328</dependson>
    
    <dependson>221405</dependson>
    
    <dependson>221527</dependson>
    
    <dependson>221671</dependson>
    
    <dependson>221978</dependson>
    
    <dependson>222286</dependson>
    
    <dependson>222357</dependson>
    
    <dependson>222557</dependson>
    
    <dependson>222780</dependson>
    
    <dependson>222970</dependson>
    
    <dependson>223063</dependson>
    
    <dependson>223117</dependson>
    
    <dependson>225015</dependson>
    
    <dependson>225860</dependson>
    
    <dependson>267625</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fady Samuel">fsamuel</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gsnedders</cc>
    
    <cc>jonlee</cc>
    
    <cc>karlcow</cc>
    
    <cc>kennyluck</cc>
    
    <cc>macpherson</cc>
    
    <cc>rbuis</cc>
    
    <cc>rjkroege</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tabatkins</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>294908</commentid>
    <comment_count>0</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2010-10-15 13:53:15 -0700</bug_when>
    <thetext>Still in the early stages of design/development. However, here is an early, working prototype, implemented in WebKit as described here: http://www.xanthir.com/blog/ under &quot;aspect-ratio CSS property&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294911</commentid>
    <comment_count>1</comment_count>
      <attachid>70894</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2010-10-15 13:56:30 -0700</bug_when>
    <thetext>Created attachment 70894
Experimental Patch For aspect-ratio property</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294935</commentid>
    <comment_count>2</comment_count>
    <who name="Tab Atkins">tabatkins</who>
    <bug_when>2010-10-15 14:52:15 -0700</bug_when>
    <thetext>Stable permalink for the spec: http://www.xanthir.com/blog/b4810</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316843</commentid>
    <comment_count>3</comment_count>
      <attachid>75503</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2010-12-03 09:29:12 -0800</bug_when>
    <thetext>Created attachment 75503
Experimental patch rev. 2 for aspect-ratio property</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485766</commentid>
    <comment_count>4</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-10-17 20:36:24 -0700</bug_when>
    <thetext>FWIW, this has already been discussed at www-style http://lists.w3.org/Archives/Public/www-style/2010Oct/0046.html and http://lists.w3.org/Archives/Public/www-style/2011Oct/0550.html. It&apos;s just blocked on Tab and Fantasai having enough time to put in into a formal spec as far as I can tell.

I don&apos;t see any problems with moving forward with this as a webkit-prefixed property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715384</commentid>
    <comment_count>5</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-12-17 08:10:26 -0800</bug_when>
    <thetext>I&apos;ll use this master bug to track the new aspect-ratio work:
https://lists.webkit.org/pipermail/webkit-dev/2020-October/031543.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739515</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-15 10:39:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/75435850&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784148</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-08-13 10:32:43 -0700</bug_when>
    <thetext>does it make sense for this to still be open? the one dependency is a much broader issue than just aspect-ratio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785106</commentid>
    <comment_count>8</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-08-18 07:21:12 -0700</bug_when>
    <thetext>(In reply to Sam Sneddon [:gsnedders] from comment #7)
&gt; does it make sense for this to still be open? the one dependency is a much
&gt; broader issue than just aspect-ratio

I would like to fix bug 222357 before closing this bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70894</attachid>
            <date>2010-10-15 13:56:30 -0700</date>
            <delta_ts>2010-12-03 09:29:12 -0800</delta_ts>
            <desc>Experimental Patch For aspect-ratio property</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>46127</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1h
YnNvbHV0ZS1oZWlnaHQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvYXNwZWN0LXJhdGlvL2FzcGVj
dC1yYXRpby1hYnNvbHV0ZS1oZWlnaHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41NTkyYWNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3Bl
Y3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29sdXRlLWhlaWdodC5odG1sCkBAIC0wLDAgKzEsNyBA
QAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlOyBoZWlnaHQ6NTBweDsgdG9wOiAxMHB4OyBsZWZ0OjEwcHg7IC13ZWJr
aXQtYXNwZWN0LXJhdGlvOiA5LzE2OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2Pgor
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2FzcGVjdC1y
YXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1dGUtbGVmdC1yaWdodC5odG1sIGIvTGF5b3V0VGVzdHMv
Y3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29sdXRlLWxlZnQtcmlnaHQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGVmMzNhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29sdXRl
LWxlZnQtcmlnaHQuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+
CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMHB4
OyBsZWZ0OiAxMHB4OyByaWdodDogMTBweDsgLXdlYmtpdC1hc3BlY3QtcmF0aW86IDE2IC8gOTsg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ij48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29s
dXRlLXdpZHRoLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0
aW8tYWJzb2x1dGUtd2lkdGguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yNjliMWQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0
aW8vYXNwZWN0LXJhdGlvLWFic29sdXRlLXdpZHRoLmh0bWwKQEAgLTAsMCArMSw3IEBACis8aHRt
bD4KKzxoZWFkPgorPC9oZWFkPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IHdpZHRoOiA1MHB4OyB0b3A6IDEwcHg7IGxlZnQ6MTBweDsgLXdlYmtpdC1hc3Bl
Y3QtcmF0aW86IDkvMTY7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyI+PC9kaXY+CisgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvYXNwZWN0LXJhdGlvL2Fz
cGVjdC1yYXRpby1hdXRvLWhlaWdodC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0
aW8vYXNwZWN0LXJhdGlvLWF1dG8taGVpZ2h0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNTNiOGYwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMv
YXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hdXRvLWhlaWdodC5odG1sCkBAIC0wLDAgKzEsNyBA
QAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0ibGVm
dDogYXV0bzsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB3aWR0aDogMjAwcHg7IC13
ZWJraXQtYXNwZWN0LXJhdGlvOiAxNiAvIDk7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyI+PC9k
aXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvYXNw
ZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hdXRvLXdpZHRoLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3Mz
L2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYXV0by13aWR0aC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllNzVjZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYXV0by13aWR0aC5odG1sCkBAIC0w
LDAgKzEsNyBAQAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGRpdiBz
dHlsZT0ibGVmdDogYXV0bzsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEwcHg7IGhlaWdodDog
MjAwcHg7IC13ZWJraXQtYXNwZWN0LXJhdGlvOiA5LzE2OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
c3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tZmxvYXQuaHRtbCBiL0xheW91dFRlc3RzL2Nz
czMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1mbG9hdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjI3Mzk5YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tZmxvYXQuaHRtbApAQCAtMCwwICsxLDEw
IEBACis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgc3R5bGU9IndpZHRo
OiA2MDBweDsgaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyI+Cis8ZGl2IHN0
eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA1MHB4OyAtd2Via2l0LWFzcGVjdC1yYXRpbzogMS80
OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0
aW8taW5oZXJpdC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJh
dGlvLWluaGVyaXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGM1
MjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0aW8vYXNw
ZWN0LXJhdGlvLWluaGVyaXQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8
L2hlYWQ+CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDsgdG9wOiAx
MHB4OyBib3R0b206IDEwcHg7IGxlZnQ6IDEwcHg7IHJpZ2h0OiAxMHB4OyAtd2Via2l0LWFzcGVj
dC1yYXRpbzogMjAgLyA5OyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Ij4KKyAgICAgIDxkaXYgc3R5
bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogNTBweDsgdG9wOiA1MHB4OyB3aWR0aDogMzAw
cHg7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyAtd2Via2l0LWFzcGVjdC1yYXRpbzogaW5oZXJp
dDsiPjwvZGl2PgorPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1zdHJldGNoLXRvLWZpbGwuaHRt
bCBiL0xheW91dFRlc3RzL2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1zdHJldGNoLXRv
LWZpbGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjAyMzQ0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJh
dGlvLXN0cmV0Y2gtdG8tZmlsbC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4K
KzwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyB3
aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Ij4KKyAgICA8
ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IC13ZWJraXQtYXNwZWN0LXJhdGlvOiAxNi85
OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0
aW8tdG9wLWJvdHRvbS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0
LXJhdGlvLXRvcC1ib3R0b20uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li44MTRhYjhlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0
aW8vYXNwZWN0LXJhdGlvLXRvcC1ib3R0b20uaHRtbApAQCAtMCwwICsxLDcgQEAKKzxodG1sPgor
PGhlYWQ+Cis8L2hlYWQ+CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgdG9wOiAxMHB4OyB0b3A6IDEwcHg7IGJvdHRvbToxMHB4OyAtd2Via2l0LWFzcGVjdC1y
YXRpbzogOS8xNjsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ij48L2Rpdj4KKyAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0
LXJhdGlvLXRvcC1yaWdodC13aWR0aC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0
aW8vYXNwZWN0LXJhdGlvLXRvcC1yaWdodC13aWR0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjMyZDVkYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
c3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tdG9wLXJpZ2h0LXdpZHRoLmh0bWwKQEAgLTAs
MCArMSw3IEBACis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0
eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTBweDsgcmlnaHQ6IDEwcHg7IHdpZHRoOiAx
MDBweDsgLXdlYmtpdC1hc3BlY3QtcmF0aW86IDkvMTY7IGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OyI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hYnNv
bHV0ZS1oZWlnaHQtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1dGUtaGVpZ2h0
LWV4cGVjdGVkLmNoZWNrc3VtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3
ZTgwMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1dGUtaGVpZ2h0LWV4cGVj
dGVkLmNoZWNrc3VtCkBAIC0wLDAgKzEgQEAKKzJmM2NlNTJkMTU4OTVkODBiMjJlMjQ2MTRjNTM2
MzBjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFi
c29sdXRlLWhlaWdodC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1dGUtaGVpZ2h0LWV4
cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTkwNGRmZmMxMzY3NmJkNjk0NDhiZmQyYjJiYjA1YzUx
NDFkNGJiCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyODA3CnpjbWVBU0BOPyhvbEh5YHVWQnEh
aWEweX55VXsrdllWMmE+aTAqWik9aF5qTCVhUDlNU2FTVy1MXlkpRypTQXpvJgp6Z1FOZVM/TFIq
S1V8IUFvYTdKY3UlcWk4UVlpQytBRnVhJmt1Z30xK0xBc0haS3xuWnlmeCE/clc4PkBVSkBjbTgK
elRXO1V+bjZZOComSUNxPUJQP1BKNG5EKD5hcVl+WHowMz47IWVUWnNGZUVXP0dicEh5R0RaVm9H
JG9BWWczKCtzCm5uaFFwQSFEdWNSJT59ZzAxXlViRWN2cyktV2kxQ2JYYztfUnthbl5MQntUczVC
cUcmUgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29s
dXRlLWhlaWdodC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1dGUtaGVpZ2h0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGQ4Y2UwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9h
c3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29sdXRlLWhlaWdodC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CitsYXllciBhdCAoMTAsMTApIHNpemUgMjh4NTAKKyAg
UmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgxMCwxMCkgc2l6ZSAyOHg1MCBbYmdj
b2xvcj0jMDA4MDAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29sdXRlLWxlZnQtcmlnaHQt
ZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9j
c3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1dGUtbGVmdC1yaWdodC1leHBlY3Rl
ZC5jaGVja3N1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWUwNWQwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3Nz
My9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29sdXRlLWxlZnQtcmlnaHQtZXhwZWN0ZWQu
Y2hlY2tzdW0KQEAgLTAsMCArMSBAQAorZTUxYzNhYWNlN2Q1Y2U4NGUxY2RiODFjZWI4OWVkZjIK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1
dGUtbGVmdC1yaWdodC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1dGUtbGVmdC1yaWdo
dC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U5OGFkZGNiZWQ2NGI3NDY5MjlhZWZiYWJiZDVh
MTc0YzcyNDhmNApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjgxMAp6Y21lQVNATj8ob2xIeWB1
VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheakwlYTJAbj9hU1ctTF5ZLXBXLW9wazAKekVSTDUw
P2wpPUltbWJKYUpiMXxHKVJSTDspbmtsNUdjcWpyVHdCRyFhTnN0RjRueEM/MTU2QVpvVlhkWHpu
XzFOCnp7e0R1NjtmSGVaeU1Lb1k1OF92aiREfm9JKFYhIWsrKHJ9MFhkKVIrQiVgQHRHIzV9TTdw
JEZHUztmcTdWRCpqIQpwTXVzQ1NWaGojR3FtMG8mN2AhUCNrREd+aWImfnMqZVpWIz9nUXUmWCVR
fmxvQ0lENHtfSypNbwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJh
dGlvLWFic29sdXRlLWxlZnQtcmlnaHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29sdXRl
LWxlZnQtcmlnaHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmMxNzYxZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1dGUtbGVmdC1y
aWdodC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CitsYXllciBhdCAo
MTAsMTApIHNpemUgNzgweDQzOAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQg
KDEwLDEwKSBzaXplIDc4MHg0MzggW2JnY29sb3I9IzAwODAwMF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1y
YXRpby1hYnNvbHV0ZS13aWR0aC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hYnNvbHV0
ZS13aWR0aC1leHBlY3RlZC5jaGVja3N1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5lNzBkZDMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29sdXRlLXdpZHRo
LWV4cGVjdGVkLmNoZWNrc3VtCkBAIC0wLDAgKzEgQEAKKzA4ODI0YzlkYTE1NDgyNzYyNGM1Njcy
M2EzNzBmOTE3ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJh
dGlvLWFic29sdXRlLXdpZHRoLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hYnNvbHV0ZS13aWR0
aC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjYxOTRkYzVjYTgxY2YyNDg2MDczYWYyMGQwMzEy
YjE2YzllYjlkMwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjgxMQp6Y21lQVNATj8ob2xIeWB1
VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheakwlYTJAaD1hU1ctTF5ZKUctU0Y/a0YKej5wYENy
ZHloYHVaWjUjWUZTXyM5eG83KEZkdU55JCVRRy1vLVFVZzV6XzYkSDAyNHo4cncmOEk0QlUoeEBC
ZFczCnplTFlMSWUmKlR0cEJXQW0/QFZCMUlLbT52O05VYUw3fDF9bGNJTTdyTXVyRVdGJmh7ZGw5
OyN8NngybztxayVBKgpyNT1Me3VYZjdEZDEqNXJPRyMzb1hUKT9qRSFuXnYhbnlgaHlNbEZNPHRE
bm17ci1VV3xHWl5GXgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJh
dGlvLWFic29sdXRlLXdpZHRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hYnNvbHV0ZS13aWR0
aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTAwM2Jh
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hYnNvbHV0ZS13aWR0aC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAor
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CitsYXllciBhdCAoMTAsMTApIHNpemUgNTB4
ODgKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgxMCwxMCkgc2l6ZSA1MHg4
OCBbYmdjb2xvcj0jMDA4MDAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWF1dG8taGVpZ2h0LWV4
cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3Nz
My9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWF1dG8taGVpZ2h0LWV4cGVjdGVkLmNoZWNrc3Vt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkNTU2YzIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1y
YXRpby9hc3BlY3QtcmF0aW8tYXV0by1oZWlnaHQtZXhwZWN0ZWQuY2hlY2tzdW0KQEAgLTAsMCAr
MSBAQAorZGI1MDRlY2I2ZWQ1NjM0YmQzNjliMWIwZTc1ODM4MzUKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYXV0by1oZWlnaHQtZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8v
YXNwZWN0LXJhdGlvLWF1dG8taGVpZ2h0LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDIwOTVj
NjU5ZjhhZjQ4YmM0NzJmZmEwZWMyYzhlZGFmNzYwOTE0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCAyODEwCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAqWik9aF5qTCVhMkBu
P2FTVy1MXlkrZTAtb3BrMAp6RVJLTnpfdUk3Vk9CWkEkR0pmJG5fMmtlfF84OC0wMjhJaWtfdklL
RUhiXihKRzYpRHFGZmJUbUZnQ3ZhU3lfOE0Kenp3QVQhdiZZe304T29rRDtaJXlMY35rXnptPTNq
SWk4bFdIamc2c1U/VCFSU2g5Zkx1Mz1UZXtqTHw/Q08kbnA5Cm9VXkV3dT03UH4mRnEjWGZwOX1J
X3FqKj1fJlhIJlV3ckxxV1VIeDN2SVZDZyEwMlNnT1YqbWdFCgpsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3Mz
L2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYXV0by1oZWlnaHQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0
LXJhdGlvLWF1dG8taGVpZ2h0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44YzI5ZTBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWF1dG8taGVp
Z2h0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKK2xheWVyIGF0ICgx
MCw4KSBzaXplIDIwMHgxMTIKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgx
MCw4KSBzaXplIDIwMHgxMTIgW2JnY29sb3I9IzAwODAwMF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRp
by1hdXRvLXdpZHRoLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWF1dG8td2lkdGgtZXhw
ZWN0ZWQuY2hlY2tzdW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E1NDhi
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hdXRvLXdpZHRoLWV4cGVjdGVkLmNoZWNr
c3VtCkBAIC0wLDAgKzEgQEAKKzczZmQ0MDIxN2IzZGE1MGQ1ODY4YTFjY2E0MmVlYzNkClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWF1dG8td2lkdGgt
ZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9h
c3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWF1dG8td2lkdGgtZXhwZWN0ZWQucG5nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE3YTUzZmRiOWI0YjU0YmFiM2M4ODc4MzA0NjhmMjVlMmE0YzE3OGQKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDI4MTAKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpa
KT1oXmpMJWEyQG4/YVNXLUxeWStlMC1vcGswCnpFUktOel91STdWTGxAKkVHSmYkbl8ya2V8Xzg4
LTAyOElpa192SUtFSGJeKEpHNilEcUZmYlY2V144PUBHT19sJAp6ZXRBeTVVRUxZPmhXZHcxZyFT
TXRaZDN8P2FGMiUxWCF6akdsaE1ZWHpwKmhpdGxnMm8kWiYqM2pLUlRZbHJiNnoKbnFiWHJEN21W
aEQoT2ZYKGIzeHZUNVo9fGJTSDVXaStxNFh4dTZ7MS1vRCFNPFY5eTA5CgpsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYXV0by13aWR0aC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9h
c3BlY3QtcmF0aW8tYXV0by13aWR0aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOTJhYTNhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hdXRv
LXdpZHRoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKK2xheWVyIGF0
ICg4LDEwKSBzaXplIDExMngyMDAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0
ICg4LDEwKSBzaXplIDExMngyMDAgW2JnY29sb3I9IzAwODAwMF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1y
YXRpby1mbG9hdC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1mbG9hdC1leHBlY3RlZC5j
aGVja3N1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZGFlZThjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9h
c3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWZsb2F0LWV4cGVjdGVkLmNoZWNrc3VtCkBAIC0wLDAg
KzEgQEAKKzNmMTNiNzg5ZDBhMzU4OWUxYWMwOTliNTE4OTEzMjcyClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWZsb2F0LWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVj
dC1yYXRpby1mbG9hdC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU5ZjY1OTdjYmUwNzM5Y2Y5
MmE4YmE0N2FhMDljOGJlYmI3ZDMxNApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjgxNQp6Y21l
QVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheakwlYTJAaz5hU1ctTF5ZKUcq
LXlzNzUKelNJMz9tPTY3bX04ODVsYE17cFVob2dIdE5gX1I7d3BNaztaezlSQFNoSWVpV2owe0l1
IzI2ZldGY0AhMmV7SChQCnpwVSZgTXxGIWgqUDVJQj4maTdiWGUyfEh1Z0h3bTBWYTk8YCMlTGdu
clVXfFlnMChZbT9xeV9uNUVpcTZmZ3k+Qgp2bj9YVHNscmI2enFiWHJEN21WaEQoT2ZXbWFzbTQ7
YW8qTTZsfXdkQDRPPDNKUzNqM15QNjxyX2FOazk+CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVj
dC1yYXRpby9hc3BlY3QtcmF0aW8tZmxvYXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWZsb2F0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjhjNzBl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
Y3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWZsb2F0LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNp
emUgNjAweDIwMCBbYmdjb2xvcj0jRkYwMDAwXQorICAgICAgICBSZW5kZXJCbG9jayAoZmxvYXRp
bmcpIHtESVZ9IGF0ICg1NTAsMCkgc2l6ZSA1MHgyMDAgW2JnY29sb3I9IzAwODAwMF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJh
dGlvL2FzcGVjdC1yYXRpby1pbmhlcml0LWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWlu
aGVyaXQtZXhwZWN0ZWQuY2hlY2tzdW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZmNjOGIzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1pbmhlcml0LWV4cGVjdGVk
LmNoZWNrc3VtCkBAIC0wLDAgKzEgQEAKKzRkOWIwZDE5MzMwZjc0MTZjYzZlZjE3M2NjZWJjYTRh
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWluaGVy
aXQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3Nz
My9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWluaGVyaXQtZXhwZWN0ZWQucG5nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMyNTNiY2Y0MjMzMzM1YmY5NWNhOTRkMGY0YTFlMjQ5OTZhNzE5NTUKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDI4MzIKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpa
KT1oXmpMJWE5I0l3YVNXLUxeWSpTRy15c0o5Cno3RHY5SDVDOHJBI0hfcTxUSkopd3koeCNUc2Ns
YnQjPm45Q3l6KG1wTHFvanMxX3AqQ0NUPDE9SFFiRENkbkBCIwp6UG15RmAqazFIUXlwTE9xIU5E
aGlrPkxvLUBNR2xjdH4jSzh0P256K2tObk4/ZGw/Pz0tWkBNP0kkUkBnMj5DMUwKej8zc3RadCtG
ezg0JUV0c08mUUwpWTZ3TmpzOGZldXAqfFg/cWo1U2NUUHM2MFZRKHtrWkBsfnIxSCV0bHkkQSpk
CmkhJHd2SDBiJUAlanA3VlJMVGZYbUNEZWN8VD9TOEFLYkxoKjJ+N2F3aGY4N3IKCmxpdGVyYWwg
MApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1pbmhlcml0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlv
L2FzcGVjdC1yYXRpby1pbmhlcml0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi43ZDU2NGE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWluaGVy
aXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAor
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorbGF5ZXIgYXQgKDEw
LDEwKSBzaXplIDc4MHg1ODAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgx
MCwxMCkgc2l6ZSA3ODB4NTgwIFtiZ2NvbG9yPSNGRjAwMDBdCitsYXllciBhdCAoNjAsNjApIHNp
emUgMzAweDEzNQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQg
KDAsMCkgc2l6ZSAzMDB4MTM1IFtiZ2NvbG9yPSMwMDgwMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0
aW8tc3RyZXRjaC10by1maWxsLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLXN0cmV0Y2gt
dG8tZmlsbC1leHBlY3RlZC5jaGVja3N1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5mZDI1M2MyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLXN0cmV0Y2gtdG8tZmls
bC1leHBlY3RlZC5jaGVja3N1bQpAQCAtMCwwICsxIEBACis5ZjMxOTA2YTRmOWVjNWU3ODk2ZDY1
MDBmMjQ4MDE5ZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1y
YXRpby1zdHJldGNoLXRvLWZpbGwtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLXN0cmV0Y2gtdG8t
ZmlsbC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzI1NTdhZDlhZjUwNzI4ZGY5MGVkMjQzMzYz
NTdhYWNhYmY2NDdiMQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjgyMQp6Y21lQVNATj8ob2xI
eWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheakwlYUdtalZhU1ctTF5ZKUcqKklAQDkKemhK
IUk1X0IrU3YpaGtAcjx1ZnkwRD5iIzdZd2dUUk11clFPfEVuMXA4a1AlMkZmYlQ0dk44dz1WPSUx
Q24hbTx8Cnp6aGgpNXU+U24+dW0yVFJaVXpPbDRHYXVQT3J3bV5LcDBJNHFxJCUtN21WaEQoT2ZW
VGF6Uz5RKzJxbzxZNzdrSgp6bl9wXig+bzdGVElLYWZ2ITh5dHA0RnROVTFsaWpzJiRNUFVGeGEk
bmkhbkkoQnJxfUBWWnE5SCF9M15JYUo4Nl4KU1dlJWA7JWkhdGk9ZCNXenAkUHlFRWhIeFoKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1zdHJldGNoLXRvLWZp
bGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3Nz
My9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLXN0cmV0Y2gtdG8tZmlsbC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThkMTVjMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJh
dGlvL2FzcGVjdC1yYXRpby1zdHJldGNoLXRvLWZpbGwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
OSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDgpIHNpemUgNzg0eDU4NAorbGF5ZXIgYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgIFJlbmRlckJs
b2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHg1ODQgW2Jn
Y29sb3I9I0ZGMDAwMF0KK2xheWVyIGF0ICg4LDgpIHNpemUgNzg0eDQ0MQorICBSZW5kZXJCbG9j
ayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4NDQxIFtiZ2Nv
bG9yPSMwMDgwMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tdG9wLWJvdHRvbS1leHBlY3RlZC5j
aGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0
LXJhdGlvL2FzcGVjdC1yYXRpby10b3AtYm90dG9tLWV4cGVjdGVkLmNoZWNrc3VtCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhN2U1MzUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3Bl
Y3QtcmF0aW8tdG9wLWJvdHRvbS1leHBlY3RlZC5jaGVja3N1bQpAQCAtMCwwICsxIEBACitjNjYw
Mzg4ZGI2OGUwNTQ4NmNiOWJhNzI1M2M3N2M0YQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNw
ZWN0LXJhdGlvL2FzcGVjdC1yYXRpby10b3AtYm90dG9tLWV4cGVjdGVkLnBuZyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRp
by10b3AtYm90dG9tLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZGE0M2I2ZjEzZTFiYTJlNmJm
ODI0ZjJkNWM4ZGRhNTc0MDk2M2JlCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyODEwCnpjbWVB
U0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAqWik9aF5qTCVhMkBuP2FTVy1MXlktcFct
V0NTfAp6bVZeN25FMHZZdmxANFMoSUVCOG1PeHx7RnI+VV8kMUIyRTc/ZCVLO0hONkx6NyY8dDA3
I2UyYVg1MStJeH1vcHUKejZUU3l3bn0yVStkfDteOyFONmVIJGpUcmZKanhnaWd3ZDJSbmhRcEEh
RHVjUiU+fD5tVV5Fd3U8XnJAX3UraHt3Cm5LYzlpJmhsbmAtTWtjKWRkNHV5aEtrdz58X0FZO2Ja
Q1ZDVFMzajNeUDY8cl96MUVyXwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNw
ZWN0LXJhdGlvLXRvcC1ib3R0b20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLXRvcC1ib3R0b20t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3ZTUwYjMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9j
c3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tdG9wLWJvdHRvbS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CitsYXllciBhdCAoOCwxMCkgc2l6ZSAzMjZ4NTgwCisg
IFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoOCwxMCkgc2l6ZSAzMjZ4NTgwIFti
Z2NvbG9yPSMwMDgwMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tdG9wLXJpZ2h0LXdpZHRoLWV4
cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3Nz
My9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLXRvcC1yaWdodC13aWR0aC1leHBlY3RlZC5jaGVj
a3N1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTQ2Y2M2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3Bl
Y3QtcmF0aW8vYXNwZWN0LXJhdGlvLXRvcC1yaWdodC13aWR0aC1leHBlY3RlZC5jaGVja3N1bQpA
QCAtMCwwICsxIEBACiswNmU4MmFlNTk2NmExZDdiNjczNGM5OTIwMzQ5Y2VlYwpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby10b3AtcmlnaHQtd2lkdGgt
ZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9h
c3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLXRvcC1yaWdodC13aWR0aC1leHBlY3RlZC5wbmcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmNmMjA0ZGRiZGU2OTg1NTNhMWQzZmE2MDk1NjI5YTM1Yjk2NzMxNwpHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgMjgxMQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJh
PmkwKlopPWheakwlYTJAaD1hU1ctTF5ZLXBXLW9wKyYKekVSSzYwP0JmbWZEfTlqQnhWPmQybXRL
cykhJngoIzg1KyoqdFklPDFhR09KaXA8JWBXQ1dhMTkrPkZ7WGVnPWtyCnpNfFdMJiRKdVhxS1lv
OGYlbXhPQUJxbllLMStgSmVYZHNOSDFYd1FFbVhgTE5qaURqREBGNHlTZyh0NiNOe3QyYApyITIp
P1NrJkdzaShMXiR1M3g7UGR4V094dyYlMWlNTj5tODJRT25Aej5nVGV+RFdNNGZhVzJLawoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLXRvcC1yaWdodC13aWR0
aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3Mz
L2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tdG9wLXJpZ2h0LXdpZHRoLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzlhYTI0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0
aW8vYXNwZWN0LXJhdGlvLXRvcC1yaWdodC13aWR0aC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA3ODR4NTg0CitsYXllciBhdCAoNjkwLDEwKSBzaXplIDEwMHgxNzcKKyAgUmVuZGVy
QmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICg2OTAsMTApIHNpemUgMTAweDE3NyBbYmdjb2xv
cj0jMDA4MDAwXQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24uY3BwIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCmlu
ZGV4IDliMWRkNzEuLjljNzhlNjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbi5jcHAKQEAgLTc1MCw2ICs3NTAsNyBAQCB2b2lkIENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uOjphZGRTdWJyZXNvdXJjZVN0eWxlVVJMcyhMaXN0SGFzaFNldDxLVVJMPiYgdXJscwog
c3RhdGljIGNvbnN0IGludCBibG9ja1Byb3BlcnRpZXNbXSA9IHsKICAgICBDU1NQcm9wZXJ0eU9y
cGhhbnMsCiAgICAgQ1NTUHJvcGVydHlPdmVyZmxvdywgLy8gVGhpcyBjYW4gYmUgYWxzbyBiZSBh
cHBsaWVkIHRvIHJlcGxhY2VkIGVsZW1lbnRzCisgICAgQ1NTUHJvcGVydHlXZWJraXRBc3BlY3RS
YXRpbywKICAgICBDU1NQcm9wZXJ0eVdlYmtpdENvbHVtbkNvdW50LAogICAgIENTU1Byb3BlcnR5
V2Via2l0Q29sdW1uR2FwLAogICAgIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uUnVsZUNvbG9yLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKaW5kZXggMjZjMzg3Ni4uYTY2ZGIyOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0xMjI1LDYg
KzEyMjUsMTEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBp
bXBvcnRhbnQpCiAgICAgICAgIGFkZFByb3BlcnR5KHByb3BJZCwgdmFsLnJlbGVhc2UoKSwgaW1w
b3J0YW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRBc3BlY3RSYXRpbzoKKyAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkKKyAg
ICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxzZSAgICAKKyAgICAg
ICAgICByZXR1cm4gcGFyc2VBc3BlY3RSYXRpbyhwcm9wSWQsIGltcG9ydGFudCk7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJvcmRlclJhZGl1czoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9y
ZGVyUmFkaXVzOgogICAgICAgICByZXR1cm4gcGFyc2VCb3JkZXJSYWRpdXMocHJvcElkLCBpbXBv
cnRhbnQpOwpAQCAtNDU3Nyw2ICs0NTgyLDMwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUJvcmRl
clJhZGl1cyhpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorYm9vbCBDU1NQYXJzZXI6OnBhcnNlQXNwZWN0UmF0aW8oaW50IHByb3BJZCwgYm9vbCBpbXBv
cnRhbnQpCit7CisgICAgdW5zaWduZWQgbnVtID0gbV92YWx1ZUxpc3QtPnNpemUoKTsKKyAgICBp
ZiAobnVtICE9IDMpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBDU1NQYXJzZXJW
YWx1ZSogbHZhbHVlID0gbV92YWx1ZUxpc3QtPnZhbHVlQXQoMCk7CisgICAgQ1NTUGFyc2VyVmFs
dWUqIG9wID0gbV92YWx1ZUxpc3QtPnZhbHVlQXQoMSk7CisgICAgQ1NTUGFyc2VyVmFsdWUqIHJ2
YWx1ZSA9IG1fdmFsdWVMaXN0LT52YWx1ZUF0KDIpOworCisgICAgaWYgKCFvcC0+dW5pdCA9PSBD
U1NQYXJzZXJWYWx1ZTo6T3BlcmF0b3IgfHwgb3AtPmlWYWx1ZSAhPSAnLycpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGlmICghdmFsaWRVbml0KGx2YWx1ZSwgRkxlbmd0aCwgbV9zdHJp
Y3QpIHx8ICF2YWxpZFVuaXQocnZhbHVlLCBGTGVuZ3RoLCBtX3N0cmljdCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgaWYgKHJ2YWx1ZS0+ZlZhbHVlID09IDApIAorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJr
aXRBc3BlY3RSYXRpbywgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShsdmFsdWUtPmZWYWx1ZSAv
IHJ2YWx1ZS0+ZlZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiksIGltcG9ydGFu
dCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBDU1NQYXJzZXI6OnBhcnNlQ291bnRl
cihpbnQgcHJvcElkLCBpbnQgZGVmYXVsdFZhbHVlLCBib29sIGltcG9ydGFudCkKIHsKICAgICBl
bnVtIHsgSUQsIFZBTCB9IHN0YXRlID0gSUQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuaCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDhmM2M2ZGQuLmEzZGQyOGMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCkBAIC0xNTIsNiArMTUyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBib29sIHBhcnNlQm9yZGVySW1hZ2UoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQsIFJlZlB0
cjxDU1NWYWx1ZT4mKTsKICAgICAgICAgYm9vbCBwYXJzZUJvcmRlclJhZGl1cyhpbnQgcHJvcElk
LCBib29sIGltcG9ydGFudCk7CiAKKyAgICAgICAgYm9vbCBwYXJzZUFzcGVjdFJhdGlvKGludCBw
cm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKKwogICAgICAgICBib29sIHBhcnNlUmVmbGVjdChpbnQg
cHJvcElkLCBib29sIGltcG9ydGFudCk7CiAKICAgICAgICAgLy8gSW1hZ2UgZ2VuZXJhdG9ycwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggOWZkMmQyYy4uNmJjMTQzOCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0eU5hbWVzLmluCkBAIC0xNTcsNiArMTU3LDcgQEAgd29yZC1icmVhawogd29yZC1zcGFjaW5n
CiB3b3JkLXdyYXAKIHotaW5kZXgKKy13ZWJraXQtYXNwZWN0LXJhdGlvCiAtd2Via2l0LWFuaW1h
dGlvbgogLXdlYmtpdC1hbmltYXRpb24tZGVsYXkKIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlv
bgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCA5MDlkOTFjLi5mODA3MGY3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMzE0Niw2ICszMTQ2LDEyIEBAIHZvaWQgQ1NTU3R5bGVT
ZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAvLyBh
cmUgb25seSBoaXQgd2hlbiBtYXBwaW5nICJpbmhlcml0IiBvciAiaW5pdGlhbCIgaW50byBmcm9u
dC1lbmQgdmFsdWVzLgogICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHkgPSBzdGF0aWNfY2FzdDxD
U1NQcm9wZXJ0eUlEPihpZCk7CiAgICAgc3dpdGNoIChwcm9wZXJ0eSkgeworICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0QXNwZWN0UmF0aW86CisgICAgICAgIEhBTkRMRV9JTkhFUklUKGFzcGVj
dFJhdGlvLCBBc3BlY3RSYXRpbyk7CisgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIG1fc3R5bGUtPnNldEFzcGVjdFJhdGlvKHByaW1pdGl2
ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuOwogLy8gaWRlbnQgb25s
eSBwcm9wZXJ0aWVzCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRBdHRhY2htZW50Ogog
ICAgICAgICBIQU5ETEVfQkFDS0dST1VORF9WQUxVRShhdHRhY2htZW50LCBBdHRhY2htZW50LCB2
YWx1ZSkKQEAgLTY4MTgsOCArNjgyNCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBl
bmRpbmdJbWFnZXMoKQogICAgICAgICAgICAgICAgIGZvciAoQ29udGVudERhdGEqIGNvbnRlbnRE
YXRhID0gY29uc3RfY2FzdDxDb250ZW50RGF0YSo+KG1fc3R5bGUtPmNvbnRlbnREYXRhKCkpOyBj
b250ZW50RGF0YTsgY29udGVudERhdGEgPSBjb250ZW50RGF0YS0+bmV4dCgpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIGlmIChjb250ZW50RGF0YS0+aXNJbWFnZSgpICYmIGNvbnRlbnREYXRhLT5p
bWFnZSgpLT5pc1BlbmRpbmdJbWFnZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBDU1NJ
bWFnZVZhbHVlKiBpbWFnZVZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihj
b250ZW50RGF0YS0+aW1hZ2UoKSktPmNzc0ltYWdlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChTdHlsZUNhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSA9IGltYWdlVmFsdWUtPmNh
Y2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250ZW50RGF0YS0+c2V0SW1hZ2UoY2FjaGVkSW1hZ2UpOworICAgICAgICAgICAgICAg
ICAgICAgICAgY29udGVudERhdGEtPnNldEltYWdlKGltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNh
Y2hlZFJlc291cmNlTG9hZGVyKSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAK
aW5kZXggMTAyMThiMi4uYmY5MDIzNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAt
MTEyNSw2ICsxMTI1LDEwIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2wgcmVs
YXlvdXRDaGlsZHJlbiwgaW50IHBhZ2VIZWlnaHQpCiAgICAgaW50IG9sZFdpZHRoID0gbG9naWNh
bFdpZHRoKCk7CiAgICAgaW50IG9sZENvbHVtbldpZHRoID0gZGVzaXJlZENvbHVtbldpZHRoKCk7
CiAKKyAgICBib29sIGhhc0FzcGVjdFJhdGlvID0gc3R5bGUoKS0+aGFzQXNwZWN0UmF0aW8oKTsK
KyAgICBib29sIGNvbXB1dGVIZWlnaHRGaXJzdCA9IGhhc0FzcGVjdFJhdGlvICYmIHN0eWxlKCkt
PmxvZ2ljYWxXaWR0aCgpLmlzQXV0bygpICYmICFzdHlsZSgpLT5sb2dpY2FsSGVpZ2h0KCkuaXNB
dXRvKCk7CisgICAgaWYgKGNvbXB1dGVIZWlnaHRGaXJzdCkKKyAgICAgICAgY29tcHV0ZUxvZ2lj
YWxIZWlnaHQoKTsKICAgICBjb21wdXRlTG9naWNhbFdpZHRoKCk7CiAgICAgY2FsY0NvbHVtbldp
ZHRoKCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDA2MzkzYjUuLmMxNmQxYjYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTQ2NiwyOCArMTQ2NiwzMiBAQCB2b2lkIFJlbmRl
ckJveDo6Y29tcHV0ZUxvZ2ljYWxXaWR0aCgpCiAgICAgICAgICAgICBzZXRMb2dpY2FsV2lkdGgo
bWF4KGxvZ2ljYWxXaWR0aExlbmd0aC52YWx1ZSgpICsgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxX
aWR0aCgpLCBtaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotCiAgICAgLy8gV2lkdGggY2FsY3VsYXRpb25zCiAgICAgaWYgKHRyZWF0QXNSZXBsYWNl
ZCkKICAgICAgICAgc2V0TG9naWNhbFdpZHRoKGxvZ2ljYWxXaWR0aExlbmd0aC52YWx1ZSgpICsg
Ym9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpKTsKICAgICBlbHNlIHsKLSAgICAgICAgLy8g
Q2FsY3VsYXRlIExvZ2ljYWxXaWR0aAotICAgICAgICBzZXRMb2dpY2FsV2lkdGgoY29tcHV0ZUxv
Z2ljYWxXaWR0aFVzaW5nKExvZ2ljYWxXaWR0aCwgY29udGFpbmVyV2lkdGhJbklubGluZURpcmVj
dGlvbikpOwotCi0gICAgICAgIC8vIENhbGN1bGF0ZSBNYXhMb2dpY2FsV2lkdGgKLSAgICAgICAg
aWYgKCFzdHlsZSgpLT5sb2dpY2FsTWF4V2lkdGgoKS5pc1VuZGVmaW5lZCgpKSB7Ci0gICAgICAg
ICAgICBpbnQgbWF4TG9naWNhbFdpZHRoID0gY29tcHV0ZUxvZ2ljYWxXaWR0aFVzaW5nKE1heExv
Z2ljYWxXaWR0aCwgY29udGFpbmVyV2lkdGhJbklubGluZURpcmVjdGlvbik7Ci0gICAgICAgICAg
ICBpZiAobG9naWNhbFdpZHRoKCkgPiBtYXhMb2dpY2FsV2lkdGgpIHsKLSAgICAgICAgICAgICAg
ICBzZXRMb2dpY2FsV2lkdGgobWF4TG9naWNhbFdpZHRoKTsKLSAgICAgICAgICAgICAgICBsb2dp
Y2FsV2lkdGhMZW5ndGggPSBzdHlsZSgpLT5sb2dpY2FsTWF4V2lkdGgoKTsKKyAgICAgICAgYm9v
bCB1c2VBc3BlY3RSYXRpbyA9IHVzZUFzcGVjdFJhdGlvRm9yV2lkdGgoc3R5bGUoKS0+d2lkdGgo
KSwgc3R5bGUoKS0+bGVmdCgpLCBzdHlsZSgpLT5yaWdodCgpKTsKKyAgICAgICAgaWYgKHVzZUFz
cGVjdFJhdGlvKSB7CisgICAgICAgICAgICBzZXRMb2dpY2FsV2lkdGgoaGVpZ2h0KCkgKiBzdHls
ZSgpLT5hc3BlY3RSYXRpbygpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIENh
bGN1bGF0ZSBMb2dpY2FsV2lkdGgKKyAgICAgICAgICAgIHNldExvZ2ljYWxXaWR0aChjb21wdXRl
TG9naWNhbFdpZHRoVXNpbmcoTG9naWNhbFdpZHRoLCBjb250YWluZXJXaWR0aEluSW5saW5lRGly
ZWN0aW9uKSk7CisKKyAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBNYXhMb2dpY2FsV2lkdGgKKyAg
ICAgICAgICAgIGlmICghc3R5bGUoKS0+bG9naWNhbE1heFdpZHRoKCkuaXNVbmRlZmluZWQoKSkg
eworICAgICAgICAgICAgICAgIGludCBtYXhMb2dpY2FsV2lkdGggPSBjb21wdXRlTG9naWNhbFdp
ZHRoVXNpbmcoTWF4TG9naWNhbFdpZHRoLCBjb250YWluZXJXaWR0aEluSW5saW5lRGlyZWN0aW9u
KTsKKyAgICAgICAgICAgICAgICBpZiAobG9naWNhbFdpZHRoKCkgPiBtYXhMb2dpY2FsV2lkdGgp
IHsKKyAgICAgICAgICAgICAgICAgICAgc2V0TG9naWNhbFdpZHRoKG1heExvZ2ljYWxXaWR0aCk7
CisgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxXaWR0aExlbmd0aCA9IHN0eWxlKCktPmxvZ2lj
YWxNYXhXaWR0aCgpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAg
fQogCi0gICAgICAgIC8vIENhbGN1bGF0ZSBNaW5Mb2dpY2FsV2lkdGgKLSAgICAgICAgaW50IG1p
bkxvZ2ljYWxXaWR0aCA9IGNvbXB1dGVMb2dpY2FsV2lkdGhVc2luZyhNaW5Mb2dpY2FsV2lkdGgs
IGNvbnRhaW5lcldpZHRoSW5JbmxpbmVEaXJlY3Rpb24pOwotICAgICAgICBpZiAobG9naWNhbFdp
ZHRoKCkgPCBtaW5Mb2dpY2FsV2lkdGgpIHsKLSAgICAgICAgICAgIHNldExvZ2ljYWxXaWR0aCht
aW5Mb2dpY2FsV2lkdGgpOwotICAgICAgICAgICAgbG9naWNhbFdpZHRoTGVuZ3RoID0gc3R5bGUo
KS0+bG9naWNhbE1pbldpZHRoKCk7CisgICAgICAgICAgICAvLyBDYWxjdWxhdGUgTWluTG9naWNh
bFdpZHRoCisgICAgICAgICAgICBpbnQgbWluTG9naWNhbFdpZHRoID0gY29tcHV0ZUxvZ2ljYWxX
aWR0aFVzaW5nKE1pbkxvZ2ljYWxXaWR0aCwgY29udGFpbmVyV2lkdGhJbklubGluZURpcmVjdGlv
bik7CisgICAgICAgICAgICBpZiAobG9naWNhbFdpZHRoKCkgPCBtaW5Mb2dpY2FsV2lkdGgpIHsK
KyAgICAgICAgICAgICAgICBzZXRMb2dpY2FsV2lkdGgobWluTG9naWNhbFdpZHRoKTsKKyAgICAg
ICAgICAgICAgICBsb2dpY2FsV2lkdGhMZW5ndGggPSBzdHlsZSgpLT5sb2dpY2FsTWluV2lkdGgo
KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtMTUwOSw2ICsxNTEzLDE5
IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbFdpZHRoKCkKICAgICAgICAgY2ItPnNl
dE1hcmdpbkVuZEZvckNoaWxkKHRoaXMsIGNvbnRhaW5lckxvZ2ljYWxXaWR0aCAtIGxvZ2ljYWxX
aWR0aCgpIC0gY2ItPm1hcmdpblN0YXJ0Rm9yQ2hpbGQodGhpcykpOwogfQogCitib29sIFJlbmRl
ckJveDo6dXNlQXNwZWN0UmF0aW9BdXRvKCkgeworICAgIGJvb2wgaGFzQXNwZWN0UmF0aW8gPSBz
dHlsZSgpLT5oYXNBc3BlY3RSYXRpbygpOworICAgIGJvb2wgd2lkdGhJc0F1dG8gPSBzdHlsZSgp
LT53aWR0aCgpLmlzQXV0bygpOworICAgIGJvb2wgaGVpZ2h0SXNBdXRvID0gc3R5bGUoKS0+aGVp
Z2h0KCkuaXNBdXRvKCk7CisgICAgYm9vbCB0b3BJc0F1dG8gPSBzdHlsZSgpLT50b3AoKS5pc0F1
dG8oKTsKKyAgICBib29sIGJvdHRvbUlzQXV0byA9IHN0eWxlKCktPmJvdHRvbSgpLmlzQXV0bygp
OworICAgIGJvb2wgbGVmdElzQXV0byA9IHN0eWxlKCktPmxlZnQoKS5pc0F1dG8oKTsKKyAgICBi
b29sIHJpZ2h0SXNBdXRvID0gc3R5bGUoKS0+cmlnaHQoKS5pc0F1dG8oKTsKKyAgICBib29sIGhl
aWdodERldGVybWluZWQgPSAhaGVpZ2h0SXNBdXRvIHx8ICghdG9wSXNBdXRvICYmICFib3R0b21J
c0F1dG8gJiYgaXNQb3NpdGlvbmVkKCkpOworICAgIGJvb2wgd2lkdGhEZXRlcm1pbmVkID0gIXdp
ZHRoSXNBdXRvIHx8ICghbGVmdElzQXV0byAmJiAhcmlnaHRJc0F1dG8gJiYgaXNQb3NpdGlvbmVk
KCkpOworICAgIHJldHVybiAhaGVpZ2h0RGV0ZXJtaW5lZCAmJiAhd2lkdGhEZXRlcm1pbmVkICYm
IGhhc0FzcGVjdFJhdGlvOworfQorCiBpbnQgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbFdpZHRo
VXNpbmcoTG9naWNhbFdpZHRoVHlwZSB3aWR0aFR5cGUsIGludCBhdmFpbGFibGVMb2dpY2FsV2lk
dGgpCiB7CiAgICAgaW50IGxvZ2ljYWxXaWR0aFJlc3VsdCA9IGxvZ2ljYWxXaWR0aCgpOwpAQCAt
MTUyMyw4ICsxNTQwLDE2IEBAIGludCBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsV2lkdGhVc2lu
ZyhMb2dpY2FsV2lkdGhUeXBlIHdpZHRoVHlwZSwgaW50IGF2YWlsYWJsCiAgICAgaWYgKGxvZ2lj
YWxXaWR0aC5pc0ludHJpbnNpY09yQXV0bygpKSB7CiAgICAgICAgIGludCBtYXJnaW5TdGFydCA9
IHN0eWxlKCktPm1hcmdpblN0YXJ0KCkuY2FsY01pblZhbHVlKGF2YWlsYWJsZUxvZ2ljYWxXaWR0
aCk7CiAgICAgICAgIGludCBtYXJnaW5FbmQgPSBzdHlsZSgpLT5tYXJnaW5FbmQoKS5jYWxjTWlu
VmFsdWUoYXZhaWxhYmxlTG9naWNhbFdpZHRoKTsKLSAgICAgICAgaWYgKGF2YWlsYWJsZUxvZ2lj
YWxXaWR0aCkKKyAgICAgICAgaWYgKGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCkgewogICAgICAgICAg
ICAgbG9naWNhbFdpZHRoUmVzdWx0ID0gYXZhaWxhYmxlTG9naWNhbFdpZHRoIC0gbWFyZ2luU3Rh
cnQgLSBtYXJnaW5FbmQ7CisgICAgICAgICAgICBpZiAodXNlQXNwZWN0UmF0aW9BdXRvKCkpIHsK
KyAgICAgICAgICAgICAgICBSZW5kZXJCbG9jayogY2IgPSBjb250YWluaW5nQmxvY2soKTsKKyAg
ICAgICAgICAgICAgICBSZW5kZXJTdHlsZSogY2JzID0gY2ItPnN0eWxlKCk7CisgICAgICAgICAg
ICAgICAgaW50IGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQgPSBjb21wdXRlTG9naWNhbEhlaWdodFVz
aW5nKGNicy0+bG9naWNhbEhlaWdodCgpKTsKKyAgICAgICAgICAgICAgICBpbnQgbWF4SCA9IHN0
eWxlKCktPmxvZ2ljYWxNYXhIZWlnaHQoKS5pc1VuZGVmaW5lZCgpID8gY29udGFpbmVyTG9naWNh
bEhlaWdodCA6IGNvbXB1dGVMb2dpY2FsSGVpZ2h0VXNpbmcoc3R5bGUoKS0+bG9naWNhbE1heEhl
aWdodCgpKTsKKyAgICAgICAgICAgICAgICBsb2dpY2FsV2lkdGhSZXN1bHQgPSBtaW4obG9naWNh
bFdpZHRoUmVzdWx0LCAoaW50KShtYXhIICogc3R5bGUoKS0+YXNwZWN0UmF0aW8oKSkpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CiAKICAgICAgICAgaWYgKHNpemVzVG9JbnRyaW5zaWNMb2dp
Y2FsV2lkdGgod2lkdGhUeXBlKSkgewogICAgICAgICAgICAgbG9naWNhbFdpZHRoUmVzdWx0ID0g
bWF4KGxvZ2ljYWxXaWR0aFJlc3VsdCwgbWluUHJlZmVycmVkTG9naWNhbFdpZHRoKCkpOwpAQCAt
MTY0NSw2ICsxNjcwLDcgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkK
ICAgICAgICAgYm9vbCBpbkhvcml6b250YWxCb3ggPSBwYXJlbnQoKS0+aXNGbGV4aWJsZUJveCgp
ICYmIHBhcmVudCgpLT5zdHlsZSgpLT5ib3hPcmllbnQoKSA9PSBIT1JJWk9OVEFMOwogICAgICAg
ICBib29sIHN0cmV0Y2hpbmcgPSBwYXJlbnQoKS0+c3R5bGUoKS0+Ym94QWxpZ24oKSA9PSBCU1RS
RVRDSDsKICAgICAgICAgYm9vbCB0cmVhdEFzUmVwbGFjZWQgPSBzaG91bGRDb21wdXRlU2l6ZUFz
UmVwbGFjZWQoKSAmJiAoIWluSG9yaXpvbnRhbEJveCB8fCAhc3RyZXRjaGluZyk7CisgICAgICAg
IGJvb2wgdXNlQXNwZWN0UmF0aW8gPSB1c2VBc3BlY3RSYXRpb0ZvckhlaWdodChzdHlsZSgpLT5o
ZWlnaHQoKSwgc3R5bGUoKS0+bGVmdCgpLCBzdHlsZSgpLT5yaWdodCgpKTsgCiAgICAgICAgIGJv
b2wgY2hlY2tNaW5NYXhIZWlnaHQgPSBmYWxzZTsKIAogICAgICAgICAvLyBUaGUgcGFyZW50IGJv
eCBpcyBmbGV4aW5nIHVzLCBzbyBpdCBoYXMgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBvdXIgaGVp
Z2h0LiAgV2UgaGF2ZSB0bwpAQCAtMTY1OCw3ICsxNjg0LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmNv
bXB1dGVMb2dpY2FsSGVpZ2h0KCkKICAgICAgICAgICAgIGggPSBMZW5ndGgoY29tcHV0ZVJlcGxh
Y2VkTG9naWNhbEhlaWdodCgpLCBGaXhlZCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
aCA9IHN0eWxlKCktPmxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgICAgIGNoZWNrTWluTWF4SGVp
Z2h0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGNoZWNrTWluTWF4SGVpZ2h0ID0gIXVzZUFzcGVjdFJh
dGlvOwogICAgICAgICB9CiAKICAgICAgICAgLy8gQmxvY2sgY2hpbGRyZW4gb2YgaG9yaXpvbnRh
bCBmbGV4aWJsZSBib3hlcyBmaWxsIHRoZSBoZWlnaHQgb2YgdGhlIGJveC4KQEAgLTE2NzUsNiAr
MTcwMSw4IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbEhlaWdodCgpCiAgICAgICAg
ICAgICBoZWlnaHRSZXN1bHQgPSBjb21wdXRlTG9naWNhbEhlaWdodFVzaW5nKHN0eWxlKCktPmxv
Z2ljYWxIZWlnaHQoKSk7CiAgICAgICAgICAgICBpZiAoaGVpZ2h0UmVzdWx0ID09IC0xKQogICAg
ICAgICAgICAgICAgIGhlaWdodFJlc3VsdCA9IGxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAg
IGlmICghaGVpZ2h0UmVzdWx0ICYmIHVzZUFzcGVjdFJhdGlvQXV0bygpKSAKKyAgICAgICAgICAg
ICAgICBoZWlnaHRSZXN1bHQgPSBtYXgoaGVpZ2h0UmVzdWx0LCAoaW50KSh3aWR0aCgpIC8gc3R5
bGUoKS0+YXNwZWN0UmF0aW8oKSkpOwogICAgICAgICAgICAgaW50IG1pbkggPSBjb21wdXRlTG9n
aWNhbEhlaWdodFVzaW5nKHN0eWxlKCktPmxvZ2ljYWxNaW5IZWlnaHQoKSk7IC8vIExlYXZlIGFz
IC0xIGlmIHVuc2V0LgogICAgICAgICAgICAgaW50IG1heEggPSBzdHlsZSgpLT5sb2dpY2FsTWF4
SGVpZ2h0KCkuaXNVbmRlZmluZWQoKSA/IGhlaWdodFJlc3VsdCA6IGNvbXB1dGVMb2dpY2FsSGVp
Z2h0VXNpbmcoc3R5bGUoKS0+bG9naWNhbE1heEhlaWdodCgpKTsKICAgICAgICAgICAgIGlmICht
YXhIID09IC0xKQpAQCAtMTY4MiwxMCArMTcxMCwxNCBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0
ZUxvZ2ljYWxIZWlnaHQoKQogICAgICAgICAgICAgaGVpZ2h0UmVzdWx0ID0gbWluKG1heEgsIGhl
aWdodFJlc3VsdCk7CiAgICAgICAgICAgICBoZWlnaHRSZXN1bHQgPSBtYXgobWluSCwgaGVpZ2h0
UmVzdWx0KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIFRoZSBvbmx5IHRpbWVz
IHdlIGRvbid0IGNoZWNrIG1pbi9tYXggaGVpZ2h0IGFyZSB3aGVuIGEgZml4ZWQgbGVuZ3RoIGhh
cwotICAgICAgICAgICAgLy8gYmVlbiBnaXZlbiBhcyBhbiBvdmVycmlkZS4gIEp1c3QgdXNlIHRo
YXQuICBUaGUgdmFsdWUgaGFzIGFscmVhZHkgYmVlbiBhZGp1c3RlZAotICAgICAgICAgICAgLy8g
Zm9yIGJveC1zaXppbmcuCi0gICAgICAgICAgICBoZWlnaHRSZXN1bHQgPSBoLnZhbHVlKCkgKyBi
b3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpOworICAgICAgICAgICAgaWYgKHVzZUFzcGVj
dFJhdGlvKSB7CisgICAgICAgICAgICAgICAgaGVpZ2h0UmVzdWx0ID0gd2lkdGgoKSAvIHN0eWxl
KCktPmFzcGVjdFJhdGlvKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IC8vIFRoZSBvbmx5IHRpbWVzIHdlIGRvbid0IGNoZWNrIG1pbi9tYXggaGVpZ2h0IGFyZSB3aGVu
IGEgZml4ZWQgbGVuZ3RoIGhhcworICAgICAgICAgICAgICAgIC8vIGJlZW4gZ2l2ZW4gYXMgYW4g
b3ZlcnJpZGUuICBKdXN0IHVzZSB0aGF0LiAgVGhlIHZhbHVlIGhhcyBhbHJlYWR5IGJlZW4gYWRq
dXN0ZWQKKyAgICAgICAgICAgICAgICAvLyBmb3IgYm94LXNpemluZy4KKyAgICAgICAgICAgICAg
ICBoZWlnaHRSZXN1bHQgPSBoLnZhbHVlKCkgKyBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdo
dCgpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgc2V0TG9naWNhbEhlaWdo
dChoZWlnaHRSZXN1bHQpOwpAQCAtMjE2Myw2ICsyMTk1LDIwIEBAIHZvaWQgUmVuZGVyQm94Ojpj
b21wdXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aCgpCiAgICAgc2V0V2lkdGgod2lkdGgoKSArIGJv
cmRlcnNQbHVzUGFkZGluZyk7CiB9CiAKK2Jvb2wgUmVuZGVyQm94Ojp1c2VBc3BlY3RSYXRpb0Zv
cldpZHRoKGNvbnN0IExlbmd0aCYgd2lkdGgsIGNvbnN0IExlbmd0aCYgbGVmdCwgY29uc3QgTGVu
Z3RoJiByaWdodCkgeworICAgIGJvb2wgaGFzQXNwZWN0UmF0aW8gPSBzdHlsZSgpLT5oYXNBc3Bl
Y3RSYXRpbygpOworICAgIGJvb2wgdXNlTWluTWF4ID0gIXN0eWxlKCktPm1heEhlaWdodCgpLmlz
VW5kZWZpbmVkKCkgfHwgIXN0eWxlKCktPm1pbkhlaWdodCgpLmlzWmVybygpOworICAgIGJvb2wg
d2lkdGhJc0F1dG8gPSB3aWR0aC5pc0ludHJpbnNpY09yQXV0bygpOworICAgIGJvb2wgaGVpZ2h0
SXNBdXRvID0gc3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCk7CisgICAgYm9vbCB0b3BJc0F1dG8g
PSBzdHlsZSgpLT50b3AoKS5pc0F1dG8oKTsKKyAgICBib29sIGJvdHRvbUlzQXV0byA9IHN0eWxl
KCktPmJvdHRvbSgpLmlzQXV0bygpOworICAgIGJvb2wgbGVmdElzQXV0byA9IGxlZnQuaXNBdXRv
KCk7CisgICAgYm9vbCByaWdodElzQXV0byA9IHJpZ2h0LmlzQXV0bygpOworICAgIGJvb2wgaGVp
Z2h0RGV0ZXJtaW5lZCA9ICFoZWlnaHRJc0F1dG8gfHwgKCF0b3BJc0F1dG8gJiYgIWJvdHRvbUlz
QXV0byAmJiBpc1Bvc2l0aW9uZWQoKSk7CisgICAgYm9vbCB3aWR0aERldGVybWluZWQgPSAhd2lk
dGhJc0F1dG8gfHwgKCFsZWZ0SXNBdXRvICYmICFyaWdodElzQXV0byAmJiBpc1Bvc2l0aW9uZWQo
KSk7CisgICAgcmV0dXJuICF1c2VNaW5NYXggJiYgaGVpZ2h0RGV0ZXJtaW5lZCAmJiAhd2lkdGhE
ZXRlcm1pbmVkICYmIGhhc0FzcGVjdFJhdGlvOworfQorCiB2b2lkIFJlbmRlckJveDo6Y29tcHV0
ZVBvc2l0aW9uZWRMb2dpY2FsV2lkdGhVc2luZyhMZW5ndGggd2lkdGgsIGNvbnN0IFJlbmRlckJv
eE1vZGVsT2JqZWN0KiBjb250YWluZXJCbG9jaywgVGV4dERpcmVjdGlvbiBjb250YWluZXJEaXJl
Y3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBpbnQgY29udGFpbmVyV2lkdGgsIGNvbnN0IGludCBib3JkZXJzUGx1c1BhZGRpbmcsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMZW5ndGggbGVm
dCwgY29uc3QgTGVuZ3RoIHJpZ2h0LCBjb25zdCBMZW5ndGggbWFyZ2luTGVmdCwgY29uc3QgTGVu
Z3RoIG1hcmdpblJpZ2h0LApAQCAtMjE3Nyw2ICsyMjIzLDcgQEAgdm9pZCBSZW5kZXJCb3g6OmNv
bXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoVXNpbmcoTGVuZ3RoIHdpZHRoLCBjb25zdCBSZW5k
ZXJCb3gKICAgICBib29sIHdpZHRoSXNBdXRvID0gd2lkdGguaXNJbnRyaW5zaWNPckF1dG8oKTsK
ICAgICBib29sIGxlZnRJc0F1dG8gPSBsZWZ0LmlzQXV0bygpOwogICAgIGJvb2wgcmlnaHRJc0F1
dG8gPSByaWdodC5pc0F1dG8oKTsKKyAgICBib29sIHVzZUFzcGVjdFJhdGlvID0gdXNlQXNwZWN0
UmF0aW9Gb3JXaWR0aCh3aWR0aCwgbGVmdCwgcmlnaHQpOwogCiAgICAgaWYgKCFsZWZ0SXNBdXRv
ICYmICF3aWR0aElzQXV0byAmJiAhcmlnaHRJc0F1dG8pIHsKICAgICAgICAgLyotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSpcCkBAIC0yMjkxLDYgKzIzMzgsOCBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVBvc2l0
aW9uZWRMb2dpY2FsV2lkdGhVc2luZyhMZW5ndGggd2lkdGgsIGNvbnN0IFJlbmRlckJveAogICAg
ICAgICAgICAgaW50IHByZWZlcnJlZE1pbldpZHRoID0gbWluUHJlZmVycmVkTG9naWNhbFdpZHRo
KCkgLSBib3JkZXJzUGx1c1BhZGRpbmc7CiAgICAgICAgICAgICBpbnQgYXZhaWxhYmxlV2lkdGgg
PSBhdmFpbGFibGVTcGFjZSAtIHJpZ2h0VmFsdWU7CiAgICAgICAgICAgICB3aWR0aFZhbHVlID0g
bWluKG1heChwcmVmZXJyZWRNaW5XaWR0aCwgYXZhaWxhYmxlV2lkdGgpLCBwcmVmZXJyZWRXaWR0
aCk7CisgICAgICAgICAgICBpZiAodXNlQXNwZWN0UmF0aW8pIAorICAgICAgICAgICAgICAgIHdp
ZHRoVmFsdWUgPSBtYXgoKGludCkoaGVpZ2h0KCkgKiBzdHlsZSgpLT5hc3BlY3RSYXRpbygpKSwg
d2lkdGhWYWx1ZSk7CiAgICAgICAgICAgICBsZWZ0VmFsdWUgPSBhdmFpbGFibGVTcGFjZSAtICh3
aWR0aFZhbHVlICsgcmlnaHRWYWx1ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoIWxlZnRJc0F1dG8g
JiYgd2lkdGhJc0F1dG8gJiYgcmlnaHRJc0F1dG8pIHsKICAgICAgICAgICAgIC8vIFJVTEUgMzog
KHVzZSBzaHJpbmstdG8tZml0IGZvciB3aWR0aCwgYW5kIG5vIG5lZWQgc29sdmUgb2YgcmlnaHQp
CkBAIC0yMzAxLDE5ICsyMzUwLDIzIEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25l
ZExvZ2ljYWxXaWR0aFVzaW5nKExlbmd0aCB3aWR0aCwgY29uc3QgUmVuZGVyQm94CiAgICAgICAg
ICAgICBpbnQgcHJlZmVycmVkTWluV2lkdGggPSBtaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSAt
IGJvcmRlcnNQbHVzUGFkZGluZzsKICAgICAgICAgICAgIGludCBhdmFpbGFibGVXaWR0aCA9IGF2
YWlsYWJsZVNwYWNlIC0gbGVmdFZhbHVlOwogICAgICAgICAgICAgd2lkdGhWYWx1ZSA9IG1pbiht
YXgocHJlZmVycmVkTWluV2lkdGgsIGF2YWlsYWJsZVdpZHRoKSwgcHJlZmVycmVkV2lkdGgpOwor
ICAgICAgICAgICAgaWYgKHVzZUFzcGVjdFJhdGlvKSAKKyAgICAgICAgICAgICAgICB3aWR0aFZh
bHVlID0gbWF4KChpbnQpKGhlaWdodCgpICogc3R5bGUoKS0+YXNwZWN0UmF0aW8oKSksIHdpZHRo
VmFsdWUpOwogICAgICAgICB9IGVsc2UgaWYgKGxlZnRJc0F1dG8gJiYgIXdpZHRoLmlzQXV0bygp
ICYmICFyaWdodElzQXV0bykgewogICAgICAgICAgICAgLy8gUlVMRSA0OiAoc29sdmUgZm9yIGxl
ZnQpCiAgICAgICAgICAgICB3aWR0aFZhbHVlID0gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lk
dGgod2lkdGguY2FsY1ZhbHVlKGNvbnRhaW5lcldpZHRoKSk7CisgICAgICAgICAgICBpZiAodXNl
QXNwZWN0UmF0aW8pIAorICAgICAgICAgICAgICAgIHdpZHRoVmFsdWUgPSBtYXgoKGludCkoaGVp
Z2h0KCkgKiBzdHlsZSgpLT5hc3BlY3RSYXRpbygpKSwgd2lkdGhWYWx1ZSk7CiAgICAgICAgICAg
ICBsZWZ0VmFsdWUgPSBhdmFpbGFibGVTcGFjZSAtICh3aWR0aFZhbHVlICsgcmlnaHQuY2FsY1Zh
bHVlKGNvbnRhaW5lcldpZHRoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoIWxlZnRJc0F1dG8gJiYg
d2lkdGhJc0F1dG8gJiYgIXJpZ2h0SXNBdXRvKSB7CiAgICAgICAgICAgICAvLyBSVUxFIDU6IChz
b2x2ZSBmb3Igd2lkdGgpCiAgICAgICAgICAgICBsZWZ0VmFsdWUgPSBsZWZ0LmNhbGNWYWx1ZShj
b250YWluZXJXaWR0aCk7CiAgICAgICAgICAgICB3aWR0aFZhbHVlID0gYXZhaWxhYmxlU3BhY2Ug
LSAobGVmdFZhbHVlICsgcmlnaHQuY2FsY1ZhbHVlKGNvbnRhaW5lcldpZHRoKSk7Ci0gICAgICAg
IH0gZWxzZSBpZiAoIWxlZnRJc0F1dG8mJiAhd2lkdGhJc0F1dG8gJiYgcmlnaHRJc0F1dG8pIHsK
KyAgICAgICAgfSBlbHNlIGlmICghbGVmdElzQXV0byAmJiAhd2lkdGhJc0F1dG8gJiYgcmlnaHRJ
c0F1dG8pIHsKICAgICAgICAgICAgIC8vIFJVTEUgNjogKG5vIG5lZWQgc29sdmUgZm9yIHJpZ2h0
KQogICAgICAgICAgICAgbGVmdFZhbHVlID0gbGVmdC5jYWxjVmFsdWUoY29udGFpbmVyV2lkdGgp
OwogICAgICAgICAgICAgd2lkdGhWYWx1ZSA9IGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRo
KHdpZHRoLmNhbGNWYWx1ZShjb250YWluZXJXaWR0aCkpOwotICAgICAgICB9CisgICAgICAgIH0g
ICAgCiAgICAgfQogCiAgICAgLy8gVXNlIGNvbXB1dGVkIHZhbHVlcyB0byBjYWxjdWxhdGUgdGhl
IGhvcml6b250YWwgcG9zaXRpb24uCkBAIC0yMzk3LDYgKzI0NTAsOCBAQCB2b2lkIFJlbmRlckJv
eDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsSGVpZ2h0KCkKICAgICBjb21wdXRlUG9zaXRpb25l
ZExvZ2ljYWxIZWlnaHRVc2luZyhzdHlsZSgpLT5oZWlnaHQoKSwgY29udGFpbmVyQmxvY2ssIGNv
bnRhaW5lckhlaWdodCwgYm9yZGVyc1BsdXNQYWRkaW5nLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRvcCwgYm90dG9tLCBtYXJnaW5Ub3AsIG1hcmdpbkJvdHRvbSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoLCBtX21hcmdpblRvcCwgbV9tYXJnaW5Cb3R0b20sIHkp
OworCisKICAgICBzZXRZKHkpOwogCiAgICAgLy8gQXZvaWQgZG9pbmcgYW55IHdvcmsgaW4gdGhl
IGNvbW1vbiBjYXNlICh3aGVyZSB0aGUgdmFsdWVzIG9mIG1pbi1oZWlnaHQgYW5kIG1heC1oZWln
aHQgYXJlIHRoZWlyIGRlZmF1bHRzKS4KQEAgLTI0NDQsNiArMjQ5OSwyMSBAQCB2b2lkIFJlbmRl
ckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsSGVpZ2h0KCkKICAgICBzZXRIZWlnaHQoaCAr
IGJvcmRlcnNQbHVzUGFkZGluZyk7CiB9CiAKKworYm9vbCBSZW5kZXJCb3g6OnVzZUFzcGVjdFJh
dGlvRm9ySGVpZ2h0KGNvbnN0IExlbmd0aCYgaGVpZ2h0LCBjb25zdCBMZW5ndGgmIHRvcCwgY29u
c3QgTGVuZ3RoJiBib3R0b20pIHsKKyAgICBib29sIHVzZU1pbk1heCA9ICFzdHlsZSgpLT5tYXhI
ZWlnaHQoKS5pc1VuZGVmaW5lZCgpIHx8ICFzdHlsZSgpLT5taW5IZWlnaHQoKS5pc1plcm8oKTsK
KyAgICBib29sIHdpZHRoSXNBdXRvID0gc3R5bGUoKS0+bG9naWNhbFdpZHRoKCkuaXNJbnRyaW5z
aWNPckF1dG8oKTsKKyAgICBib29sIGhhc0FzcGVjdFJhdGlvID0gc3R5bGUoKS0+aGFzQXNwZWN0
UmF0aW8oKTsKKyAgICBib29sIGhlaWdodElzQXV0byA9IGhlaWdodC5pc0F1dG8oKTsKKyAgICBi
b29sIHRvcElzQXV0byA9IHRvcC5pc0F1dG8oKTsKKyAgICBib29sIGJvdHRvbUlzQXV0byA9IGJv
dHRvbS5pc0F1dG8oKTsKKyAgICBib29sIGxlZnRJc0F1dG8gPSBzdHlsZSgpLT5sZWZ0KCkuaXNB
dXRvKCk7CisgICAgYm9vbCByaWdodElzQXV0byA9IHN0eWxlKCktPnJpZ2h0KCkuaXNBdXRvKCk7
CisgICAgYm9vbCBoZWlnaHREZXRlcm1pbmVkID0gIWhlaWdodElzQXV0byB8fCAoIXRvcElzQXV0
byAmJiAhYm90dG9tSXNBdXRvICYmIGlzUG9zaXRpb25lZCgpKTsKKyAgICBib29sIHdpZHRoRGV0
ZXJtaW5lZCA9ICF3aWR0aElzQXV0byB8fCAoIWxlZnRJc0F1dG8gJiYgIXJpZ2h0SXNBdXRvICYm
IGlzUG9zaXRpb25lZCgpKTsKKyAgICByZXR1cm4gIXVzZU1pbk1heCAmJiAhaGVpZ2h0RGV0ZXJt
aW5lZCAmJiB3aWR0aERldGVybWluZWQgJiYgaGFzQXNwZWN0UmF0aW87Cit9CisKIHZvaWQgUmVu
ZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxIZWlnaHRVc2luZyhMZW5ndGggaCwgY29u
c3QgUmVuZGVyQm94TW9kZWxPYmplY3QqIGNvbnRhaW5lckJsb2NrLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBjb250YWluZXJIZWlnaHQsIGNv
bnN0IGludCBib3JkZXJzUGx1c1BhZGRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgTGVuZ3RoIHRvcCwgY29uc3QgTGVuZ3RoIGJvdHRvbSwgY29u
c3QgTGVuZ3RoIG1hcmdpblRvcCwgY29uc3QgTGVuZ3RoIG1hcmdpbkJvdHRvbSwKQEAgLTI0NTcs
OSArMjUyNywxMCBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsSGVp
Z2h0VXNpbmcoTGVuZ3RoIGgsIGNvbnN0IFJlbmRlckJveE1vZAogCiAgICAgaW50IHRvcFZhbHVl
ID0gMDsKIAotICAgIGJvb2wgaGVpZ2h0SXNBdXRvID0gaC5pc0F1dG8oKTsKICAgICBib29sIHRv
cElzQXV0byA9IHRvcC5pc0F1dG8oKTsKICAgICBib29sIGJvdHRvbUlzQXV0byA9IGJvdHRvbS5p
c0F1dG8oKTsKKyAgICBib29sIGhlaWdodElzQXV0byA9IGguaXNBdXRvKCk7CisgICAgYm9vbCB1
c2VBc3BlY3RSYXRpbyA9IHVzZUFzcGVjdFJhdGlvRm9ySGVpZ2h0KGgsIHRvcCwgYm90dG9tKTsK
IAogICAgIC8vIEhlaWdodCBpcyBuZXZlciB1bnNvbHZlZCBmb3IgdGFibGVzLgogICAgIGlmIChp
c1RhYmxlKCkpIHsKQEAgLTI1MzgsMTIgKzI2MDksMTIgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1
dGVQb3NpdGlvbmVkTG9naWNhbEhlaWdodFVzaW5nKExlbmd0aCBoLCBjb25zdCBSZW5kZXJCb3hN
b2QKICAgICAgICAgLy8gVXNlIHJ1bGUvY2FzZSB0aGF0IGFwcGxpZXMuCiAgICAgICAgIGlmICh0
b3BJc0F1dG8gJiYgaGVpZ2h0SXNBdXRvICYmICFib3R0b21Jc0F1dG8pIHsKICAgICAgICAgICAg
IC8vIFJVTEUgMTogKGhlaWdodCBpcyBjb250ZW50IGJhc2VkLCBzb2x2ZSBvZiB0b3ApCi0gICAg
ICAgICAgICBoZWlnaHRWYWx1ZSA9IGNvbnRlbnRIZWlnaHQ7CisgICAgICAgICAgICBoZWlnaHRW
YWx1ZSA9IHVzZUFzcGVjdFJhdGlvID8gKHdpZHRoKCkgLyBzdHlsZSgpLT5hc3BlY3RSYXRpbygp
KSA6IGNvbnRlbnRIZWlnaHQ7CiAgICAgICAgICAgICB0b3BWYWx1ZSA9IGF2YWlsYWJsZVNwYWNl
IC0gKGhlaWdodFZhbHVlICsgYm90dG9tLmNhbGNWYWx1ZShjb250YWluZXJIZWlnaHQpKTsKICAg
ICAgICAgfSBlbHNlIGlmICghdG9wSXNBdXRvICYmIGhlaWdodElzQXV0byAmJiBib3R0b21Jc0F1
dG8pIHsKICAgICAgICAgICAgIC8vIFJVTEUgMzogKGhlaWdodCBpcyBjb250ZW50IGJhc2VkLCBu
byBuZWVkIHNvbHZlIG9mIGJvdHRvbSkKICAgICAgICAgICAgIHRvcFZhbHVlID0gdG9wLmNhbGNW
YWx1ZShjb250YWluZXJIZWlnaHQpOwotICAgICAgICAgICAgaGVpZ2h0VmFsdWUgPSBjb250ZW50
SGVpZ2h0OworICAgICAgICAgICAgaGVpZ2h0VmFsdWUgPSB1c2VBc3BlY3RSYXRpbyA/ICh3aWR0
aCgpIC8gc3R5bGUoKS0+YXNwZWN0UmF0aW8oKSkgOiBjb250ZW50SGVpZ2h0OwogICAgICAgICB9
IGVsc2UgaWYgKHRvcElzQXV0byAmJiAhaGVpZ2h0SXNBdXRvICYmICFib3R0b21Jc0F1dG8pIHsK
ICAgICAgICAgICAgIC8vIFJVTEUgNDogKHNvbHZlIG9mIHRvcCkKICAgICAgICAgICAgIGhlaWdo
dFZhbHVlID0gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0KGguY2FsY1ZhbHVlKGNvbnRh
aW5lckhlaWdodCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94Lmgg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCA5ZGVkMTJjLi5hNGVhNTU3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaApAQCAtMzkwLDYgKzM5MCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAg
dmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNl
VHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKIAogcHJpdmF0ZToKKworICAgIGJv
b2wgdXNlQXNwZWN0UmF0aW9Gb3JXaWR0aChjb25zdCBMZW5ndGgmIHdpZHRoLCBjb25zdCBMZW5n
dGgmIGxlZnQsIGNvbnN0IExlbmd0aCYgcmlnaHQpOworICAgIGJvb2wgdXNlQXNwZWN0UmF0aW9G
b3JIZWlnaHQoY29uc3QgTGVuZ3RoJiBoZWlnaHQsIGNvbnN0IExlbmd0aCYgdG9wLCBjb25zdCBM
ZW5ndGgmIGJvdHRvbSk7CisgICAgYm9vbCB1c2VBc3BlY3RSYXRpb0F1dG8oKTsKICAgICBib29s
IGluY2x1ZGVWZXJ0aWNhbFNjcm9sbGJhclNpemUoKSBjb25zdCB7IHJldHVybiBoYXNPdmVyZmxv
d0NsaXAoKSAmJiAoc3R5bGUoKS0+b3ZlcmZsb3dZKCkgPT0gT1NDUk9MTCB8fCBzdHlsZSgpLT5v
dmVyZmxvd1koKSA9PSBPQVVUTyk7IH0KICAgICBib29sIGluY2x1ZGVIb3Jpem9udGFsU2Nyb2xs
YmFyU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGhhc092ZXJmbG93Q2xpcCgpICYmIChzdHlsZSgpLT5v
dmVyZmxvd1goKSA9PSBPU0NST0xMIHx8IHN0eWxlKCktPm92ZXJmbG93WCgpID09IE9BVVRPKTsg
fQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA5ZjM5ZTBmLi4zYjVm
NmJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTk3OSw2ICs5Nzks
MTIgQEAgcHVibGljOgogICAgIGludCB6SW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2JveC0+eklu
ZGV4KCk7IH0KICAgICB2b2lkIHNldFpJbmRleChpbnQgdikgeyBTRVRfVkFSKG1fYm94LCBtX2hh
c0F1dG9aSW5kZXgsIGZhbHNlKTsgU0VUX1ZBUihtX2JveCwgbV96SW5kZXgsIHYpIH0KIAorICAg
IGJvb2wgaGFzQXNwZWN0UmF0aW8oKSBjb25zdCB7IHJldHVybiBtX2JveC0+aGFzQXNwZWN0UmF0
aW8oKTsgfQorICAgIHZvaWQgc2V0SGFzQXNwZWN0UmF0aW8oYm9vbCB2KSB7IFNFVF9WQVIobV9i
b3gsIG1faGFzQXNwZWN0UmF0aW8sIHYpOyBTRVRfVkFSKG1fYm94LCBtX2FzcGVjdFJhdGlvLCAx
LjBmKSB9CisgICAgZmxvYXQgYXNwZWN0UmF0aW8oKSBjb25zdCB7IHJldHVybiBtX2JveC0+YXNw
ZWN0UmF0aW8oKTsgfSAKKyAgICB2b2lkIHNldEFzcGVjdFJhdGlvKGZsb2F0IHYpIHsgU0VUX1ZB
UihtX2JveCwgbV9oYXNBc3BlY3RSYXRpbywgdHJ1ZSk7IFNFVF9WQVIobV9ib3gsIG1fYXNwZWN0
UmF0aW8sIHYpIH0KKyAgICAKKwogICAgIHZvaWQgc2V0V2lkb3dzKHNob3J0IHcpIHsgU0VUX1ZB
UihyYXJlSW5oZXJpdGVkRGF0YSwgd2lkb3dzLCB3KTsgfQogICAgIHZvaWQgc2V0T3JwaGFucyhz
aG9ydCBvKSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG9ycGhhbnMsIG8pOyB9CiAgICAg
dm9pZCBzZXRQYWdlQnJlYWtJbnNpZGUoRVBhZ2VCcmVhayBiKSB7IG5vbmluaGVyaXRlZF9mbGFn
cy5fcGFnZV9icmVha19pbnNpZGUgPSBiOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUJveERhdGEuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVC
b3hEYXRhLmNwcAppbmRleCAyYzUyM2RhLi4yMTc1Y2MwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlQm94RGF0YS5jcHAKQEAgLTM0LDYgKzM0LDggQEAgU3R5bGVCb3hEYXRhOjpTdHls
ZUJveERhdGEoKQogICAgICwgbV9tYXhIZWlnaHQoUmVuZGVyU3R5bGU6OmluaXRpYWxNYXhTaXpl
KCkpCiAgICAgLCBtX3pJbmRleCgwKQogICAgICwgbV9oYXNBdXRvWkluZGV4KHRydWUpCisgICAg
LCBtX2FzcGVjdFJhdGlvKDEuMGYpCisgICAgLCBtX2hhc0FzcGVjdFJhdGlvKGZhbHNlKQogICAg
ICwgbV9ib3hTaXppbmcoQ09OVEVOVF9CT1gpCiB7CiB9CkBAIC00OCw2ICs1MCw4IEBAIFN0eWxl
Qm94RGF0YTo6U3R5bGVCb3hEYXRhKGNvbnN0IFN0eWxlQm94RGF0YSYgbykKICAgICAsIG1fbWF4
SGVpZ2h0KG8ubV9tYXhIZWlnaHQpCiAgICAgLCBtX3pJbmRleChvLm1fekluZGV4KQogICAgICwg
bV9oYXNBdXRvWkluZGV4KG8ubV9oYXNBdXRvWkluZGV4KQorICAgICwgbV9hc3BlY3RSYXRpbyhv
Lm1fYXNwZWN0UmF0aW8pCisgICAgLCBtX2hhc0FzcGVjdFJhdGlvKG8ubV9oYXNBc3BlY3RSYXRp
bykKICAgICAsIG1fYm94U2l6aW5nKG8ubV9ib3hTaXppbmcpCiB7CiB9CkBAIC02Miw2ICs2Niw4
IEBAIGJvb2wgU3R5bGVCb3hEYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlQm94RGF0YSYgbykg
Y29uc3QKICAgICAgICAgICAgJiYgbV9tYXhIZWlnaHQgPT0gby5tX21heEhlaWdodAogICAgICAg
ICAgICAmJiBtX3pJbmRleCA9PSBvLm1fekluZGV4CiAgICAgICAgICAgICYmIG1faGFzQXV0b1pJ
bmRleCA9PSBvLm1faGFzQXV0b1pJbmRleAorICAgICAgICAgICAmJiBtX2FzcGVjdFJhdGlvID09
IG8ubV9hc3BlY3RSYXRpbworICAgICAgICAgICAmJiBtX2hhc0FzcGVjdFJhdGlvID09IG8ubV9o
YXNBc3BlY3RSYXRpbwogICAgICAgICAgICAmJiBtX2JveFNpemluZyA9PSBvLm1fYm94U2l6aW5n
OwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEu
aCBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQm94RGF0YS5oCmluZGV4IDAwYmNlNGUu
LmUwNmVmMzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQm94RGF0
YS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQm94RGF0YS5oCkBAIC01Niw2
ICs1Niw5IEBAIHB1YmxpYzoKICAgICAKICAgICBpbnQgekluZGV4KCkgY29uc3QgeyByZXR1cm4g
bV96SW5kZXg7IH0KICAgICBib29sIGhhc0F1dG9aSW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2hh
c0F1dG9aSW5kZXg7IH0KKworICAgIGZsb2F0IGFzcGVjdFJhdGlvKCkgY29uc3QgeyByZXR1cm4g
bV9hc3BlY3RSYXRpbzsgfQorICAgIGJvb2wgaGFzQXNwZWN0UmF0aW8oKSBjb25zdCB7IHJldHVy
biBtX2hhc0FzcGVjdFJhdGlvOyB9CiAgICAgCiAgICAgRUJveFNpemluZyBib3hTaXppbmcoKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFQm94U2l6aW5nPihtX2JveFNpemluZyk7IH0KIApA
QCAtNzYsNyArNzksMTEgQEAgcHJpdmF0ZToKIAogICAgIExlbmd0aCBtX3ZlcnRpY2FsQWxpZ247
CiAKLSAgICBpbnQgbV96SW5kZXg7CisgICAgZmxvYXQgbV9hc3BlY3RSYXRpbzsKKworICAgIGlu
dCBtX3pJbmRleDsgIAorCisgICAgYm9vbCBtX2hhc0FzcGVjdFJhdGlvIDogMTsKICAgICBib29s
IG1faGFzQXV0b1pJbmRleCA6IDE7CiAgICAgdW5zaWduZWQgbV9ib3hTaXppbmcgOiAxOyAvLyBF
Qm94U2l6aW5nCiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75503</attachid>
            <date>2010-12-03 09:29:12 -0800</date>
            <delta_ts>2010-12-03 09:29:12 -0800</delta_ts>
            <desc>Experimental patch rev. 2 for aspect-ratio property</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>65233</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1h
YnNvbHV0ZS1oZWlnaHQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvYXNwZWN0LXJhdGlvL2FzcGVj
dC1yYXRpby1hYnNvbHV0ZS1oZWlnaHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41NTkyYWNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3Bl
Y3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29sdXRlLWhlaWdodC5odG1sCkBAIC0wLDAgKzEsNyBA
QAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlOyBoZWlnaHQ6NTBweDsgdG9wOiAxMHB4OyBsZWZ0OjEwcHg7IC13ZWJr
aXQtYXNwZWN0LXJhdGlvOiA5LzE2OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2Pgor
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2FzcGVjdC1y
YXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1dGUtbGVmdC1yaWdodC5odG1sIGIvTGF5b3V0VGVzdHMv
Y3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29sdXRlLWxlZnQtcmlnaHQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGVmMzNhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29sdXRl
LWxlZnQtcmlnaHQuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+
CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMHB4
OyBsZWZ0OiAxMHB4OyByaWdodDogMTBweDsgLXdlYmtpdC1hc3BlY3QtcmF0aW86IDE2IC8gOTsg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ij48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29s
dXRlLXdpZHRoLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0
aW8tYWJzb2x1dGUtd2lkdGguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yNjliMWQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0
aW8vYXNwZWN0LXJhdGlvLWFic29sdXRlLXdpZHRoLmh0bWwKQEAgLTAsMCArMSw3IEBACis8aHRt
bD4KKzxoZWFkPgorPC9oZWFkPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IHdpZHRoOiA1MHB4OyB0b3A6IDEwcHg7IGxlZnQ6MTBweDsgLXdlYmtpdC1hc3Bl
Y3QtcmF0aW86IDkvMTY7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyI+PC9kaXY+CisgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvYXNwZWN0LXJhdGlvL2Fz
cGVjdC1yYXRpby1hdXRvLWhlaWdodC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0
aW8vYXNwZWN0LXJhdGlvLWF1dG8taGVpZ2h0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNTNiOGYwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMv
YXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hdXRvLWhlaWdodC5odG1sCkBAIC0wLDAgKzEsNyBA
QAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0ibGVm
dDogYXV0bzsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB3aWR0aDogMjAwcHg7IC13
ZWJraXQtYXNwZWN0LXJhdGlvOiAxNiAvIDk7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyI+PC9k
aXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvYXNw
ZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hdXRvLXdpZHRoLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3Mz
L2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYXV0by13aWR0aC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllNzVjZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYXV0by13aWR0aC5odG1sCkBAIC0w
LDAgKzEsNyBAQAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGRpdiBz
dHlsZT0ibGVmdDogYXV0bzsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEwcHg7IGhlaWdodDog
MjAwcHg7IC13ZWJraXQtYXNwZWN0LXJhdGlvOiA5LzE2OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
c3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tZmxvYXQuaHRtbCBiL0xheW91dFRlc3RzL2Nz
czMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1mbG9hdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjI3Mzk5YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tZmxvYXQuaHRtbApAQCAtMCwwICsxLDEw
IEBACis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgc3R5bGU9IndpZHRo
OiA2MDBweDsgaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyI+Cis8ZGl2IHN0
eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA1MHB4OyAtd2Via2l0LWFzcGVjdC1yYXRpbzogMS80
OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0
aW8taW5oZXJpdC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJh
dGlvLWluaGVyaXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGM1
MjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0aW8vYXNw
ZWN0LXJhdGlvLWluaGVyaXQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8
L2hlYWQ+CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDsgdG9wOiAx
MHB4OyBib3R0b206IDEwcHg7IGxlZnQ6IDEwcHg7IHJpZ2h0OiAxMHB4OyAtd2Via2l0LWFzcGVj
dC1yYXRpbzogMjAgLyA5OyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Ij4KKyAgICAgIDxkaXYgc3R5
bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogNTBweDsgdG9wOiA1MHB4OyB3aWR0aDogMzAw
cHg7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyAtd2Via2l0LWFzcGVjdC1yYXRpbzogaW5oZXJp
dDsiPjwvZGl2PgorPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1zdHJldGNoLXRvLWZpbGwuaHRt
bCBiL0xheW91dFRlc3RzL2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1zdHJldGNoLXRv
LWZpbGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzRiNmIzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJh
dGlvLXN0cmV0Y2gtdG8tZmlsbC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4K
KzwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyB3
aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Ij4KKyAgICA8
ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IC13ZWJraXQtYXNwZWN0LXJhdGlvOiAxNiAv
IDk7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyI+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvYXNwZWN0LXJhdGlvL2Fz
cGVjdC1yYXRpby10b3AtYm90dG9tLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2FzcGVjdC1yYXRp
by9hc3BlY3QtcmF0aW8tdG9wLWJvdHRvbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjgxNGFiOGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2Fz
cGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tdG9wLWJvdHRvbS5odG1sCkBAIC0wLDAgKzEsNyBAQAor
PGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0icG9zaXRp
b246IGFic29sdXRlOyB0b3A6IDEwcHg7IHRvcDogMTBweDsgYm90dG9tOjEwcHg7IC13ZWJraXQt
YXNwZWN0LXJhdGlvOiA5LzE2OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2PgorICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2FzcGVjdC1yYXRp
by9hc3BlY3QtcmF0aW8tdG9wLXJpZ2h0LXdpZHRoLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Fz
cGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tdG9wLXJpZ2h0LXdpZHRoLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJkNWRiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby10b3AtcmlnaHQtd2lkdGguaHRt
bApAQCAtMCwwICsxLDcgQEAKKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+CisgIDxib2R5PgorICAg
IDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMHB4OyByaWdodDogMTBweDsg
d2lkdGg6IDEwMHB4OyAtd2Via2l0LWFzcGVjdC1yYXRpbzogOS8xNjsgYmFja2dyb3VuZC1jb2xv
cjogZ3JlZW47Ij48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJh
dGlvLWFic29sdXRlLWhlaWdodC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hYnNvbHV0
ZS1oZWlnaHQtZXhwZWN0ZWQuY2hlY2tzdW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYTdlODAxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hYnNvbHV0ZS1oZWln
aHQtZXhwZWN0ZWQuY2hlY2tzdW0KQEAgLTAsMCArMSBAQAorMmYzY2U1MmQxNTg5NWQ4MGIyMmUy
NDYxNGM1MzYzMGMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3Qt
cmF0aW8tYWJzb2x1dGUtaGVpZ2h0LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hYnNvbHV0ZS1o
ZWlnaHQtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhOTA0ZGZmYzEzNjc2YmQ2OTQ0OGJmZDJi
MmJiMDVjNTE0MWQ0YmIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI4MDcKemNtZUFTQE4/KG9s
SHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpaKT1oXmpMJWFQOU1TYVNXLUxeWSlHKlNBem8mCnpn
UU5lUz9MUipLVXwhQW9hN0pjdSVxaThRWWlDK0FGdWEma3VnfTErTEFzSFpLfG5aeWZ4IT9yVzg+
QFVKQGNtOAp6VFc7VX5uNlk4KiZJQ3E9QlA/UEo0bkQoPmFxWX5YejAzPjshZVRac0ZlRVc/R2Jw
SHlHRFpWb0ckb0FZZzMoK3MKbm5oUXBBIUR1Y1IlPn1nMDFeVWJFY3ZzKS1XaTFDYlhjO19Se2Fu
XkxCe1RzNUJxRyZSCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0
aW8tYWJzb2x1dGUtaGVpZ2h0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hYnNvbHV0ZS1oZWln
aHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkZDhj
ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1dGUtaGVpZ2h0LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKK2xheWVyIGF0ICgxMCwxMCkgc2l6ZSAy
OHg1MAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDEwLDEwKSBzaXplIDI4
eDUwIFtiZ2NvbG9yPSMwMDgwMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1dGUtbGVm
dC1yaWdodC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hYnNvbHV0ZS1sZWZ0LXJpZ2h0
LWV4cGVjdGVkLmNoZWNrc3VtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZl
ZTA1ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1dGUtbGVmdC1yaWdodC1l
eHBlY3RlZC5jaGVja3N1bQpAQCAtMCwwICsxIEBACitlNTFjM2FhY2U3ZDVjZTg0ZTFjZGI4MWNl
Yjg5ZWRmMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRp
by1hYnNvbHV0ZS1sZWZ0LXJpZ2h0LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hYnNvbHV0ZS1s
ZWZ0LXJpZ2h0LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTk4YWRkY2JlZDY0Yjc0NjkyOWFl
ZmJhYmJkNWExNzRjNzI0OGY0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyODEwCnpjbWVBU0BO
PyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAqWik9aF5qTCVhMkBuP2FTVy1MXlktcFctb3Br
MAp6RVJMNTA/bCk9SW1tYkphSmIxfEcpUlJMOylua2w1R2NxanJUd0JHIWFOc3RGNG54Qz8xNTZB
Wm9WWGRYem5fMU4Kent7RHU2O2ZIZVp5TUtvWTU4X3ZqJER+b0koViEhaysocn0wWGQpUitCJWBA
dEcjNX1NN3AkRkdTO2ZxN1ZEKmohCnBNdXNDU1ZoaiNHcW0wbyY3YCFQI2tER35pYiZ+cyplWlYj
P2dRdSZYJVF+bG9DSUQ0e19LKk1vCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9h
c3BlY3QtcmF0aW8tYWJzb2x1dGUtbGVmdC1yaWdodC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8t
YWJzb2x1dGUtbGVmdC1yaWdodC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYzE3NjFmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hYnNvbHV0
ZS1sZWZ0LXJpZ2h0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKK2xh
eWVyIGF0ICgxMCwxMCkgc2l6ZSA3ODB4NDM4CisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7
RElWfSBhdCAoMTAsMTApIHNpemUgNzgweDQzOCBbYmdjb2xvcj0jMDA4MDAwXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8v
YXNwZWN0LXJhdGlvLWFic29sdXRlLXdpZHRoLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlv
LWFic29sdXRlLXdpZHRoLWV4cGVjdGVkLmNoZWNrc3VtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmU3MGRkMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYWJzb2x1
dGUtd2lkdGgtZXhwZWN0ZWQuY2hlY2tzdW0KQEAgLTAsMCArMSBAQAorMDg4MjRjOWRhMTU0ODI3
NjI0YzU2NzIzYTM3MGY5MTcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9h
c3BlY3QtcmF0aW8tYWJzb2x1dGUtd2lkdGgtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29s
dXRlLXdpZHRoLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjE5NGRjNWNhODFjZjI0ODYwNzNh
ZjIwZDAzMTJiMTZjOWViOWQzCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyODExCnpjbWVBU0BO
PyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAqWik9aF5qTCVhMkBoPWFTVy1MXlkpRy1TRj9r
Rgp6PnBgQ3JkeWhgdVpaNSNZRlNfIzl4bzcoRmR1TnkkJVFHLW8tUVVnNXpfNiRIMDI0ejhydyY4
STRCVSh4QEJkVzMKemVMWUxJZSYqVHRwQldBbT9AVkIxSUttPnY7TlVhTDd8MX1sY0lNN3JNdXJF
V0YmaHtkbDk7I3w2eDJvO3FrJUEqCnI1PUx7dVhmN0RkMSo1ck9HIzNvWFQpP2pFIW5ediFueWBo
eU1sRk08dERubXtyLVVXfEdaXkZeCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9h
c3BlY3QtcmF0aW8tYWJzb2x1dGUtd2lkdGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29s
dXRlLXdpZHRoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li45MDAzYmE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWFic29sdXRlLXdpZHRoLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAor
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKK2xheWVyIGF0ICgxMCwxMCkg
c2l6ZSA1MHg4OAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDEwLDEwKSBz
aXplIDUweDg4IFtiZ2NvbG9yPSMwMDgwMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYXV0by1o
ZWlnaHQtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYXV0by1oZWlnaHQtZXhwZWN0ZWQu
Y2hlY2tzdW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Q1NTZjMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMv
YXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hdXRvLWhlaWdodC1leHBlY3RlZC5jaGVja3N1bQpA
QCAtMCwwICsxIEBACitkYjUwNGVjYjZlZDU2MzRiZDM2OWIxYjBlNzU4MzgzNQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hdXRvLWhlaWdodC1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVj
dC1yYXRpby9hc3BlY3QtcmF0aW8tYXV0by1oZWlnaHQtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ0MjA5NWM2NTlmOGFmNDhiYzQ3MmZmYTBlYzJjOGVkYWY3NjA5MTQKR0lUIGJpbmFyeSBwYXRj
aApsaXRlcmFsIDI4MTAKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpaKT1o
XmpMJWEyQG4/YVNXLUxeWStlMC1vcGswCnpFUktOel91STdWT0JaQSRHSmYkbl8ya2V8Xzg4LTAy
OElpa192SUtFSGJeKEpHNilEcUZmYlRtRmdDdmFTeV84TQp6endBVCF2Jll7fThPb2tEO1oleUxj
fmteem09M2pJaThsV0hqZzZzVT9UIVJTaDlmTHUzPVRle2pMfD9DTyRucDkKb1VeRXd1PTdQfiZG
cSNYZnA5fUlfcWoqPV8mWEgmVXdyTHFXVUh4M3ZJVkNnITAyU2dPViptZ0UKCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hdXRvLWhlaWdodC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRp
by9hc3BlY3QtcmF0aW8tYXV0by1oZWlnaHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjhjMjllMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8t
YXV0by1oZWlnaHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorbGF5
ZXIgYXQgKDEwLDgpIHNpemUgMjAweDExMgorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJ
Vn0gYXQgKDEwLDgpIHNpemUgMjAweDExMiBbYmdjb2xvcj0jMDA4MDAwXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNw
ZWN0LXJhdGlvLWF1dG8td2lkdGgtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYXV0by13
aWR0aC1leHBlY3RlZC5jaGVja3N1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4zYTU0OGI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWF1dG8td2lkdGgtZXhwZWN0
ZWQuY2hlY2tzdW0KQEAgLTAsMCArMSBAQAorNzNmZDQwMjE3YjNkYTUwZDU4NjhhMWNjYTQyZWVj
M2QKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYXV0
by13aWR0aC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tYXV0by13aWR0aC1leHBlY3RlZC5wbmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTdhNTNmZGI5YjRiNTRiYWIzYzg4NzgzMDQ2OGYyNWUyYTRjMTc4ZApHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMjgxMAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZ
VjJhPmkwKlopPWheakwlYTJAbj9hU1ctTF5ZK2UwLW9wazAKekVSS056X3VJN1ZMbEAqRUdKZiRu
XzJrZXxfODgtMDI4SWlrX3ZJS0VIYl4oSkc2KURxRmZiVjZXXjg9QEdPX2wkCnpldEF5NVVFTFk+
aFdkdzFnIVNNdFpkM3w/YUYyJTFYIXpqR2xoTVlYenAqaGl0bGcybyRaJiozaktSVFlscmI2egpu
cWJYckQ3bVZoRChPZlgoYjN4dlQ1Wj18YlNINVdpK3E0WHh1NnsxLW9EIU08Vjl5MDkKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1hdXRvLXdpZHRoLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0
LXJhdGlvL2FzcGVjdC1yYXRpby1hdXRvLXdpZHRoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmFhM2FkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJh
dGlvLWF1dG8td2lkdGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAor
bGF5ZXIgYXQgKDgsMTApIHNpemUgMTEyeDIwMAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkg
e0RJVn0gYXQgKDgsMTApIHNpemUgMTEyeDIwMCBbYmdjb2xvcj0jMDA4MDAwXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8v
YXNwZWN0LXJhdGlvLWZsb2F0LWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWZsb2F0LWV4
cGVjdGVkLmNoZWNrc3VtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkYWVl
OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tZmxvYXQtZXhwZWN0ZWQuY2hlY2tzdW0K
QEAgLTAsMCArMSBAQAorM2YxM2I3ODlkMGEzNTg5ZTFhYzA5OWI1MTg5MTMyNzIKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tZmxvYXQtZXhwZWN0ZWQu
cG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0
aW8vYXNwZWN0LXJhdGlvLWZsb2F0LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTlmNjU5N2Ni
ZTA3MzljZjkyYThiYTQ3YWEwOWM4YmViYjdkMzE0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAy
ODE1CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAqWik9aF5qTCVhMkBrPmFT
Vy1MXlkpRyoteXM3NQp6U0kzP209NjdtfTg4NWxgTXtwVWhvZ0h0TmBfUjt3cE1rO1p7OVJAU2hJ
ZWlXajB7SXUjMjZmV0ZjQCEyZXtIKFAKenBVJmBNfEYhaCpQNUlCPiZpN2JYZTJ8SHVnSHdtMFZh
OTxgIyVMZ25yVVd8WWcwKFltP3F5X241RWlxNmZneT5CCnZuP1hUc2xyYjZ6cWJYckQ3bVZoRChP
ZldtYXNtNDthbypNNmx9d2RANE88M0pTM2ozXlA2PHJfYU5rOT4KCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Nz
czMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby1mbG9hdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0
aW8tZmxvYXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjU2OGM3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tZmxvYXQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsMCkgc2l6ZSA2MDB4MjAwIFtiZ2NvbG9yPSNGRjAwMDBdCisgICAgICAgIFJlbmRlckJsb2Nr
IChmbG9hdGluZykge0RJVn0gYXQgKDU1MCwwKSBzaXplIDUweDIwMCBbYmdjb2xvcj0jMDA4MDAw
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9h
c3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWluaGVyaXQtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3Qt
cmF0aW8taW5oZXJpdC1leHBlY3RlZC5jaGVja3N1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mY2M4YjNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWluaGVyaXQt
ZXhwZWN0ZWQuY2hlY2tzdW0KQEAgLTAsMCArMSBAQAorNGQ5YjBkMTkzMzBmNzQxNmNjNmVmMTcz
Y2NlYmNhNGEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0
aW8taW5oZXJpdC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8taW5oZXJpdC1leHBlY3RlZC5wbmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzI1M2JjZjQyMzMzMzViZjk1Y2E5NGQwZjRhMWUyNDk5NmE3MTk1NQpHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMjgzMgp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZ
VjJhPmkwKlopPWheakwlYTkjSXdhU1ctTF5ZKlNHLXlzSjkKejdEdjlINUM4ckEjSF9xPFRKSil3
eSh4I1RzY2xidCM+bjlDeXoobXBMcW9qczFfcCpDQ1Q8MT1IUWJEQ2RuQEIjCnpQbXlGYCprMUhR
eXBMT3EhTkRoaWs+TG8tQE1HbGN0fiNLOHQ/bnora05uTj9kbD8/PS1aQE0/SSRSQGcyPkMxTAp6
PzNzdFp0K0Z7ODQlRXRzTyZRTClZNndOanM4ZmV1cCp8WD9xajVTY1RQczYwVlEoe2taQGx+cjFI
JXRseSRBKmQKaSEkd3ZIMGIlQCVqcDdWUkxUZlhtQ0RlY3xUP1M4QUtiTGgqMn43YXdoZjg3cgoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLWluaGVyaXQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3Bl
Y3QtcmF0aW8vYXNwZWN0LXJhdGlvLWluaGVyaXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkNTY0YTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0
aW8taW5oZXJpdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CitsYXll
ciBhdCAoMTAsMTApIHNpemUgNzgweDU4MAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJ
Vn0gYXQgKDEwLDEwKSBzaXplIDc4MHg1ODAgW2JnY29sb3I9I0ZGMDAwMF0KK2xheWVyIGF0ICg2
MCw2MCkgc2l6ZSAzMDB4MTM1CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7
RElWfSBhdCAoMCwwKSBzaXplIDMwMHgxMzUgW2JnY29sb3I9IzAwODAwMF0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2Fz
cGVjdC1yYXRpby1zdHJldGNoLXRvLWZpbGwtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8t
c3RyZXRjaC10by1maWxsLWV4cGVjdGVkLmNoZWNrc3VtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmZkMjUzYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tc3RyZXRj
aC10by1maWxsLWV4cGVjdGVkLmNoZWNrc3VtCkBAIC0wLDAgKzEgQEAKKzlmMzE5MDZhNGY5ZWM1
ZTc4OTZkNjUwMGYyNDgwMTlmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8v
YXNwZWN0LXJhdGlvLXN0cmV0Y2gtdG8tZmlsbC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tc3Ry
ZXRjaC10by1maWxsLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjU1N2FkOWFmNTA3MjhkZjkw
ZWQyNDMzNjM1N2FhY2FiZjY0N2IxCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyODIxCnpjbWVB
U0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAqWik9aF5qTCVhR21qVmFTVy1MXlkpRyoq
SUBAOQp6aEohSTVfQitTdiloa0ByPHVmeTBEPmIjN1l3Z1RSTXVyUU98RW4xcDhrUCUyRmZiVDR2
Tjh3PVY9JTFDbiFtPHwKenpoaCk1dT5Tbj51bTJUUlpVek9sNEdhdVBPcndtXktwMEk0cXEkJS03
bVZoRChPZlZUYXpTPlErMnFvPFk3N2tKCnpuX3BeKD5vN0ZUSUthZnYhOHl0cDRGdE5VMWxpanMm
JE1QVUZ4YSRuaSFuSShCcnF9QFZacTlIIX0zXklhSjg2XgpTV2UlYDslaSF0aT1kI1d6cCRQeUVF
aEh4WgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLXN0cmV0
Y2gtdG8tZmlsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tc3RyZXRjaC10by1maWxsLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGQxNWMwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9h
c3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLXN0cmV0Y2gtdG8tZmlsbC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw5IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CitsYXllciBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAg
UmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0
eDU4NCBbYmdjb2xvcj0jRkYwMDAwXQorbGF5ZXIgYXQgKDgsOCkgc2l6ZSA3ODR4NDQxCisgIFJl
bmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHg0
NDEgW2JnY29sb3I9IzAwODAwMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby10b3AtYm90dG9tLWV4
cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3Nz
My9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLXRvcC1ib3R0b20tZXhwZWN0ZWQuY2hlY2tzdW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE3ZTUzNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJh
dGlvL2FzcGVjdC1yYXRpby10b3AtYm90dG9tLWV4cGVjdGVkLmNoZWNrc3VtCkBAIC0wLDAgKzEg
QEAKK2M2NjAzODhkYjY4ZTA1NDg2Y2I5YmE3MjUzYzc3YzRhClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
Y3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLXRvcC1ib3R0b20tZXhwZWN0ZWQucG5nIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNw
ZWN0LXJhdGlvLXRvcC1ib3R0b20tZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkYTQzYjZmMTNl
MWJhMmU2YmY4MjRmMmQ1YzhkZGE1NzQwOTYzYmUKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI4
MTAKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpaKT1oXmpMJWEyQG4/YVNX
LUxeWS1wVy1XQ1N8CnptVl43bkUwdll2bEA0UyhJRUI4bU94fHtGcj5VXyQxQjJFNz9kJUs7SE42
THo3Jjx0MDcjZTJhWDUxK0l4fW9wdQp6NlRTeXdufTJVK2R8O147IU42ZUgkalRyZkpqeGdpZ3dk
MlJuaFFwQSFEdWNSJT58Pm1VXkV3dTxeckBfdStoe3cKbktjOWkmaGxuYC1Na2MpZGQ0dXloS2t3
PnxfQVk7YlpDVkNUUzNqM15QNjxyX3oxRXJfCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1y
YXRpby9hc3BlY3QtcmF0aW8tdG9wLWJvdHRvbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tdG9w
LWJvdHRvbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MTdlNTBiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby10b3AtYm90dG9tLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKK2xheWVyIGF0ICg4LDEwKSBzaXplIDMy
Nng1ODAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICg4LDEwKSBzaXplIDMy
Nng1ODAgW2JnY29sb3I9IzAwODAwMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby10b3AtcmlnaHQt
d2lkdGgtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tdG9wLXJpZ2h0LXdpZHRoLWV4cGVj
dGVkLmNoZWNrc3VtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNDZjYzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9j
c3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tdG9wLXJpZ2h0LXdpZHRoLWV4cGVjdGVkLmNo
ZWNrc3VtCkBAIC0wLDAgKzEgQEAKKzA2ZTgyYWU1OTY2YTFkN2I2NzM0Yzk5MjAzNDljZWVjClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvY3NzMy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLXRvcC1yaWdo
dC13aWR0aC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tdG9wLXJpZ2h0LXdpZHRoLWV4cGVjdGVk
LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iY2YyMDRkZGJkZTY5ODU1M2ExZDNmYTYwOTU2MjlhMzViOTY3MzE3
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyODExCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55
VXsrdllWMmE+aTAqWik9aF5qTCVhMkBoPWFTVy1MXlktcFctb3ArJgp6RVJLNjA/QmZtZkR9OWpC
eFY+ZDJtdEtzKSEmeCgjODUrKip0WSU8MWFHT0ppcDwlYFdDV2ExOSs+RntYZWc9a3IKek18V0wm
JEp1WHFLWW84ZiVteE9BQnFuWUsxK2BKZVhkc05IMVh3UUVtWGBMTmppRGpEQEY0eVNnKHQ2I057
dDJgCnIhMik/U2smR3NpKExeJHUzeDtQZHhXT3h3JiUxaU1OPm04MlFPbkB6PmdUZX5EV000ZmFX
MktrCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2FzcGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tdG9wLXJp
Z2h0LXdpZHRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L2NzczMvYXNwZWN0LXJhdGlvL2FzcGVjdC1yYXRpby10b3AtcmlnaHQtd2lkdGgtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjOWFhMjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2Fz
cGVjdC1yYXRpby9hc3BlY3QtcmF0aW8tdG9wLXJpZ2h0LXdpZHRoLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKK2xheWVyIGF0ICg2OTAsMTApIHNpemUgMTAweDE3Nwor
ICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDY5MCwxMCkgc2l6ZSAxMDB4MTc3
IFtiZ2NvbG9yPSMwMDgwMDBdCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbi5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bi5jcHAKaW5kZXggMDIzMTlmNS4uNWU2YTA5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uLmNwcApAQCAtNzUyLDYgKzc1Miw3IEBAIHZvaWQgQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb246OmFkZFN1YnJlc291cmNlU3R5bGVVUkxzKExpc3RIYXNoU2V0PEtVUkw+
JiB1cmxzCiBzdGF0aWMgY29uc3QgaW50IGJsb2NrUHJvcGVydGllc1tdID0gewogICAgIENTU1By
b3BlcnR5T3JwaGFucywKICAgICBDU1NQcm9wZXJ0eU92ZXJmbG93LCAvLyBUaGlzIGNhbiBiZSBh
bHNvIGJlIGFwcGxpZWQgdG8gcmVwbGFjZWQgZWxlbWVudHMKKyAgICBDU1NQcm9wZXJ0eVdlYmtp
dEFzcGVjdFJhdGlvLAogICAgIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uQ291bnQsCiAgICAgQ1NT
UHJvcGVydHlXZWJraXRDb2x1bW5HYXAsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRDb2x1bW5SdWxl
Q29sb3IsCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAppbmRleCBjMmY4MGQ0Li42OWRiZjU0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAg
LTEyMjgsNiArMTIyOCwxMSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElk
LCBib29sIGltcG9ydGFudCkKICAgICAgICAgYWRkUHJvcGVydHkocHJvcElkLCB2YWwucmVsZWFz
ZSgpLCBpbXBvcnRhbnQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEFzcGVjdFJhdGlvOgorICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVO
b25lKQorICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNlICAg
IAorICAgICAgICAgIHJldHVybiBwYXJzZUFzcGVjdFJhdGlvKHByb3BJZCwgaW1wb3J0YW50KTsK
ICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyUmFkaXVzOgogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRCb3JkZXJSYWRpdXM6CiAgICAgICAgIHJldHVybiBwYXJzZUJvcmRlclJhZGl1cyhwcm9w
SWQsIGltcG9ydGFudCk7CkBAIC00NTk3LDYgKzQ2MDIsMzAgQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlQm9yZGVyUmFkaXVzKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiB0
cnVlOwogfQogCitib29sIENTU1BhcnNlcjo6cGFyc2VBc3BlY3RSYXRpbyhpbnQgcHJvcElkLCBi
b29sIGltcG9ydGFudCkKK3sKKyAgICB1bnNpZ25lZCBudW0gPSBtX3ZhbHVlTGlzdC0+c2l6ZSgp
OworICAgIGlmIChudW0gIT0gMykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIENT
U1BhcnNlclZhbHVlKiBsdmFsdWUgPSBtX3ZhbHVlTGlzdC0+dmFsdWVBdCgwKTsKKyAgICBDU1NQ
YXJzZXJWYWx1ZSogb3AgPSBtX3ZhbHVlTGlzdC0+dmFsdWVBdCgxKTsKKyAgICBDU1NQYXJzZXJW
YWx1ZSogcnZhbHVlID0gbV92YWx1ZUxpc3QtPnZhbHVlQXQoMik7CisKKyAgICBpZiAoIW9wLT51
bml0ID09IENTU1BhcnNlclZhbHVlOjpPcGVyYXRvciB8fCBvcC0+aVZhbHVlICE9ICcvJykKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCF2YWxpZFVuaXQobHZhbHVlLCBGTGVuZ3Ro
LCBtX3N0cmljdCkgfHwgIXZhbGlkVW5pdChydmFsdWUsIEZMZW5ndGgsIG1fc3RyaWN0KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICBpZiAocnZhbHVlLT5mVmFsdWUgPT0g
MCkgCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eVdlYmtpdEFzcGVjdFJhdGlvLCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGx2YWx1ZS0+
ZlZhbHVlIC8gcnZhbHVlLT5mVmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSwg
aW1wb3J0YW50KTsKKworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIENTU1BhcnNlcjo6cGFy
c2VDb3VudGVyKGludCBwcm9wSWQsIGludCBkZWZhdWx0VmFsdWUsIGJvb2wgaW1wb3J0YW50KQog
ewogICAgIGVudW0geyBJRCwgVkFMIH0gc3RhdGUgPSBJRDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggOGYzYzZkZC4u
YTNkZDI4YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTE1Miw2ICsxNTIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIGJvb2wgcGFyc2VCb3JkZXJJbWFnZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFu
dCwgUmVmUHRyPENTU1ZhbHVlPiYpOwogICAgICAgICBib29sIHBhcnNlQm9yZGVyUmFkaXVzKGlu
dCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKIAorICAgICAgICBib29sIHBhcnNlQXNwZWN0UmF0
aW8oaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpOworCiAgICAgICAgIGJvb2wgcGFyc2VSZWZs
ZWN0KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKIAogICAgICAgICAvLyBJbWFnZSBnZW5l
cmF0b3JzCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvV2Vi
Q29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCBhYjc1NDA0Li40MjhkYjVjIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTE1OCw2ICsxNTgsNyBAQCB3b3JkLWJyZWFrCiB3b3Jk
LXNwYWNpbmcKIHdvcmQtd3JhcAogei1pbmRleAorLXdlYmtpdC1hc3BlY3QtcmF0aW8KIC13ZWJr
aXQtYW5pbWF0aW9uCiAtd2Via2l0LWFuaW1hdGlvbi1kZWxheQogLXdlYmtpdC1hbmltYXRpb24t
ZGlyZWN0aW9uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBi
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDhmNDA4ZTUuLmJlZmU1MjEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0zMTgzLDYgKzMxODMsMTIgQEAgdm9pZCBD
U1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQog
ICAgIC8vIGFyZSBvbmx5IGhpdCB3aGVuIG1hcHBpbmcgImluaGVyaXQiIG9yICJpbml0aWFsIiBp
bnRvIGZyb250LWVuZCB2YWx1ZXMuCiAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSA9IHN0YXRp
Y19jYXN0PENTU1Byb3BlcnR5SUQ+KGlkKTsKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CisgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBc3BlY3RSYXRpbzoKKyAgICAgICAgSEFORExFX0lOSEVS
SVQoYXNwZWN0UmF0aW8sIEFzcGVjdFJhdGlvKTsKKyAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1
ZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9zdHlsZS0+c2V0QXNwZWN0UmF0aW8o
cHJpbWl0aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKCkpOworICAgICAgICByZXR1cm47CiAvLyBp
ZGVudCBvbmx5IHByb3BlcnRpZXMKICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZEF0dGFj
aG1lbnQ6CiAgICAgICAgIEhBTkRMRV9CQUNLR1JPVU5EX1ZBTFVFKGF0dGFjaG1lbnQsIEF0dGFj
aG1lbnQsIHZhbHVlKQpAQCAtNjkyNSw4ICs2OTMxLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9y
Ojpsb2FkUGVuZGluZ0ltYWdlcygpCiAgICAgICAgICAgICAgICAgZm9yIChDb250ZW50RGF0YSog
Y29udGVudERhdGEgPSBjb25zdF9jYXN0PENvbnRlbnREYXRhKj4obV9zdHlsZS0+Y29udGVudERh
dGEoKSk7IGNvbnRlbnREYXRhOyBjb250ZW50RGF0YSA9IGNvbnRlbnREYXRhLT5uZXh0KCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnREYXRhLT5pc0ltYWdlKCkgJiYgY29udGVu
dERhdGEtPmltYWdlKCktPmlzUGVuZGluZ0ltYWdlKCkpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIENTU0ltYWdlVmFsdWUqIGltYWdlVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJ
bWFnZSo+KGNvbnRlbnREYXRhLT5pbWFnZSgpKS0+Y3NzSW1hZ2VWYWx1ZSgpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKFN0eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlID0gaW1hZ2VW
YWx1ZS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRlbnREYXRhLT5zZXRJbWFnZShjYWNoZWRJbWFnZSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBjb250ZW50RGF0YS0+c2V0SW1hZ2UoaW1hZ2VWYWx1ZS0+Y2FjaGVk
SW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggZjYzNTMw
MC4uMzgwYWZlYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI4OSw3ICsyODksOCBAQCBzdGF0aWMgZmxvYXQgbG9j
YWxab29tRm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICAvLyBvdGhlciBv
dXQsIGJ1dCB0aGUgYWx0ZXJuYXRpdmUgaXMgdGhhdCB3ZSdkIGhhdmUgdG8gY3Jhd2wgdXAgdGhl
IHdob2xlIHJlbmRlciB0cmVlIGV2ZXJ5CiAgICAgLy8gdGltZSAob3Igc3RvcmUgYW4gYWRkaXRp
b25hbCBiaXQgaW4gdGhlIFJlbmRlclN0eWxlIHRvIGluZGljYXRlIHRoYXQgYSB6b29tIHdhcyBz
cGVjaWZpZWQpLgogICAgIGZsb2F0IHpvb21GYWN0b3IgPSAxOwotICAgIGlmIChyZW5kZXJlci0+
c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpICE9IDEpIHsKKworaWYgKHJlbmRlcmVyLT5zdHlsZSgp
LT5lZmZlY3RpdmVab29tKCkgIT0gMSkgewogICAgICAgICAvLyBOZWVkIHRvIGZpbmQgdGhlIG5l
YXJlc3QgZW5jbG9zaW5nIFJlbmRlck9iamVjdCB0aGF0IHNldCB1cAogICAgICAgICAvLyBhIGRp
ZmZlcmluZyB6b29tLCBhbmQgdGhlbiB3ZSBkaXZpZGUgb3VyIHJlc3VsdCBieSBpdCB0byBlbGlt
aW5hdGUgdGhlIHpvb20uCiAgICAgICAgIFJlbmRlck9iamVjdCogcHJldiA9IHJlbmRlcmVyOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDkwMjAzNGMuLmJhNTM2MGUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTExMTgsNiArMTExOCwxMSBAQCB2b2lkIFJlbmRlckJs
b2NrOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIGludCBwYWdlSGVpZ2h0KQog
ICAgIGludCBvbGRXaWR0aCA9IGxvZ2ljYWxXaWR0aCgpOwogICAgIGludCBvbGRDb2x1bW5XaWR0
aCA9IGRlc2lyZWRDb2x1bW5XaWR0aCgpOwogCisgICAgYm9vbCBoZWlnaHREZXRlcm1pbmVkOwor
ICAgIGJvb2wgdXNlQXNwZWN0UmF0aW8gPSB1c2VBc3BlY3RSYXRpb0ZvcldpZHRoKHN0eWxlKCkt
PndpZHRoKCksIHN0eWxlKCktPmxlZnQoKSwgc3R5bGUoKS0+cmlnaHQoKSwgaGVpZ2h0RGV0ZXJt
aW5lZCk7CisgICAgaWYgKHVzZUFzcGVjdFJhdGlvICYmIGhlaWdodERldGVybWluZWQpIHsKKyAg
ICAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICB9CiAgICAgY29tcHV0ZUxvZ2ljYWxX
aWR0aCgpOwogICAgIGNhbGNDb2x1bW5XaWR0aCgpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApp
bmRleCAyMjg2Y2E3Li43ZjZlYWY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTE1MTIs
MjggKzE1MTIsMzMgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsV2lkdGgoKQogICAg
ICAgICAgICAgc2V0TG9naWNhbFdpZHRoKG1heChsb2dpY2FsV2lkdGhMZW5ndGgudmFsdWUoKSAr
IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSwgbWluUHJlZmVycmVkTG9naWNhbFdpZHRo
KCkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQogICAgIC8vIFdpZHRoIGNhbGN1bGF0aW9u
cwogICAgIGlmICh0cmVhdEFzUmVwbGFjZWQpCiAgICAgICAgIHNldExvZ2ljYWxXaWR0aChsb2dp
Y2FsV2lkdGhMZW5ndGgudmFsdWUoKSArIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSk7
CiAgICAgZWxzZSB7Ci0gICAgICAgIC8vIENhbGN1bGF0ZSBMb2dpY2FsV2lkdGgKLSAgICAgICAg
c2V0TG9naWNhbFdpZHRoKGNvbXB1dGVMb2dpY2FsV2lkdGhVc2luZyhMb2dpY2FsV2lkdGgsIGNv
bnRhaW5lcldpZHRoSW5JbmxpbmVEaXJlY3Rpb24pKTsKLQotICAgICAgICAvLyBDYWxjdWxhdGUg
TWF4TG9naWNhbFdpZHRoCi0gICAgICAgIGlmICghc3R5bGUoKS0+bG9naWNhbE1heFdpZHRoKCku
aXNVbmRlZmluZWQoKSkgewotICAgICAgICAgICAgaW50IG1heExvZ2ljYWxXaWR0aCA9IGNvbXB1
dGVMb2dpY2FsV2lkdGhVc2luZyhNYXhMb2dpY2FsV2lkdGgsIGNvbnRhaW5lcldpZHRoSW5Jbmxp
bmVEaXJlY3Rpb24pOwotICAgICAgICAgICAgaWYgKGxvZ2ljYWxXaWR0aCgpID4gbWF4TG9naWNh
bFdpZHRoKSB7Ci0gICAgICAgICAgICAgICAgc2V0TG9naWNhbFdpZHRoKG1heExvZ2ljYWxXaWR0
aCk7Ci0gICAgICAgICAgICAgICAgbG9naWNhbFdpZHRoTGVuZ3RoID0gc3R5bGUoKS0+bG9naWNh
bE1heFdpZHRoKCk7CisgICAgICAgIGJvb2wgaGVpZ2h0RGV0ZXJtaW5lZDsKKyAgICAgICAgYm9v
bCB1c2VBc3BlY3RSYXRpbyA9IHVzZUFzcGVjdFJhdGlvRm9yV2lkdGgoc3R5bGUoKS0+d2lkdGgo
KSwgc3R5bGUoKS0+bGVmdCgpLCBzdHlsZSgpLT5yaWdodCgpLCBoZWlnaHREZXRlcm1pbmVkKTsK
KyAgICAgICAgaWYgKHVzZUFzcGVjdFJhdGlvKSB7CisgICAgICAgICAgICBzZXRMb2dpY2FsV2lk
dGgoaGVpZ2h0KCkgKiBzdHlsZSgpLT5hc3BlY3RSYXRpbygpKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBMb2dpY2FsV2lkdGgKKyAgICAgICAgICAgIHNldExv
Z2ljYWxXaWR0aChjb21wdXRlTG9naWNhbFdpZHRoVXNpbmcoTG9naWNhbFdpZHRoLCBjb250YWlu
ZXJXaWR0aEluSW5saW5lRGlyZWN0aW9uKSk7CisKKyAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBN
YXhMb2dpY2FsV2lkdGgKKyAgICAgICAgICAgIGlmICghc3R5bGUoKS0+bG9naWNhbE1heFdpZHRo
KCkuaXNVbmRlZmluZWQoKSkgeworICAgICAgICAgICAgICAgIGludCBtYXhMb2dpY2FsV2lkdGgg
PSBjb21wdXRlTG9naWNhbFdpZHRoVXNpbmcoTWF4TG9naWNhbFdpZHRoLCBjb250YWluZXJXaWR0
aEluSW5saW5lRGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICBpZiAobG9naWNhbFdpZHRoKCkg
PiBtYXhMb2dpY2FsV2lkdGgpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0TG9naWNhbFdpZHRo
KG1heExvZ2ljYWxXaWR0aCk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxXaWR0aExlbmd0
aCA9IHN0eWxlKCktPmxvZ2ljYWxNYXhXaWR0aCgpOworICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KLSAgICAgICAgfQogCi0gICAgICAgIC8vIENhbGN1bGF0ZSBNaW5Mb2dpY2FsV2lk
dGgKLSAgICAgICAgaW50IG1pbkxvZ2ljYWxXaWR0aCA9IGNvbXB1dGVMb2dpY2FsV2lkdGhVc2lu
ZyhNaW5Mb2dpY2FsV2lkdGgsIGNvbnRhaW5lcldpZHRoSW5JbmxpbmVEaXJlY3Rpb24pOwotICAg
ICAgICBpZiAobG9naWNhbFdpZHRoKCkgPCBtaW5Mb2dpY2FsV2lkdGgpIHsKLSAgICAgICAgICAg
IHNldExvZ2ljYWxXaWR0aChtaW5Mb2dpY2FsV2lkdGgpOwotICAgICAgICAgICAgbG9naWNhbFdp
ZHRoTGVuZ3RoID0gc3R5bGUoKS0+bG9naWNhbE1pbldpZHRoKCk7CisgICAgICAgICAgICAvLyBD
YWxjdWxhdGUgTWluTG9naWNhbFdpZHRoCisgICAgICAgICAgICBpbnQgbWluTG9naWNhbFdpZHRo
ID0gY29tcHV0ZUxvZ2ljYWxXaWR0aFVzaW5nKE1pbkxvZ2ljYWxXaWR0aCwgY29udGFpbmVyV2lk
dGhJbklubGluZURpcmVjdGlvbik7CisgICAgICAgICAgICBpZiAobG9naWNhbFdpZHRoKCkgPCBt
aW5Mb2dpY2FsV2lkdGgpIHsKKyAgICAgICAgICAgICAgICBzZXRMb2dpY2FsV2lkdGgobWluTG9n
aWNhbFdpZHRoKTsKKyAgICAgICAgICAgICAgICBsb2dpY2FsV2lkdGhMZW5ndGggPSBzdHlsZSgp
LT5sb2dpY2FsTWluV2lkdGgoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApA
QCAtMTU1NSw2ICsxNTYwLDE5IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbFdpZHRo
KCkKICAgICAgICAgY2ItPnNldE1hcmdpbkVuZEZvckNoaWxkKHRoaXMsIGNvbnRhaW5lckxvZ2lj
YWxXaWR0aCAtIGxvZ2ljYWxXaWR0aCgpIC0gY2ItPm1hcmdpblN0YXJ0Rm9yQ2hpbGQodGhpcykp
OwogfQogCitib29sIFJlbmRlckJveDo6dXNlQXNwZWN0UmF0aW9BdXRvKCkgeworICAgIGJvb2wg
aGFzQXNwZWN0UmF0aW8gPSBzdHlsZSgpLT5oYXNBc3BlY3RSYXRpbygpOworICAgIGJvb2wgd2lk
dGhJc0F1dG8gPSBzdHlsZSgpLT53aWR0aCgpLmlzQXV0bygpOworICAgIGJvb2wgaGVpZ2h0SXNB
dXRvID0gc3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCk7CisgICAgYm9vbCB0b3BJc0F1dG8gPSBz
dHlsZSgpLT50b3AoKS5pc0F1dG8oKTsKKyAgICBib29sIGJvdHRvbUlzQXV0byA9IHN0eWxlKCkt
PmJvdHRvbSgpLmlzQXV0bygpOworICAgIGJvb2wgbGVmdElzQXV0byA9IHN0eWxlKCktPmxlZnQo
KS5pc0F1dG8oKTsKKyAgICBib29sIHJpZ2h0SXNBdXRvID0gc3R5bGUoKS0+cmlnaHQoKS5pc0F1
dG8oKTsKKyAgICBib29sIGhlaWdodERldGVybWluZWQgPSAhaGVpZ2h0SXNBdXRvIHx8ICghdG9w
SXNBdXRvICYmICFib3R0b21Jc0F1dG8gJiYgaXNQb3NpdGlvbmVkKCkpOworICAgIGJvb2wgd2lk
dGhEZXRlcm1pbmVkID0gIXdpZHRoSXNBdXRvIHx8ICghbGVmdElzQXV0byAmJiAhcmlnaHRJc0F1
dG8gJiYgaXNQb3NpdGlvbmVkKCkpOworICAgIHJldHVybiAhaGVpZ2h0RGV0ZXJtaW5lZCAmJiAh
d2lkdGhEZXRlcm1pbmVkICYmIGhhc0FzcGVjdFJhdGlvOworfQorCiBpbnQgUmVuZGVyQm94Ojpj
b21wdXRlTG9naWNhbFdpZHRoVXNpbmcoTG9naWNhbFdpZHRoVHlwZSB3aWR0aFR5cGUsIGludCBh
dmFpbGFibGVMb2dpY2FsV2lkdGgpCiB7CiAgICAgaW50IGxvZ2ljYWxXaWR0aFJlc3VsdCA9IGxv
Z2ljYWxXaWR0aCgpOwpAQCAtMTU2OSw4ICsxNTg3LDE3IEBAIGludCBSZW5kZXJCb3g6OmNvbXB1
dGVMb2dpY2FsV2lkdGhVc2luZyhMb2dpY2FsV2lkdGhUeXBlIHdpZHRoVHlwZSwgaW50IGF2YWls
YWJsCiAgICAgaWYgKGxvZ2ljYWxXaWR0aC5pc0ludHJpbnNpY09yQXV0bygpKSB7CiAgICAgICAg
IGludCBtYXJnaW5TdGFydCA9IHN0eWxlKCktPm1hcmdpblN0YXJ0KCkuY2FsY01pblZhbHVlKGF2
YWlsYWJsZUxvZ2ljYWxXaWR0aCk7CiAgICAgICAgIGludCBtYXJnaW5FbmQgPSBzdHlsZSgpLT5t
YXJnaW5FbmQoKS5jYWxjTWluVmFsdWUoYXZhaWxhYmxlTG9naWNhbFdpZHRoKTsKLSAgICAgICAg
aWYgKGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCkKKyAgICAgICAgaWYgKGF2YWlsYWJsZUxvZ2ljYWxX
aWR0aCkgewogICAgICAgICAgICAgbG9naWNhbFdpZHRoUmVzdWx0ID0gYXZhaWxhYmxlTG9naWNh
bFdpZHRoIC0gbWFyZ2luU3RhcnQgLSBtYXJnaW5FbmQ7CisgICAgICAgICAgICBpZiAodXNlQXNw
ZWN0UmF0aW9BdXRvKCkpIHsKKyAgICAgICAgICAgICAgICBSZW5kZXJCbG9jayogY2IgPSBjb250
YWluaW5nQmxvY2soKTsKKyAgICAgICAgICAgICAgICBSZW5kZXJTdHlsZSogY2JzID0gY2ItPnN0
eWxlKCk7CisgICAgICAgICAgICAgICAgaW50IGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQgPSBjb21w
dXRlTG9naWNhbEhlaWdodFVzaW5nKGNicy0+bG9naWNhbEhlaWdodCgpKTsKKyAgICAgICAgICAg
ICAgICBib29sIGxvZ2ljYWxIZWlnaHREZWZpbmVkID0gc3R5bGUoKS0+bG9naWNhbE1heEhlaWdo
dCgpLmlzVW5kZWZpbmVkKCk7CisgICAgICAgICAgICAgICAgaW50IG1heEggPSBzdHlsZSgpLT5s
b2dpY2FsTWF4SGVpZ2h0KCkuaXNVbmRlZmluZWQoKSA/IGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQg
OiBjb21wdXRlTG9naWNhbEhlaWdodFVzaW5nKHN0eWxlKCktPmxvZ2ljYWxNYXhIZWlnaHQoKSk7
CisgICAgICAgICAgICAgICAgbG9naWNhbFdpZHRoUmVzdWx0ID0gbWluKGxvZ2ljYWxXaWR0aFJl
c3VsdCwgKGludCkobWF4SCAqIHN0eWxlKCktPmFzcGVjdFJhdGlvKCkpKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQogCiAgICAgICAgIGlmIChzaXplc1RvSW50cmluc2ljTG9naWNhbFdpZHRo
KHdpZHRoVHlwZSkpIHsKICAgICAgICAgICAgIGxvZ2ljYWxXaWR0aFJlc3VsdCA9IG1heChsb2dp
Y2FsV2lkdGhSZXN1bHQsIG1pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgpKTsKQEAgLTE2OTEsNiAr
MTcxOCw4IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbEhlaWdodCgpCiAgICAgICAg
IGJvb2wgaW5Ib3Jpem9udGFsQm94ID0gcGFyZW50KCktPmlzRmxleGlibGVCb3goKSAmJiBwYXJl
bnQoKS0+c3R5bGUoKS0+Ym94T3JpZW50KCkgPT0gSE9SSVpPTlRBTDsKICAgICAgICAgYm9vbCBz
dHJldGNoaW5nID0gcGFyZW50KCktPnN0eWxlKCktPmJveEFsaWduKCkgPT0gQlNUUkVUQ0g7CiAg
ICAgICAgIGJvb2wgdHJlYXRBc1JlcGxhY2VkID0gc2hvdWxkQ29tcHV0ZVNpemVBc1JlcGxhY2Vk
KCkgJiYgKCFpbkhvcml6b250YWxCb3ggfHwgIXN0cmV0Y2hpbmcpOworICAgICAgICBib29sIHdp
ZHRoRGV0ZXJtaW5lZDsKKyAgICAgICAgYm9vbCB1c2VBc3BlY3RSYXRpbyA9IHVzZUFzcGVjdFJh
dGlvRm9ySGVpZ2h0KHN0eWxlKCktPmhlaWdodCgpLCBzdHlsZSgpLT5sZWZ0KCksIHN0eWxlKCkt
PnJpZ2h0KCksIHdpZHRoRGV0ZXJtaW5lZCk7IAogICAgICAgICBib29sIGNoZWNrTWluTWF4SGVp
Z2h0ID0gZmFsc2U7CiAKICAgICAgICAgLy8gVGhlIHBhcmVudCBib3ggaXMgZmxleGluZyB1cywg
c28gaXQgaGFzIGluY3JlYXNlZCBvciBkZWNyZWFzZWQgb3VyIGhlaWdodC4gIFdlIGhhdmUgdG8K
QEAgLTE3MDQsNyArMTczMyw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbEhlaWdo
dCgpCiAgICAgICAgICAgICBoID0gTGVuZ3RoKGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQo
KSwgRml4ZWQpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGggPSBzdHlsZSgpLT5sb2dp
Y2FsSGVpZ2h0KCk7Ci0gICAgICAgICAgICBjaGVja01pbk1heEhlaWdodCA9IHRydWU7CisgICAg
ICAgICAgICBjaGVja01pbk1heEhlaWdodCA9ICF1c2VBc3BlY3RSYXRpbzsKICAgICAgICAgfQog
CiAgICAgICAgIC8vIEJsb2NrIGNoaWxkcmVuIG9mIGhvcml6b250YWwgZmxleGlibGUgYm94ZXMg
ZmlsbCB0aGUgaGVpZ2h0IG9mIHRoZSBib3guCkBAIC0xNzIxLDYgKzE3NTAsOCBAQCB2b2lkIFJl
bmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKQogICAgICAgICAgICAgaGVpZ2h0UmVzdWx0
ID0gY29tcHV0ZUxvZ2ljYWxIZWlnaHRVc2luZyhzdHlsZSgpLT5sb2dpY2FsSGVpZ2h0KCkpOwog
ICAgICAgICAgICAgaWYgKGhlaWdodFJlc3VsdCA9PSAtMSkKICAgICAgICAgICAgICAgICBoZWln
aHRSZXN1bHQgPSBsb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAgICBpZiAoIWhlaWdodFJlc3Vs
dCAmJiB1c2VBc3BlY3RSYXRpb0F1dG8oKSkgCisgICAgICAgICAgICAgICAgaGVpZ2h0UmVzdWx0
ID0gbWF4KGhlaWdodFJlc3VsdCwgKGludCkod2lkdGgoKSAvIHN0eWxlKCktPmFzcGVjdFJhdGlv
KCkpKTsKICAgICAgICAgICAgIGludCBtaW5IID0gY29tcHV0ZUxvZ2ljYWxIZWlnaHRVc2luZyhz
dHlsZSgpLT5sb2dpY2FsTWluSGVpZ2h0KCkpOyAvLyBMZWF2ZSBhcyAtMSBpZiB1bnNldC4KICAg
ICAgICAgICAgIGludCBtYXhIID0gc3R5bGUoKS0+bG9naWNhbE1heEhlaWdodCgpLmlzVW5kZWZp
bmVkKCkgPyBoZWlnaHRSZXN1bHQgOiBjb21wdXRlTG9naWNhbEhlaWdodFVzaW5nKHN0eWxlKCkt
PmxvZ2ljYWxNYXhIZWlnaHQoKSk7CiAgICAgICAgICAgICBpZiAobWF4SCA9PSAtMSkKQEAgLTE3
MjgsMTAgKzE3NTksMTQgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkK
ICAgICAgICAgICAgIGhlaWdodFJlc3VsdCA9IG1pbihtYXhILCBoZWlnaHRSZXN1bHQpOwogICAg
ICAgICAgICAgaGVpZ2h0UmVzdWx0ID0gbWF4KG1pbkgsIGhlaWdodFJlc3VsdCk7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBUaGUgb25seSB0aW1lcyB3ZSBkb24ndCBjaGVjayBt
aW4vbWF4IGhlaWdodCBhcmUgd2hlbiBhIGZpeGVkIGxlbmd0aCBoYXMKLSAgICAgICAgICAgIC8v
IGJlZW4gZ2l2ZW4gYXMgYW4gb3ZlcnJpZGUuICBKdXN0IHVzZSB0aGF0LiAgVGhlIHZhbHVlIGhh
cyBhbHJlYWR5IGJlZW4gYWRqdXN0ZWQKLSAgICAgICAgICAgIC8vIGZvciBib3gtc2l6aW5nLgot
ICAgICAgICAgICAgaGVpZ2h0UmVzdWx0ID0gaC52YWx1ZSgpICsgYm9yZGVyQW5kUGFkZGluZ0xv
Z2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAgIGlmICh1c2VBc3BlY3RSYXRpbykgeworICAgICAg
ICAgICAgICAgIGhlaWdodFJlc3VsdCA9IHdpZHRoKCkgLyBzdHlsZSgpLT5hc3BlY3RSYXRpbygp
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgb25seSB0aW1l
cyB3ZSBkb24ndCBjaGVjayBtaW4vbWF4IGhlaWdodCBhcmUgd2hlbiBhIGZpeGVkIGxlbmd0aCBo
YXMKKyAgICAgICAgICAgICAgICAvLyBiZWVuIGdpdmVuIGFzIGFuIG92ZXJyaWRlLiAgSnVzdCB1
c2UgdGhhdC4gIFRoZSB2YWx1ZSBoYXMgYWxyZWFkeSBiZWVuIGFkanVzdGVkCisgICAgICAgICAg
ICAgICAgLy8gZm9yIGJveC1zaXppbmcuCisgICAgICAgICAgICAgICAgaGVpZ2h0UmVzdWx0ID0g
aC52YWx1ZSgpICsgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogCiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQoaGVpZ2h0UmVzdWx0KTsK
QEAgLTE4MDYsNyArMTg0MSw3IEBAIGludCBSZW5kZXJCb3g6OmNvbXB1dGVQZXJjZW50YWdlTG9n
aWNhbEhlaWdodChjb25zdCBMZW5ndGgmIGhlaWdodCkKICAgICAvLyBleHBsaWNpdGx5IHNwZWNp
ZmllZCB0aGF0IGNhbiBiZSB1c2VkIGZvciBhbnkgcGVyY2VudGFnZSBjb21wdXRhdGlvbnMuCiAg
ICAgLy8gRklYTUU6IFdlIGNhbid0IGp1c3QgY2hlY2sgdG9wL2JvdHRvbSBoZXJlLgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjUwMAotICAgIGJvb2wg
aXNQb3NpdGlvbmVkV2l0aFNwZWNpZmllZEhlaWdodCA9IGNiLT5pc1Bvc2l0aW9uZWQoKSAmJiAo
IWNiLT5zdHlsZSgpLT5sb2dpY2FsSGVpZ2h0KCkuaXNBdXRvKCkgfHwgKCFjYi0+c3R5bGUoKS0+
dG9wKCkuaXNBdXRvKCkgJiYgIWNiLT5zdHlsZSgpLT5ib3R0b20oKS5pc0F1dG8oKSkpOworICAg
IGJvb2wgaXNQb3NpdGlvbmVkV2l0aFNwZWNpZmllZEhlaWdodCA9IGNiLT5zdHlsZSgpLT5oYXNB
c3BlY3RSYXRpbygpIHx8IChjYi0+aXNQb3NpdGlvbmVkKCkgJiYgKCFjYi0+c3R5bGUoKS0+bG9n
aWNhbEhlaWdodCgpLmlzQXV0bygpIHx8ICghY2ItPnN0eWxlKCktPnRvcCgpLmlzQXV0bygpICYm
ICFjYi0+c3R5bGUoKS0+Ym90dG9tKCkuaXNBdXRvKCkpKSk7CiAKICAgICBib29sIGluY2x1ZGVC
b3JkZXJQYWRkaW5nID0gaXNUYWJsZSgpOwogCkBAIC0yMjA5LDYgKzIyNDQsMjAgQEAgdm9pZCBS
ZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoKCkKICAgICBzZXRXaWR0aCh3
aWR0aCgpICsgYm9yZGVyc1BsdXNQYWRkaW5nKTsKIH0KIAorYm9vbCBSZW5kZXJCb3g6OnVzZUFz
cGVjdFJhdGlvRm9yV2lkdGgoY29uc3QgTGVuZ3RoJiB3aWR0aCwgY29uc3QgTGVuZ3RoJiBsZWZ0
LCBjb25zdCBMZW5ndGgmIHJpZ2h0LCBib29sJiBoZWlnaHREZXRlcm1pbmVkKSB7CisgICAgYm9v
bCBoYXNBc3BlY3RSYXRpbyA9IHN0eWxlKCktPmhhc0FzcGVjdFJhdGlvKCk7CisgICAgYm9vbCB1
c2VNaW5NYXggPSAhc3R5bGUoKS0+bWF4SGVpZ2h0KCkuaXNVbmRlZmluZWQoKSB8fCAhc3R5bGUo
KS0+bWluSGVpZ2h0KCkuaXNaZXJvKCk7CisgICAgYm9vbCB3aWR0aElzQXV0byA9IHdpZHRoLmlz
SW50cmluc2ljT3JBdXRvKCk7CisgICAgYm9vbCBoZWlnaHRJc0F1dG8gPSBzdHlsZSgpLT5oZWln
aHQoKS5pc0F1dG8oKTsKKyAgICBib29sIHRvcElzQXV0byA9IHN0eWxlKCktPnRvcCgpLmlzQXV0
bygpOworICAgIGJvb2wgYm90dG9tSXNBdXRvID0gc3R5bGUoKS0+Ym90dG9tKCkuaXNBdXRvKCk7
CisgICAgYm9vbCBsZWZ0SXNBdXRvID0gbGVmdC5pc0F1dG8oKTsKKyAgICBib29sIHJpZ2h0SXNB
dXRvID0gcmlnaHQuaXNBdXRvKCk7CisgICAgYm9vbCB3aWR0aERldGVybWluZWQgPSAhd2lkdGhJ
c0F1dG8gfHwgKCFsZWZ0SXNBdXRvICYmICFyaWdodElzQXV0byAmJiBpc1Bvc2l0aW9uZWQoKSk7
CisgICAgaGVpZ2h0RGV0ZXJtaW5lZCA9ICFoZWlnaHRJc0F1dG8gfHwgKCF0b3BJc0F1dG8gJiYg
IWJvdHRvbUlzQXV0byAmJiBpc1Bvc2l0aW9uZWQoKSk7CisgICAgcmV0dXJuICF1c2VNaW5NYXgg
JiYgIXdpZHRoRGV0ZXJtaW5lZCAmJiBoYXNBc3BlY3RSYXRpbzsKK30KKwogdm9pZCBSZW5kZXJC
b3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoVXNpbmcoTGVuZ3RoIHdpZHRoLCBjb25z
dCBSZW5kZXJCb3hNb2RlbE9iamVjdCogY29udGFpbmVyQmxvY2ssIFRleHREaXJlY3Rpb24gY29u
dGFpbmVyRGlyZWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgaW50IGNvbnRhaW5lcldpZHRoLCBjb25zdCBpbnQgYm9yZGVyc1BsdXNQYWRk
aW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
TGVuZ3RoIGxlZnQsIGNvbnN0IExlbmd0aCByaWdodCwgY29uc3QgTGVuZ3RoIG1hcmdpbkxlZnQs
IGNvbnN0IExlbmd0aCBtYXJnaW5SaWdodCwKQEAgLTIyMjMsNjIgKzIyNzIsMTAgQEAgdm9pZCBS
ZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoVXNpbmcoTGVuZ3RoIHdpZHRo
LCBjb25zdCBSZW5kZXJCb3gKICAgICBib29sIHdpZHRoSXNBdXRvID0gd2lkdGguaXNJbnRyaW5z
aWNPckF1dG8oKTsKICAgICBib29sIGxlZnRJc0F1dG8gPSBsZWZ0LmlzQXV0bygpOwogICAgIGJv
b2wgcmlnaHRJc0F1dG8gPSByaWdodC5pc0F1dG8oKTsKKyAgICBib29sIGhlaWdodERldGVybWlu
ZWQ7CisgICAgYm9vbCB1c2VBc3BlY3RSYXRpbyA9IHVzZUFzcGVjdFJhdGlvRm9yV2lkdGgod2lk
dGgsIGxlZnQsIHJpZ2h0LCBoZWlnaHREZXRlcm1pbmVkKTsKIAotICAgIGlmICghbGVmdElzQXV0
byAmJiAhd2lkdGhJc0F1dG8gJiYgIXJpZ2h0SXNBdXRvKSB7Ci0gICAgICAgIC8qLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qXAotICAgICAgICAgKiBJZiBub25lIG9mIHRoZSB0aHJlZSBpcyAnYXV0byc6IElmIGJv
dGggJ21hcmdpbi1sZWZ0JyBhbmQgJ21hcmdpbi0KLSAgICAgICAgICogcmlnaHQnIGFyZSAnYXV0
bycsIHNvbHZlIHRoZSBlcXVhdGlvbiB1bmRlciB0aGUgZXh0cmEgY29uc3RyYWludCB0aGF0Ci0g
ICAgICAgICAqIHRoZSB0d28gbWFyZ2lucyBnZXQgZXF1YWwgdmFsdWVzLCB1bmxlc3MgdGhpcyB3
b3VsZCBtYWtlIHRoZW0gbmVnYXRpdmUsCi0gICAgICAgICAqIGluIHdoaWNoIGNhc2Ugd2hlbiBk
aXJlY3Rpb24gb2YgdGhlIGNvbnRhaW5pbmcgYmxvY2sgaXMgJ2x0cicgKCdydGwnKSwKLSAgICAg
ICAgICogc2V0ICdtYXJnaW4tbGVmdCcgKCdtYXJnaW4tcmlnaHQnKSB0byB6ZXJvIGFuZCBzb2x2
ZSBmb3IgJ21hcmdpbi1yaWdodCcKLSAgICAgICAgICogKCdtYXJnaW4tbGVmdCcpLiBJZiBvbmUg
b2YgJ21hcmdpbi1sZWZ0JyBvciAnbWFyZ2luLXJpZ2h0JyBpcyAnYXV0bycsCi0gICAgICAgICAq
IHNvbHZlIHRoZSBlcXVhdGlvbiBmb3IgdGhhdCB2YWx1ZS4gSWYgdGhlIHZhbHVlcyBhcmUgb3Zl
ci1jb25zdHJhaW5lZCwKLSAgICAgICAgICogaWdub3JlIHRoZSB2YWx1ZSBmb3IgJ2xlZnQnIChp
biBjYXNlIHRoZSAnZGlyZWN0aW9uJyBwcm9wZXJ0eSBvZiB0aGUKLSAgICAgICAgICogY29udGFp
bmluZyBibG9jayBpcyAncnRsJykgb3IgJ3JpZ2h0JyAoaW4gY2FzZSAnZGlyZWN0aW9uJyBpcyAn
bHRyJykKLSAgICAgICAgICogYW5kIHNvbHZlIGZvciB0aGF0IHZhbHVlLgotICAgICAgICBcKi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8KLSAgICAgICAgLy8gTk9URTogIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8g
c29sdmUgZm9yICdyaWdodCcgaW4gdGhlIG92ZXIgY29uc3RyYWluZWQKLSAgICAgICAgLy8gY2Fz
ZSBiZWNhdXNlIHRoZSB2YWx1ZSBpcyBub3QgdXNlZCBmb3IgYW55IGZ1cnRoZXIgY2FsY3VsYXRp
b25zLgotCi0gICAgICAgIGxlZnRWYWx1ZSA9IGxlZnQuY2FsY1ZhbHVlKGNvbnRhaW5lcldpZHRo
KTsKLSAgICAgICAgd2lkdGhWYWx1ZSA9IGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHdp
ZHRoLmNhbGNWYWx1ZShjb250YWluZXJXaWR0aCkpOwotCi0gICAgICAgIGNvbnN0IGludCBhdmFp
bGFibGVTcGFjZSA9IGNvbnRhaW5lcldpZHRoIC0gKGxlZnRWYWx1ZSArIHdpZHRoVmFsdWUgKyBy
aWdodC5jYWxjVmFsdWUoY29udGFpbmVyV2lkdGgpICsgYm9yZGVyc1BsdXNQYWRkaW5nKTsKLQot
ICAgICAgICAvLyBNYXJnaW5zIGFyZSBub3cgdGhlIG9ubHkgdW5rbm93bgotICAgICAgICBpZiAo
bWFyZ2luTGVmdC5pc0F1dG8oKSAmJiBtYXJnaW5SaWdodC5pc0F1dG8oKSkgewotICAgICAgICAg
ICAgLy8gQm90aCBtYXJnaW5zIGF1dG8sIHNvbHZlIGZvciBlcXVhbGl0eQotICAgICAgICAgICAg
aWYgKGF2YWlsYWJsZVNwYWNlID49IDApIHsKLSAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0VmFs
dWUgPSBhdmFpbGFibGVTcGFjZSAvIDI7IC8vIHNwbGl0IHRoZSBkaWZmZXJlbmNlCi0gICAgICAg
ICAgICAgICAgbWFyZ2luUmlnaHRWYWx1ZSA9IGF2YWlsYWJsZVNwYWNlIC0gbWFyZ2luTGVmdFZh
bHVlOyAgLy8gYWNjb3VudCBmb3Igb2RkIHZhbHVlZCBkaWZmZXJlbmNlcwotICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBzZWUgRklYTUUgMQotICAgICAgICAgICAgICAg
IGlmIChjb250YWluZXJEaXJlY3Rpb24gPT0gTFRSKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1h
cmdpbkxlZnRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0VmFsdWUg
PSBhdmFpbGFibGVTcGFjZTsgLy8gd2lsbCBiZSBuZWdhdGl2ZQotICAgICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnRWYWx1ZSA9IGF2YWlsYWJsZVNw
YWNlOyAvLyB3aWxsIGJlIG5lZ2F0aXZlCi0gICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0
VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBl
bHNlIGlmIChtYXJnaW5MZWZ0LmlzQXV0bygpKSB7Ci0gICAgICAgICAgICAvLyBTb2x2ZSBmb3Ig
bGVmdCBtYXJnaW4KLSAgICAgICAgICAgIG1hcmdpblJpZ2h0VmFsdWUgPSBtYXJnaW5SaWdodC5j
YWxjVmFsdWUoY29udGFpbmVyV2lkdGgpOwotICAgICAgICAgICAgbWFyZ2luTGVmdFZhbHVlID0g
YXZhaWxhYmxlU3BhY2UgLSBtYXJnaW5SaWdodFZhbHVlOwotICAgICAgICB9IGVsc2UgaWYgKG1h
cmdpblJpZ2h0LmlzQXV0bygpKSB7Ci0gICAgICAgICAgICAvLyBTb2x2ZSBmb3IgcmlnaHQgbWFy
Z2luCi0gICAgICAgICAgICBtYXJnaW5MZWZ0VmFsdWUgPSBtYXJnaW5MZWZ0LmNhbGNWYWx1ZShj
b250YWluZXJXaWR0aCk7Ci0gICAgICAgICAgICBtYXJnaW5SaWdodFZhbHVlID0gYXZhaWxhYmxl
U3BhY2UgLSBtYXJnaW5MZWZ0VmFsdWU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAv
LyBPdmVyLWNvbnN0cmFpbmVkLCBzb2x2ZSBmb3IgbGVmdCBpZiBkaXJlY3Rpb24gaXMgUlRMCi0g
ICAgICAgICAgICBtYXJnaW5MZWZ0VmFsdWUgPSBtYXJnaW5MZWZ0LmNhbGNWYWx1ZShjb250YWlu
ZXJXaWR0aCk7Ci0gICAgICAgICAgICBtYXJnaW5SaWdodFZhbHVlID0gbWFyZ2luUmlnaHQuY2Fs
Y1ZhbHVlKGNvbnRhaW5lcldpZHRoKTsKLQotICAgICAgICAgICAgLy8gc2VlIEZJWE1FIDEgLS0g
dXNlZCB0byBiZSAidGhpcy0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkiCi0gICAgICAgICAgICBpZiAo
Y29udGFpbmVyRGlyZWN0aW9uID09IFJUTCkKLSAgICAgICAgICAgICAgICBsZWZ0VmFsdWUgPSAo
YXZhaWxhYmxlU3BhY2UgKyBsZWZ0VmFsdWUpIC0gbWFyZ2luTGVmdFZhbHVlIC0gbWFyZ2luUmln
aHRWYWx1ZTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7CisgICAgaWYgKGxlZnRJc0F1dG8gfHwg
d2lkdGhJc0F1dG8gfHwgcmlnaHRJc0F1dG8pIHsKICAgICAgICAgLyotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCiAg
ICAgICAgICAqIE90aGVyd2lzZSwgc2V0ICdhdXRvJyB2YWx1ZXMgZm9yICdtYXJnaW4tbGVmdCcg
YW5kICdtYXJnaW4tcmlnaHQnCiAgICAgICAgICAqIHRvIDAsIGFuZCBwaWNrIHRoZSBvbmUgb2Yg
dGhlIGZvbGxvd2luZyBzaXggcnVsZXMgdGhhdCBhcHBsaWVzLgpAQCAtMjMyMCw5ICsyMzE3LDEx
IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aFVzaW5nKExl
bmd0aCB3aWR0aCwgY29uc3QgUmVuZGVyQm94CiAgICAgICAgIC8vIE5PVEU6IEZvciBydWxlcyAz
IGFuZCA2IGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gc29sdmUgZm9yICdyaWdodCcKICAgICAgICAg
Ly8gYmVjYXVzZSB0aGUgdmFsdWUgaXMgbm90IHVzZWQgZm9yIGFueSBmdXJ0aGVyIGNhbGN1bGF0
aW9ucy4KIAorCisgICAgICAgIGJvb2wgY29tcHV0ZU1hcmdpbnNMYXRlciA9IHVzZUFzcGVjdFJh
dGlvICYmIG1hcmdpbkxlZnQuaXNBdXRvKCkgJiYgbWFyZ2luUmlnaHQuaXNBdXRvKCk7CiAgICAg
ICAgIC8vIENhbGN1bGF0ZSBtYXJnaW5zLCAnYXV0bycgbWFyZ2lucyBhcmUgaWdub3JlZC4KLSAg
ICAgICAgbWFyZ2luTGVmdFZhbHVlID0gbWFyZ2luTGVmdC5jYWxjTWluVmFsdWUoY29udGFpbmVy
V2lkdGgpOwotICAgICAgICBtYXJnaW5SaWdodFZhbHVlID0gbWFyZ2luUmlnaHQuY2FsY01pblZh
bHVlKGNvbnRhaW5lcldpZHRoKTsKKyAgICAgICAgbWFyZ2luTGVmdFZhbHVlID0gY29tcHV0ZU1h
cmdpbnNMYXRlciA/IDAgOiBtYXJnaW5MZWZ0LmNhbGNNaW5WYWx1ZShjb250YWluZXJXaWR0aCk7
CisgICAgICAgIG1hcmdpblJpZ2h0VmFsdWUgPSBjb21wdXRlTWFyZ2luc0xhdGVyID8gMCA6IG1h
cmdpblJpZ2h0LmNhbGNNaW5WYWx1ZShjb250YWluZXJXaWR0aCk7CiAKICAgICAgICAgY29uc3Qg
aW50IGF2YWlsYWJsZVNwYWNlID0gY29udGFpbmVyV2lkdGggLSAobWFyZ2luTGVmdFZhbHVlICsg
bWFyZ2luUmlnaHRWYWx1ZSArIGJvcmRlcnNQbHVzUGFkZGluZyk7CiAKQEAgLTIzMzcsNiArMjMz
Niw4IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aFVzaW5n
KExlbmd0aCB3aWR0aCwgY29uc3QgUmVuZGVyQm94CiAgICAgICAgICAgICBpbnQgcHJlZmVycmVk
TWluV2lkdGggPSBtaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSAtIGJvcmRlcnNQbHVzUGFkZGlu
ZzsKICAgICAgICAgICAgIGludCBhdmFpbGFibGVXaWR0aCA9IGF2YWlsYWJsZVNwYWNlIC0gcmln
aHRWYWx1ZTsKICAgICAgICAgICAgIHdpZHRoVmFsdWUgPSBtaW4obWF4KHByZWZlcnJlZE1pbldp
ZHRoLCBhdmFpbGFibGVXaWR0aCksIHByZWZlcnJlZFdpZHRoKTsKKyAgICAgICAgICAgIGlmICh1
c2VBc3BlY3RSYXRpbykgCisgICAgICAgICAgICAgICAgd2lkdGhWYWx1ZSA9IG1heCgoaW50KSho
ZWlnaHQoKSAqIHN0eWxlKCktPmFzcGVjdFJhdGlvKCkpLCB3aWR0aFZhbHVlKTsKICAgICAgICAg
ICAgIGxlZnRWYWx1ZSA9IGF2YWlsYWJsZVNwYWNlIC0gKHdpZHRoVmFsdWUgKyByaWdodFZhbHVl
KTsKICAgICAgICAgfSBlbHNlIGlmICghbGVmdElzQXV0byAmJiB3aWR0aElzQXV0byAmJiByaWdo
dElzQXV0bykgewogICAgICAgICAgICAgLy8gUlVMRSAzOiAodXNlIHNocmluay10by1maXQgZm9y
IHdpZHRoLCBhbmQgbm8gbmVlZCBzb2x2ZSBvZiByaWdodCkKQEAgLTIzNDYsMjAgKzIzNDcsODgg
QEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoVXNpbmcoTGVu
Z3RoIHdpZHRoLCBjb25zdCBSZW5kZXJCb3gKICAgICAgICAgICAgIGludCBwcmVmZXJyZWRXaWR0
aCA9IG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpIC0gYm9yZGVyc1BsdXNQYWRkaW5nOwogICAg
ICAgICAgICAgaW50IHByZWZlcnJlZE1pbldpZHRoID0gbWluUHJlZmVycmVkTG9naWNhbFdpZHRo
KCkgLSBib3JkZXJzUGx1c1BhZGRpbmc7CiAgICAgICAgICAgICBpbnQgYXZhaWxhYmxlV2lkdGgg
PSBhdmFpbGFibGVTcGFjZSAtIGxlZnRWYWx1ZTsKLSAgICAgICAgICAgIHdpZHRoVmFsdWUgPSBt
aW4obWF4KHByZWZlcnJlZE1pbldpZHRoLCBhdmFpbGFibGVXaWR0aCksIHByZWZlcnJlZFdpZHRo
KTsKKyAgICAgICAgICAgIGlmICh1c2VBc3BlY3RSYXRpbykgeworICAgICAgICAgICAgICAgIGlm
IChoZWlnaHREZXRlcm1pbmVkKQorICAgICAgICAgICAgICAgICAgICB3aWR0aFZhbHVlID0gaGVp
Z2h0KCkgKiBzdHlsZSgpLT5hc3BlY3RSYXRpbygpOworICAgICAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICBMZW5ndGggdG9wID0gc3R5bGUoKS0+dG9wKCk7CisgICAgICAg
ICAgICAgICAgICAgIExlbmd0aCBib3R0b20gPSBzdHlsZSgpLT5ib3R0b20oKTsKKyAgICAgICAg
ICAgICAgICAgICAgaW50IG1heEggPSBjb21wdXRlQXZhaWxhYmxlSGVpZ2h0KHRvcCwgYm90dG9t
KTsKKyAgICAgICAgICAgICAgICAgICAgd2lkdGhWYWx1ZSA9IG1pbihhdmFpbGFibGVXaWR0aCwg
KGludCkobWF4SCAqIHN0eWxlKCktPmFzcGVjdFJhdGlvKCkpKTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgd2lkdGhWYWx1ZSA9IG1pbihtYXgocHJlZmVycmVkTWluV2lkdGgsIGF2YWlsYWJsZVdpZHRo
KSwgcHJlZmVycmVkV2lkdGgpOwogICAgICAgICB9IGVsc2UgaWYgKGxlZnRJc0F1dG8gJiYgIXdp
ZHRoLmlzQXV0bygpICYmICFyaWdodElzQXV0bykgewogICAgICAgICAgICAgLy8gUlVMRSA0OiAo
c29sdmUgZm9yIGxlZnQpCiAgICAgICAgICAgICB3aWR0aFZhbHVlID0gY29tcHV0ZUNvbnRlbnRC
b3hMb2dpY2FsV2lkdGgod2lkdGguY2FsY1ZhbHVlKGNvbnRhaW5lcldpZHRoKSk7CisgICAgICAg
ICAgICBpZiAodXNlQXNwZWN0UmF0aW8pIAorICAgICAgICAgICAgICAgIHdpZHRoVmFsdWUgPSBt
YXgoKGludCkoaGVpZ2h0KCkgKiBzdHlsZSgpLT5hc3BlY3RSYXRpbygpKSwgd2lkdGhWYWx1ZSk7
CiAgICAgICAgICAgICBsZWZ0VmFsdWUgPSBhdmFpbGFibGVTcGFjZSAtICh3aWR0aFZhbHVlICsg
cmlnaHQuY2FsY1ZhbHVlKGNvbnRhaW5lcldpZHRoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoIWxl
ZnRJc0F1dG8gJiYgd2lkdGhJc0F1dG8gJiYgIXJpZ2h0SXNBdXRvKSB7CiAgICAgICAgICAgICAv
LyBSVUxFIDU6IChzb2x2ZSBmb3Igd2lkdGgpCiAgICAgICAgICAgICBsZWZ0VmFsdWUgPSBsZWZ0
LmNhbGNWYWx1ZShjb250YWluZXJXaWR0aCk7CiAgICAgICAgICAgICB3aWR0aFZhbHVlID0gYXZh
aWxhYmxlU3BhY2UgLSAobGVmdFZhbHVlICsgcmlnaHQuY2FsY1ZhbHVlKGNvbnRhaW5lcldpZHRo
KSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoIWxlZnRJc0F1dG8mJiAhd2lkdGhJc0F1dG8gJiYgcmln
aHRJc0F1dG8pIHsKKyAgICAgICAgfSBlbHNlIGlmICghbGVmdElzQXV0byAmJiAhd2lkdGhJc0F1
dG8gJiYgcmlnaHRJc0F1dG8pIHsKICAgICAgICAgICAgIC8vIFJVTEUgNjogKG5vIG5lZWQgc29s
dmUgZm9yIHJpZ2h0KQogICAgICAgICAgICAgbGVmdFZhbHVlID0gbGVmdC5jYWxjVmFsdWUoY29u
dGFpbmVyV2lkdGgpOwogICAgICAgICAgICAgd2lkdGhWYWx1ZSA9IGNvbXB1dGVDb250ZW50Qm94
TG9naWNhbFdpZHRoKHdpZHRoLmNhbGNWYWx1ZShjb250YWluZXJXaWR0aCkpOworICAgICAgICB9
ICAgIAorICAgIH0gIGVsc2UgeworICAgICAgICAvL2lmICghbGVmdElzQXV0byAmJiAhd2lkdGhJ
c0F1dG8gJiYgIXJpZ2h0SXNBdXRvKSB7CisgICAgICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAorICAg
ICAgICAgICogSWYgbm9uZSBvZiB0aGUgdGhyZWUgaXMgJ2F1dG8nOiBJZiBib3RoICdtYXJnaW4t
bGVmdCcgYW5kICdtYXJnaW4tCisgICAgICAgICAgKiByaWdodCcgYXJlICdhdXRvJywgc29sdmUg
dGhlIGVxdWF0aW9uIHVuZGVyIHRoZSBleHRyYSBjb25zdHJhaW50IHRoYXQKKyAgICAgICAgICAq
IHRoZSB0d28gbWFyZ2lucyBnZXQgZXF1YWwgdmFsdWVzLCB1bmxlc3MgdGhpcyB3b3VsZCBtYWtl
IHRoZW0gbmVnYXRpdmUsCisgICAgICAgICAgKiBpbiB3aGljaCBjYXNlIHdoZW4gZGlyZWN0aW9u
IG9mIHRoZSBjb250YWluaW5nIGJsb2NrIGlzICdsdHInICgncnRsJyksCisgICAgICAgICAgKiBz
ZXQgJ21hcmdpbi1sZWZ0JyAoJ21hcmdpbi1yaWdodCcpIHRvIHplcm8gYW5kIHNvbHZlIGZvciAn
bWFyZ2luLXJpZ2h0JworICAgICAgICAgICogKCdtYXJnaW4tbGVmdCcpLiBJZiBvbmUgb2YgJ21h
cmdpbi1sZWZ0JyBvciAnbWFyZ2luLXJpZ2h0JyBpcyAnYXV0bycsCisgICAgICAgICAgKiBzb2x2
ZSB0aGUgZXF1YXRpb24gZm9yIHRoYXQgdmFsdWUuIElmIHRoZSB2YWx1ZXMgYXJlIG92ZXItY29u
c3RyYWluZWQsCisgICAgICAgICAgKiBpZ25vcmUgdGhlIHZhbHVlIGZvciAnbGVmdCcgKGluIGNh
c2UgdGhlICdkaXJlY3Rpb24nIHByb3BlcnR5IG9mIHRoZQorICAgICAgICAgICogY29udGFpbmlu
ZyBibG9jayBpcyAncnRsJykgb3IgJ3JpZ2h0JyAoaW4gY2FzZSAnZGlyZWN0aW9uJyBpcyAnbHRy
JykKKyAgICAgICAgICAqIGFuZCBzb2x2ZSBmb3IgdGhhdCB2YWx1ZS4KKyAgICAgICAgXCotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSovCisgICAgICAgIC8vIE5PVEU6ICBJdCBpcyBub3QgbmVjZXNzYXJ5IHRvIHNv
bHZlIGZvciAncmlnaHQnIGluIHRoZSBvdmVyIGNvbnN0cmFpbmVkCisgICAgICAgIC8vIGNhc2Ug
YmVjYXVzZSB0aGUgdmFsdWUgaXMgbm90IHVzZWQgZm9yIGFueSBmdXJ0aGVyIGNhbGN1bGF0aW9u
cy4KKworICAgICAgICBsZWZ0VmFsdWUgPSBsZWZ0LmNhbGNWYWx1ZShjb250YWluZXJXaWR0aCk7
CisgICAgICAgIHdpZHRoVmFsdWUgPSBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aCh3aWR0
aC5jYWxjVmFsdWUoY29udGFpbmVyV2lkdGgpKTsKKyAgICB9CisgICAgCisgICAgY29uc3QgaW50
IGF2YWlsYWJsZVNwYWNlID0gY29udGFpbmVyV2lkdGggLSAobGVmdFZhbHVlICsgd2lkdGhWYWx1
ZSAvKisgcmlnaHQuY2FsY1ZhbHVlKGNvbnRhaW5lcldpZHRoKSovICsgYm9yZGVyc1BsdXNQYWRk
aW5nKTsKKworICAgIC8vIE1hcmdpbnMgYXJlIG5vdyB0aGUgb25seSB1bmtub3duCisgICAgaWYg
KG1hcmdpbkxlZnQuaXNBdXRvKCkgJiYgbWFyZ2luUmlnaHQuaXNBdXRvKCkpIHsKKyAgICAgICAg
Ly8gQm90aCBtYXJnaW5zIGF1dG8sIHNvbHZlIGZvciBlcXVhbGl0eQorICAgICAgICBpZiAoYXZh
aWxhYmxlU3BhY2UgPj0gMCkgeworICAgICAgICAgICAgbWFyZ2luTGVmdFZhbHVlID0gYXZhaWxh
YmxlU3BhY2UgLyAyOyAvLyBzcGxpdCB0aGUgZGlmZmVyZW5jZQorICAgICAgICAgICAgbWFyZ2lu
UmlnaHRWYWx1ZSA9IGF2YWlsYWJsZVNwYWNlIC0gbWFyZ2luTGVmdFZhbHVlOyAgLy8gYWNjb3Vu
dCBmb3Igb2RkIHZhbHVlZCBkaWZmZXJlbmNlcworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgLy8gc2VlIEZJWE1FIDEKKyAgICAgICAgICAgIGlmIChjb250YWluZXJEaXJlY3Rpb24gPT0g
TFRSKSB7CisgICAgICAgICAgICAgICAgbWFyZ2luTGVmdFZhbHVlID0gMDsKKyAgICAgICAgICAg
ICAgICBtYXJnaW5SaWdodFZhbHVlID0gYXZhaWxhYmxlU3BhY2U7IC8vIHdpbGwgYmUgbmVnYXRp
dmUKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbWFyZ2luTGVmdFZhbHVl
ID0gYXZhaWxhYmxlU3BhY2U7IC8vIHdpbGwgYmUgbmVnYXRpdmUKKyAgICAgICAgICAgICAgICBt
YXJnaW5SaWdodFZhbHVlID0gMDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQorICAgIH0gZWxz
ZSBpZiAobWFyZ2luTGVmdC5pc0F1dG8oKSkgeworICAgICAgICAvLyBTb2x2ZSBmb3IgbGVmdCBt
YXJnaW4KKyAgICAgICAgbWFyZ2luUmlnaHRWYWx1ZSA9IG1hcmdpblJpZ2h0LmNhbGNWYWx1ZShj
b250YWluZXJXaWR0aCk7CisgICAgICAgIG1hcmdpbkxlZnRWYWx1ZSA9IGF2YWlsYWJsZVNwYWNl
IC0gbWFyZ2luUmlnaHRWYWx1ZTsKKyAgICB9IGVsc2UgaWYgKG1hcmdpblJpZ2h0LmlzQXV0bygp
KSB7CisgICAgICAgIC8vIFNvbHZlIGZvciByaWdodCBtYXJnaW4KKyAgICAgICAgbWFyZ2luTGVm
dFZhbHVlID0gbWFyZ2luTGVmdC5jYWxjVmFsdWUoY29udGFpbmVyV2lkdGgpOworICAgICAgICBt
YXJnaW5SaWdodFZhbHVlID0gYXZhaWxhYmxlU3BhY2UgLSBtYXJnaW5MZWZ0VmFsdWU7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgLy8gT3Zlci1jb25zdHJhaW5lZCwgc29sdmUgZm9yIGxlZnQgaWYg
ZGlyZWN0aW9uIGlzIFJUTAorICAgICAgICBtYXJnaW5MZWZ0VmFsdWUgPSBtYXJnaW5MZWZ0LmNh
bGNWYWx1ZShjb250YWluZXJXaWR0aCk7CisgICAgICAgIG1hcmdpblJpZ2h0VmFsdWUgPSBtYXJn
aW5SaWdodC5jYWxjVmFsdWUoY29udGFpbmVyV2lkdGgpOworCisgICAgICAgIC8vIHNlZSBGSVhN
RSAxIC0tIHVzZWQgdG8gYmUgInRoaXMtPnN0eWxlKCktPmRpcmVjdGlvbigpIgorICAgICAgICBp
ZiAoY29udGFpbmVyRGlyZWN0aW9uID09IFJUTCkKKyAgICAgICAgICAgIGxlZnRWYWx1ZSA9IChh
dmFpbGFibGVTcGFjZSArIGxlZnRWYWx1ZSkgLSBtYXJnaW5MZWZ0VmFsdWUgLSBtYXJnaW5SaWdo
dFZhbHVlOwogICAgIH0KIAogICAgIC8vIFVzZSBjb21wdXRlZCB2YWx1ZXMgdG8gY2FsY3VsYXRl
IHRoZSBob3Jpem9udGFsIHBvc2l0aW9uLgpAQCAtMjM5Nyw3ICsyNDY2LDcgQEAgdm9pZCBSZW5k
ZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbEhlaWdodCgpCiAKICAgICAvLyBXZSBkb24n
dCB1c2UgY29udGFpbmluZ0Jsb2NrKCksIHNpbmNlIHdlIG1heSBiZSBwb3NpdGlvbmVkIGJ5IGFu
IGVuY2xvc2luZyByZWxwb3NpdGlvbmVkIGlubGluZS4KICAgICBjb25zdCBSZW5kZXJCb3hNb2Rl
bE9iamVjdCogY29udGFpbmVyQmxvY2sgPSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KGNvbnRhaW5l
cigpKTsKLQorICAgIGNvbnN0IGludCBjb250YWluZXJCb3JkZXJQbHVzUGFkZGluZyA9IGNvbnRh
aW5lckJsb2NrLT5ib3JkZXJBbmRQYWRkaW5nSGVpZ2h0KCk7CiAgICAgY29uc3QgaW50IGNvbnRh
aW5lckhlaWdodCA9IGNvbnRhaW5pbmdCbG9ja0hlaWdodEZvclBvc2l0aW9uZWQoY29udGFpbmVy
QmxvY2spOwogCiAgICAgY29uc3QgaW50IGJvcmRlcnNQbHVzUGFkZGluZyA9IGJvcmRlckFuZFBh
ZGRpbmdIZWlnaHQoKTsKQEAgLTI0NDAsOSArMjUwOSwxMSBAQCB2b2lkIFJlbmRlckJveDo6Y29t
cHV0ZVBvc2l0aW9uZWRMb2dpY2FsSGVpZ2h0KCkKICAgICBpbnQgeTsKIAogICAgIC8vIENhbGN1
bGF0ZSBjb25zdHJhaW50IGVxdWF0aW9uIHZhbHVlcyBmb3IgJ2hlaWdodCcgY2FzZS4KLSAgICBj
b21wdXRlUG9zaXRpb25lZExvZ2ljYWxIZWlnaHRVc2luZyhzdHlsZSgpLT5oZWlnaHQoKSwgY29u
dGFpbmVyQmxvY2ssIGNvbnRhaW5lckhlaWdodCwgYm9yZGVyc1BsdXNQYWRkaW5nLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCwgYm90dG9tLCBtYXJnaW5Ub3AsIG1hcmdpbkJv
dHRvbSwKKyAgICBjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxIZWlnaHRVc2luZyhzdHlsZSgpLT5o
ZWlnaHQoKSwgY29udGFpbmVyQmxvY2ssIGNvbnRhaW5lckhlaWdodCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBib3JkZXJzUGx1c1BhZGRpbmcsIHRvcCwgYm90dG9tLCBtYXJnaW5U
b3AsIG1hcmdpbkJvdHRvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLCBtX21h
cmdpblRvcCwgbV9tYXJnaW5Cb3R0b20sIHkpOworCisKICAgICBzZXRZKHkpOwogCiAgICAgLy8g
QXZvaWQgZG9pbmcgYW55IHdvcmsgaW4gdGhlIGNvbW1vbiBjYXNlICh3aGVyZSB0aGUgdmFsdWVz
IG9mIG1pbi1oZWlnaHQgYW5kIG1heC1oZWlnaHQgYXJlIHRoZWlyIGRlZmF1bHRzKS4KQEAgLTI0
NTUsOCArMjUyNiw4IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxI
ZWlnaHQoKQogICAgICAgICBpbnQgbWF4TWFyZ2luQm90dG9tOwogICAgICAgICBpbnQgbWF4WVBv
czsKIAotICAgICAgICBjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxIZWlnaHRVc2luZyhzdHlsZSgp
LT5tYXhIZWlnaHQoKSwgY29udGFpbmVyQmxvY2ssIGNvbnRhaW5lckhlaWdodCwgYm9yZGVyc1Bs
dXNQYWRkaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsIGJvdHRv
bSwgbWFyZ2luVG9wLCBtYXJnaW5Cb3R0b20sCisgICAgICAgIGNvbXB1dGVQb3NpdGlvbmVkTG9n
aWNhbEhlaWdodFVzaW5nKHN0eWxlKCktPm1heEhlaWdodCgpLCBjb250YWluZXJCbG9jaywgY29u
dGFpbmVySGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJz
UGx1c1BhZGRpbmcsIHRvcCwgYm90dG9tLCBtYXJnaW5Ub3AsIG1hcmdpbkJvdHRvbSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0LCBtYXhNYXJnaW5Ub3AsIG1h
eE1hcmdpbkJvdHRvbSwgbWF4WVBvcyk7CiAKICAgICAgICAgaWYgKGggPiBtYXhIZWlnaHQpIHsK
QEAgLTI0NzQsOCArMjU0NSw4IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExv
Z2ljYWxIZWlnaHQoKQogICAgICAgICBpbnQgbWluTWFyZ2luQm90dG9tOwogICAgICAgICBpbnQg
bWluWVBvczsKIAotICAgICAgICBjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxIZWlnaHRVc2luZyhz
dHlsZSgpLT5taW5IZWlnaHQoKSwgY29udGFpbmVyQmxvY2ssIGNvbnRhaW5lckhlaWdodCwgYm9y
ZGVyc1BsdXNQYWRkaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3As
IGJvdHRvbSwgbWFyZ2luVG9wLCBtYXJnaW5Cb3R0b20sCisgICAgICAgIGNvbXB1dGVQb3NpdGlv
bmVkTG9naWNhbEhlaWdodFVzaW5nKHN0eWxlKCktPm1pbkhlaWdodCgpLCBjb250YWluZXJCbG9j
aywgY29udGFpbmVySGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b3JkZXJzUGx1c1BhZGRpbmcsIHRvcCwgYm90dG9tLCBtYXJnaW5Ub3AsIG1hcmdpbkJvdHRvbSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluSGVpZ2h0LCBtaW5NYXJnaW5U
b3AsIG1pbk1hcmdpbkJvdHRvbSwgbWluWVBvcyk7CiAKICAgICAgICAgaWYgKGggPCBtaW5IZWln
aHQpIHsKQEAgLTI0OTAsNiArMjU2MSwzMiBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVBvc2l0
aW9uZWRMb2dpY2FsSGVpZ2h0KCkKICAgICBzZXRIZWlnaHQoaCArIGJvcmRlcnNQbHVzUGFkZGlu
Zyk7CiB9CiAKKworYm9vbCBSZW5kZXJCb3g6OnVzZUFzcGVjdFJhdGlvRm9ySGVpZ2h0KGNvbnN0
IExlbmd0aCYgaGVpZ2h0LCBjb25zdCBMZW5ndGgmIHRvcCwgY29uc3QgTGVuZ3RoJiBib3R0b20s
IGJvb2wmIHdpZHRoRGV0ZXJtaW5lZCkgeworICAgIGJvb2wgdXNlTWluTWF4ID0gIXN0eWxlKCkt
Pm1heEhlaWdodCgpLmlzVW5kZWZpbmVkKCkgfHwgIXN0eWxlKCktPm1pbkhlaWdodCgpLmlzWmVy
bygpOworICAgIGJvb2wgd2lkdGhJc0F1dG8gPSBzdHlsZSgpLT5sb2dpY2FsV2lkdGgoKS5pc0lu
dHJpbnNpY09yQXV0bygpOworICAgIGJvb2wgaGFzQXNwZWN0UmF0aW8gPSBzdHlsZSgpLT5oYXNB
c3BlY3RSYXRpbygpOworICAgIGJvb2wgaGVpZ2h0SXNBdXRvID0gaGVpZ2h0LmlzQXV0bygpOwor
ICAgIGJvb2wgdG9wSXNBdXRvID0gdG9wLmlzQXV0bygpOworICAgIGJvb2wgYm90dG9tSXNBdXRv
ID0gYm90dG9tLmlzQXV0bygpOworICAgIGJvb2wgbGVmdElzQXV0byA9IHN0eWxlKCktPmxlZnQo
KS5pc0F1dG8oKTsKKyAgICBib29sIHJpZ2h0SXNBdXRvID0gc3R5bGUoKS0+cmlnaHQoKS5pc0F1
dG8oKTsKKyAgICBib29sIGhlaWdodERldGVybWluZWQgPSAhaGVpZ2h0SXNBdXRvIHx8ICghdG9w
SXNBdXRvICYmICFib3R0b21Jc0F1dG8gJiYgaXNQb3NpdGlvbmVkKCkpOworICAgIHdpZHRoRGV0
ZXJtaW5lZCA9ICF3aWR0aElzQXV0byB8fCAoIWxlZnRJc0F1dG8gJiYgIXJpZ2h0SXNBdXRvICYm
IGlzUG9zaXRpb25lZCgpKTsKKyAgICByZXR1cm4gIXVzZU1pbk1heCAmJiAhaGVpZ2h0RGV0ZXJt
aW5lZCAvKiYmIHdpZHRoRGV0ZXJtaW5lZCovICYmIGhhc0FzcGVjdFJhdGlvOworfQorCitpbnQg
UmVuZGVyQm94Ojpjb21wdXRlQXZhaWxhYmxlSGVpZ2h0KExlbmd0aCB0b3AsIExlbmd0aCBib3R0
b20pIHsKKyAgICBMZW5ndGggaGVpZ2h0ID0gc3R5bGUoKS0+bG9naWNhbEhlaWdodCgpOworICAg
IFJlbmRlckJsb2NrKiBjYiA9IGNvbnRhaW5pbmdCbG9jaygpOworICAgIGNvbnN0IGludCBjb250
YWluZXJIZWlnaHQgPSBjb250YWluaW5nQmxvY2tIZWlnaHRGb3JQb3NpdGlvbmVkKGNiKTsKKwor
ICAgIGludCBoZWlnaHRWYWx1ZSA9IGNvbXB1dGVDb250ZW50Qm94TG9naWNhbEhlaWdodChoZWln
aHQuY2FsY1ZhbHVlKGNvbnRhaW5lckhlaWdodCkpOworICAgIGludCB0b3BWYWx1ZSA9IHRvcC5p
c0F1dG8oKSA/ICAwIDogdG9wLmNhbGNWYWx1ZShjb250YWluZXJIZWlnaHQpOworCisgICAgcmV0
dXJuIGNvbnRhaW5lckhlaWdodCAtIHRvcFZhbHVlIC0gYm9yZGVyQW5kUGFkZGluZ0hlaWdodCgp
OworfQorCiB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsSGVpZ2h0VXNp
bmcoTGVuZ3RoIGgsIGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0KiBjb250YWluZXJCbG9jaywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgY29u
dGFpbmVySGVpZ2h0LCBjb25zdCBpbnQgYm9yZGVyc1BsdXNQYWRkaW5nLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExlbmd0aCB0b3AsIGNvbnN0IExl
bmd0aCBib3R0b20sIGNvbnN0IExlbmd0aCBtYXJnaW5Ub3AsIGNvbnN0IExlbmd0aCBtYXJnaW5C
b3R0b20sCkBAIC0yNTAzLDkgKzI2MDAsMTEgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQb3Np
dGlvbmVkTG9naWNhbEhlaWdodFVzaW5nKExlbmd0aCBoLCBjb25zdCBSZW5kZXJCb3hNb2QKIAog
ICAgIGludCB0b3BWYWx1ZSA9IDA7CiAKLSAgICBib29sIGhlaWdodElzQXV0byA9IGguaXNBdXRv
KCk7CiAgICAgYm9vbCB0b3BJc0F1dG8gPSB0b3AuaXNBdXRvKCk7CiAgICAgYm9vbCBib3R0b21J
c0F1dG8gPSBib3R0b20uaXNBdXRvKCk7CisgICAgYm9vbCBoZWlnaHRJc0F1dG8gPSBoLmlzQXV0
bygpOworICAgIGJvb2wgd2lkdGhEZXRlcm1pbmVkOworICAgIGJvb2wgdXNlQXNwZWN0UmF0aW8g
PSB1c2VBc3BlY3RSYXRpb0ZvckhlaWdodChoLCB0b3AsIGJvdHRvbSwgd2lkdGhEZXRlcm1pbmVk
KTsKIAogICAgIC8vIEhlaWdodCBpcyBuZXZlciB1bnNvbHZlZCBmb3IgdGFibGVzLgogICAgIGlm
IChpc1RhYmxlKCkpIHsKQEAgLTI1MTMsNDMgKzI2MTIsNyBAQCB2b2lkIFJlbmRlckJveDo6Y29t
cHV0ZVBvc2l0aW9uZWRMb2dpY2FsSGVpZ2h0VXNpbmcoTGVuZ3RoIGgsIGNvbnN0IFJlbmRlckJv
eE1vZAogICAgICAgICBoZWlnaHRJc0F1dG8gPSBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoIXRv
cElzQXV0byAmJiAhaGVpZ2h0SXNBdXRvICYmICFib3R0b21Jc0F1dG8pIHsKLSAgICAgICAgLyot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSpcCi0gICAgICAgICAqIElmIG5vbmUgb2YgdGhlIHRocmVlIGFyZSAnYXV0
byc6IElmIGJvdGggJ21hcmdpbi10b3AnIGFuZCAnbWFyZ2luLQotICAgICAgICAgKiBib3R0b20n
IGFyZSAnYXV0bycsIHNvbHZlIHRoZSBlcXVhdGlvbiB1bmRlciB0aGUgZXh0cmEgY29uc3RyYWlu
dCB0aGF0Ci0gICAgICAgICAqIHRoZSB0d28gbWFyZ2lucyBnZXQgZXF1YWwgdmFsdWVzLiBJZiBv
bmUgb2YgJ21hcmdpbi10b3AnIG9yICdtYXJnaW4tCi0gICAgICAgICAqIGJvdHRvbScgaXMgJ2F1
dG8nLCBzb2x2ZSB0aGUgZXF1YXRpb24gZm9yIHRoYXQgdmFsdWUuIElmIHRoZSB2YWx1ZXMKLSAg
ICAgICAgICogYXJlIG92ZXItY29uc3RyYWluZWQsIGlnbm9yZSB0aGUgdmFsdWUgZm9yICdib3R0
b20nIGFuZCBzb2x2ZSBmb3IgdGhhdAotICAgICAgICAgKiB2YWx1ZS4KLSAgICAgICAgXCotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSovCi0gICAgICAgIC8vIE5PVEU6ICBJdCBpcyBub3QgbmVjZXNzYXJ5IHRvIHNv
bHZlIGZvciAnYm90dG9tJyBpbiB0aGUgb3ZlciBjb25zdHJhaW5lZAotICAgICAgICAvLyBjYXNl
IGJlY2F1c2UgdGhlIHZhbHVlIGlzIG5vdCB1c2VkIGZvciBhbnkgZnVydGhlciBjYWxjdWxhdGlv
bnMuCi0KLSAgICAgICAgaGVpZ2h0VmFsdWUgPSBjb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWln
aHQoaC5jYWxjVmFsdWUoY29udGFpbmVySGVpZ2h0KSk7Ci0gICAgICAgIHRvcFZhbHVlID0gdG9w
LmNhbGNWYWx1ZShjb250YWluZXJIZWlnaHQpOwotCi0gICAgICAgIGNvbnN0IGludCBhdmFpbGFi
bGVTcGFjZSA9IGNvbnRhaW5lckhlaWdodCAtICh0b3BWYWx1ZSArIGhlaWdodFZhbHVlICsgYm90
dG9tLmNhbGNWYWx1ZShjb250YWluZXJIZWlnaHQpICsgYm9yZGVyc1BsdXNQYWRkaW5nKTsKLQot
ICAgICAgICAvLyBNYXJnaW5zIGFyZSBub3cgdGhlIG9ubHkgdW5rbm93bgotICAgICAgICBpZiAo
bWFyZ2luVG9wLmlzQXV0bygpICYmIG1hcmdpbkJvdHRvbS5pc0F1dG8oKSkgewotICAgICAgICAg
ICAgLy8gQm90aCBtYXJnaW5zIGF1dG8sIHNvbHZlIGZvciBlcXVhbGl0eQotICAgICAgICAgICAg
Ly8gTk9URTogVGhpcyBtYXkgcmVzdWx0IGluIG5lZ2F0aXZlIHZhbHVlcy4KLSAgICAgICAgICAg
IG1hcmdpblRvcFZhbHVlID0gYXZhaWxhYmxlU3BhY2UgLyAyOyAvLyBzcGxpdCB0aGUgZGlmZmVy
ZW5jZQotICAgICAgICAgICAgbWFyZ2luQm90dG9tVmFsdWUgPSBhdmFpbGFibGVTcGFjZSAtIG1h
cmdpblRvcFZhbHVlOyAvLyBhY2NvdW50IGZvciBvZGQgdmFsdWVkIGRpZmZlcmVuY2VzCi0gICAg
ICAgIH0gZWxzZSBpZiAobWFyZ2luVG9wLmlzQXV0bygpKSB7Ci0gICAgICAgICAgICAvLyBTb2x2
ZSBmb3IgdG9wIG1hcmdpbgotICAgICAgICAgICAgbWFyZ2luQm90dG9tVmFsdWUgPSBtYXJnaW5C
b3R0b20uY2FsY1ZhbHVlKGNvbnRhaW5lckhlaWdodCk7Ci0gICAgICAgICAgICBtYXJnaW5Ub3BW
YWx1ZSA9IGF2YWlsYWJsZVNwYWNlIC0gbWFyZ2luQm90dG9tVmFsdWU7Ci0gICAgICAgIH0gZWxz
ZSBpZiAobWFyZ2luQm90dG9tLmlzQXV0bygpKSB7Ci0gICAgICAgICAgICAvLyBTb2x2ZSBmb3Ig
Ym90dG9tIG1hcmdpbgotICAgICAgICAgICAgbWFyZ2luVG9wVmFsdWUgPSBtYXJnaW5Ub3AuY2Fs
Y1ZhbHVlKGNvbnRhaW5lckhlaWdodCk7Ci0gICAgICAgICAgICBtYXJnaW5Cb3R0b21WYWx1ZSA9
IGF2YWlsYWJsZVNwYWNlIC0gbWFyZ2luVG9wVmFsdWU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAvLyBPdmVyLWNvbnN0cmFpbmVkLCAobm8gbmVlZCBzb2x2ZSBmb3IgYm90dG9tKQot
ICAgICAgICAgICAgbWFyZ2luVG9wVmFsdWUgPSBtYXJnaW5Ub3AuY2FsY1ZhbHVlKGNvbnRhaW5l
ckhlaWdodCk7Ci0gICAgICAgICAgICBtYXJnaW5Cb3R0b21WYWx1ZSA9IG1hcmdpbkJvdHRvbS5j
YWxjVmFsdWUoY29udGFpbmVySGVpZ2h0KTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7CisgICAg
aWYgKHRvcElzQXV0byB8fCBoZWlnaHRJc0F1dG8gfHwgYm90dG9tSXNBdXRvKSB7CiAgICAgICAg
IC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0qXAogICAgICAgICAgKiBPdGhlcndpc2UsIHNldCAnYXV0bycgdmFsdWVz
IGZvciAnbWFyZ2luLXRvcCcgYW5kICdtYXJnaW4tYm90dG9tJwogICAgICAgICAgKiB0byAwLCBh
bmQgcGljayB0aGUgb25lIG9mIHRoZSBmb2xsb3dpbmcgc2l4IHJ1bGVzIHRoYXQgYXBwbGllcy4K
QEAgLTI1NzYsMjAgKzI2MzksMzQgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVk
TG9naWNhbEhlaWdodFVzaW5nKExlbmd0aCBoLCBjb25zdCBSZW5kZXJCb3hNb2QKICAgICAgICAg
Ly8gYmVjYXVzZSB0aGUgdmFsdWUgaXMgbm90IHVzZWQgZm9yIGFueSBmdXJ0aGVyIGNhbGN1bGF0
aW9ucy4KIAogICAgICAgICAvLyBDYWxjdWxhdGUgbWFyZ2lucywgJ2F1dG8nIG1hcmdpbnMgYXJl
IGlnbm9yZWQuCi0gICAgICAgIG1hcmdpblRvcFZhbHVlID0gbWFyZ2luVG9wLmNhbGNNaW5WYWx1
ZShjb250YWluZXJIZWlnaHQpOwotICAgICAgICBtYXJnaW5Cb3R0b21WYWx1ZSA9IG1hcmdpbkJv
dHRvbS5jYWxjTWluVmFsdWUoY29udGFpbmVySGVpZ2h0KTsKKyAgICAgICAgYm9vbCBjb21wdXRl
TWFyZ2luc0xhdGVyID0gdXNlQXNwZWN0UmF0aW8gJiYgbWFyZ2luVG9wLmlzQXV0bygpICYmIG1h
cmdpbkJvdHRvbS5pc0F1dG8oKTsKKyAgICAgICAgbWFyZ2luVG9wVmFsdWUgPSBjb21wdXRlTWFy
Z2luc0xhdGVyID8gMCA6IG1hcmdpblRvcC5jYWxjTWluVmFsdWUoY29udGFpbmVySGVpZ2h0KTsK
KyAgICAgICAgbWFyZ2luQm90dG9tVmFsdWUgPSBjb21wdXRlTWFyZ2luc0xhdGVyID8gMCA6IG1h
cmdpbkJvdHRvbS5jYWxjTWluVmFsdWUoY29udGFpbmVySGVpZ2h0KTsKIAogICAgICAgICBjb25z
dCBpbnQgYXZhaWxhYmxlU3BhY2UgPSBjb250YWluZXJIZWlnaHQgLSAobWFyZ2luVG9wVmFsdWUg
KyBtYXJnaW5Cb3R0b21WYWx1ZSArIGJvcmRlcnNQbHVzUGFkZGluZyk7CiAKICAgICAgICAgLy8g
VXNlIHJ1bGUvY2FzZSB0aGF0IGFwcGxpZXMuCiAgICAgICAgIGlmICh0b3BJc0F1dG8gJiYgaGVp
Z2h0SXNBdXRvICYmICFib3R0b21Jc0F1dG8pIHsKICAgICAgICAgICAgIC8vIFJVTEUgMTogKGhl
aWdodCBpcyBjb250ZW50IGJhc2VkLCBzb2x2ZSBvZiB0b3ApCi0gICAgICAgICAgICBoZWlnaHRW
YWx1ZSA9IGNvbnRlbnRIZWlnaHQ7CisgICAgICAgICAgICBpZiAodXNlQXNwZWN0UmF0aW8pIHsK
KyAgICAgICAgICAgICAgICBpbnQgaCA9ICB3aWR0aCgpIC8gc3R5bGUoKS0+YXNwZWN0UmF0aW8o
KTsKKyAgICAgICAgICAgICAgICBoZWlnaHRWYWx1ZSA9IHdpZHRoRGV0ZXJtaW5lZCA/IGggOiBt
aW4oaCwgYXZhaWxhYmxlU3BhY2UpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgaGVpZ2h0VmFsdWUgPSBjb250ZW50SGVpZ2h0OwogICAgICAgICAgICAgdG9wVmFsdWUgPSBh
dmFpbGFibGVTcGFjZSAtIChoZWlnaHRWYWx1ZSArIGJvdHRvbS5jYWxjVmFsdWUoY29udGFpbmVy
SGVpZ2h0KSk7CiAgICAgICAgIH0gZWxzZSBpZiAoIXRvcElzQXV0byAmJiBoZWlnaHRJc0F1dG8g
JiYgYm90dG9tSXNBdXRvKSB7CiAgICAgICAgICAgICAvLyBSVUxFIDM6IChoZWlnaHQgaXMgY29u
dGVudCBiYXNlZCwgbm8gbmVlZCBzb2x2ZSBvZiBib3R0b20pCiAgICAgICAgICAgICB0b3BWYWx1
ZSA9IHRvcC5jYWxjVmFsdWUoY29udGFpbmVySGVpZ2h0KTsKLSAgICAgICAgICAgIGhlaWdodFZh
bHVlID0gY29udGVudEhlaWdodDsKKyAgICAgICAgICAgIGlmICh1c2VBc3BlY3RSYXRpbykgewor
ICAgICAgICAgICAgICAgIGludCBoID0gIHdpZHRoKCkgLyBzdHlsZSgpLT5hc3BlY3RSYXRpbygp
OworICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgdGhhdCBoZWlnaHQgaXMgbm90IHlldCBkZXRl
cm1pbmVkLgorICAgICAgICAgICAgICAgIC8vIElmIHdpZHRoIGlzIGFsc28gbm90IGRldGVybWlu
ZWQsIHRoZW4gd2UgYXJlIGdyb3dpbmcgdG8gZml0CisgICAgICAgICAgICAgICAgLy8gb3VyIHBh
cmVudC4gV2lkdGggaGFzIGFscmVhZHkgZ3Jvd24gYXMgbXVjaCBhcyBwb3NzaWJsZS4KKyAgICAg
ICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGZpbmQgYW4gYXBwcm9wcmlhdGUgaGVpZ2h0IHdpdGhv
dXQgc3RpY2tpbmcgb3V0c2lkZQorICAgICAgICAgICAgICAgIC8vIHRoZSBwYXJlbnQuCisgICAg
ICAgICAgICAgICAgaGVpZ2h0VmFsdWUgPSB3aWR0aERldGVybWluZWQgPyBoIDogbWluKGgsIGF2
YWlsYWJsZVNwYWNlKTsKKyAgICAgICAgICAgIH0gZWxzZSAKKyAgICAgICAgICAgICAgICBoZWln
aHRWYWx1ZSA9IGNvbnRlbnRIZWlnaHQ7CiAgICAgICAgIH0gZWxzZSBpZiAodG9wSXNBdXRvICYm
ICFoZWlnaHRJc0F1dG8gJiYgIWJvdHRvbUlzQXV0bykgewogICAgICAgICAgICAgLy8gUlVMRSA0
OiAoc29sdmUgb2YgdG9wKQogICAgICAgICAgICAgaGVpZ2h0VmFsdWUgPSBjb21wdXRlQ29udGVu
dEJveExvZ2ljYWxIZWlnaHQoaC5jYWxjVmFsdWUoY29udGFpbmVySGVpZ2h0KSk7CkBAIC0yNjAz
LDYgKzI2ODAsNDQgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbEhl
aWdodFVzaW5nKExlbmd0aCBoLCBjb25zdCBSZW5kZXJCb3hNb2QKICAgICAgICAgICAgIGhlaWdo
dFZhbHVlID0gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0KGguY2FsY1ZhbHVlKGNvbnRh
aW5lckhlaWdodCkpOwogICAgICAgICAgICAgdG9wVmFsdWUgPSB0b3AuY2FsY1ZhbHVlKGNvbnRh
aW5lckhlaWdodCk7CiAgICAgICAgIH0KKworICAgIH0gZWxzZSB7CisgICAgICAgIGhlaWdodFZh
bHVlID0gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0KGguY2FsY1ZhbHVlKGNvbnRhaW5l
ckhlaWdodCkpOworICAgICAgICB0b3BWYWx1ZSA9IHRvcC5jYWxjVmFsdWUoY29udGFpbmVySGVp
Z2h0KTsKKyAgICB9CisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgICAgICAqIElmIG5vbmUgb2Yg
dGhlIHRocmVlIGFyZSAnYXV0byc6IElmIGJvdGggJ21hcmdpbi10b3AnIGFuZCAnbWFyZ2luLQor
ICAgICAgKiBib3R0b20nIGFyZSAnYXV0bycsIHNvbHZlIHRoZSBlcXVhdGlvbiB1bmRlciB0aGUg
ZXh0cmEgY29uc3RyYWludCB0aGF0CisgICAgICAqIHRoZSB0d28gbWFyZ2lucyBnZXQgZXF1YWwg
dmFsdWVzLiBJZiBvbmUgb2YgJ21hcmdpbi10b3AnIG9yICdtYXJnaW4tCisgICAgICAqIGJvdHRv
bScgaXMgJ2F1dG8nLCBzb2x2ZSB0aGUgZXF1YXRpb24gZm9yIHRoYXQgdmFsdWUuIElmIHRoZSB2
YWx1ZXMKKyAgICAgICogYXJlIG92ZXItY29uc3RyYWluZWQsIGlnbm9yZSB0aGUgdmFsdWUgZm9y
ICdib3R0b20nIGFuZCBzb2x2ZSBmb3IgdGhhdAorICAgICAgKiB2YWx1ZS4KKyAgICBcKi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKi8KKyAgICAvLyBOT1RFOiAgSXQgaXMgbm90IG5lY2Vzc2FyeSB0byBzb2x2ZSBm
b3IgJ2JvdHRvbScgaW4gdGhlIG92ZXIgY29uc3RyYWluZWQKKyAgICAvLyBjYXNlIGJlY2F1c2Ug
dGhlIHZhbHVlIGlzIG5vdCB1c2VkIGZvciBhbnkgZnVydGhlciBjYWxjdWxhdGlvbnMuCisKKwor
ICAgIGNvbnN0IGludCBhdmFpbGFibGVTcGFjZSA9IGNvbnRhaW5lckhlaWdodCAtICh0b3BWYWx1
ZSArIGhlaWdodFZhbHVlIC8qKyBib3R0b20uY2FsY1ZhbHVlKGNvbnRhaW5lckhlaWdodCkqLyAr
IGJvcmRlcnNQbHVzUGFkZGluZyk7CisKKworICAgIC8vIE1hcmdpbnMgYXJlIG5vdyB0aGUgb25s
eSB1bmtub3duCisgICAgaWYgKG1hcmdpblRvcC5pc0F1dG8oKSAmJiBtYXJnaW5Cb3R0b20uaXNB
dXRvKCkpIHsKKyAgICAgICAgLy8gQm90aCBtYXJnaW5zIGF1dG8sIHNvbHZlIGZvciBlcXVhbGl0
eQorICAgICAgICAvLyBOT1RFOiBUaGlzIG1heSByZXN1bHQgaW4gbmVnYXRpdmUgdmFsdWVzLgor
ICAgICAgICBtYXJnaW5Ub3BWYWx1ZSA9IGF2YWlsYWJsZVNwYWNlIC8gMjsgLy8gc3BsaXQgdGhl
IGRpZmZlcmVuY2UKKyAgICAgICAgbWFyZ2luQm90dG9tVmFsdWUgPSBhdmFpbGFibGVTcGFjZSAt
IG1hcmdpblRvcFZhbHVlOyAvLyBhY2NvdW50IGZvciBvZGQgdmFsdWVkIGRpZmZlcmVuY2VzCisg
ICAgfSBlbHNlIGlmIChtYXJnaW5Ub3AuaXNBdXRvKCkpIHsKKyAgICAgICAgLy8gU29sdmUgZm9y
IHRvcCBtYXJnaW4KKyAgICAgICAgbWFyZ2luQm90dG9tVmFsdWUgPSBtYXJnaW5Cb3R0b20uY2Fs
Y1ZhbHVlKGNvbnRhaW5lckhlaWdodCk7CisgICAgICAgIG1hcmdpblRvcFZhbHVlID0gYXZhaWxh
YmxlU3BhY2UgLSBtYXJnaW5Cb3R0b21WYWx1ZTsKKyAgICB9IGVsc2UgaWYgKG1hcmdpbkJvdHRv
bS5pc0F1dG8oKSkgeworICAgICAgICAvLyBTb2x2ZSBmb3IgYm90dG9tIG1hcmdpbgorICAgICAg
ICBtYXJnaW5Ub3BWYWx1ZSA9IG1hcmdpblRvcC5jYWxjVmFsdWUoY29udGFpbmVySGVpZ2h0KTsK
KyAgICAgICAgbWFyZ2luQm90dG9tVmFsdWUgPSBhdmFpbGFibGVTcGFjZSAtIG1hcmdpblRvcFZh
bHVlOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIE92ZXItY29uc3RyYWluZWQsIChubyBuZWVk
IHNvbHZlIGZvciBib3R0b20pCisgICAgICAgIG1hcmdpblRvcFZhbHVlID0gbWFyZ2luVG9wLmNh
bGNWYWx1ZShjb250YWluZXJIZWlnaHQpOworICAgICAgICBtYXJnaW5Cb3R0b21WYWx1ZSA9IG1h
cmdpbkJvdHRvbS5jYWxjVmFsdWUoY29udGFpbmVySGVpZ2h0KTsKICAgICB9CiAKICAgICAvLyBV
c2UgY29tcHV0ZWQgdmFsdWVzIHRvIGNhbGN1bGF0ZSB0aGUgdmVydGljYWwgcG9zaXRpb24uCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oCmluZGV4IDM2ZmJlZGUuLjAwN2EzMmMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCkBAIC0yODQsNiArMjg0LDggQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlTG9naWNhbFdpZHRoKCk7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dpY2FsSGVp
Z2h0KCk7CisgICAgYm9vbCB1c2VBc3BlY3RSYXRpb0ZvcldpZHRoKGNvbnN0IExlbmd0aCYgd2lk
dGgsIGNvbnN0IExlbmd0aCYgbGVmdCwgY29uc3QgTGVuZ3RoJiByaWdodCwgYm9vbCYgaGVpZ2h0
RGV0ZXJtaW5lZCk7CisgICAgYm9vbCB1c2VBc3BlY3RSYXRpb0ZvckhlaWdodChjb25zdCBMZW5n
dGgmIGhlaWdodCwgY29uc3QgTGVuZ3RoJiB0b3AsIGNvbnN0IExlbmd0aCYgYm90dG9tLCBib29s
JiB3aWR0aERldGVybWluZWQpOwogCiAgICAgYm9vbCBzdHJldGNoZXNUb1ZpZXdwb3J0KCkgY29u
c3QKICAgICB7CkBAIC00MTEsNiArNDEzLDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9p
ZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMs
IFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKIHByaXZhdGU6CisKKyAgICBib29sIHVzZUFzcGVj
dFJhdGlvQXV0bygpOwogICAgIGJvb2wgaW5jbHVkZVZlcnRpY2FsU2Nyb2xsYmFyU2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIGhhc092ZXJmbG93Q2xpcCgpICYmIChzdHlsZSgpLT5vdmVyZmxvd1koKSA9
PSBPU0NST0xMIHx8IHN0eWxlKCktPm92ZXJmbG93WSgpID09IE9BVVRPKTsgfQogICAgIGJvb2wg
aW5jbHVkZUhvcml6b250YWxTY3JvbGxiYXJTaXplKCkgY29uc3QgeyByZXR1cm4gaGFzT3ZlcmZs
b3dDbGlwKCkgJiYgKHN0eWxlKCktPm92ZXJmbG93WCgpID09IE9TQ1JPTEwgfHwgc3R5bGUoKS0+
b3ZlcmZsb3dYKCkgPT0gT0FVVE8pOyB9CiAKQEAgLTQyNiw2ICs0MzAsOSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29udGFpbmVyV2lkdGgs
IGludCBib3JkZXJzUGx1c1BhZGRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExlbmd0aCBsZWZ0LCBMZW5ndGggcmlnaHQsIExlbmd0aCBtYXJnaW5MZWZ0LCBMZW5n
dGggbWFyZ2luUmlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCYgd2lkdGhWYWx1ZSwgaW50JiBtYXJnaW5MZWZ0VmFsdWUsIGludCYgbWFyZ2luUmlnaHRWYWx1
ZSwgaW50JiB4UG9zKTsKKworICAgIGludCBjb21wdXRlQXZhaWxhYmxlSGVpZ2h0KExlbmd0aCB0
b3AsIExlbmd0aCBib3R0b20pOworCiAgICAgdm9pZCBjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxI
ZWlnaHRVc2luZyhMZW5ndGggaGVpZ2h0LCBjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCogY2Is
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29udGFpbmVySGVpZ2h0
LCBpbnQgYm9yZGVyc1BsdXNQYWRkaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTGVuZ3RoIHRvcCwgTGVuZ3RoIGJvdHRvbSwgTGVuZ3RoIG1hcmdpblRvcCwgTGVuZ3Ro
IG1hcmdpbkJvdHRvbSwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmggYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDEz
MmVmMWYuLjFlZGFkYjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAt
OTk1LDYgKzk5NSwxMiBAQCBwdWJsaWM6CiAgICAgaW50IHpJbmRleCgpIGNvbnN0IHsgcmV0dXJu
IG1fYm94LT56SW5kZXgoKTsgfQogICAgIHZvaWQgc2V0WkluZGV4KGludCB2KSB7IFNFVF9WQVIo
bV9ib3gsIG1faGFzQXV0b1pJbmRleCwgZmFsc2UpOyBTRVRfVkFSKG1fYm94LCBtX3pJbmRleCwg
dikgfQogCisgICAgYm9vbCBoYXNBc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJuIG1fYm94LT5o
YXNBc3BlY3RSYXRpbygpOyB9CisgICAgdm9pZCBzZXRIYXNBc3BlY3RSYXRpbyhib29sIHYpIHsg
U0VUX1ZBUihtX2JveCwgbV9oYXNBc3BlY3RSYXRpbywgdik7IFNFVF9WQVIobV9ib3gsIG1fYXNw
ZWN0UmF0aW8sIDEuMGYpIH0KKyAgICBmbG9hdCBhc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJu
IG1fYm94LT5hc3BlY3RSYXRpbygpOyB9IAorICAgIHZvaWQgc2V0QXNwZWN0UmF0aW8oZmxvYXQg
dikgeyBTRVRfVkFSKG1fYm94LCBtX2hhc0FzcGVjdFJhdGlvLCB0cnVlKTsgU0VUX1ZBUihtX2Jv
eCwgbV9hc3BlY3RSYXRpbywgdikgfQorICAgIAorCiAgICAgdm9pZCBzZXRXaWRvd3Moc2hvcnQg
dykgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCB3aWRvd3MsIHcpOyB9CiAgICAgdm9pZCBz
ZXRPcnBoYW5zKHNob3J0IG8pIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgb3JwaGFucywg
byk7IH0KICAgICB2b2lkIHNldFBhZ2VCcmVha0luc2lkZShFUGFnZUJyZWFrIGIpIHsgbm9uaW5o
ZXJpdGVkX2ZsYWdzLl9wYWdlX2JyZWFrX2luc2lkZSA9IGI7IH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQm94RGF0YS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZUJveERhdGEuY3BwCmluZGV4IDJjNTIzZGEuLjIxNzVjYzAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQm94RGF0YS5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hEYXRhLmNwcApAQCAtMzQsNiArMzQsOCBAQCBTdHlsZUJv
eERhdGE6OlN0eWxlQm94RGF0YSgpCiAgICAgLCBtX21heEhlaWdodChSZW5kZXJTdHlsZTo6aW5p
dGlhbE1heFNpemUoKSkKICAgICAsIG1fekluZGV4KDApCiAgICAgLCBtX2hhc0F1dG9aSW5kZXgo
dHJ1ZSkKKyAgICAsIG1fYXNwZWN0UmF0aW8oMS4wZikKKyAgICAsIG1faGFzQXNwZWN0UmF0aW8o
ZmFsc2UpCiAgICAgLCBtX2JveFNpemluZyhDT05URU5UX0JPWCkKIHsKIH0KQEAgLTQ4LDYgKzUw
LDggQEAgU3R5bGVCb3hEYXRhOjpTdHlsZUJveERhdGEoY29uc3QgU3R5bGVCb3hEYXRhJiBvKQog
ICAgICwgbV9tYXhIZWlnaHQoby5tX21heEhlaWdodCkKICAgICAsIG1fekluZGV4KG8ubV96SW5k
ZXgpCiAgICAgLCBtX2hhc0F1dG9aSW5kZXgoby5tX2hhc0F1dG9aSW5kZXgpCisgICAgLCBtX2Fz
cGVjdFJhdGlvKG8ubV9hc3BlY3RSYXRpbykKKyAgICAsIG1faGFzQXNwZWN0UmF0aW8oby5tX2hh
c0FzcGVjdFJhdGlvKQogICAgICwgbV9ib3hTaXppbmcoby5tX2JveFNpemluZykKIHsKIH0KQEAg
LTYyLDYgKzY2LDggQEAgYm9vbCBTdHlsZUJveERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVC
b3hEYXRhJiBvKSBjb25zdAogICAgICAgICAgICAmJiBtX21heEhlaWdodCA9PSBvLm1fbWF4SGVp
Z2h0CiAgICAgICAgICAgICYmIG1fekluZGV4ID09IG8ubV96SW5kZXgKICAgICAgICAgICAgJiYg
bV9oYXNBdXRvWkluZGV4ID09IG8ubV9oYXNBdXRvWkluZGV4CisgICAgICAgICAgICYmIG1fYXNw
ZWN0UmF0aW8gPT0gby5tX2FzcGVjdFJhdGlvCisgICAgICAgICAgICYmIG1faGFzQXNwZWN0UmF0
aW8gPT0gby5tX2hhc0FzcGVjdFJhdGlvCiAgICAgICAgICAgICYmIG1fYm94U2l6aW5nID09IG8u
bV9ib3hTaXppbmc7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlQm94RGF0YS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hEYXRhLmgKaW5k
ZXggMDBiY2U0ZS4uZTA2ZWYzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVCb3hEYXRhLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hEYXRh
LmgKQEAgLTU2LDYgKzU2LDkgQEAgcHVibGljOgogICAgIAogICAgIGludCB6SW5kZXgoKSBjb25z
dCB7IHJldHVybiBtX3pJbmRleDsgfQogICAgIGJvb2wgaGFzQXV0b1pJbmRleCgpIGNvbnN0IHsg
cmV0dXJuIG1faGFzQXV0b1pJbmRleDsgfQorCisgICAgZmxvYXQgYXNwZWN0UmF0aW8oKSBjb25z
dCB7IHJldHVybiBtX2FzcGVjdFJhdGlvOyB9CisgICAgYm9vbCBoYXNBc3BlY3RSYXRpbygpIGNv
bnN0IHsgcmV0dXJuIG1faGFzQXNwZWN0UmF0aW87IH0KICAgICAKICAgICBFQm94U2l6aW5nIGJv
eFNpemluZygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVCb3hTaXppbmc+KG1fYm94U2l6
aW5nKTsgfQogCkBAIC03Niw3ICs3OSwxMSBAQCBwcml2YXRlOgogCiAgICAgTGVuZ3RoIG1fdmVy
dGljYWxBbGlnbjsKIAotICAgIGludCBtX3pJbmRleDsKKyAgICBmbG9hdCBtX2FzcGVjdFJhdGlv
OworCisgICAgaW50IG1fekluZGV4OyAgCisKKyAgICBib29sIG1faGFzQXNwZWN0UmF0aW8gOiAx
OwogICAgIGJvb2wgbV9oYXNBdXRvWkluZGV4IDogMTsKICAgICB1bnNpZ25lZCBtX2JveFNpemlu
ZyA6IDE7IC8vIEVCb3hTaXppbmcKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>