<?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>235099</bug_id>
          
          <creation_ts>2022-01-12 01:15:33 -0800</creation_ts>
          <short_desc>[LBSE] Rename RenderSVGContainer -&gt; LegacyRenderSVGContainer</short_desc>
          <delta_ts>2022-01-12 02:30:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>90738</blocked>
    
    <blocked>235100</blocked>
    
    <blocked>235101</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1830037</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-12 01:15:33 -0800</bug_when>
    <thetext>Prepare to introduce RenderSVGContainer for LBSE: move current RenderSVGContainer.(cpp|h) code to LegacyRenderSVGContainer.(cpp|h).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830038</commentid>
    <comment_count>1</comment_count>
      <attachid>448914</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-12 01:19:49 -0800</bug_when>
    <thetext>Created attachment 448914
Patch, v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830050</commentid>
    <comment_count>2</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-12 02:29:18 -0800</bug_when>
    <thetext>Committed r287916 (245949@trunk): &lt;https://commits.webkit.org/245949@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830051</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-12 02:30:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/87446108&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448914</attachid>
            <date>2022-01-12 01:19:49 -0800</date>
            <delta_ts>2022-01-12 02:24:53 -0800</delta_ts>
            <desc>Patch, v1</desc>
            <filename>bug-235099-20220112011947.patch</filename>
            <type>text/plain</type>
            <size>55992</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODZmZTRjYTE2MGIyZGJl
ZjAwZDI2M2FhZjA2ODc5MTVhNGZlYmI5OC4uZmJkZmM1NzRlYzc1MjVkZDE3YjI5MmQ1NTI4ZTU5
ODM5OThiYWE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIyLTAxLTEyICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtMQlNF
XSBSZW5hbWUgUmVuZGVyU1ZHQ29udGFpbmVyIC0+IExlZ2FjeVJlbmRlclNWR0NvbnRhaW5lcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MDk5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93aW5n
IHRoZSBlc3RhYmxpc2hlZCBwcm9jZWR1cmU6IHJlbmFtZSBSZW5kZXJTVkdDb250YWluZXIgLT4g
TGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLgorICAgICAgICBJbiBhIGZvbGxvdy11cCBwYXRjaCBS
ZW5kZXJTVkdDb250YWluZXIgd2lsbCBiZSByZWludHJvZHVjZWQgZm9yIExCU0UsIGluaGVyaXRp
bmcgZnJvbQorICAgICAgICBSZW5kZXJTVkdNb2RlbE9iamVjdCBpbnN0ZWFkIG9mIExlZ2FjeVJl
bmRlclNWR01vZGVsT2JqZWN0LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMs
IG5vIGNoYW5nZSBpbiBiZWhhdmlvdXIuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc0xl
Z2FjeVNWR0NvbnRhaW5lciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6
OmlzU1ZHQ29udGFpbmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVHJlZUFzVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3cml0ZSk6CisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdDb250YWluZXIuY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwLgorICAg
ICAgICAoV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyOjpMZWdhY3lSZW5kZXJTVkdD
b250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyOjps
YXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyOjpzZWxm
V2lsbFBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJlbmRlclNWR0NvbnRhaW5lcjo6
cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyOjphZGRG
b2N1c1JpbmdSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lSZW5kZXJTVkdDb250YWlu
ZXI6OnVwZGF0ZUNhY2hlZEJvdW5kYXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5UmVu
ZGVyU1ZHQ29udGFpbmVyOjpub2RlQXRGbG9hdFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL0xlZ2FjeVJlbmRlclNWR0NvbnRhaW5lci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6
OkxlZ2FjeVJlbmRlclNWR0NvbnRhaW5lcjo6ZGlkVHJhbnNmb3JtVG9Sb290VXBkYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJlbmRlclNWR0NvbnRhaW5lcjo6aXNPYmplY3RCb3VuZGlu
Z0JveFZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJlbmRlclNWR0NvbnRh
aW5lcjo6Y2FsY3VsYXRlTG9jYWxUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5
UmVuZGVyU1ZHQ29udGFpbmVyOjpjYWxjVmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6TGVn
YWN5UmVuZGVyU1ZHQ29udGFpbmVyOjphcHBseVZpZXdwb3J0Q2xpcCk6CisgICAgICAgIChXZWJD
b3JlOjpMZWdhY3lSZW5kZXJTVkdDb250YWluZXI6OnBvaW50SXNJbnNpZGVWaWV3cG9ydENsaXAp
OgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyOjpkZXRlcm1pbmVJ
ZkxheW91dFNpemVDaGFuZ2VkKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRl
clNWR1NoYXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250
YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyOjpS
ZW5kZXJTVkdIaWRkZW5Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSGlkZGVuQ29udGFpbmVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZU1hcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZU1h
cmtlcjo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlTWFya2Vy
OjptYXJrZXJCb3VuZGFyaWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jl
c291cmNlTWFya2VyOjpkcmF3KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1No
YXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29u
dGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXI6OlJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6Z3JhcGhpY3NFbGVtZW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyOjpSZW5kZXJTVkdW
aWV3cG9ydENvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdWaWV3cG9ydENv
bnRhaW5lcjo6c3ZnU1ZHRWxlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdWaWV3cG9ydENvbnRhaW5lcjo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1Jl
bmRlclN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6Y2hl
Y2tGb3JTVkdSZXBhaW50RHVyaW5nTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZU9i
amVjdEJvdW5kaW5nQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVB
c1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d3JpdGVTVkdDb250YWluZXIpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5oOgorICAgICAgICAqIHJlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUcmVlQnVpbGRlcjo6YXR0YWNoSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVHJlZUJ1aWxkZXI6OmRldGFjaCk6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVCdWlsZGVyU1ZHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWls
ZGVyOjpTVkc6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6
U1ZHOjpkZXRhY2gpOgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVp
bGRlclNWRy5oOgorICAgICAgICAqIHN2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHA6CisKIDIwMjIt
MDEtMTIgIEZyw6lkw6lyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgUHJv
dGVjdCBEb2N1bWVudExvYWRlciB3aGVuIGEgcmVmZXJlbmNlIHRvIGl0cyBtZW1iZXJzIGlzIHVz
ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IDA5YmFkMDg2NmU2MDcxODFkYWY4ZmM5MWU0ZGQ1N2I2MTli
ZmFkM2EuLjA4ZWNiZThiZDZiYWUxNzUwYWM0MzljODdjY2IwOGIwMGUyNDkyMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0yNDY2LDEyICsyNDY2LDEyIEBAIHJlbmRlcmluZy9zdHlsZS9TdHlsZVRyYW5z
Zm9ybURhdGEuY3BwCiByZW5kZXJpbmcvc3R5bGUvU3R5bGVWaXN1YWxEYXRhLmNwcAogcmVuZGVy
aW5nL3N0eWxlL1RleHRTaXplQWRqdXN0bWVudC5jcHAKIHJlbmRlcmluZy9zdHlsZS9XaWxsQ2hh
bmdlRGF0YS5jcHAKK3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLmNwcAog
cmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKIHJlbmRlcmluZy9z
dmcvTGVnYWN5UmVuZGVyU1ZHUmVjdC5jcHAKIHJlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZH
Um9vdC5jcHAKIHJlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHU2hhcGUuY3BwCiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAotcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWlu
ZXIuY3BwCiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0VsbGlwc2UuY3BwCiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRp
ZW50U3RvcC5jcHAKQEAgLTI0ODEsNiArMjQ4MSw3IEBAIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW5saW5lLmNwcAogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UGF0aC5jcHAKK3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVjdC5jcHAKIHJlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2UuY3BwCiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xp
cHBlci5jcHAKIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3BwCkBA
IC0yNDkzLDcgKzI0OTQsNiBAQCByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2Vy
LmNwcAogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwCiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQuY3BwCiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5jcHAKLXJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVjdC5jcHAKIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKIHJlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHU2hhcGUuY3BwCiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RTcGFuLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGQyOGIzODMxZDRmNjkxOTJjYTU2MjAyYzgwMDRlMTc4M2RjM2M1YzAuLjFiZGZjMDViMjlmM2Ux
NTFkMTBiYjY5MjhlMmI5YmJkYzU4YzI4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMzksNyArMTIzOSw3IEBACiAJCTQz
NThFODgxMTM2MEEzMTcwMEU0NzQ4QyAvKiBGRURyb3BTaGFkb3cuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNThFODdGMTM2MEEzMTcwMEU0NzQ4QyAv
KiBGRURyb3BTaGFkb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0MzU4RTg4NjEzNjBBMzNCMDBFNDc0OEMgLyogU1ZHRkVEcm9wU2hhZG93RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1
OEU4ODMxMzYwQTMzQjAwRTQ3NDhDIC8qIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCAqLzsgfTsK
IAkJNDM2NzA4QzExMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR0Jsb2NrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MDg4MjEyRDlDQTRBMDAw
NDQyMzQgLyogUmVuZGVyU1ZHQmxvY2suaCAqLzsgfTsKLQkJNDM2NzA4QzMxMkQ5Q0E0QjAwMDQ0
MjM0IC8qIFJlbmRlclNWR0NvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDM2NzA4ODQxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0Nv
bnRhaW5lci5oICovOyB9OworCQk0MzY3MDhDMzEyRDlDQTRCMDAwNDQyMzQgLyogTGVnYWN5UmVu
ZGVyU1ZHQ29udGFpbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MzY3MDg4NDEyRDlDQTRBMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHQ29udGFp
bmVyLmggKi87IH07CiAJCTQzNjcwOEM1MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdHcmFk
aWVudFN0b3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQzNjcwODg2MTJEOUNBNEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdHcmFkaWVudFN0b3AuaCAqLzsg
fTsKIAkJNDM2NzA4QzcxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5l
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM2NzA4
ODgxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5oICovOyB9Owog
CQk0MzY3MDhDOTEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHSW1hZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwODhBMTJEOUNBNEEwMDA0
NDIzNCAvKiBSZW5kZXJTVkdJbWFnZS5oICovOyB9OwpAQCAtODk4Myw4ICs4OTgzLDggQEAKIAkJ
NDM1OEU4ODQxMzYwQTMzQjAwRTQ3NDhDIC8qIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MzY3MDg4MTEyRDlDQTRBMDAwNDQyMzQgLyogUmVuZGVy
U1ZHQmxvY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVy
U1ZHQmxvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzY3MDg4MjEyRDlD
QTRBMDAwNDQyMzQgLyogUmVuZGVyU1ZHQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyU1ZHQmxvY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NDM2NzA4ODMxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0NvbnRhaW5lci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdDb250YWluZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MzY3MDg4NDEyRDlDQTRBMDAwNDQyMzQgLyog
UmVuZGVyU1ZHQ29udGFpbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bmRlclNWR0NvbnRhaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MzY3MDg4
MzEyRDlDQTRBMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR0NvbnRhaW5lci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzNjcwODg0MTJEOUNBNEEwMDA0NDIz
NCAvKiBMZWdhY3lSZW5kZXJTVkdDb250YWluZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQzNjcwODg1MTJEOUNBNEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdHcmFkaWVudFN0
b3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHR3Jh
ZGllbnRTdG9wLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM2NzA4ODYxMkQ5
Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0dyYWRpZW50U3RvcC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdHcmFkaWVudFN0b3AuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDM2NzA4ODcxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0hpZGRl
bkNvbnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJTVkdIaWRkZW5Db250YWluZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTg5MTcsNiArMTg5MTcsOCBAQAogCQkwODhDMkY3NDEyMzkwMDgwMDAzRDY1Q0UgLyogc3ZnICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0MzY3MDg4MzEy
RDlDQTRBMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLmNwcCAqLywKKwkJCQk0
MzY3MDg4NDEyRDlDQTRBMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLmggKi8s
CiAJCQkJNDM2NzA4OEIxMkQ5Q0E0QTAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR01vZGVsT2Jq
ZWN0LmNwcCAqLywKIAkJCQk0MzY3MDg4QzEyRDlDQTRBMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVy
U1ZHTW9kZWxPYmplY3QuaCAqLywKIAkJCQlBMTBCQjU4MjE0ODRFM0E3MDBCMkU4N0EgLyogTGVn
YWN5UmVuZGVyU1ZHUmVjdC5jcHAgKi8sCkBAIC0xODkyOSw4ICsxODkzMSw2IEBACiAJCQkJNDM2
NzA4ODExMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0Jsb2NrLmNwcCAqLywKIAkJCQk0MzY3
MDg4MjEyRDlDQTRBMDAwNDQyMzQgLyogUmVuZGVyU1ZHQmxvY2suaCAqLywKIAkJCQlDREY3NDdF
QTI3MEY2RDg4MDA4RkVFRUMgLyogUmVuZGVyU1ZHQmxvY2tJbmxpbmVzLmggKi8sCi0JCQkJNDM2
NzA4ODMxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0NvbnRhaW5lci5jcHAgKi8sCi0JCQkJ
NDM2NzA4ODQxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0NvbnRhaW5lci5oICovLAogCQkJ
CTJCNDIzNTlGMTUyNTBGNjAwMERCQkNEOCAvKiBSZW5kZXJTVkdFbGxpcHNlLmNwcCAqLywKIAkJ
CQkyQjQyMzVBMDE1MjUwRjYwMDBEQkJDRDggLyogUmVuZGVyU1ZHRWxsaXBzZS5oICovLAogCQkJ
CTQzQzA5MkI5MTJEOUU0RUUwMEE5ODlDMyAvKiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcCAq
LywKQEAgLTM1OTMwLDYgKzM1OTMwLDcgQEAKIAkJCQlGNDRBNUY1OTFGRUQzOEYyMDA3RjU5NDQg
LyogTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExODVCNDJB
MUU4MjExQTEwMERDOTExOCAvKiBMZWdhY3lQcmV2aWV3TG9hZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBMTBEQkY0NzE4RjkyMzE3MDAwRDcwQzYgLyogTGVnYWN5UHJldmlld0xvYWRlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDM2NzA4QzMxMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2Fj
eVJlbmRlclNWR0NvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2NzA4Q0IxMkQ5Q0E0
QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR01vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBMTBCQjU4NTE0ODRFM0E3MDBCMkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHUmVjdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDM2NzA4RTUxMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRl
clNWR1Jvb3QuaCBpbiBIZWFkZXJzICovLApAQCAtMzY3MzcsNyArMzY3MzgsNiBAQAogCQkJCUJD
NUVCNjY4MEU4MUNCNzEwMEIyNTk2NSAvKiBSZW5kZXJTdHlsZUNvbnN0YW50cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDM2NzA4QzExMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR0Jsb2NrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDREY3NDdFQjI3MEY2RDg4MDA4RkVFRUMgLyogUmVuZGVyU1ZH
QmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MzY3MDhDMzEyRDlDQTRCMDAwNDQy
MzQgLyogUmVuZGVyU1ZHQ29udGFpbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQjM2NUM4NDE1
MjUxMTlFMDA5MUQyN0IgLyogUmVuZGVyU1ZHRWxsaXBzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDNDMDkyQkMxMkQ5RTRFRTAwQTk4OUMzIC8qIFJlbmRlclNWR0ZvcmVpZ25PYmplY3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQzNjcwOEM1MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdHcmFk
aWVudFN0b3AuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCmluZGV4IGUzNzdiMzU5N2ViYzM2YmE1ZWM4OGU4NGJkODQ3OGZhYzYwMTYzMWQuLjI0
MzIyZGFlYjAyNzY4NDIyMzZiMjU2OWQzMzkyNjU1OGU2NDQwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTMyOSw3ICszMjksNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzUmVuZGVyU1ZHQmxvY2soKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfTsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNMZWdhY3lTVkdSb290KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdSb290KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgaXNTVkdDb250YWluZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBpc0xlZ2FjeVNWR0NvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU1ZHVmlld3BvcnRD
b250YWluZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NW
R0dyYWRpZW50U3RvcCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggNjkyN2MzYmE3NmI1MDJlMDEx
MzEwMGM2MzhlMDdhOTUyZTRhZjNhMS4uMmYzOWNmNzE5ZjJlYzJmYjY1ZTQ4YWE3NTM1MTQ4Mjli
MWMwZWEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVB
c1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0
LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkhUTUxTcGFuRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIklubGluZUl0ZXJhdG9yVGV4dEJveC5oIgogI2luY2x1ZGUgIkxlZ2FjeUlubGluZVRl
eHRCb3guaCIKKyNpbmNsdWRlICJMZWdhY3lSZW5kZXJTVkdDb250YWluZXIuaCIKICNpbmNsdWRl
ICJMZWdhY3lSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiTGVnYWN5UmVuZGVyU1ZHU2hhcGUu
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC01OCw3ICs1OSw2IEBACiAjaW5jbHVkZSAiUmVu
ZGVyTGlzdE1hcmtlci5oIgogI2luY2x1ZGUgIlJlbmRlclF1b3RlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyUnVieS5oIgotI2luY2x1ZGUgIlJlbmRlclNWR0NvbnRhaW5lci5oIgogI2luY2x1ZGUgIlJl
bmRlclNWR0dyYWRpZW50U3RvcC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0ltYWdlLmgiCiAjaW5j
bHVkZSAiUmVuZGVyU1ZHSW5saW5lVGV4dC5oIgpAQCAtNTc4LDggKzU3OCw4IEBAIHZvaWQgd3Jp
dGUoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRlck9iamVjdCYgbywgT3B0aW9uU2V0PFJlbmRl
ckFzVGV4dEZsYWc+IGJlCiAgICAgICAgIHdyaXRlU1ZHUmVzb3VyY2VDb250YWluZXIodHMsIGRv
d25jYXN0PFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyPihvKSwgYmVoYXZpb3IpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQotICAgIGlmIChpczxSZW5kZXJTVkdDb250YWluZXI+KG8pKSB7Ci0g
ICAgICAgIHdyaXRlU1ZHQ29udGFpbmVyKHRzLCBkb3duY2FzdDxSZW5kZXJTVkdDb250YWluZXI+
KG8pLCBiZWhhdmlvcik7CisgICAgaWYgKGlzPExlZ2FjeVJlbmRlclNWR0NvbnRhaW5lcj4obykp
IHsKKyAgICAgICAgd3JpdGVTVkdDb250YWluZXIodHMsIGRvd25jYXN0PExlZ2FjeVJlbmRlclNW
R0NvbnRhaW5lcj4obyksIGJlaGF2aW9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNpZiBF
TkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMjYxMjIzZTM1ODEwNjNjMzg3NzZkMjZiNTNiNDlkNjMyMTI4ZWE2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdDb250YWlu
ZXIuY3BwCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgorICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Cisg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAqIENv
cHlyaWdodCAoQykgMjAwOSBHb29nbGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJMZWdhY3lSZW5kZXJTVkdDb250YWluZXIuaCIKKworI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUgIkxheW91dFJlcGFpbnRlci5oIgor
I2luY2x1ZGUgIlJlbmRlckl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VG
aWx0ZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlci5oIgorI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKKyNpbmNsdWRlICJTVkdSZW5kZXJpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiU1ZH
UmVzb3VyY2VzLmgiCisjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzQ2FjaGUuaCIKKyNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9TdGFja1N0YXRzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKExlZ2FjeVJl
bmRlclNWR0NvbnRhaW5lcik7CisKK0xlZ2FjeVJlbmRlclNWR0NvbnRhaW5lcjo6TGVnYWN5UmVu
ZGVyU1ZHQ29udGFpbmVyKFNWR0VsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUp
CisgICAgOiBMZWdhY3lSZW5kZXJTVkdNb2RlbE9iamVjdChlbGVtZW50LCBXVEZNb3ZlKHN0eWxl
KSkKK3sKK30KKworTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyOjp+TGVnYWN5UmVuZGVyU1ZHQ29u
dGFpbmVyKCkgPSBkZWZhdWx0OworCit2b2lkIExlZ2FjeVJlbmRlclNWR0NvbnRhaW5lcjo6bGF5
b3V0KCkKK3sKKyAgICBTdGFja1N0YXRzOjpMYXlvdXRDaGVja1BvaW50IGxheW91dENoZWNrUG9p
bnQ7CisgICAgQVNTRVJUKG5lZWRzTGF5b3V0KCkpOworCisgICAgLy8gTGVnYWN5UmVuZGVyU1ZH
Um9vdCBkaXNhYmxlcyBwYWludCBvZmZzZXQgY2FjaGUgZm9yIHRoZSBTVkcgcmVuZGVyaW5nIHRy
ZWUuCisgICAgQVNTRVJUKCF2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzUGFp
bnRPZmZzZXRDYWNoZUVuYWJsZWQoKSk7CisKKyAgICBMYXlvdXRSZXBhaW50ZXIgcmVwYWludGVy
KCp0aGlzLCBTVkdSZW5kZXJTdXBwb3J0OjpjaGVja0ZvclNWR1JlcGFpbnREdXJpbmdMYXlvdXQo
KnRoaXMpIHx8IHNlbGZXaWxsUGFpbnQoKSk7CisKKyAgICAvLyBBbGxvdyBSZW5kZXJTVkdWaWV3
cG9ydENvbnRhaW5lciB0byB1cGRhdGUgaXRzIHZpZXdwb3J0LgorICAgIGNhbGNWaWV3cG9ydCgp
OworCisgICAgLy8gQWxsb3cgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciB0byB1cGRh
dGUgaXRzIHRyYW5zZm9ybS4KKyAgICBib29sIHVwZGF0ZWRUcmFuc2Zvcm0gPSBjYWxjdWxhdGVM
b2NhbFRyYW5zZm9ybSgpOworCisgICAgLy8gUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIgbmVl
ZHMgdG8gc2V0IHRoZSAnbGF5b3V0IHNpemUgY2hhbmdlZCcgZmxhZy4KKyAgICBkZXRlcm1pbmVJ
ZkxheW91dFNpemVDaGFuZ2VkKCk7CisKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjpsYXlvdXRDaGls
ZHJlbigqdGhpcywgc2VsZk5lZWRzTGF5b3V0KCkgfHwgU1ZHUmVuZGVyU3VwcG9ydDo6ZmlsdGVy
c0ZvcmNlQ29udGFpbmVyTGF5b3V0KCp0aGlzKSk7CisKKyAgICAvLyBJbnZhbGlkYXRlIGFsbCBy
ZXNvdXJjZXMgb2YgdGhpcyBjbGllbnQgaWYgb3VyIGxheW91dCBjaGFuZ2VkLgorICAgIGlmIChl
dmVySGFkTGF5b3V0KCkgJiYgbmVlZHNMYXlvdXQoKSkKKyAgICAgICAgU1ZHUmVzb3VyY2VzQ2Fj
aGU6OmNsaWVudExheW91dENoYW5nZWQoKnRoaXMpOworCisgICAgLy8gQXQgdGhpcyBwb2ludCBM
YXlvdXRSZXBhaW50ZXIgYWxyZWFkeSBncmFiYmVkIHRoZSBvbGQgYm91bmRzLAorICAgIC8vIHJl
Y2FsY3VsYXRlIHRoZW0gbm93IHNvIHJlcGFpbnRBZnRlckxheW91dCgpIHVzZXMgdGhlIG5ldyBi
b3VuZHMuCisgICAgaWYgKG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlIHx8IHVwZGF0ZWRUcmFuc2Zv
cm0pIHsKKyAgICAgICAgdXBkYXRlQ2FjaGVkQm91bmRhcmllcygpOworICAgICAgICBtX25lZWRz
Qm91bmRhcmllc1VwZGF0ZSA9IGZhbHNlOworICAgIAorICAgICAgICAvLyBJZiBvdXIgYm91bmRz
IGNoYW5nZWQsIG5vdGlmeSB0aGUgcGFyZW50cy4KKyAgICAgICAgTGVnYWN5UmVuZGVyU1ZHTW9k
ZWxPYmplY3Q6OnNldE5lZWRzQm91bmRhcmllc1VwZGF0ZSgpOworICAgIH0KKworICAgIHJlcGFp
bnRlci5yZXBhaW50QWZ0ZXJMYXlvdXQoKTsKKyAgICBjbGVhck5lZWRzTGF5b3V0KCk7Cit9CisK
K2Jvb2wgTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyOjpzZWxmV2lsbFBhaW50KCkKK3sKKyAgICBh
dXRvKiByZXNvdXJjZXMgPSBTVkdSZXNvdXJjZXNDYWNoZTo6Y2FjaGVkUmVzb3VyY2VzRm9yUmVu
ZGVyZXIoKnRoaXMpOworICAgIHJldHVybiByZXNvdXJjZXMgJiYgcmVzb3VyY2VzLT5maWx0ZXIo
KTsKK30KKwordm9pZCBMZWdhY3lSZW5kZXJTVkdDb250YWluZXI6OnBhaW50KFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCit7CisgICAgaWYgKHBhaW50SW5mby5jb250
ZXh0KCkucGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBTcGVj
OiBncm91cHMgdy9vIGNoaWxkcmVuIHN0aWxsIG1heSByZW5kZXIgZmlsdGVyIGNvbnRlbnQuCisg
ICAgaWYgKCFmaXJzdENoaWxkKCkgJiYgIXNlbGZXaWxsUGFpbnQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgRmxvYXRSZWN0IHJlcGFpbnRSZWN0ID0gcmVwYWludFJlY3RJbkxvY2FsQ29vcmRp
bmF0ZXMoKTsKKyAgICBpZiAoIVNWR1JlbmRlclN1cHBvcnQ6OnBhaW50SW5mb0ludGVyc2VjdHNS
ZXBhaW50UmVjdChyZXBhaW50UmVjdCwgbG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpLCBwYWludElu
Zm8pKQorICAgICAgICByZXR1cm47CisKKyAgICBQYWludEluZm8gY2hpbGRQYWludEluZm8ocGFp
bnRJbmZvKTsKKyAgICB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVT
YXZlcihjaGlsZFBhaW50SW5mby5jb250ZXh0KCkpOworCisgICAgICAgIC8vIExldCB0aGUgUmVu
ZGVyU1ZHVmlld3BvcnRDb250YWluZXIgc3ViY2xhc3MgY2xpcCBpZiBuZWNlc3NhcnkKKyAgICAg
ICAgYXBwbHlWaWV3cG9ydENsaXAoY2hpbGRQYWludEluZm8pOworCisgICAgICAgIGNoaWxkUGFp
bnRJbmZvLmFwcGx5VHJhbnNmb3JtKGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSk7CisKKyAgICAg
ICAgU1ZHUmVuZGVyaW5nQ29udGV4dCByZW5kZXJpbmdDb250ZXh0OworICAgICAgICBib29sIGNv
bnRpbnVlUmVuZGVyaW5nID0gdHJ1ZTsKKyAgICAgICAgaWYgKGNoaWxkUGFpbnRJbmZvLnBoYXNl
ID09IFBhaW50UGhhc2U6OkZvcmVncm91bmQpIHsKKyAgICAgICAgICAgIHJlbmRlcmluZ0NvbnRl
eHQucHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudCgqdGhpcywgY2hpbGRQYWludEluZm8pOworICAg
ICAgICAgICAgY29udGludWVSZW5kZXJpbmcgPSByZW5kZXJpbmdDb250ZXh0LmlzUmVuZGVyaW5n
UHJlcGFyZWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb250aW51ZVJlbmRlcmluZykg
eworICAgICAgICAgICAgY2hpbGRQYWludEluZm8udXBkYXRlU3VidHJlZVBhaW50Um9vdEZvckNo
aWxkcmVuKHRoaXMpOworICAgICAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZU
eXBlPFJlbmRlckVsZW1lbnQ+KCp0aGlzKSkKKyAgICAgICAgICAgICAgICBjaGlsZC5wYWludChj
aGlsZFBhaW50SW5mbywgSW50UG9pbnQoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAg
Ly8gRklYTUU6IFRoaXMgcmVhbGx5IHNob3VsZCBiZSBkcmF3biBmcm9tIGxvY2FsIGNvb3JkaW5h
dGVzLCBidXQgY3VycmVudGx5IHdlIGhhY2sgaXQKKyAgICAvLyB0byBhdm9pZCBvdXIgY2xpcCBr
aWxsaW5nIG91ciBvdXRsaW5lIHJlY3QuIFRodXMgd2UgdHJhbnNsYXRlIG91cgorICAgIC8vIG91
dGxpbmUgcmVjdCBpbnRvIHBhcmVudCBjb29yZHMgYmVmb3JlIGRyYXdpbmcuCisgICAgLy8gRklY
TUU6IFRoaXMgbWVhbnMgb3VyIGZvY3VzIHJpbmcgd29uJ3Qgc2hhcmUgb3VyIHJvdGF0aW9uIGxp
a2UgaXQgc2hvdWxkLgorICAgIC8vIFdlIHNob3VsZCBpbnN0ZWFkIGRpc2FibGUgb3VyIGNsaXAg
ZHVyaW5nIFBhaW50UGhhc2U6Ok91dGxpbmUKKyAgICBpZiAocGFpbnRJbmZvLnBoYXNlID09IFBh
aW50UGhhc2U6OlNlbGZPdXRsaW5lICYmIHN0eWxlKCkub3V0bGluZVdpZHRoKCkgJiYgc3R5bGUo
KS52aXNpYmlsaXR5KCkgPT0gVmlzaWJpbGl0eTo6VmlzaWJsZSkgeworICAgICAgICBJbnRSZWN0
IHBhaW50UmVjdEluUGFyZW50ID0gZW5jbG9zaW5nSW50UmVjdChsb2NhbFRvUGFyZW50VHJhbnNm
b3JtKCkubWFwUmVjdChyZXBhaW50UmVjdCkpOworICAgICAgICBwYWludE91dGxpbmUocGFpbnRJ
bmZvLCBwYWludFJlY3RJblBhcmVudCk7CisgICAgfQorfQorCisvLyBhZGRGb2N1c1JpbmdSZWN0
cyBpcyBjYWxsZWQgZnJvbSBwYWludE91dGxpbmUgYW5kIG5lZWRzIHRvIGJlIGluIHRoZSBzYW1l
IGNvb3JkaW5hdGVzIGFzIHRoZSBwYWludE91bGluZSBjYWxsCit2b2lkIExlZ2FjeVJlbmRlclNW
R0NvbnRhaW5lcjo6YWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPExheW91dFJlY3Q+JiByZWN0cywg
Y29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KikKK3sKKyAg
ICBMYXlvdXRSZWN0IHBhaW50UmVjdEluUGFyZW50ID0gTGF5b3V0UmVjdChsb2NhbFRvUGFyZW50
VHJhbnNmb3JtKCkubWFwUmVjdChyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpKSk7Cisg
ICAgaWYgKCFwYWludFJlY3RJblBhcmVudC5pc0VtcHR5KCkpCisgICAgICAgIHJlY3RzLmFwcGVu
ZChwYWludFJlY3RJblBhcmVudCk7Cit9CisKK3ZvaWQgTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVy
Ojp1cGRhdGVDYWNoZWRCb3VuZGFyaWVzKCkKK3sKKyAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21w
dXRlQ29udGFpbmVyQm91bmRpbmdCb3hlcygqdGhpcywgbV9vYmplY3RCb3VuZGluZ0JveCwgbV9v
YmplY3RCb3VuZGluZ0JveFZhbGlkLCBtX3N0cm9rZUJvdW5kaW5nQm94LCBtX3JlcGFpbnRCb3Vu
ZGluZ0JveCk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRo
UmVzb3VyY2VzKCp0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveCk7Cit9CisKK2Jvb2wgTGVnYWN5
UmVuZGVyU1ZHQ29udGFpbmVyOjpub2RlQXRGbG9hdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50
SW5QYXJlbnQsIEhpdFRlc3RBY3Rpb24gaGl0VGVzdEFjdGlvbikKK3sKKyAgICAvLyBHaXZlIFJl
bmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIGEgY2hhbmNlIHRvIGFwcGx5IGl0cyB2aWV3cG9ydCBj
bGlwCisgICAgaWYgKCFwb2ludElzSW5zaWRlVmlld3BvcnRDbGlwKHBvaW50SW5QYXJlbnQpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSB2YWx1
ZU9yRGVmYXVsdChsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkuaW52ZXJzZSgpKS5tYXBQb2ludChw
b2ludEluUGFyZW50KTsKKworICAgIGlmICghU1ZHUmVuZGVyU3VwcG9ydDo6cG9pbnRJbkNsaXBw
aW5nQXJlYSgqdGhpcywgbG9jYWxQb2ludCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IFNWR0hpdFRlc3RDeWNsZURldGVjdGlvblNjb3BlIGhpdFRlc3RTY29wZSgqdGhpcyk7CisKKyAg
ICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBsYXN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0g
Y2hpbGQtPnByZXZpb3VzU2libGluZygpKSB7CisgICAgICAgIGlmIChjaGlsZC0+bm9kZUF0Rmxv
YXRQb2ludChyZXF1ZXN0LCByZXN1bHQsIGxvY2FsUG9pbnQsIGhpdFRlc3RBY3Rpb24pKSB7Cisg
ICAgICAgICAgICB1cGRhdGVIaXRUZXN0UmVzdWx0KHJlc3VsdCwgTGF5b3V0UG9pbnQobG9jYWxQ
b2ludCkpOworICAgICAgICAgICAgaWYgKHJlc3VsdC5hZGROb2RlVG9MaXN0QmFzZWRUZXN0UmVz
dWx0KGNoaWxkLT5ub2RlKCksIHJlcXVlc3QsIGZsb29yZWRMYXlvdXRQb2ludChsb2NhbFBvaW50
KSkgPT0gSGl0VGVzdFByb2dyZXNzOjpTdG9wKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICB9CisgICAgfQorCisgICAgLy8gQWNjZXNzaWJpbGl0eSB3YW50cyB0byByZXR1
cm4gU1ZHIGNvbnRhaW5lcnMsIGlmIGFwcHJvcHJpYXRlLgorICAgIGlmIChyZXF1ZXN0LnR5cGUo
KSAmIEhpdFRlc3RSZXF1ZXN0OjpUeXBlOjpBY2Nlc3NpYmlsaXR5SGl0VGVzdCAmJiBtX29iamVj
dEJvdW5kaW5nQm94LmNvbnRhaW5zKGxvY2FsUG9pbnQpKSB7CisgICAgICAgIHVwZGF0ZUhpdFRl
c3RSZXN1bHQocmVzdWx0LCBMYXlvdXRQb2ludChsb2NhbFBvaW50KSk7CisgICAgICAgIGlmIChy
ZXN1bHQuYWRkTm9kZVRvTGlzdEJhc2VkVGVzdFJlc3VsdChub2RlRm9ySGl0VGVzdCgpLCByZXF1
ZXN0LCBmbG9vcmVkTGF5b3V0UG9pbnQobG9jYWxQb2ludCkpID09IEhpdFRlc3RQcm9ncmVzczo6
U3RvcCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvLyBTcGVj
OiBPbmx5IGdyYXBoaWNhbCBlbGVtZW50cyBjYW4gYmUgdGFyZ2V0ZWQgYnkgdGhlIG1vdXNlLCBw
ZXJpb2QuCisgICAgLy8gMTYuNDogIklmIHRoZXJlIGFyZSBubyBncmFwaGljcyBlbGVtZW50cyB3
aG9zZSByZWxldmFudCBncmFwaGljcyBjb250ZW50IGlzIHVuZGVyIHRoZSBwb2ludGVyIChpLmUu
LCB0aGVyZSBpcyBubyB0YXJnZXQgZWxlbWVudCksIHRoZSBldmVudCBpcyBub3QgZGlzcGF0Y2hl
ZC4iCisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR0NvbnRhaW5lci5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdDb250YWluZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
YmY3N2Q4OTYyZDY4YzgzOWI2YmM0YTIzMzYzOWIyODhmMDNlMDg4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdDb250YWluZXIu
aApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3
IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgorICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgR29vZ2xlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJMZWdhY3lSZW5kZXJTVkdNb2RlbE9iamVjdC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNWR0VsZW1lbnQ7CisKK2NsYXNzIExlZ2FjeVJlbmRlclNWR0NvbnRh
aW5lciA6IHB1YmxpYyBMZWdhY3lSZW5kZXJTVkdNb2RlbE9iamVjdCB7CisgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChMZWdhY3lSZW5kZXJTVkdDb250YWluZXIpOworcHVibGljOgorICAgIHZp
cnR1YWwgfkxlZ2FjeVJlbmRlclNWR0NvbnRhaW5lcigpOworCisgICAgdm9pZCBwYWludChQYWlu
dEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0TmVlZHNC
b3VuZGFyaWVzVXBkYXRlKCkgZmluYWwgeyBtX25lZWRzQm91bmRhcmllc1VwZGF0ZSA9IHRydWU7
IH0KKyAgICBib29sIG5lZWRzQm91bmRhcmllc1VwZGF0ZSgpIGZpbmFsIHsgcmV0dXJuIG1fbmVl
ZHNCb3VuZGFyaWVzVXBkYXRlOyB9CisgICAgdmlydHVhbCBib29sIGRpZFRyYW5zZm9ybVRvUm9v
dFVwZGF0ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc09iamVjdEJvdW5kaW5nQm94
VmFsaWQoKSBjb25zdCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5nQm94VmFsaWQ7IH0KKworcHJv
dGVjdGVkOgorICAgIExlZ2FjeVJlbmRlclNWR0NvbnRhaW5lcihTVkdFbGVtZW50JiwgUmVuZGVy
U3R5bGUmJik7CisKKyAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gIlJlbmRlclNWR0NvbnRhaW5lciI7IH0KKworICAgIGJvb2wgY2FuSGF2ZUNoaWxk
cmVuKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdm9pZCBsYXlvdXQoKSBv
dmVycmlkZTsKKworICAgIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPExheW91dFJlY3Q+
JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyID0gMCkgZmluYWw7CisKKyAgICBGbG9hdFJlY3Qg
b2JqZWN0Qm91bmRpbmdCb3goKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5n
Qm94OyB9CisgICAgRmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9zdHJva2VCb3VuZGluZ0JveDsgfQorICAgIEZsb2F0UmVjdCByZXBhaW50UmVjdElu
TG9jYWxDb29yZGluYXRlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5n
Qm94OyB9CisKKyAgICBib29sIG5vZGVBdEZsb2F0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3Qm
LCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnRJblBhcmVudCwgSGl0VGVz
dEFjdGlvbikgb3ZlcnJpZGU7CisKKyAgICAvLyBBbGxvdyBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxl
Q29udGFpbmVyIHRvIGhvb2sgaW4gYXQgdGhlIHJpZ2h0IHRpbWUgaW4gbGF5b3V0KCkKKyAgICB2
aXJ0dWFsIGJvb2wgY2FsY3VsYXRlTG9jYWxUcmFuc2Zvcm0oKSB7IHJldHVybiBmYWxzZTsgfQor
CisgICAgLy8gQWxsb3cgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIgdG8gaG9vayBpbiBhdCB0
aGUgcmlnaHQgdGltZXMgaW4gbGF5b3V0KCksIHBhaW50KCkgYW5kIG5vZGVBdEZsb2F0UG9pbnQo
KQorICAgIHZpcnR1YWwgdm9pZCBjYWxjVmlld3BvcnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
YXBwbHlWaWV3cG9ydENsaXAoUGFpbnRJbmZvJikgeyB9CisgICAgdmlydHVhbCBib29sIHBvaW50
SXNJbnNpZGVWaWV3cG9ydENsaXAoY29uc3QgRmxvYXRQb2ludCYgLypwb2ludEluUGFyZW50Ki8p
IHsgcmV0dXJuIHRydWU7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVJZkxheW91dFNp
emVDaGFuZ2VkKCkgeyB9CisKKyAgICBib29sIHNlbGZXaWxsUGFpbnQoKTsKKyAgICB2b2lkIHVw
ZGF0ZUNhY2hlZEJvdW5kYXJpZXMoKTsKKworcHJpdmF0ZToKKyAgICBib29sIGlzTGVnYWN5U1ZH
Q29udGFpbmVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgRmxvYXRSZWN0
IG1fb2JqZWN0Qm91bmRpbmdCb3g7CisgICAgRmxvYXRSZWN0IG1fc3Ryb2tlQm91bmRpbmdCb3g7
CisgICAgRmxvYXRSZWN0IG1fcmVwYWludEJvdW5kaW5nQm94OworCisgICAgYm9vbCBtX29iamVj
dEJvdW5kaW5nQm94VmFsaWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9uZWVkc0JvdW5kYXJpZXNV
cGRhdGUgeyB0cnVlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfUkVOREVSX09CSkVDVChMZWdhY3lSZW5kZXJTVkdDb250YWluZXIsIGlz
TGVnYWN5U1ZHQ29udGFpbmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL0xlZ2FjeVJlbmRlclNWR1NoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL0xlZ2FjeVJlbmRlclNWR1NoYXBlLmgKaW5kZXggNGRjYTE5ODFmMjBhNTgxYjAwNTM2MDJh
OThlMTU0NzJhMzZlY2M1Zi4uNWQwY2ExNGE4ZWNhOGUzZGRjM2ZmMmNkNjZmZTk0ZjFiZTZjY2Zi
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJT
VkdTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVy
U1ZHU2hhcGUuaApAQCAtMzYsNyArMzYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEZsb2F0UG9pbnQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyOwotY2xhc3MgUmVu
ZGVyU1ZHQ29udGFpbmVyOwogY2xhc3MgUmVuZGVyU1ZHUGF0aDsKIGNsYXNzIFJlbmRlclNWR1Jl
c291cmNlOwogY2xhc3MgU1ZHR3JhcGhpY3NFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjMGQyNTc0YjZiOTU5YTQ1ZjQyODhmYTA0ZTZjNGNkNDJmYjFkZTdlLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDE5MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3IE5p
a29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA3LCAyMDA4IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0gKiBDb3B5cmln
aHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+Ci0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
LSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJSZW5kZXJTVkdDb250YWluZXIuaCIKLQotI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgotI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiSGl0VGVz
dFJlc3VsdC5oIgotI2luY2x1ZGUgIkxheW91dFJlcGFpbnRlci5oIgotI2luY2x1ZGUgIlJlbmRl
ckl0ZXJhdG9yLmgiCi0jaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuaCIKLSNpbmNs
dWRlICJSZW5kZXJUcmVlQnVpbGRlci5oIgotI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKLSNpbmNs
dWRlICJTVkdSZW5kZXJpbmdDb250ZXh0LmgiCi0jaW5jbHVkZSAiU1ZHUmVzb3VyY2VzLmgiCi0j
aW5jbHVkZSAiU1ZHUmVzb3VyY2VzQ2FjaGUuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgotI2luY2x1ZGUgPHd0Zi9TdGFja1N0YXRzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJlbmRlclNWR0NvbnRhaW5lcik7Ci0K
LVJlbmRlclNWR0NvbnRhaW5lcjo6UmVuZGVyU1ZHQ29udGFpbmVyKFNWR0VsZW1lbnQmIGVsZW1l
bnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCi0gICAgOiBMZWdhY3lSZW5kZXJTVkdNb2RlbE9iamVj
dChlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKLXsKLX0KLQotUmVuZGVyU1ZHQ29udGFpbmVyOjp+
UmVuZGVyU1ZHQ29udGFpbmVyKCkgPSBkZWZhdWx0OwotCi12b2lkIFJlbmRlclNWR0NvbnRhaW5l
cjo6bGF5b3V0KCkKLXsKLSAgICBTdGFja1N0YXRzOjpMYXlvdXRDaGVja1BvaW50IGxheW91dENo
ZWNrUG9pbnQ7Ci0gICAgQVNTRVJUKG5lZWRzTGF5b3V0KCkpOwotCi0gICAgLy8gTGVnYWN5UmVu
ZGVyU1ZHUm9vdCBkaXNhYmxlcyBwYWludCBvZmZzZXQgY2FjaGUgZm9yIHRoZSBTVkcgcmVuZGVy
aW5nIHRyZWUuCi0gICAgQVNTRVJUKCF2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgp
LmlzUGFpbnRPZmZzZXRDYWNoZUVuYWJsZWQoKSk7Ci0KLSAgICBMYXlvdXRSZXBhaW50ZXIgcmVw
YWludGVyKCp0aGlzLCBTVkdSZW5kZXJTdXBwb3J0OjpjaGVja0ZvclNWR1JlcGFpbnREdXJpbmdM
YXlvdXQoKnRoaXMpIHx8IHNlbGZXaWxsUGFpbnQoKSk7Ci0KLSAgICAvLyBBbGxvdyBSZW5kZXJT
VkdWaWV3cG9ydENvbnRhaW5lciB0byB1cGRhdGUgaXRzIHZpZXdwb3J0LgotICAgIGNhbGNWaWV3
cG9ydCgpOwotCi0gICAgLy8gQWxsb3cgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciB0
byB1cGRhdGUgaXRzIHRyYW5zZm9ybS4KLSAgICBib29sIHVwZGF0ZWRUcmFuc2Zvcm0gPSBjYWxj
dWxhdGVMb2NhbFRyYW5zZm9ybSgpOwotCi0gICAgLy8gUmVuZGVyU1ZHVmlld3BvcnRDb250YWlu
ZXIgbmVlZHMgdG8gc2V0IHRoZSAnbGF5b3V0IHNpemUgY2hhbmdlZCcgZmxhZy4KLSAgICBkZXRl
cm1pbmVJZkxheW91dFNpemVDaGFuZ2VkKCk7Ci0KLSAgICBTVkdSZW5kZXJTdXBwb3J0OjpsYXlv
dXRDaGlsZHJlbigqdGhpcywgc2VsZk5lZWRzTGF5b3V0KCkgfHwgU1ZHUmVuZGVyU3VwcG9ydDo6
ZmlsdGVyc0ZvcmNlQ29udGFpbmVyTGF5b3V0KCp0aGlzKSk7Ci0KLSAgICAvLyBJbnZhbGlkYXRl
IGFsbCByZXNvdXJjZXMgb2YgdGhpcyBjbGllbnQgaWYgb3VyIGxheW91dCBjaGFuZ2VkLgotICAg
IGlmIChldmVySGFkTGF5b3V0KCkgJiYgbmVlZHNMYXlvdXQoKSkKLSAgICAgICAgU1ZHUmVzb3Vy
Y2VzQ2FjaGU6OmNsaWVudExheW91dENoYW5nZWQoKnRoaXMpOwotCi0gICAgLy8gQXQgdGhpcyBw
b2ludCBMYXlvdXRSZXBhaW50ZXIgYWxyZWFkeSBncmFiYmVkIHRoZSBvbGQgYm91bmRzLAotICAg
IC8vIHJlY2FsY3VsYXRlIHRoZW0gbm93IHNvIHJlcGFpbnRBZnRlckxheW91dCgpIHVzZXMgdGhl
IG5ldyBib3VuZHMuCi0gICAgaWYgKG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlIHx8IHVwZGF0ZWRU
cmFuc2Zvcm0pIHsKLSAgICAgICAgdXBkYXRlQ2FjaGVkQm91bmRhcmllcygpOwotICAgICAgICBt
X25lZWRzQm91bmRhcmllc1VwZGF0ZSA9IGZhbHNlOwotICAgIAotICAgICAgICAvLyBJZiBvdXIg
Ym91bmRzIGNoYW5nZWQsIG5vdGlmeSB0aGUgcGFyZW50cy4KLSAgICAgICAgTGVnYWN5UmVuZGVy
U1ZHTW9kZWxPYmplY3Q6OnNldE5lZWRzQm91bmRhcmllc1VwZGF0ZSgpOwotICAgIH0KLQotICAg
IHJlcGFpbnRlci5yZXBhaW50QWZ0ZXJMYXlvdXQoKTsKLSAgICBjbGVhck5lZWRzTGF5b3V0KCk7
Ci19Ci0KLWJvb2wgUmVuZGVyU1ZHQ29udGFpbmVyOjpzZWxmV2lsbFBhaW50KCkKLXsKLSAgICBh
dXRvKiByZXNvdXJjZXMgPSBTVkdSZXNvdXJjZXNDYWNoZTo6Y2FjaGVkUmVzb3VyY2VzRm9yUmVu
ZGVyZXIoKnRoaXMpOwotICAgIHJldHVybiByZXNvdXJjZXMgJiYgcmVzb3VyY2VzLT5maWx0ZXIo
KTsKLX0KLQotdm9pZCBSZW5kZXJTVkdDb250YWluZXI6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCi17Ci0gICAgaWYgKHBhaW50SW5mby5jb250ZXh0KCku
cGFpbnRpbmdEaXNhYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBTcGVjOiBncm91
cHMgdy9vIGNoaWxkcmVuIHN0aWxsIG1heSByZW5kZXIgZmlsdGVyIGNvbnRlbnQuCi0gICAgaWYg
KCFmaXJzdENoaWxkKCkgJiYgIXNlbGZXaWxsUGFpbnQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgRmxvYXRSZWN0IHJlcGFpbnRSZWN0ID0gcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMo
KTsKLSAgICBpZiAoIVNWR1JlbmRlclN1cHBvcnQ6OnBhaW50SW5mb0ludGVyc2VjdHNSZXBhaW50
UmVjdChyZXBhaW50UmVjdCwgbG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpLCBwYWludEluZm8pKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBQYWludEluZm8gY2hpbGRQYWludEluZm8ocGFpbnRJbmZv
KTsKLSAgICB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihj
aGlsZFBhaW50SW5mby5jb250ZXh0KCkpOwotCi0gICAgICAgIC8vIExldCB0aGUgUmVuZGVyU1ZH
Vmlld3BvcnRDb250YWluZXIgc3ViY2xhc3MgY2xpcCBpZiBuZWNlc3NhcnkKLSAgICAgICAgYXBw
bHlWaWV3cG9ydENsaXAoY2hpbGRQYWludEluZm8pOwotCi0gICAgICAgIGNoaWxkUGFpbnRJbmZv
LmFwcGx5VHJhbnNmb3JtKGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSk7Ci0KLSAgICAgICAgU1ZH
UmVuZGVyaW5nQ29udGV4dCByZW5kZXJpbmdDb250ZXh0OwotICAgICAgICBib29sIGNvbnRpbnVl
UmVuZGVyaW5nID0gdHJ1ZTsKLSAgICAgICAgaWYgKGNoaWxkUGFpbnRJbmZvLnBoYXNlID09IFBh
aW50UGhhc2U6OkZvcmVncm91bmQpIHsKLSAgICAgICAgICAgIHJlbmRlcmluZ0NvbnRleHQucHJl
cGFyZVRvUmVuZGVyU1ZHQ29udGVudCgqdGhpcywgY2hpbGRQYWludEluZm8pOwotICAgICAgICAg
ICAgY29udGludWVSZW5kZXJpbmcgPSByZW5kZXJpbmdDb250ZXh0LmlzUmVuZGVyaW5nUHJlcGFy
ZWQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChjb250aW51ZVJlbmRlcmluZykgewotICAg
ICAgICAgICAgY2hpbGRQYWludEluZm8udXBkYXRlU3VidHJlZVBhaW50Um9vdEZvckNoaWxkcmVu
KHRoaXMpOwotICAgICAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPFJl
bmRlckVsZW1lbnQ+KCp0aGlzKSkKLSAgICAgICAgICAgICAgICBjaGlsZC5wYWludChjaGlsZFBh
aW50SW5mbywgSW50UG9pbnQoKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgLy8gRklY
TUU6IFRoaXMgcmVhbGx5IHNob3VsZCBiZSBkcmF3biBmcm9tIGxvY2FsIGNvb3JkaW5hdGVzLCBi
dXQgY3VycmVudGx5IHdlIGhhY2sgaXQKLSAgICAvLyB0byBhdm9pZCBvdXIgY2xpcCBraWxsaW5n
IG91ciBvdXRsaW5lIHJlY3QuIFRodXMgd2UgdHJhbnNsYXRlIG91cgotICAgIC8vIG91dGxpbmUg
cmVjdCBpbnRvIHBhcmVudCBjb29yZHMgYmVmb3JlIGRyYXdpbmcuCi0gICAgLy8gRklYTUU6IFRo
aXMgbWVhbnMgb3VyIGZvY3VzIHJpbmcgd29uJ3Qgc2hhcmUgb3VyIHJvdGF0aW9uIGxpa2UgaXQg
c2hvdWxkLgotICAgIC8vIFdlIHNob3VsZCBpbnN0ZWFkIGRpc2FibGUgb3VyIGNsaXAgZHVyaW5n
IFBhaW50UGhhc2U6Ok91dGxpbmUKLSAgICBpZiAocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhh
c2U6OlNlbGZPdXRsaW5lICYmIHN0eWxlKCkub3V0bGluZVdpZHRoKCkgJiYgc3R5bGUoKS52aXNp
YmlsaXR5KCkgPT0gVmlzaWJpbGl0eTo6VmlzaWJsZSkgewotICAgICAgICBJbnRSZWN0IHBhaW50
UmVjdEluUGFyZW50ID0gZW5jbG9zaW5nSW50UmVjdChsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCku
bWFwUmVjdChyZXBhaW50UmVjdCkpOwotICAgICAgICBwYWludE91dGxpbmUocGFpbnRJbmZvLCBw
YWludFJlY3RJblBhcmVudCk7Ci0gICAgfQotfQotCi0vLyBhZGRGb2N1c1JpbmdSZWN0cyBpcyBj
YWxsZWQgZnJvbSBwYWludE91dGxpbmUgYW5kIG5lZWRzIHRvIGJlIGluIHRoZSBzYW1lIGNvb3Jk
aW5hdGVzIGFzIHRoZSBwYWludE91bGluZSBjYWxsCi12b2lkIFJlbmRlclNWR0NvbnRhaW5lcjo6
YWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPExheW91dFJlY3Q+JiByZWN0cywgY29uc3QgTGF5b3V0
UG9pbnQmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KikKLXsKLSAgICBMYXlvdXRSZWN0
IHBhaW50UmVjdEluUGFyZW50ID0gTGF5b3V0UmVjdChsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCku
bWFwUmVjdChyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpKSk7Ci0gICAgaWYgKCFwYWlu
dFJlY3RJblBhcmVudC5pc0VtcHR5KCkpCi0gICAgICAgIHJlY3RzLmFwcGVuZChwYWludFJlY3RJ
blBhcmVudCk7Ci19Ci0KLXZvaWQgUmVuZGVyU1ZHQ29udGFpbmVyOjp1cGRhdGVDYWNoZWRCb3Vu
ZGFyaWVzKCkKLXsKLSAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlQ29udGFpbmVyQm91bmRp
bmdCb3hlcygqdGhpcywgbV9vYmplY3RCb3VuZGluZ0JveCwgbV9vYmplY3RCb3VuZGluZ0JveFZh
bGlkLCBtX3N0cm9rZUJvdW5kaW5nQm94LCBtX3JlcGFpbnRCb3VuZGluZ0JveCk7Ci0gICAgU1ZH
UmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKCp0aGlzLCBt
X3JlcGFpbnRCb3VuZGluZ0JveCk7Ci19Ci0KLWJvb2wgUmVuZGVyU1ZHQ29udGFpbmVyOjpub2Rl
QXRGbG9hdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0
JiByZXN1bHQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50SW5QYXJlbnQsIEhpdFRlc3RBY3Rpb24g
aGl0VGVzdEFjdGlvbikKLXsKLSAgICAvLyBHaXZlIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVy
IGEgY2hhbmNlIHRvIGFwcGx5IGl0cyB2aWV3cG9ydCBjbGlwCi0gICAgaWYgKCFwb2ludElzSW5z
aWRlVmlld3BvcnRDbGlwKHBvaW50SW5QYXJlbnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSB2YWx1ZU9yRGVmYXVsdChsb2NhbFRvUGFyZW50
VHJhbnNmb3JtKCkuaW52ZXJzZSgpKS5tYXBQb2ludChwb2ludEluUGFyZW50KTsKLQotICAgIGlm
ICghU1ZHUmVuZGVyU3VwcG9ydDo6cG9pbnRJbkNsaXBwaW5nQXJlYSgqdGhpcywgbG9jYWxQb2lu
dCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFNWR0hpdFRlc3RDeWNsZURldGVjdGlv
blNjb3BlIGhpdFRlc3RTY29wZSgqdGhpcyk7Ci0KLSAgICBmb3IgKFJlbmRlck9iamVjdCogY2hp
bGQgPSBsYXN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygp
KSB7Ci0gICAgICAgIGlmIChjaGlsZC0+bm9kZUF0RmxvYXRQb2ludChyZXF1ZXN0LCByZXN1bHQs
IGxvY2FsUG9pbnQsIGhpdFRlc3RBY3Rpb24pKSB7Ci0gICAgICAgICAgICB1cGRhdGVIaXRUZXN0
UmVzdWx0KHJlc3VsdCwgTGF5b3V0UG9pbnQobG9jYWxQb2ludCkpOwotICAgICAgICAgICAgaWYg
KHJlc3VsdC5hZGROb2RlVG9MaXN0QmFzZWRUZXN0UmVzdWx0KGNoaWxkLT5ub2RlKCksIHJlcXVl
c3QsIGZsb29yZWRMYXlvdXRQb2ludChsb2NhbFBvaW50KSkgPT0gSGl0VGVzdFByb2dyZXNzOjpT
dG9wKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgLy8gQWNjZXNzaWJpbGl0eSB3YW50cyB0byByZXR1cm4gU1ZHIGNvbnRhaW5lcnMsIGlmIGFw
cHJvcHJpYXRlLgotICAgIGlmIChyZXF1ZXN0LnR5cGUoKSAmIEhpdFRlc3RSZXF1ZXN0OjpUeXBl
OjpBY2Nlc3NpYmlsaXR5SGl0VGVzdCAmJiBtX29iamVjdEJvdW5kaW5nQm94LmNvbnRhaW5zKGxv
Y2FsUG9pbnQpKSB7Ci0gICAgICAgIHVwZGF0ZUhpdFRlc3RSZXN1bHQocmVzdWx0LCBMYXlvdXRQ
b2ludChsb2NhbFBvaW50KSk7Ci0gICAgICAgIGlmIChyZXN1bHQuYWRkTm9kZVRvTGlzdEJhc2Vk
VGVzdFJlc3VsdChub2RlRm9ySGl0VGVzdCgpLCByZXF1ZXN0LCBmbG9vcmVkTGF5b3V0UG9pbnQo
bG9jYWxQb2ludCkpID09IEhpdFRlc3RQcm9ncmVzczo6U3RvcCkKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KLSAgICAKLSAgICAvLyBTcGVjOiBPbmx5IGdyYXBoaWNhbCBlbGVtZW50
cyBjYW4gYmUgdGFyZ2V0ZWQgYnkgdGhlIG1vdXNlLCBwZXJpb2QuCi0gICAgLy8gMTYuNDogIklm
IHRoZXJlIGFyZSBubyBncmFwaGljcyBlbGVtZW50cyB3aG9zZSByZWxldmFudCBncmFwaGljcyBj
b250ZW50IGlzIHVuZGVyIHRoZSBwb2ludGVyIChpLmUuLCB0aGVyZSBpcyBubyB0YXJnZXQgZWxl
bWVudCksIHRoZSBldmVudCBpcyBub3QgZGlzcGF0Y2hlZC4iCi0gICAgcmV0dXJuIGZhbHNlOwot
fQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0NvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250
YWluZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGUzNTljYTlkMzljMDBhODMx
OGU0NWMwN2RmOTQ4NjE4MTM3NmRiOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRh
aW5lci5oCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9y
Zz4KLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUu
b3JnPgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICov
Ci0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTGVnYWN5UmVuZGVyU1ZHTW9kZWxPYmplY3Qu
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBTVkdFbGVtZW50OwotCi1jbGFzcyBS
ZW5kZXJTVkdDb250YWluZXIgOiBwdWJsaWMgTGVnYWN5UmVuZGVyU1ZHTW9kZWxPYmplY3Qgewot
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUmVuZGVyU1ZHQ29udGFpbmVyKTsKLXB1YmxpYzoK
LSAgICB2aXJ0dWFsIH5SZW5kZXJTVkdDb250YWluZXIoKTsKLQotICAgIHZvaWQgcGFpbnQoUGFp
bnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldE5lZWRz
Qm91bmRhcmllc1VwZGF0ZSgpIGZpbmFsIHsgbV9uZWVkc0JvdW5kYXJpZXNVcGRhdGUgPSB0cnVl
OyB9Ci0gICAgYm9vbCBuZWVkc0JvdW5kYXJpZXNVcGRhdGUoKSBmaW5hbCB7IHJldHVybiBtX25l
ZWRzQm91bmRhcmllc1VwZGF0ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBkaWRUcmFuc2Zvcm1Ub1Jv
b3RVcGRhdGUoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wgaXNPYmplY3RCb3VuZGluZ0Jv
eFZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RCb3VuZGluZ0JveFZhbGlkOyB9Ci0KLXBy
b3RlY3RlZDoKLSAgICBSZW5kZXJTVkdDb250YWluZXIoU1ZHRWxlbWVudCYsIFJlbmRlclN0eWxl
JiYpOwotCi0gICAgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuICJSZW5kZXJTVkdDb250YWluZXIiOyB9Ci0KLSAgICBib29sIGNhbkhhdmVDaGlsZHJlbigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KLQotICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJp
ZGU7Ci0KLSAgICB2b2lkIGFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxMYXlvdXRSZWN0PiYsIGNv
bnN0IExheW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0LCBjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiBwYWludENvbnRhaW5lciA9IDApIGZpbmFsOwotCi0gICAgRmxvYXRSZWN0IG9iamVj
dEJvdW5kaW5nQm94KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9vYmplY3RCb3VuZGluZ0JveDsg
fQotICAgIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fc3Ryb2tlQm91bmRpbmdCb3g7IH0KLSAgICBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2Fs
Q29vcmRpbmF0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3JlcGFpbnRCb3VuZGluZ0JveDsg
fQotCi0gICAgYm9vbCBub2RlQXRGbG9hdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0
VGVzdFJlc3VsdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50SW5QYXJlbnQsIEhpdFRlc3RBY3Rp
b24pIG92ZXJyaWRlOwotCi0gICAgLy8gQWxsb3cgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lciB0byBob29rIGluIGF0IHRoZSByaWdodCB0aW1lIGluIGxheW91dCgpCi0gICAgdmlydHVh
bCBib29sIGNhbGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCkgeyByZXR1cm4gZmFsc2U7IH0KLQotICAg
IC8vIEFsbG93IFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHRvIGhvb2sgaW4gYXQgdGhlIHJp
Z2h0IHRpbWVzIGluIGxheW91dCgpLCBwYWludCgpIGFuZCBub2RlQXRGbG9hdFBvaW50KCkKLSAg
ICB2aXJ0dWFsIHZvaWQgY2FsY1ZpZXdwb3J0KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5
Vmlld3BvcnRDbGlwKFBhaW50SW5mbyYpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBwb2ludElzSW5z
aWRlVmlld3BvcnRDbGlwKGNvbnN0IEZsb2F0UG9pbnQmIC8qcG9pbnRJblBhcmVudCovKSB7IHJl
dHVybiB0cnVlOyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lSWZMYXlvdXRTaXplQ2hh
bmdlZCgpIHsgfQotCi0gICAgYm9vbCBzZWxmV2lsbFBhaW50KCk7Ci0gICAgdm9pZCB1cGRhdGVD
YWNoZWRCb3VuZGFyaWVzKCk7Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBpc1NWR0NvbnRhaW5lcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KLQotICAgIEZsb2F0UmVjdCBtX29iamVjdEJv
dW5kaW5nQm94OwotICAgIEZsb2F0UmVjdCBtX3N0cm9rZUJvdW5kaW5nQm94OwotICAgIEZsb2F0
UmVjdCBtX3JlcGFpbnRCb3VuZGluZ0JveDsKLQotICAgIGJvb2wgbV9vYmplY3RCb3VuZGluZ0Jv
eFZhbGlkIHsgZmFsc2UgfTsKLSAgICBib29sIG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlIHsgdHJ1
ZSB9OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX1JFTkRFUl9PQkpFQ1QoUmVuZGVyU1ZHQ29udGFpbmVyLCBpc1NWR0NvbnRhaW5lcigpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5D
b250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRk
ZW5Db250YWluZXIuY3BwCmluZGV4IGY4ZWJiMTI3YTdiOTVjZDQxMGFkNzU0M2NlOTZmMTE1MDA5
Y2UyZGQuLjBjYWQ3YmU4YzU4M2ExMTE1ZGMyNWNhYmNmZWMzMmJlNjRjOTA2NDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNv
bnRhaW5lci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcik7CiAKIFJlbmRl
clNWR0hpZGRlbkNvbnRhaW5lcjo6UmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyKFNWR0VsZW1lbnQm
IGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdDb250YWluZXIo
ZWxlbWVudCwgV1RGTW92ZShzdHlsZSkpCisgICAgOiBMZWdhY3lSZW5kZXJTVkdDb250YWluZXIo
ZWxlbWVudCwgV1RGTW92ZShzdHlsZSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5oCmluZGV4IDJkMzVh
NWVmZDJlYzVlNzMzODI5ZWQxY2JiYjc1N2ZmODhiZmU1ZDguLjY3YjlhNDA0MTI0MGEwMGY1N2Q4
ZWUxODEyZDJiNjM1ZGQxZGQwODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaApAQCAtMTksNyArMTksNyBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlJlbmRlclNWR0NvbnRhaW5lci5oIgorI2luY2x1
ZGUgIkxlZ2FjeVJlbmRlclNWR0NvbnRhaW5lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgCkBAIC0yNyw3ICsyNyw3IEBAIGNsYXNzIFNWR0VsZW1lbnQ7CiAKIC8vIFRoaXMgY2xhc3Mg
aXMgZm9yIGNvbnRhaW5lcnMgd2hpY2ggYXJlIG5ldmVyIGRyYXduLCBidXQgZG8gbmVlZCB0byBz
dXBwb3J0IHN0eWxlCiAvLyA8ZGVmcz4sIDxsaW5lYXJHcmFkaWVudD4sIDxyYWRpYWxHcmFkaWVu
dD4gYXJlIGFsbCBnb29kIGV4YW1wbGVzCi1jbGFzcyBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIg
OiBwdWJsaWMgUmVuZGVyU1ZHQ29udGFpbmVyIHsKK2NsYXNzIFJlbmRlclNWR0hpZGRlbkNvbnRh
aW5lciA6IHB1YmxpYyBMZWdhY3lSZW5kZXJTVkdDb250YWluZXIgewogICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyKTsKIHB1YmxpYzoKICAgICBSZW5k
ZXJTVkdIaWRkZW5Db250YWluZXIoU1ZHRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hcmtl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFy
a2VyLmNwcAppbmRleCA5MWRhMDEzMjJlOTVlMTBjN2EwYTdlMTkwYzY3MzU3NmE5NDM2MDcyLi5l
Zjc1ODViNjhiYWUxNDdkMjU4ZDg3OGQ4YzdhZTA1OWY0NTcxYjFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFya2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFya2VyLmNw
cApAQCAtNDcsOSArNDcsOSBAQCB2b2lkIFJlbmRlclNWR1Jlc291cmNlTWFya2VyOjpsYXlvdXQo
KQogICAgICAgICBMZWdhY3lSZW5kZXJTVkdSb290OjphZGRSZXNvdXJjZUZvckNsaWVudEludmFs
aWRhdGlvbih0aGlzKTsKIAogICAgIC8vIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciBvdmVyd3Jp
dGVzIGxheW91dCgpLiBXZSBuZWVkIHRoZQotICAgIC8vIGxheW91dGluZyBvZiBSZW5kZXJTVkdD
b250YWluZXIgZm9yIGNhbGN1bGF0aW5nICBsb2NhbAorICAgIC8vIGxheW91dGluZyBvZiBMZWdh
Y3lSZW5kZXJTVkdDb250YWluZXIgZm9yIGNhbGN1bGF0aW5nICBsb2NhbAogICAgIC8vIHRyYW5z
Zm9ybWF0aW9ucyBhbmQgcmVwYWludC4KLSAgICBSZW5kZXJTVkdDb250YWluZXI6OmxheW91dCgp
OworICAgIExlZ2FjeVJlbmRlclNWR0NvbnRhaW5lcjo6bGF5b3V0KCk7CiB9CiAKIHZvaWQgUmVu
ZGVyU1ZHUmVzb3VyY2VNYXJrZXI6OnJlbW92ZUFsbENsaWVudHNGcm9tQ2FjaGUoYm9vbCBtYXJr
Rm9ySW52YWxpZGF0aW9uKQpAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFJlbmRlclNWR1Jlc291cmNl
TWFya2VyOjphcHBseVZpZXdwb3J0Q2xpcChQYWludEluZm8mIHBhaW50SW5mbykKIAogRmxvYXRS
ZWN0IFJlbmRlclNWR1Jlc291cmNlTWFya2VyOjptYXJrZXJCb3VuZGFyaWVzKGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgbWFya2VyVHJhbnNmb3JtYXRpb24pIGNvbnN0CiB7Ci0gICAgRmxvYXRSZWN0
IGNvb3JkaW5hdGVzID0gUmVuZGVyU1ZHQ29udGFpbmVyOjpyZXBhaW50UmVjdEluTG9jYWxDb29y
ZGluYXRlcygpOworICAgIEZsb2F0UmVjdCBjb29yZGluYXRlcyA9IExlZ2FjeVJlbmRlclNWR0Nv
bnRhaW5lcjo6cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKTsKIAogICAgIC8vIE1hcCBy
ZXBhaW50IHJlY3QgaW50byBwYXJlbnQgY29vcmRpbmF0ZSBzcGFjZSwgaW4gd2hpY2ggdGhlIG1h
cmtlciBib3VuZGFyaWVzIGhhdmUgdG8gYmUgZXZhbHVhdGVkCiAgICAgY29vcmRpbmF0ZXMgPSBs
b2NhbFRvUGFyZW50VHJhbnNmb3JtKCkubWFwUmVjdChjb29yZGluYXRlcyk7CkBAIC0xMjIsNyAr
MTIyLDcgQEAgdm9pZCBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcjo6ZHJhdyhQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgQWZmaW5lVHJhbnNmb3JtJgogICAgIFBhaW50SW5mbyBpbmZvKHBhaW50
SW5mbyk7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGluZm8uY29u
dGV4dCgpKTsKICAgICBpbmZvLmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSk7Ci0gICAgUmVuZGVy
U1ZHQ29udGFpbmVyOjpwYWludChpbmZvLCBJbnRQb2ludCgpKTsKKyAgICBMZWdhY3lSZW5kZXJT
VkdDb250YWluZXI6OnBhaW50KGluZm8sIEludFBvaW50KCkpOwogfQogCiBBZmZpbmVUcmFuc2Zv
cm0gUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXI6Om1hcmtlckNvbnRlbnRUcmFuc2Zvcm1hdGlvbihj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIGNvbnRlbnRUcmFuc2Zvcm1hdGlvbiwgY29uc3QgRmxvYXRQ
b2ludCYgb3JpZ2luLCBmbG9hdCBzdHJva2VXaWR0aCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaAppbmRleCA2OTFmYjg2ZjllZmMwOTNjNTg0
YjIwMGQ5NWRiM2JkZTdiYzllZWQ3Li5hMjNkOWFkMjk4ZTAyOTExMzk4NmM1OTAxYjQzNTE1ZTFk
OWU0MmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1NoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFw
ZS5oCkBAIC00MCw3ICs0MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmxvYXRQ
b2ludDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXI7Ci1jbGFzcyBSZW5kZXJTVkdD
b250YWluZXI7CiBjbGFzcyBSZW5kZXJTVkdQYXRoOwogY2xhc3MgUmVuZGVyU1ZHUmVzb3VyY2U7
CiBjbGFzcyBTVkdHcmFwaGljc0VsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNw
cAppbmRleCA1YjAwMzE1MTRiNzdlMWIxYjIwNGM4NjcyYzI1OTE5MTllMTI5YWVmLi5lMTg4N2Q0
OWQ5MmE4Zjk1MDA3YTJhNTQ0ZDU2MDc3NTQ5YjQ5MTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNv
bnRhaW5lci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIpOwog
CiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxl
Q29udGFpbmVyKFNWR0dyYXBoaWNzRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmJiBzdHls
ZSkKLSAgICA6IFJlbmRlclNWR0NvbnRhaW5lcihlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKKyAg
ICA6IExlZ2FjeVJlbmRlclNWR0NvbnRhaW5lcihlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKICAg
ICAsIG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUodHJ1ZSkKICAgICAsIG1fZGlkVHJhbnNmb3JtVG9S
b290VXBkYXRlKGZhbHNlKQogewpAQCAtNzUsNyArNzUsNyBAQCBib29sIFJlbmRlclNWR1RyYW5z
Zm9ybWFibGVDb250YWluZXI6OmNhbGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCkKIAogU1ZHR3JhcGhp
Y3NFbGVtZW50JiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpncmFwaGljc0VsZW1l
bnQoKQogewotICAgIHJldHVybiBkb3duY2FzdDxTVkdHcmFwaGljc0VsZW1lbnQ+KFJlbmRlclNW
R0NvbnRhaW5lcjo6ZWxlbWVudCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8U1ZHR3JhcGhpY3NF
bGVtZW50PihMZWdhY3lSZW5kZXJTVkdDb250YWluZXI6OmVsZW1lbnQoKSk7CiB9CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3Jt
YWJsZUNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKaW5kZXggMDE0ZGUyNDJhZDNiZGFlYjMzYzE5YTViYjJj
N2NkODM2YWRiOTU0ZS4uMWI5YWVhOWVjMjc2ZWFhZDU2Nzc4YTk1MGJkOTUxNTBiMmFlZDRjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKQEAgLTIwLDEzICsyMCwxMyBAQAogCiAjcHJh
Z21hIG9uY2UKIAotI2luY2x1ZGUgIlJlbmRlclNWR0NvbnRhaW5lci5oIgorI2luY2x1ZGUgIkxl
Z2FjeVJlbmRlclNWR0NvbnRhaW5lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBj
bGFzcyBTVkdHcmFwaGljc0VsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclNWR1RyYW5zZm9ybWFibGVD
b250YWluZXIgZmluYWwgOiBwdWJsaWMgUmVuZGVyU1ZHQ29udGFpbmVyIHsKK2NsYXNzIFJlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXIgZmluYWwgOiBwdWJsaWMgTGVnYWN5UmVuZGVyU1ZH
Q29udGFpbmVyIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFJlbmRlclNWR1RyYW5zZm9y
bWFibGVDb250YWluZXIpOwogcHVibGljOgogICAgIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXIoU1ZHR3JhcGhpY3NFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWlu
ZXIuY3BwCmluZGV4IGUwZDhhYzcwMWI1YjQ3NWY5ZDM4NjAxY2FmY2ZhMzAwNTdkZjBiZjcuLjg2
ZGM0NjI2ZTUzM2M3OWVlZTNjZTRmZGUwZjA4OGNkOGNiYTg1MzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWlu
ZXIuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcik7CiAKIFJlbmRlclNW
R1ZpZXdwb3J0Q29udGFpbmVyOjpSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcihTVkdTVkdFbGVt
ZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQotICAgIDogUmVuZGVyU1ZHQ29udGFp
bmVyKGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpKQorICAgIDogTGVnYWN5UmVuZGVyU1ZHQ29udGFp
bmVyKGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpKQogICAgICwgbV9kaWRUcmFuc2Zvcm1Ub1Jvb3RV
cGRhdGUoZmFsc2UpCiAgICAgLCBtX2lzTGF5b3V0U2l6ZUNoYW5nZWQoZmFsc2UpCiAgICAgLCBt
X25lZWRzVHJhbnNmb3JtVXBkYXRlKHRydWUpCkBAIC00Myw3ICs0Myw3IEBAIFJlbmRlclNWR1Zp
ZXdwb3J0Q29udGFpbmVyOjpSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcihTVkdTVkdFbGVtZW50
JiBlbGVtZW50LCBSCiAKIFNWR1NWR0VsZW1lbnQmIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVy
OjpzdmdTVkdFbGVtZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gZG93bmNhc3Q8U1ZHU1ZHRWxl
bWVudD4oUmVuZGVyU1ZHQ29udGFpbmVyOjplbGVtZW50KCkpOworICAgIHJldHVybiBkb3duY2Fz
dDxTVkdTVkdFbGVtZW50PihMZWdhY3lSZW5kZXJTVkdDb250YWluZXI6OmVsZW1lbnQoKSk7CiB9
CiAKIHZvaWQgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXI6OmRldGVybWluZUlmTGF5b3V0U2l6
ZUNoYW5nZWQoKQpAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgUmVuZGVyU1ZHVmlld3BvcnRDb250
YWluZXI6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYKICAg
ICBpZiAoc3ZnU1ZHRWxlbWVudCgpLmhhc0VtcHR5Vmlld0JveCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBSZW5kZXJTVkdDb250YWluZXI6OnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQp
OworICAgIExlZ2FjeVJlbmRlclNWR0NvbnRhaW5lcjo6cGFpbnQocGFpbnRJbmZvLCBwYWludE9m
ZnNldCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaAppbmRleCBlZjMyN2IxZTgxMTQ3OTdlOWZh
Yjg0ZDRiOGEyOTJlNWQ0NzVlMzllLi5mYzcxMzg4ODdjOTJkMjhiOTRlYWU5OTU5N2Y2NTVmOTQy
NjRkNDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1ZpZXdwb3J0Q29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oCkBAIC0yMiwxMyArMjIsMTMgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlICJSZW5kZXJTVkdDb250YWluZXIuaCIKKyNpbmNsdWRlICJMZWdh
Y3lSZW5kZXJTVkdDb250YWluZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBUaGlz
IGlzIHVzZWQgZm9yIG5vbi1yb290IDxzdmc+IGVsZW1lbnRzIGFuZCA8bWFya2VyPiBlbGVtZW50
cywgbmVpdGhlciBvZiB3aGljaCBhcmUgU1ZHVHJhbnNmb3JtYWJsZQotLy8gdGh1cyB3ZSBpbmhl
cml0IGZyb20gUmVuZGVyU1ZHQ29udGFpbmVyIGluc3RlYWQgb2YgUmVuZGVyU1ZHVHJhbnNmb3Jt
YWJsZUNvbnRhaW5lcgotY2xhc3MgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIgZmluYWwgOiBw
dWJsaWMgUmVuZGVyU1ZHQ29udGFpbmVyIHsKKy8vIHRodXMgd2UgaW5oZXJpdCBmcm9tIExlZ2Fj
eVJlbmRlclNWR0NvbnRhaW5lciBpbnN0ZWFkIG9mIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXIKK2NsYXNzIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIGZpbmFsIDogcHVibGljIExl
Z2FjeVJlbmRlclNWR0NvbnRhaW5lciB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChSZW5k
ZXJTVkdWaWV3cG9ydENvbnRhaW5lcik7CiBwdWJsaWM6CiAgICAgUmVuZGVyU1ZHVmlld3BvcnRD
b250YWluZXIoU1ZHU1ZHRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKaW5kZXggMTA0MjBjMDMx
YmZhOWI4NDgxNmRkNWI5Y2U1MDMyMDdlZGI1OTMwZi4uNjBjMGIxZDQ5MDBhNmFjMGY4ZTlkODRk
NTQwZDI1YWYyODFhMWVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1JlbmRlclN1cHBvcnQuY3BwCkBAIC0xMjYsMTMgKzEyNiwxMyBAQCBib29sIFNWR1JlbmRl
clN1cHBvcnQ6OmNoZWNrRm9yU1ZHUmVwYWludER1cmluZ0xheW91dChjb25zdCBSZW5kZXJFbGVt
ZW50JiByZW5kZQogICAgIC8vIFdoZW4gYSBwYXJlbnQgY29udGFpbmVyIGlzIHRyYW5zZm9ybWVk
IGluIFNWRywgYWxsIGNoaWxkcmVuIHdpbGwgYmUgcGFpbnRlZCBhdXRvbWF0aWNhbGx5CiAgICAg
Ly8gc28gd2UgYXJlIGFibGUgdG8gc2tpcCByZWR1bmRhbnQgcmVwYWludCBjaGVja3MuCiAgICAg
YXV0byBwYXJlbnQgPSByZW5kZXJlci5wYXJlbnQoKTsKLSAgICByZXR1cm4gIShpczxSZW5kZXJT
VkdDb250YWluZXI+KHBhcmVudCkgJiYgZG93bmNhc3Q8UmVuZGVyU1ZHQ29udGFpbmVyPigqcGFy
ZW50KS5kaWRUcmFuc2Zvcm1Ub1Jvb3RVcGRhdGUoKSk7CisgICAgcmV0dXJuICEoaXM8TGVnYWN5
UmVuZGVyU1ZHQ29udGFpbmVyPihwYXJlbnQpICYmIGRvd25jYXN0PExlZ2FjeVJlbmRlclNWR0Nv
bnRhaW5lcj4oKnBhcmVudCkuZGlkVHJhbnNmb3JtVG9Sb290VXBkYXRlKCkpOwogfQogCiAvLyBV
cGRhdGUgYSBib3VuZGluZyBib3ggdGFraW5nIGludG8gYWNjb3VudCB0aGUgdmFsaWRpdHkgb2Yg
dGhlIG90aGVyIGJvdW5kaW5nIGJveC4KIHN0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVPYmplY3RC
b3VuZGluZ0JveChGbG9hdFJlY3QmIG9iamVjdEJvdW5kaW5nQm94LCBib29sJiBvYmplY3RCb3Vu
ZGluZ0JveFZhbGlkLCBjb25zdCBSZW5kZXJPYmplY3QqIG90aGVyLCBGbG9hdFJlY3Qgb3RoZXJC
b3VuZGluZ0JveCkKIHsKLSAgICBib29sIG90aGVyVmFsaWQgPSBpczxSZW5kZXJTVkdDb250YWlu
ZXI+KCpvdGhlcikgPyBkb3duY2FzdDxSZW5kZXJTVkdDb250YWluZXI+KCpvdGhlcikuaXNPYmpl
Y3RCb3VuZGluZ0JveFZhbGlkKCkgOiB0cnVlOworICAgIGJvb2wgb3RoZXJWYWxpZCA9IGlzPExl
Z2FjeVJlbmRlclNWR0NvbnRhaW5lcj4oKm90aGVyKSA/IGRvd25jYXN0PExlZ2FjeVJlbmRlclNW
R0NvbnRhaW5lcj4oKm90aGVyKS5pc09iamVjdEJvdW5kaW5nQm94VmFsaWQoKSA6IHRydWU7CiAg
ICAgaWYgKCFvdGhlclZhbGlkKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IGY4MzVm
MGU5ZWZlODcyZmVkMTMwNjJkNDljNWVhNTFmZDY4OGIzMjIuLjRlOGM3MDExOWQwNDkzODMyZWQ2
NjQxZTBiODYyYTI1NTZiYjkyMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNTM3LDcgKzUzNyw3IEBAIHZvaWQg
d3JpdGVTVkdSZXNvdXJjZUNvbnRhaW5lcihUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyU1ZH
UmVzb3VyY2VDb250YWluZXImCiAgICAgd3JpdGVDaGlsZHJlbih0cywgcmVzb3VyY2UsIGJlaGF2
aW9yKTsKIH0KIAotdm9pZCB3cml0ZVNWR0NvbnRhaW5lcihUZXh0U3RyZWFtJiB0cywgY29uc3Qg
UmVuZGVyU1ZHQ29udGFpbmVyJiBjb250YWluZXIsIE9wdGlvblNldDxSZW5kZXJBc1RleHRGbGFn
PiBiZWhhdmlvcikKK3ZvaWQgd3JpdGVTVkdDb250YWluZXIoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IExlZ2FjeVJlbmRlclNWR0NvbnRhaW5lciYgY29udGFpbmVyLCBPcHRpb25TZXQ8UmVuZGVyQXNU
ZXh0RmxhZz4gYmVoYXZpb3IpCiB7CiAgICAgLy8gQ3VycmVudGx5IFJlbmRlclNWR1Jlc291cmNl
RmlsdGVyUHJpbWl0aXZlIGhhcyBubyBtZWFuaW5nZnVsIG91dHB1dC4KICAgICBpZiAoY29udGFp
bmVyLmlzU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmgKaW5kZXggZWM4ODQ1NTM1ZjA4
NWQ2MDY0MDFjM2M2ZGJiYTExODcwOWNlNDlhYi4uYWUyZmVmOGM2OGMwOGYyNmI2MTY0ZmE5YzEy
MGQwZGY4NDQ3NDUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJUcmVlQXNUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJUcmVlQXNUZXh0LmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgTGVnYWN5UmVuZGVy
U1ZHU2hhcGU7CiBjbGFzcyBOb2RlOwogY2xhc3MgUmVuZGVySW1hZ2U7CiBjbGFzcyBSZW5kZXJP
YmplY3Q7Ci1jbGFzcyBSZW5kZXJTVkdDb250YWluZXI7CitjbGFzcyBMZWdhY3lSZW5kZXJTVkdD
b250YWluZXI7CiBjbGFzcyBSZW5kZXJTVkdHcmFkaWVudFN0b3A7CiBjbGFzcyBSZW5kZXJTVkdJ
bWFnZTsKIGNsYXNzIFJlbmRlclNWR0lubGluZVRleHQ7CkBAIC01OCw3ICs1OCw3IEBAIHZvaWQg
d3JpdGUoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgUmVuZGVyU1ZHU2hhcGUmLCBPcHRpb25TZXQ8
UmVuZGVyQXNUZXh0RmxhZz4pCiAjZW5kaWYKIHZvaWQgd3JpdGVTVkdHcmFkaWVudFN0b3AoV1RG
OjpUZXh0U3RyZWFtJiwgY29uc3QgUmVuZGVyU1ZHR3JhZGllbnRTdG9wJiwgT3B0aW9uU2V0PFJl
bmRlckFzVGV4dEZsYWc+KTsKIHZvaWQgd3JpdGVTVkdSZXNvdXJjZUNvbnRhaW5lcihXVEY6OlRl
eHRTdHJlYW0mLCBjb25zdCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciYsIE9wdGlvblNldDxS
ZW5kZXJBc1RleHRGbGFnPik7Ci12b2lkIHdyaXRlU1ZHQ29udGFpbmVyKFdURjo6VGV4dFN0cmVh
bSYsIGNvbnN0IFJlbmRlclNWR0NvbnRhaW5lciYsIE9wdGlvblNldDxSZW5kZXJBc1RleHRGbGFn
Pik7Cit2b2lkIHdyaXRlU1ZHQ29udGFpbmVyKFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IExlZ2Fj
eVJlbmRlclNWR0NvbnRhaW5lciYsIE9wdGlvblNldDxSZW5kZXJBc1RleHRGbGFnPik7CiB2b2lk
IHdyaXRlU1ZHSW1hZ2UoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgUmVuZGVyU1ZHSW1hZ2UmLCBP
cHRpb25TZXQ8UmVuZGVyQXNUZXh0RmxhZz4pOwogdm9pZCB3cml0ZVNWR0lubGluZVRleHQoV1RG
OjpUZXh0U3RyZWFtJiwgY29uc3QgUmVuZGVyU1ZHSW5saW5lVGV4dCYsIE9wdGlvblNldDxSZW5k
ZXJBc1RleHRGbGFnPik7CiB2b2lkIHdyaXRlU1ZHVGV4dChXVEY6OlRleHRTdHJlYW0mLCBjb25z
dCBSZW5kZXJTVkdUZXh0JiwgT3B0aW9uU2V0PFJlbmRlckFzVGV4dEZsYWc+KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIu
Y3BwCmluZGV4IGZmOTBmOGQ0MmEzMzI1NDlmZDUxNmYyMDI2MTAzNjA0YmJiNzIyZGQuLmVjMzY5
ZjIxZDlkYTlkYWFiNWVjZTM2OWFlZmU5NjMwOTZiMDRkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJMZWdhY3lSZW5k
ZXJTVkdDb250YWluZXIuaCIKICNpbmNsdWRlICJMZWdhY3lSZW5kZXJTVkdSb290LmgiCiAjaW5j
bHVkZSAiUmVuZGVyQnV0dG9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ291bnRlci5oIgpAQCAtNDgs
NyArNDksNiBAQAogI2luY2x1ZGUgIlJlbmRlclJ1YnkuaCIKICNpbmNsdWRlICJSZW5kZXJSdWJ5
QmFzZS5oIgogI2luY2x1ZGUgIlJlbmRlclJ1YnlSdW4uaCIKLSNpbmNsdWRlICJSZW5kZXJTVkdD
b250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5k
ZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVGV4dC5oIgpAQCAtMjgxLDggKzI4MSw4
IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OmF0dGFjaEludGVybmFsKFJlbmRlckVsZW1lbnQm
IHBhcmVudCwgUmVuZGVyUHRyPFJlbmRlck9iCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBpZiAoaXM8UmVuZGVyU1ZHQ29udGFpbmVyPihwYXJlbnQpKSB7Ci0gICAgICAgIHN2Z0J1aWxk
ZXIoKS5hdHRhY2goZG93bmNhc3Q8UmVuZGVyU1ZHQ29udGFpbmVyPihwYXJlbnQpLCBXVEZNb3Zl
KGNoaWxkKSwgYmVmb3JlQ2hpbGQpOworICAgIGlmIChpczxMZWdhY3lSZW5kZXJTVkdDb250YWlu
ZXI+KHBhcmVudCkpIHsKKyAgICAgICAgc3ZnQnVpbGRlcigpLmF0dGFjaChkb3duY2FzdDxMZWdh
Y3lSZW5kZXJTVkdDb250YWluZXI+KHBhcmVudCksIFdURk1vdmUoY2hpbGQpLCBiZWZvcmVDaGls
ZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM3OSw4ICszNzksOCBAQCBSZW5kZXJQ
dHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJUcmVlQnVpbGRlcjo6ZGV0YWNoKFJlbmRlckVsZW1lbnQm
IHBhcmVudCwgUmVuZGVyTwogICAgIGlmIChpczxSZW5kZXJTVkdJbmxpbmU+KHBhcmVudCkpCiAg
ICAgICAgIHJldHVybiBzdmdCdWlsZGVyKCkuZGV0YWNoKGRvd25jYXN0PFJlbmRlclNWR0lubGlu
ZT4ocGFyZW50KSwgY2hpbGQpOwogCi0gICAgaWYgKGlzPFJlbmRlclNWR0NvbnRhaW5lcj4ocGFy
ZW50KSkKLSAgICAgICAgcmV0dXJuIHN2Z0J1aWxkZXIoKS5kZXRhY2goZG93bmNhc3Q8UmVuZGVy
U1ZHQ29udGFpbmVyPihwYXJlbnQpLCBjaGlsZCk7CisgICAgaWYgKGlzPExlZ2FjeVJlbmRlclNW
R0NvbnRhaW5lcj4ocGFyZW50KSkKKyAgICAgICAgcmV0dXJuIHN2Z0J1aWxkZXIoKS5kZXRhY2go
ZG93bmNhc3Q8TGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyPihwYXJlbnQpLCBjaGlsZCk7CiAKICNp
ZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKICAgICBpZiAoaXM8UmVuZGVyU1ZHUm9v
dD4ocGFyZW50KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlQnVpbGRlclNWRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJTVkcuY3BwCmluZGV4IDllODBhYzRjOTg2OTU3MWM2YzFl
N2E0YmRmOTllMzQ5NTFhYjk5MTMuLjhiMzVlYzVlMGIzODViYTBlNmVlZmI1MGU3NmZhOTc1MWVh
NWNlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlQnVpbGRlclNWRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVCdWlsZGVyU1ZHLmNwcApAQCAtMjYsOCArMjYsOCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVCdWlsZGVyU1ZHLmgiCiAKKyNpbmNsdWRl
ICJMZWdhY3lSZW5kZXJTVkdDb250YWluZXIuaCIKICNpbmNsdWRlICJMZWdhY3lSZW5kZXJTVkdS
b290LmgiCi0jaW5jbHVkZSAiUmVuZGVyU1ZHQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
U1ZHSW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUm9vdC5oIgogI2luY2x1ZGUgIlJlbmRl
clNWR1RleHQuaCIKQEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6U1ZH
OjphdHRhY2goTGVnYWN5UmVuZGVyU1ZHUm9vdCYgcGFyZW50LCBSZW5kZXJQdHI8UmVuZGUKICAg
ICBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50V2FzQWRkZWRUb1RyZWUoY2hpbGRUb0FkZCk7CiB9
CiAKLXZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OlNWRzo6YXR0YWNoKFJlbmRlclNWR0NvbnRhaW5l
ciYgcGFyZW50LCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBi
ZWZvcmVDaGlsZCkKK3ZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OlNWRzo6YXR0YWNoKExlZ2FjeVJl
bmRlclNWR0NvbnRhaW5lciYgcGFyZW50LCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwg
UmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKICAgICBhdXRvJiBjaGlsZFRvQWRkID0gKmNo
aWxkOwogICAgIG1fYnVpbGRlci5hdHRhY2hUb1JlbmRlckVsZW1lbnQocGFyZW50LCBXVEZNb3Zl
KGNoaWxkKSwgYmVmb3JlQ2hpbGQpOwpAQCAtMTE3LDcgKzExNyw3IEBAIFJlbmRlclB0cjxSZW5k
ZXJPYmplY3Q+IFJlbmRlclRyZWVCdWlsZGVyOjpTVkc6OmRldGFjaChSZW5kZXJTVkdJbmxpbmUm
IHBhcmVudCwKICAgICByZXR1cm4gdGFrZW5DaGlsZDsKIH0KIAotUmVuZGVyUHRyPFJlbmRlck9i
amVjdD4gUmVuZGVyVHJlZUJ1aWxkZXI6OlNWRzo6ZGV0YWNoKFJlbmRlclNWR0NvbnRhaW5lciYg
cGFyZW50LCBSZW5kZXJPYmplY3QmIGNoaWxkKQorUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVu
ZGVyVHJlZUJ1aWxkZXI6OlNWRzo6ZGV0YWNoKExlZ2FjeVJlbmRlclNWR0NvbnRhaW5lciYgcGFy
ZW50LCBSZW5kZXJPYmplY3QmIGNoaWxkKQogewogICAgIFNWR1Jlc291cmNlc0NhY2hlOjpjbGll
bnRXaWxsQmVSZW1vdmVkRnJvbVRyZWUoY2hpbGQpOwogICAgIHJldHVybiBtX2J1aWxkZXIuZGV0
YWNoRnJvbVJlbmRlckVsZW1lbnQocGFyZW50LCBjaGlsZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJTVkcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlclNWRy5oCmluZGV4
IGYyY2FkODBlOTRmYjYyODQ4N2U5OWJkYjE3MmRkZWE0MWRlZWVhMGMuLjc2NWZlNDBkNjE1YzM2
OTU3MGRkZjM2NDc4NWM3MmZkNjQ4ODk0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlclNWRy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlclNWRy5oCkBAIC0zMCw3ICsz
MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIExlZ2FjeVJlbmRlclNWR1Jvb3Q7
Ci1jbGFzcyBSZW5kZXJTVkdDb250YWluZXI7CitjbGFzcyBMZWdhY3lSZW5kZXJTVkdDb250YWlu
ZXI7CiBjbGFzcyBSZW5kZXJTVkdJbmxpbmU7CiBjbGFzcyBSZW5kZXJTVkdSb290OwogY2xhc3Mg
UmVuZGVyU1ZHVGV4dDsKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIFNWRyhSZW5kZXJU
cmVlQnVpbGRlciYpOwogCiAgICAgdm9pZCBhdHRhY2goTGVnYWN5UmVuZGVyU1ZHUm9vdCYgcGFy
ZW50LCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVD
aGlsZCk7Ci0gICAgdm9pZCBhdHRhY2goUmVuZGVyU1ZHQ29udGFpbmVyJiBwYXJlbnQsIFJlbmRl
clB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKTsKKyAg
ICB2b2lkIGF0dGFjaChMZWdhY3lSZW5kZXJTVkdDb250YWluZXImIHBhcmVudCwgUmVuZGVyUHRy
PFJlbmRlck9iamVjdD4gY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpOwogICAgIHZv
aWQgYXR0YWNoKFJlbmRlclNWR0lubGluZSYgcGFyZW50LCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0
PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCk7CiAjaWYgRU5BQkxFKExBWUVSX0JB
U0VEX1NWR19FTkdJTkUpCiAgICAgdm9pZCBhdHRhY2goUmVuZGVyU1ZHUm9vdCYgcGFyZW50LCBS
ZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCk7
CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGF0dGFjaChSZW5kZXJTVkdUZXh0
JiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJl
Zm9yZUNoaWxkKTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGRldGFjaChMZWdhY3lS
ZW5kZXJTVkdSb290JiBwYXJlbnQsIFJlbmRlck9iamVjdCYgY2hpbGQpIFdBUk5fVU5VU0VEX1JF
VFVSTjsKLSAgICBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBkZXRhY2goUmVuZGVyU1ZHQ29udGFp
bmVyJiBwYXJlbnQsIFJlbmRlck9iamVjdCYgY2hpbGQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAg
ICBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBkZXRhY2goTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVy
JiBwYXJlbnQsIFJlbmRlck9iamVjdCYgY2hpbGQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKICAgICBS
ZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBkZXRhY2goUmVuZGVyU1ZHSW5saW5lJiBwYXJlbnQsIFJl
bmRlck9iamVjdCYgY2hpbGQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKICNpZiBFTkFCTEUoTEFZRVJf
QkFTRURfU1ZHX0VOR0lORSkKICAgICBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBkZXRhY2goUmVu
ZGVyU1ZHUm9vdCYgcGFyZW50LCBSZW5kZXJPYmplY3QmIGNoaWxkKSBXQVJOX1VOVVNFRF9SRVRV
Uk47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAppbmRleCA3ZTVkNjBl
OGIxMThkOTJlNjQ2MjBmNjRlYTcyN2UxMjQ4M2QyOWFlLi5jNDc0MzQwNjIyMmI1NWRhMDUxY2Zh
ZWFmM2VhYzJjOTUxZWI2NTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
dGVybkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVu
dC5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNp
bmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlBhdHRlcm5BdHRyaWJ1dGVzLmgiCi0j
aW5jbHVkZSAiUmVuZGVyU1ZHQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3Vy
Y2VQYXR0ZXJuLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJT
VkdGaXRUb1ZpZXdCb3guaCIK
</data>
<flag name="review"
          id="474885"
          type_id="1"
          status="+"
          setter="rbuis"
    />
          </attachment>
      

    </bug>

</bugzilla>