<?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>201724</bug_id>
          
          <creation_ts>2019-09-12 10:02:56 -0700</creation_ts>
          <short_desc>[Cocoa] Text indicator for an image link on the front page of apple.com looks wrong</short_desc>
          <delta_ts>2019-09-12 12:36:08 -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>HTML Editing</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1570285</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-09-12 10:02:56 -0700</bug_when>
    <thetext>The front page of apple.com has changed since the time of reporting, but I created a simple reduction here:

- Go to https://whsieh.github.io/examples/text-indicator-1
- On iPad, long press the image to begin a drag
  On macOS, three-finger tap or force click to bring up the link preview
- Expected: the entire link (the image) should be included in the text indicator snapshot
- Observed: only a tiny rect at (0, 0) is highlighted/dragged</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570286</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-09-12 10:03:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/54622894&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570290</commentid>
    <comment_count>2</comment_count>
      <attachid>378653</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-09-12 10:17:19 -0700</bug_when>
    <thetext>Created attachment 378653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570293</commentid>
    <comment_count>3</comment_count>
      <attachid>378654</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-09-12 10:25:58 -0700</bug_when>
    <thetext>Created attachment 378654
Fix a ChangeLog typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570294</commentid>
    <comment_count>4</comment_count>
      <attachid>378655</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-09-12 10:26:29 -0700</bug_when>
    <thetext>Created attachment 378655
Fix a ChangeLog typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570332</commentid>
    <comment_count>5</comment_count>
      <attachid>378655</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-12 12:36:06 -0700</bug_when>
    <thetext>Comment on attachment 378655
Fix a ChangeLog typo

Clearing flags on attachment: 378655

Committed r249813: &lt;https://trac.webkit.org/changeset/249813&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570333</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-12 12:36:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378653</attachid>
            <date>2019-09-12 10:17:19 -0700</date>
            <delta_ts>2019-09-12 10:25:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201724-20190912101718.patch</filename>
            <type>text/plain</type>
            <size>8610</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5Nzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY4YmMzM2RlNjFlY2Qy
NjIzZTY5MTg0YmI4Y2NiNGFiMjIzOTQxZS4uMTM1ODA1MTRjMzc1NmMyYmVlYmUzMTU1NGUxZmYz
ZDg5NWQ2YzI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE5LTA5LTEyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVGV4
dCBpbmRpY2F0b3IgZm9yIGFuIGltYWdlIGxpbmsgb24gdGhlIGZyb250IHBhZ2Ugb2YgYXBwbGUu
Y29tIGxvb2tzIHdyb25nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDE3MjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0NjIyODk0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY29tcHV0aW5n
IHRoZSBib3VuZHMgb2YgdGhlIHJhbmdlICg8YT4sIDApIHRvICg8YT4sIDEpIGZvciBhIHRleHQg
aW5kaWNhdG9yIHNuYXBzaG90IHdoZXJlIDxhPiBpcyBhIGxpbmsKKyAgICAgICAgd2l0aCBhIHNp
bmdsZSBub24tYnJlYWtpbmcgd2hpdGVzcGFjZSBjaGFyYWN0ZXIsIHdlIGN1cnJlbnRseSB1c2Ug
dGhlIHRleHQgcmVjdCBvZiB0aGUgc2luZ2xlIHNwYWNlLiBUaGlzIGxlYWRzCisgICAgICAgIHRv
IGEgY29uZnVzaW5nIHRleHQgaW5kaWNhdG9yLCBhcyB0aGUgcmVzdWx0aW5nIHNuYXBzaG90IGlz
IGEgdGlueSBibGFuayBzcXVhcmUgaW4gdGhlIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGUKKyAgICAg
ICAgbGluay4gVGhpcyBwcm9ibGVtIG1hbmlmZXN0cyB3aGVuIHN0YXJ0aW5nIGEgZHJhZyBvciBz
aG93aW5nIHRoZSBzeXN0ZW0gY29udGV4dCBtZW51IG9uIGlPUywgb3IgZm9yY2UgY2xpY2tpbmcK
KyAgICAgICAgb3IgdGhyZWUtZmluZ2VyIHRhcHBpbmcgdG8gc2hvdyBhIHByZXZpZXcgb24gbWFj
T1MuCisKKyAgICAgICAgVG8gYWRkcmVzcyB0aGlzIHNjZW5hcmlvLCB0d2VhayB0aGUgaGV1cmlz
dGljIGluIHRoZSBjYXNlIHdoZXJlIHRoZSB0ZXh0IGluZGljYXRvciBvcHRpb24KKyAgICAgICAg
VGV4dEluZGljYXRvck9wdGlvblVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxsQ29udGVudEZvckNv
bXBsZXhSYW5nZXMgaXMgc3BlY2lmaWVkLCBzdWNoIHRoYXQgd2UgY29uc2lkZXIgYSByYW5nZQor
ICAgICAgICBjb250YWluaW5nIG9ubHkgdGV4dCB3aXRoIHdoaXRlc3BhY2VzIHRvIGJlICJjb21w
bGV4IjsgYWRkaXRpb25hbGx5LCBpbnN0ZWFkIG9mIGZhbGxpbmcgYmFjayB0byB0aGUgcmFuZ2Un
cworICAgICAgICBib3VuZGluZyByZWN0ICh3aGljaCBpbiB0aGlzIGNhc2UgaXMgc3RpbGwgdGlu
eSksIGZhbGwgYmFjayB0byB0aGUgY29tbW9uIGFuY2VzdG9yIGNvbnRhaW5lcidzIGJvdW5kaW5n
IHJlY3QsCisgICAgICAgIHdoaWNoIGVuY29tcGFzc2VzIG5vdCBvbmx5IHRoZSB0ZXh0IGluc2lk
ZSB0aGUgcmFuZ2UgYnV0IGFsc28gdGhlIGVsZW1lbnQgY29udGFpbmluZyB0aGUgcmFuZ2UgKGlu
IHRoaXMgY2FzZSwKKyAgICAgICAgdGhlIGFuY2hvciBlbGVtZW50KS4KKworICAgICAgICBUZXN0
OiBmYXN0L3RleHQtaW5kaWNhdG9yL3RleHQtaW5kaWNhdG9yLWVtcHR5LWxpbmsuaHRtbAorCisg
ICAgICAgICogcGFnZS9UZXh0SW5kaWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRh
aW5zT25seVdoaXRlU3BhY2VUZXh0KToKKworICAgICAgICBBZGQgYSBoZWxwZXIgdG8gZGV0ZXJt
aW5lIHdoZXRoZXIgYSBSYW5nZSBpcyBjb21wcmlzZWQgb25seSBvZiByZW5kZXJlZCB0ZXh0IHRo
YXQgb25seSBjb250YWlucyB3aGl0ZXNwYWNlCisgICAgICAgIGNoYXJhY3RlcnMuCisKKyAgICAg
ICAgKFdlYkNvcmU6OmluaXRpYWxpemVJbmRpY2F0b3IpOgorCisgICAgICAgIFNlZSBDaGFuZ2VM
b2cgZW50cnkgYWJvdmUgZm9yIG1vcmUgZGV0YWlsLgorCiAyMDE5LTA5LTExICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIERyb3AgYW5pbWF0
aW9uIHdoZW4gZHJhZ2dpbmcgaW1hZ2VzIGZyb20gUGhvdG9zIHRvIFdlYktpdDIgTWFpbCBjb21w
b3NlIGlzIGluY29ycmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9UZXh0SW5k
aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5jcHAKaW5kZXgg
YTNmNzkwMDM2MTBiNzBlNGQyMjRiZjY3NjQ1YTE4NmUyMGEwNzkzNy4uMmI5MzkwYzFjNjNiNWEw
OGM2MjliYjI4MDBiMzk4NTkwNTBlMDI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9UZXh0SW5kaWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0
b3IuY3BwCkBAIC0yOTEsNiArMjkxLDE2IEBAIHN0YXRpYyBib29sIGhhc0FueUlsbGVnaWJsZUNv
bG9ycyhUZXh0SW5kaWNhdG9yRGF0YSYgZGF0YSwgY29uc3QgQ29sb3ImIGJhY2tncm91CiAgICAg
cmV0dXJuICFoYXNPbmx5TGVnaWJsZVRleHRDb2xvcnMgfHwgdGV4dENvbG9ycy5pc0VtcHR5KCk7
CiB9CiAKK3N0YXRpYyBib29sIGNvbnRhaW5zT25seVdoaXRlU3BhY2VUZXh0KGNvbnN0IFJhbmdl
JiByYW5nZSkKK3sKKyAgICBhdXRvKiBzdG9wID0gcmFuZ2UucGFzdExhc3ROb2RlKCk7CisgICAg
Zm9yIChhdXRvKiBub2RlID0gcmFuZ2UuZmlyc3ROb2RlKCk7IG5vZGUgJiYgbm9kZSAhPSBzdG9w
OyBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbm9kZSkpIHsKKyAgICAgICAgaWYgKCFpczxS
ZW5kZXJUZXh0Pihub2RlLT5yZW5kZXJlcigpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgICAgcmV0dXJuIHBsYWluVGV4dFJlcGxhY2luZ05vQnJlYWtTcGFjZSgmcmFuZ2Up
LnN0cmlwV2hpdGVTcGFjZSgpLmlzRW1wdHkoKTsKK30KKwogc3RhdGljIGJvb2wgaW5pdGlhbGl6
ZUluZGljYXRvcihUZXh0SW5kaWNhdG9yRGF0YSYgZGF0YSwgRnJhbWUmIGZyYW1lLCBjb25zdCBS
YW5nZSYgcmFuZ2UsIEZsb2F0U2l6ZSBtYXJnaW4sIGJvb2wgaW5kaWNhdGVzQ3VycmVudFNlbGVj
dGlvbikKIHsKICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpKQpAQCAt
MzEyLDcgKzMyMiwxNCBAQCBzdGF0aWMgYm9vbCBpbml0aWFsaXplSW5kaWNhdG9yKFRleHRJbmRp
Y2F0b3JEYXRhJiBkYXRhLCBGcmFtZSYgZnJhbWUsIGNvbnN0IFJhbgogCiAgICAgRnJhbWVTZWxl
Y3Rpb246OlRleHRSZWN0YW5nbGVIZWlnaHQgdGV4dFJlY3RIZWlnaHQgPSAoZGF0YS5vcHRpb25z
ICYgVGV4dEluZGljYXRvck9wdGlvblRpZ2h0bHlGaXRDb250ZW50KSA/IEZyYW1lU2VsZWN0aW9u
OjpUZXh0UmVjdGFuZ2xlSGVpZ2h0OjpUZXh0SGVpZ2h0IDogRnJhbWVTZWxlY3Rpb246OlRleHRS
ZWN0YW5nbGVIZWlnaHQ6OlNlbGVjdGlvbkhlaWdodDsKIAotICAgIGlmICgoZGF0YS5vcHRpb25z
ICYgVGV4dEluZGljYXRvck9wdGlvblVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxsQ29udGVudEZv
ckNvbXBsZXhSYW5nZXMpICYmIChoYXNOb25JbmxpbmVPclJlcGxhY2VkRWxlbWVudHMocmFuZ2Up
IHx8IHRyZWF0UmFuZ2VBc0NvbXBsZXhEdWVUb0lsbGVnaWJsZVRleHRDb2xvcnMpKQorICAgIGJv
b2wgdXNlQm91bmRpbmdSZWN0QW5kUGFpbnRBbGxDb250ZW50Rm9yQ29tcGxleFJhbmdlcyA9IGRh
dGEub3B0aW9ucyAmIFRleHRJbmRpY2F0b3JPcHRpb25Vc2VCb3VuZGluZ1JlY3RBbmRQYWludEFs
bENvbnRlbnRGb3JDb21wbGV4UmFuZ2VzOworICAgIGlmICh1c2VCb3VuZGluZ1JlY3RBbmRQYWlu
dEFsbENvbnRlbnRGb3JDb21wbGV4UmFuZ2VzICYmIGNvbnRhaW5zT25seVdoaXRlU3BhY2VUZXh0
KHJhbmdlKSkgeworICAgICAgICBhdXRvIGNvbW1vbkFuY2VzdG9yQ29udGFpbmVyID0gbWFrZVJl
ZlB0cihyYW5nZS5jb21tb25BbmNlc3RvckNvbnRhaW5lcigpKTsKKyAgICAgICAgaWYgKGF1dG8q
IGNvbnRhaW5lclJlbmRlcmVyID0gY29tbW9uQW5jZXN0b3JDb250YWluZXItPnJlbmRlcmVyKCkp
IHsKKyAgICAgICAgICAgIGRhdGEub3B0aW9ucyB8PSBUZXh0SW5kaWNhdG9yT3B0aW9uUGFpbnRB
bGxDb250ZW50OworICAgICAgICAgICAgdGV4dFJlY3RzLmFwcGVuZChjb250YWluZXJSZW5kZXJl
ci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYg
KHVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxsQ29udGVudEZvckNvbXBsZXhSYW5nZXMgJiYgKHRy
ZWF0UmFuZ2VBc0NvbXBsZXhEdWVUb0lsbGVnaWJsZVRleHRDb2xvcnMgfHwgaGFzTm9uSW5saW5l
T3JSZXBsYWNlZEVsZW1lbnRzKHJhbmdlKSkpCiAgICAgICAgIGRhdGEub3B0aW9ucyB8PSBUZXh0
SW5kaWNhdG9yT3B0aW9uUGFpbnRBbGxDb250ZW50OwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgZWxzZSBpZiAoZGF0YS5vcHRpb25zICYgVGV4dEluZGljYXRvck9wdGlvblVzZVNlbGVj
dGlvblJlY3RGb3JTaXppbmcpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzUzZWEwNzgxY2ZiZjg1ZDAwODVmM2UzNWRiODZi
ZDk5NjBhYzg5OS4uMTk4YWU5N2M2ZDIwNWY1M2RjNGE4NmEyNjQxZDdmY2NlYWI2MGY5ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5LTEyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVGV4dCBpbmRpY2F0b3IgZm9yIGFuIGlt
YWdlIGxpbmsgb24gdGhlIGZyb250IHBhZ2Ugb2YgYXBwbGUuY29tIGxvb2tzIHdyb25nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3MjQKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzU0NjIyODk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBsYXlvdXQgdGVzdCB0byBleGNlcnNpemUg
dGhpcyBzY2VuYXJpby4KKworICAgICAgICAqIGZhc3QvdGV4dC1pbmRpY2F0b3IvdGV4dC1pbmRp
Y2F0b3ItZW1wdHktbGluay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4
dC1pbmRpY2F0b3IvdGV4dC1pbmRpY2F0b3ItZW1wdHktbGluay5odG1sOiBBZGRlZC4KKwogMjAx
OS0wOS0xMSAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDk3NTMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3RleHQtaW5kaWNhdG9yL3RleHQtaW5kaWNhdG9yLWVtcHR5LWxpbmstZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWluZGljYXRvci90ZXh0LWluZGljYXRvci1lbXB0eS1s
aW5rLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OGY0MWM4MGM0MjM0YzY3ZjBkMWE1MzE3MzZm
NTEyYzU0OTA1NzEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWlu
ZGljYXRvci90ZXh0LWluZGljYXRvci1lbXB0eS1saW5rLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitQQVNTIDAgaXMgPj0gYm91bmRpbmdSZWN0LngKK1BBU1MgMCBpcyA+PSBib3VuZGlu
Z1JlY3QueQorUEFTUyBib3VuZGluZ1JlY3Qud2lkdGggaXMgPj0gaW5uZXJXaWR0aAorUEFTUyBi
b3VuZGluZ1JlY3QuaGVpZ2h0IGlzID49IGlubmVySGVpZ2h0CitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK8KgCitUbyB0ZXN0IG1hbnVhbGx5LCBmb3Jj
ZSBjbGljayBvbiBtYWNPUyBvciBiZWdpbiBhIGRyYWcgb24gaVBhZE9TIGhlcmUuIFRoZSBwcmV2
aWV3IGhpZ2hsaWdodCByZWN0IG9yIHRhcmdldGVkIGRyYWcgcHJldmlldyAocmVzcGVjdGl2ZWx5
KSBzaG91bGQgZW5jb21wYXNzIHRoZSBlbnRpcmUgd2luZG93LCBpbnN0ZWFkIG9mIGp1c3QgYSB0
aW55IHBpZWNlIG9mIGVtcHR5IHRleHQgaW4gdGhlIHVwcGVyIGxlZnQgaGFuZCBjb3JuZXIuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC1pbmRpY2F0b3IvdGV4dC1pbmRpY2F0b3ItZW1wdHktbGluay5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0LWluZGljYXRvci90ZXh0LWluZGljYXRvci1lbXB0eS1saW5rLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjM5NzNmNjIxZTg4NmFlNDI1MDcyMWU3NjE0ZjFmMTA4MWUxM2QwNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1pbmRpY2F0b3IvdGV4dC1pbmRpY2F0
b3ItZW1wdHktbGluay5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBp
bml0aWFsLXNjYWxlPTEiPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAgIGh0bWwsIGJvZHkgeworICAgICAgICB3
aWR0aDogMTAwJTsKKyAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICBtYXJnaW46IDA7Cisg
ICAgfQorCisgICAgLmZ1bGxzY3JlZW4geworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgICAgIHRvcDogMDsKKyAgICAgICAgbGVmdDogMDsKKyAgICAgICAgd2lkdGg6IDEwMCU7Cisg
ICAgICAgIGhlaWdodDogMTAwJTsKKyAgICB9CisKKyAgICBkaXYuZnVsbHNjcmVlbiB7CisgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsKKyAgICAgICAgdGV4dC1hbGlnbjogY2Vu
dGVyOworICAgICAgICB6LWluZGV4OiAtMTAwOworICAgICAgICBkaXNwbGF5OiBmbGV4OworICAg
ICAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRl
cjsKKyAgICB9CisKKyAgICBpbWcgeworICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgaGVp
Z2h0OiAxMDAlOworICAgICAgICBvYmplY3QtZml0OiBjb250YWluOworICAgIH0KKworICAgIGEg
eworICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CisgICAgfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxhIGNsYXNzPSJmdWxsc2NyZWVuIiBocmVmPSJodHRwczovL3d3dy5h
cHBsZS5jb20iPiZuYnNwOzwvYT4KKyAgICA8ZGl2IGNsYXNzPSJmdWxsc2NyZWVuIiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVG8g
dGVzdCBtYW51YWxseSwgZm9yY2UgY2xpY2sgb24gbWFjT1Mgb3IgYmVnaW4gYSBkcmFnIG9uIGlQ
YWRPUyBoZXJlLiBUaGUgcHJldmlldyBoaWdobGlnaHQgcmVjdCBvciB0YXJnZXRlZCBkcmFnIHBy
ZXZpZXcgKHJlc3BlY3RpdmVseSkgc2hvdWxkIGVuY29tcGFzcyB0aGUgZW50aXJlIHdpbmRvdywg
aW5zdGVhZCBvZiBqdXN0IGEgdGlueSBwaWVjZSBvZiBlbXB0eSB0ZXh0IGluIHRoZSB1cHBlciBs
ZWZ0IGhhbmQgY29ybmVyLiIpOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
aWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNv
bnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKKyAgICAgICAgcmFuZ2Uuc2VsZWN0
Tm9kZUNvbnRlbnRzKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImEuZnVsbHNjcmVlbiIpKTsKKwor
ICAgICAgICBjb25zdCBpbmRpY2F0b3IgPSBpbnRlcm5hbHMudGV4dEluZGljYXRvckZvclJhbmdl
KHJhbmdlLCB7IHVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxsQ29udGVudEZvckNvbXBsZXhSYW5n
ZXMgOiB0cnVlIH0pOworICAgICAgICBib3VuZGluZ1JlY3QgPSBpbmRpY2F0b3IudGV4dEJvdW5k
aW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlczsKKworICAgICAgICBzaG91bGRCZUdyZWF0ZXJU
aGFuT3JFcXVhbCgiMCIsICJib3VuZGluZ1JlY3QueCIpOworICAgICAgICBzaG91bGRCZUdyZWF0
ZXJUaGFuT3JFcXVhbCgiMCIsICJib3VuZGluZ1JlY3QueSIpOworICAgICAgICBzaG91bGRCZUdy
ZWF0ZXJUaGFuT3JFcXVhbCgiYm91bmRpbmdSZWN0LndpZHRoIiwgImlubmVyV2lkdGgiKTsKKyAg
ICAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoImJvdW5kaW5nUmVjdC5oZWlnaHQiLCAi
aW5uZXJIZWlnaHQiKTsKKyAgICB9CisKKyAgICBydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378654</attachid>
            <date>2019-09-12 10:25:58 -0700</date>
            <delta_ts>2019-09-12 10:26:28 -0700</delta_ts>
            <desc>Fix a ChangeLog typo</desc>
            <filename>bug-201724-20190912102557.patch</filename>
            <type>text/plain</type>
            <size>86628</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5Nzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDk5MjgwYWU0MzJmM2Mw
MjA3N2FjZjU4YzRmNDllMDNmMTJiMzFjYi4uNGY4YmMzM2RlNjFlY2QyNjIzZTY5MTg0YmI4Y2Ni
NGFiMjIzOTQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE5LTA5LTExICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIERyb3Ag
YW5pbWF0aW9uIHdoZW4gZHJhZ2dpbmcgaW1hZ2VzIGZyb20gUGhvdG9zIHRvIFdlYktpdDIgTWFp
bCBjb21wb3NlIGlzIGluY29ycmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAxNjc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTI1MDk1Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIG5l
dyBoZWxwZXIgbWV0aG9kcyBvbiBEcmFnQ29udHJvbGxlciB0byBzdXBwb3J0IHRoZSBuZXcgaW1h
Z2UgcGxhY2Vob2xkZXIgZHJvcCBjb2RlcGF0aC4gU2VlIFdlYktpdAorICAgICAgICBDaGFuZ2VM
b2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBUZXN0czogIFdLQXR0YWNobWVudFRlc3Rz
SU9TLlRhcmdldGVkUHJldmlld3NXaGVuRHJvcHBpbmdJbWFnZXMKKyAgICAgICAgICAgICAgICBX
S0F0dGFjaG1lbnRUZXN0c0lPUy5UYXJnZXRlZFByZXZpZXdJc0NsaXBwZWRXaGVuRHJvcHBpbmdU
YWxsSW1hZ2UKKworICAgICAgICAqIGVkaXRpbmcvV2ViQ29udGVudFJlYWRlci5oOgorCisgICAg
ICAgIEZpeCB0aGUgV2luZG93cyBidWlsZCBhZnRlciBpbmNsdWRpbmcgV2ViQ29udGVudFJlYWRl
ci5oIGluIERyYWdDb250cm9sbGVyLmNwcC4KKworICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxl
bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6aXNEcm9wcGVkSW1h
Z2VQbGFjZWhvbGRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50
OjpzZXRJc0Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVyKToKKworICAgICAgICBBZGQgYSBmbGFnIHRv
IEhUTUxJbWFnZUVsZW1lbnQsIGluZGljYXRpbmcgd2hldGhlciBpdCBpcyBhIGRyb3BwZWQgaW1h
Z2UgcGxhY2Vob2xkZXIuIElmIHNvLCB3ZSBoYXZlIHNwZWNpYWwKKyAgICAgICAgbG9naWMgdG8g
cmVtb3ZlIHNvbWUgdGVtcG9yYXJ5IGlubGluZSBzdHlsZSBwcm9wZXJ0aWVzIGZyb20gdGhlIGlt
YWdlIGFmdGVyIGl0IGhhcyBmaW5pc2hlZCBsb2FkaW5nIChzZWUKKyAgICAgICAgZmluYWxpemVE
cm9wcGVkSW1hZ2VQbGFjZWhvbGRlcikuCisKKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgZG9lc24n
dCBpbmNyZWFzZSB0aGUgc2l6ZSBvZiBIVE1MSW1hZ2VFbGVtZW50LgorCisgICAgICAgICogcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6
ZHJhZ0VuZGVkKToKKworICAgICAgICBDbGVhbiB1cCBhbnkgc3RhbGUgcGxhY2Vob2xkZXJzIGFm
dGVyIHRoZSBkcmFnIGVuZHMuCisKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpw
ZXJmb3JtRHJhZ09wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6
cmVtb3ZlQWxsRHJvcHBlZEltYWdlUGxhY2Vob2xkZXJzKToKKworICAgICAgICBBZGQgYSBwcml2
YXRlIGhlbHBlciB0byBjbGVhbiB1cCBhbnkgZHJvcHBlZCBpbWFnZSBwbGFjZWhvbGRlcnMgYWZ0
ZXIgZmFpbGluZyB0byB1cGRhdGUgZHJvcHBlZCBpbWFnZQorICAgICAgICBwbGFjZWhvbGRlcnMg
Zm9yIGFueSByZWFzb24uCisKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjp0cnlU
b1VwZGF0ZURyb3BwZWRJbWFnZVBsYWNlaG9sZGVycyk6CisKKyAgICAgICAgSW52b2tlZCB3aGVu
IHBlcmZvcm1pbmcgdGhlIGRyYWcgb3BlcmF0aW9uLCBhZnRlciBpbWFnZSBkYXRhIGhhcyBiZWVu
IGxvYWRlZDsgdGhpcyBmdW5jdGlvbiBhdHRlbXB0cyB0byB1cGRhdGUKKyAgICAgICAgdGhlIGxp
c3Qgb2YgaW1hZ2UgcGxhY2Vob2xkZXIgZWxlbWVudHMgdHJhY2tlZCBieSBEcmFnQ29udHJvbGxl
ciB0aGF0IHdlcmUgcHJldmlvdXNseSBpbnNlcnRlZCB1c2luZworICAgICAgICBpbnNlcnREcm9w
cGVkSW1hZ2VQbGFjZWhvbGRlcnNBdENhcmV0LCBhbmQgdXBkYXRlcyB0aGUgc291cmNlIGF0dHJp
YnV0ZSBvZiBlYWNoIGVsZW1lbnQgKGFzIHdlbGwgYXMgYW55IGJhY2tlZAorICAgICAgICBhdHRh
Y2htZW50IGVsZW1lbnQsIGlmIGF0dGFjaG1lbnQgZWxlbWVudHMgYXJlIGVuYWJsZWQpLiBJdCBh
Y2hpZXZlcyB0aGlzIGJ5IHJlYWRpbmcgdGhlIGRyb3BwZWQgZGF0YSBhcyB3ZWIKKyAgICAgICAg
Y29udGVudCwgYW5kIG1hdGNoaW5nIHVwIHRoZSBpbWFnZXMgaW4gdGhlIHJlc3VsdGluZyBmcmFn
bWVudCBhZ2FpbnN0IHRoZSBwbGFjZWhvbGRlciBpbWFnZXMuIElmIGVhY2ggaW1hZ2UgaW4KKyAg
ICAgICAgdGhlIGZyYWdtZW50IGNhbiBjb3JyZXNwb25kIHRvIGV4YWN0bHkgb25lIHBsYWNlaG9s
ZGVyLCB3ZSB1cGRhdGUgdGhlIHNvdXJjZSBvZiBlYWNoIHBsYWNlaG9sZGVyIGltYWdlLAorICAg
ICAgICBtaWdyYXRlIGF0dGFjaG1lbnQgZWxlbWVudHMgb3ZlciB0byB0aGUgcGxhY2Vob2xkZXIg
aW1hZ2VzIGlmIG5lZWRlZCwgYW5kIGZpbmFsbHkgZGlzY2FyZCB0aGUgZnJhZ21lbnQuCisKKyAg
ICAgICAgQSByZXR1cm4gdmFsdWUgb2YgZmFsc2UgaW5kaWNhdGVzIHRoYXQgdGhpcyBwcm9jZXNz
IGZhaWxlZCwgaW4gd2hpY2ggY2FzZSB3ZSBjbGVhbiB1cCB0aGUgcGxhY2Vob2xkZXJzIGFuZCBm
YWxsCisgICAgICAgIGJhY2sgdG8gaGFuZGxpbmcgdGhlIGRyb3Agbm9ybWFsbHkuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjppbnNlcnREcm9wcGVkSW1hZ2VQbGFjZWhvbGRl
cnNBdENhcmV0KToKKworICAgICAgICBJbnZva2VkIHdoZW4gaGFuZGxpbmcgdGhlIGRyb3AsIGJl
Zm9yZSBhbnkgaW1hZ2UgZGF0YSBoYXMgYmVlbiBsb2FkZWQ7IHRoaXMgZnVuY3Rpb24gdGFrZXMg
YSBsaXN0IG9mIHNpemVzCisgICAgICAgIHJlcHJlc2VudGluZyB0aGUgcHJlZmVycmVkIHByZXNl
bnRhdGlvbiBzaXplcyBvZiBlYWNoIGl0ZW0gcHJvdmlkZXIgdGhhdCB3aWxsIGJlIGxvYWRlZCBh
cyBhbiBpbWFnZSwgYW5kIHVzZXMKKyAgICAgICAgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQgdG8g
aW5zZXJ0IGEgbGlzdCBvZiAoaW5pdGlhbGx5IGJsYW5rKSBwbGFjZWhvbGRlciBpbWFnZXMgYXQg
dGhlIGRyb3AgY2FyZXQsIHNpemVkCisgICAgICAgIGFjY29yZGluZ2x5IHRvIGVhY2ggaXRlbSBw
cm92aWRlcidzIHByZWZlcnJlZFByZXNlbnRhdGlvblNpemUuCisKKyAgICAgICAgVG8gbWFrZSB0
aGlzIGNvbXBhdGlibGUgd2l0aCBNYWlsIGNvbXBvc2UgKGFuZCBhbGwgb3RoZXIga25vd24gaW50
ZXJuYWwgY2xpZW50cyB0aGF0IHVzZSB0aGUgX2VkaXRhYmxlIFNQSSksIHdlCisgICAgICAgIGFk
ZGl0aW9uYWxseSBlbmZvcmNlIGEgbWF4LXdpZHRoIG9mIDEwMCUgb24gZWFjaCBpbWFnZSBhbmQg
cHJlc2VydmUgdGhlIGFzcGVjdCByYXRpbyBvZiB0aGUgaW1hZ2UgYnkgYWRqdXN0aW5nCisgICAg
ICAgIHRoZSBoZWlnaHQgaWYgbmVlZGVkLgorCisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJv
bGxlcjo6ZmluYWxpemVEcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcik6CisgICAgICAgICogcGFnZS9E
cmFnQ29udHJvbGxlci5oOgorCisgICAgICAgIEhhdmUgRHJhZ0NvbnRyb2xsZXIga2VlcCB0cmFj
ayBvZiB0aGUgbGlzdCBvZiBkcm9wcGVkIGltYWdlIHBsYWNlaG9sZGVycyAoaW4gRE9NIG9yZGVy
KSwgYXMgd2VsbCBhcyB0aGUgZHJvcHBlZAorICAgICAgICBpbWFnZSBwbGFjZWhvbGRlciByYW5n
ZS4gVGhpcyBpbmZvcm1hdGlvbiBpcyB1c2VkIG9uY2UgaXRlbSBwcm92aWRlciBkYXRhIGFycml2
ZXMgYW5kIHRoZSBkcmFnIG9wZXJhdGlvbiBpcworICAgICAgICBiZWluZyBwZXJmb3JtZWQsIHRv
IHVwZGF0ZSB0aGUgc291cmNlIG9mIGVhY2ggZHJvcHBlZCBpbWFnZSBwbGFjZWhvbGRlci4KKwor
ICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRyb3BwZWRJbWFnZVBsYWNlaG9sZGVy
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6ZHJvcHBlZEltYWdl
UGxhY2Vob2xkZXJSYW5nZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMv
VVRJVXRpbGl0aWVzLmg6CisKKyAgICAgICAgTWFyayBhbiBleGlzdGluZyBoZWxwZXIgZnVuY3Rp
b24gYXMgV0VCQ09SRV9FWFBPUlQuCisKIDIwMTktMDktMTEgIFRydWl0dCBTYXZlbGwgIDx0c2F2
ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ5NzUz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA1ZmZkNGU2MzE0OGM3NDJiYzJlMTVmNmE5ZDkwNzhkMWVlYTIyZTY0Li40
YTcxOTdkYjcwNzlhOTUzMGM3YzQ4ZGEzZjI4MjBlMGY4YzNjYzZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyNyBAQAorMjAxOS0wOS0xMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBbaU9TXSBEcm9wIGFuaW1hdGlvbiB3aGVuIGRyYWdnaW5nIGltYWdl
cyBmcm9tIFBob3RvcyB0byBXZWJLaXQyIE1haWwgY29tcG9zZSBpcyBpbmNvcnJlY3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTY3NAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTEyNTA5NTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgT3VyIGN1cnJlbnQgbG9naWMgZm9yIGhhbmRsaW5nIGRyb3Bw
ZWQgY29udGVudCBpbiBlZGl0YWJsZSBlbGVtZW50cyBvbiBpT1Mgd29ya3MgbGlrZSB0aGlzIGlu
IHRoZSBpZGVhbCBjYXNlOgorCisgICAgICAgICgxKSAgICAgVUlLaXQgYXNrcyB1cyBmb3IgYSB0
YXJnZXRlZCBwcmV2aWV3IGZvciBlYWNoIFVJRHJhZ0l0ZW0uIFdlIGRvbid0IGtub3cgKGFuZCBj
YW4ndCBkZXRlcm1pbmUgdGhpcworICAgICAgICAgICAgICAgIHN5bmNocm9ub3VzbHkgd2l0aG91
dCBibG9ja2luZyBvbiB0aGUgd2ViIHByb2Nlc3MpIHNvIHdlIHNpbXBseSByZXRhcmdldCB0aGUg
cHJldmlldyB0byBhbmltYXRlIHRvIHRoZQorICAgICAgICAgICAgICAgIGxhc3Qga25vd24gY2Fy
ZXQgbG9jYXRpb24uCisKKyAgICAgICAgKDIpICAgICBTb29uYWZ0ZXIsIFVJS2l0IGhhbmRzIHVz
IGEgZHJvcCBwcmV2aWV3IHVwZGF0ZSBibG9jaywgd2hpY2ggbWF5IGJlIHVzZWQgdG8gcmV0YXJn
ZXQgdGhlIGRyb3AgcHJldmlldworICAgICAgICAgICAgICAgIG9uY2UsIGFzIGxvbmcgYXMgdGhl
IGRyb3AgYW5pbWF0aW9uIGlzIGxlc3MgdGhhbiA5MCUgY29tcGxldGUuIFdlIHN0YXNoIHRoZXNl
IHVwZGF0ZSBibG9ja3MgZm9yIG5vdy4KKworICAgICAgICAoMykgICAgIC1kcm9wSW50ZXJhY3Rp
b246cGVyZm9ybURyb3A6IGlzIHRoZW4gY2FsbGVkLCBhbmQgd2Ugc3RhcnQgbG9hZGluZyBpdGVt
IHByb3ZpZGVyIGRhdGEgcmlnaHQgYXdheS4KKworICAgICAgICAoNCkgICAgIFdoZW4gdGhlIGRh
dGEgaGFzIGZpbmlzaGVkIGxvYWRpbmcsIHdlIHBlcmZvcm0gdGhlIGRyb3AgaW4gdGhlIHdlYiBw
cm9jZXNzLiBBZnRlciBhbnkgaW5zZXJ0ZWQgaW1hZ2VzCisgICAgICAgICAgICAgICAgaGF2ZSBm
aW5pc2hlZCBsb2FkaW5nLCB3ZSB0YWtlIHNuYXBzaG90cyAob2YgdGhlIGRyb3BwZWQgY29udGVu
dCBhcyB3ZWxsIGFzIHN1cnJvdW5kaW5nIHdlYiBjb250ZW50CisgICAgICAgICAgICAgICAgbWlu
dXMgdGhlIGRyb3BwZWQgY29udGVudCksIGFuZCBkZWxpdmVyIHRoZXNlIGltYWdlcyB0byB0aGUg
VUkgcHJvY2VzcyB2aWEgVGV4dEluZGljYXRvckRhdGEuCisKKyAgICAgICAgKDUpICAgICBVcG9u
IHJlY2VpdmluZyB0aGUgVGV4dEluZGljYXRvckRhdGEgc2VudCBpbiAoNCksIHdlIHVzZSB0aGUg
aW1hZ2UgZGF0YSB0byBjcmVhdGUgdXBkYXRlZCB0YXJnZXRlZCBkcmFnCisgICAgICAgICAgICAg
ICAgcHJldmlld3MsIGFuZCB1c2UgdGhlc2UgdG8gaW52b2tlIHRoZSBwcmV2aWV3IHVwZGF0ZSBi
bG9ja3Mgd2Ugc3RvcmVkIGVhcmxpZXIgaW4gKDIpLiBXZSBhbHNvIG9ic2N1cmUKKyAgICAgICAg
ICAgICAgICB0aGUgZW50aXJlIHdlYiB2aWV3IHdpdGggYSBzbmFwc2hvdCBvZiB0aGUgdmlldyBt
aW51cyBhbnkgZHJvcHBlZCBjb250ZW50LCBzdWNoIHRoYXQgdGhlIHVwZGF0ZWQgZHJvcAorICAg
ICAgICAgICAgICAgIHByZXZpZXdzIG1heSBhbmltYXRlIGludG8gcGxhY2Ugd2l0aG91dCBhbHNv
IHNob3dpbmcgdGhlIGZpbmFsIGNvbnRlbnQuCisKKyAgICAgICAgKDYpICAgICBXaGVuIHRoZSBk
cm9wIGFuaW1hdGlvbiBlbmRzLCB3ZSByZW1vdmUgdGhlIHVuc2VsZWN0ZWQgY29udGVudCBzbmFw
c2hvdCB2aWV3IGFkZGVkIGluICg1KSBzaW11bHRhbmVvdXNseQorICAgICAgICAgICAgICAgIGFz
IHRoZSB0YXJnZXRlZCBwcmV2aWV3cyBkaXNhcHBlYXIsIHJldmVhbGluZyB0aGUgYWN0dWFsIGRy
b3BwZWQgY29udGVudCBvbiB0aGUgcGFnZS4gVGhlIGRyb3AgaXMgbm93CisgICAgICAgICAgICAg
ICAgY29tcGxldGUuCisKKyAgICAgICAgSG93ZXZlciwgbm90ZSB0aGF0IHRoZSBkcmFnIHVwZGF0
ZSBibG9jayB3ZSBpbnZva2UgaW4gKDUpIGRvZXNuJ3Qgd29yayBpZiB0aGUgZHJvcCBhbmltYXRp
b24gaXMgYWxyZWFkeSBtb3JlCisgICAgICAgIHRoYW4gOTAlIGNvbXBsZXRlLiBTaW5jZSB0aGUg
bGlmZWN5Y2xlIG9mIHRoZSBkcm9wIGFuaW1hdGlvbiBpcyBkaXN0aW5jdCBmcm9tIHRoYXQgb2Yg
aXRlbSBwcm92aWRlciBsb2FkaW5nLCBpZgorICAgICAgICB0aGUgZGVsYXkgYmV0d2VlbiAoMykg
YW5kICg0KSBleGNlZWRzIDkwJSBvZiB0aGUgdG90YWwgZHJvcCBhbmltYXRpb24gdGltZSwgd2Un
bGwgZmFpbCB0byB1cGRhdGUgdGhlIHRhcmdldGVkCisgICAgICAgIHByZXZpZXdzLCBzdWNoIHRo
YXQgdGhlIHVzZXIgb25seSBzZWVzIHRoZSBpbml0aWFsIGRyYWcgcHJldmlldyBmbHkgb24gdG9w
IG9mIHRoZSBjYXJldCBhbmQgZGlzYXBwZWFyLiBXaGlsZSB3ZQorICAgICAgICB0eXBpY2FsbHkg
d2luIHRoaXMgcmFjZSBmb3IgZGF0YSBkcmFnZ2VkIGZyb20gb3RoZXIgV2ViS2l0IGFwcHMsIHdl
IGFsbW9zdCBhbHdheXMgbG9zZSB3aGVuIGRyYWdnaW5nIGZyb20gUGhvdG9zCisgICAgICAgIGFu
ZCBlbmQgdXAgd2l0aCBhIGphbmt5IGRyb3AgYW5pbWF0aW9uLiBUaGlzIGlzIGVzcGVjaWFsbHkg
dHJ1ZSBmb3IgYW55IGltYWdlcyB0aGF0IGFyZW4ndCBsb2NhbGx5IGF2YWlsYWJsZSwKKyAgICAg
ICAgYW5kIG5lZWQgdG8gYmUgZmV0Y2hlZCBmcm9tIGlDbG91ZC4gQW4gYWRkaXRpb25hbCBwcm9i
bGVtIGlzIHRoYXQgaW4gc3RlcCAoNSksIHdlIHVzZSB0aGUgc2FtZSBmaW5hbCBzbmFwc2hvdCB0
bworICAgICAgICB1cGRhdGUgdGhlIGRyb3AgcHJldmlldyBvZiBldmVyeSBpdGVtLCBzaW5jZSB3
ZSBkb24ndCBoYXZlIGEgc25hcHNob3QgZm9yIHRoZSBmcmFnbWVudCBjb3JyZXNwb25kaW5nIHRv
IGVhY2gKKyAgICAgICAgaW5kaXZpZHVhbCBkcm9wcGVkIGl0ZW0uCisKKyAgICAgICAgVG8gYWRk
cmVzcyB0aGVzZSBpc3N1ZXMgZm9yIE1haWwgaW4gdGhlIGNhc2Ugd2hlcmUgdGhlIHVzZXIgZHJv
cHMgaW1hZ2VzIHdpdGgga25vd24gc2l6ZXMgKGkuZS4gLVtOU0l0ZW1Qcm92aWRlcgorICAgICAg
ICBwcmVmZXJyZWRQcmVzZW50YXRpb25TaXplXSBpcyBzcGVjaWZpZWQpLCB3ZSBpbnRyb2R1Y2Ug
YW4gYWx0ZXJuYXRlIGNvZGVwYXRoIGZvciBoYW5kbGluZyBkcm9wcGVkIGltYWdlcyB0aGF0Cisg
ICAgICAgIHBlcmZvcm1zIHRoZSBkcm9wIGltbWVkaWF0ZWx5IHVwb24gcmVjZWl2aW5nIC1kcm9w
SW50ZXJhY3Rpb246cGVyZm9ybURyb3A6IGluIHRoZSBVSSBwcm9jZXNzLiBTaW5jZSB0aGUgZGF0
YSBoYXMKKyAgICAgICAgeWV0IHRvIGFycml2ZSwgd2UgaW5zdGVhZCBoYW5kbGUgdGhlIGRyb3Ag
YnkgaW5zZXJ0aW5nIHBsYWNlaG9sZGVyIGltYWdlIGVsZW1lbnRzIGF0IHRoZSBkcmFnIGNhcmV0
IHBvc2l0aW9uLAorICAgICAgICB3aGljaCBpbml0aWFsbHkgaGF2ZSBubyBzb3VyY2UgYnV0IGFy
ZSBzaXplZCB0byBmaXQgdGhlaXIgZXhwZWN0ZWQgZmluYWwgaW1hZ2Ugc2l6ZXMuIEFmdGVyIGRv
aW5nIHNvLCB3ZQorICAgICAgICBzbmFwc2hvdCB0aGUgcGFnZSAobWludXMgdGhlIGRyb3BwZWQg
Y29udGVudCByYW5nZSwgYXMgdXN1YWwpIGFuZCBkZWxpdmVyIHRoaXMgc25hcHNob3QgdG8gdGhl
IFVJIHByb2Nlc3MsIGFsb25nCisgICAgICAgIHdpdGggdGhlIHJlY3RzIChpbiByb290IHZpZXcg
Y29vcmRpbmF0ZXMpIG9mIGVhY2ggcGxhY2Vob2xkZXIgaW1hZ2UgdGhhdCB3YXMgaW5zZXJ0ZWQu
IEluIHRoZSBVSSBwcm9jZXNzLCB3ZQorICAgICAgICB0aGVuIHRha2UgdGhpcyBzbmFwc2hvdCBh
bmQgb2JzY3VyZSB0aGUgY29udGVudCB2aWV3IHdpdGggaXQsIGFuZCBhbHNvIHVzZSBlYWNoIG9m
IHRoZSBwbGFjZWhvbGRlciByZWN0cyB0bworICAgICAgICBwcm92aWRlIGFuIHVwZGF0ZWQgdGFy
Z2V0IGZvciBlYWNoIGRyYWcgcHJldmlldywgc3VjaCB0aGF0IHRoZSBkcm9wIHByZXZpZXdzIG5v
dyBhbmltYXRlIHRvIHRoZWlyIGZpbmFsCisgICAgICAgIGxvY2F0aW9ucyBvbiB0aGUgcGFnZS4K
KworICAgICAgICBXaGVuIHRoZSBkYXRhIGV2ZW50dWFsbHkgYXJyaXZlcywgd2UgaGFuZGxlIHRo
ZSBkcm9wIGJ5IGRldGVjdGluZyB0aGUgcGxhY2Vob2xkZXIgZWxlbWVudHMgd2UgaW5zZXJ0ZWQg
ZWFybGllciwKKyAgICAgICAgYW5kIHVzaW5nIHRoZSBkcm9wcGVkIGRhdGEgdG8gdXBkYXRlIHRo
ZSBzb3VyY2UgYXR0cmlidXRlIGFuZCBhdHRhY2htZW50IGJhY2tpbmcgZm9yIGVhY2ggb2YgdGhl
c2UgcGxhY2Vob2xkZXIKKyAgICAgICAgZWxlbWVudHMgaW5zdGVhZCBvZiBhdHRlbXB0aW5nIHRv
IGluc2VydCBuZXcgY29udGVudC4KKworICAgICAgICBOb3RlIHRoYXQgdGhpcyBjb2RlcGF0aCBp
cyBjdXJyZW50bHkgb25seSBlbmFibGVkIGZvciBTUEkgY2xpZW50cyB0aGF0IHNldCAtW1dLV2Vi
VmlldyBfZWRpdGFibGVdIHRvIFlFUywgc2luY2UKKyAgICAgICAgaXQgaW52b2x2ZXMgdXMgcGVy
Zm9ybWluZyB0aGUgZWRpdGluZyBhY3Rpb24gZm9yIHRoZSBkcm9wICh0aHVzIGNoYW5naW5nIHRo
ZSBET00pIHByaW9yIHRvIHRoZSBwcmV2ZW50YWJsZSBkcm9wCisgICAgICAgIGV2ZW50LCBhbmQg
cHJpb3IgdG8gdXMgaGF2aW5nIGFueSBkYXRhIGF0IGFsbC4gSG93ZXZlciwgdGhlIGRyb3AgZXZl
bnQgY2FuJ3QgY29tZSBiZWZvcmUgdGhlIGVkaXRpbmcgYWN0aW9uLAorICAgICAgICBzaW5jZSB3
ZSBuZWVkIHRvIGhhdmUgYWxyZWFkeSBsb2FkZWQgZGF0YSBmcm9tIHRoZSBpdGVtIHByb3ZpZGVy
cyB0byBleHBvc2UgaXQgdmlhIHRoZSBkYXRhVHJhbnNmZXIgb2YgdGhlIGRyb3AKKyAgICAgICAg
ZXZlbnQuIFRoaXMgY29udHJhZGljdGlvbiBtZWFucyB0aGF0IHRoaXMgaW1hZ2UgcGxhY2Vob2xk
ZXIgaGFjayBpcyBvbmx5IGZvciBfZWRpdGFibGUgU1BJIGNsaWVudHMgdGhhdCwgYXQgdGhlCisg
ICAgICAgIHZlcnkgbGVhc3QsIHdpbGwgbm90IHJlcXVpcmUgcHJldmVudGluZyBkZWZhdWx0IGJl
aGF2aW9yIHdoZW4gZHJvcHBpbmcgb25seSBpbWFnZXMgd2l0aCBwcmVkZXRlcm1pbmVkIHNpemVz
LgorCisgICAgICAgIENvdmVyZWQgYnkgMiBuZXcgQVBJIHRlc3RzLiBTZWUgY29tbWVudHMgYmVs
b3cgZm9yIG1vcmUgZGV0YWlsLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUubW06CisgICAg
ICAgIChXZWJLaXQ6OkRyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTo6c2V0RGVmYXVsdERyb3BQcmV2
aWV3KToKKworICAgICAgICBBZGQgYSB3YXkgdG8ga2VlcCB0cmFjayBvZiBkZWZhdWx0IGRyb3Ag
cHJldmlld3MgdGhhdCB3ZSBvYnNlcnZlZCBkdXJpbmcgZWFjaCBjYWxsIHRvCisgICAgICAgIC1k
cm9wSW50ZXJhY3Rpb246cHJldmlld0ZvckRyb3BwaW5nSXRlbTp3aXRoRGVmYXVsdDouIEluIHRo
ZSBpbWFnZSBwbGFjZWhvbGRlciBkcm9wIHNjZW5hcmlvLCB3ZSB1c2UgdGhlc2UKKyAgICAgICAg
ZGVmYXVsdCBkcm9wIHByZXZpZXdzIGxhdGVyIG9uIHRvIGNyZWF0ZSByZXRhcmdldGVkIGRyb3Ag
cHJldmlld3MgYWZ0ZXIgdGhlIHBsYWNlaG9sZGVycyBoYXZlIGJlZW4gaW5zZXJ0ZWQuCisKKyAg
ICAgICAgKFdlYktpdDo6RHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlOjpkZWZhdWx0RHJvcFByZXZp
ZXcgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpEcmFnRHJvcEludGVyYWN0aW9uU3RhdGU6OmRl
bGl2ZXJEZWxheWVkRHJvcFByZXZpZXcpOgorCisgICAgICAgIEFkZCBhbiBhbHRlcm5hdGUgdmVy
c2lvbiBvZiBkZWxpdmVyRGVsYXllZERyb3BQcmV2aWV3IHRoYXQgaXMgdXNlZCB3aGVuIGluc2Vy
dGluZyBpbWFnZSBwbGFjZWhvbGRlcnMuIFJhdGhlcgorICAgICAgICB0aGFuIHVzZSB0ZXh0IGlu
ZGljYXRvciBkYXRhIG9mIHRoZSBmaW5hbCBkcm9wcGVkIGNvbnRlbnQgb24gdGhlIHBhZ2UsIHVz
ZSB0aGUgcm9vdC12aWV3LWNvb3JkaW5hdGUgcmVjdHMgb2YKKyAgICAgICAgZWFjaCBvZiB0aGUg
cGxhY2Vob2xkZXIgZWxlbWVudHMgdG8gcmVwb3NpdGlvbiB0aGUgZGVmYXVsdCBkcm9wIHByZXZp
ZXdzLgorCisgICAgICAgIFRoZXJlJ3MgYWRkaXRpb25hbCBsb2dpYyBoZXJlIHRvIGhhbmRsZSB0
aGUgY2FzZSB3aGVyZSB0aGUgZmluYWwgaW1hZ2UgaXMgdGFsbGVyIHRoYW4gdGhlIGhlaWdodCBv
ZiB0aGUKKyAgICAgICAgdW5vYnNjdXJlZCBjb250ZW50IHJlY3QsIGluIHdoaWNoIGNhc2Ugd2Ug
Y2xpcCB0aGUgZHJvcCBwcmV2aWV3IHVzaW5nIFVJRHJhZ1ByZXZpZXdQYXJhbWV0ZXIncyB2aXNp
YmxlUGF0aCB0bworICAgICAgICBwcmV2ZW50IHRoZSBkcm9wIHByZXZpZXcgZnJvbSBiZWluZyBz
aG93biBvdXRzaWRlIG9mIHRoZSBib3VuZHMgb2YgdGhlIHdlYiB2aWV3LgorCisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfZGVsaXZlckRlbGF5ZWREcm9wUHJldmlld0lmUG9zc2libGU6XSk6CisgICAgICAg
IChzaXplc09mUGxhY2Vob2xkZXJFbGVtZW50c1RvSW5zZXJ0V2hlbkRyb3BwaW5nSXRlbXMpOgor
CisgICAgICAgIENvbGxlY3RzIHRoZSBsaXN0IG9mIGV4cGVjdGVkIGltYWdlIHNpemVzIGZvciB0
aGUgZHJvcHBlZCBpdGVtIHByb3ZpZGVycywgb3IgYW4gZW1wdHkgbGlzdCBpbiB0aGUgY2FzZSB3
aGVyZQorICAgICAgICBhbnkgb2YgdGhlIGl0ZW0gcHJvdmlkZXJzIG1heSBub3QgYmUgcmVwcmVz
ZW50ZWQgYXMgaW5saW5lIGltYWdlcyBvciBkbyBub3QgaGF2ZSBwcmVkZXRlcm1pbmVkIHNpemVz
LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2hhbmRsZURyb3BCeUluc2VydGluZ0ltYWdl
UGxhY2Vob2xkZXJzOnNlc3Npb246XSk6CisKKyAgICAgICAgSWYgcG9zc2libGUsIGhhbmRsZXMg
dGhlIGRyb3AgYnkgaW5zZXJ0aW5nIGltYWdlIHBsYWNlaG9sZGVycyBpbnN0ZWFkIG9mIHdhaXRp
bmcgZm9yIHRoZSBkYXRhIHRvIGZpbmlzaCBsb2FkaW5nCisgICAgICAgIGJlZm9yZSBkcm9wcGlu
Zy4gUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB3ZSBkZWNpZGVkIHRvIHByb2NlZWQgd2l0aCB0aGUg
aW1hZ2UgcGxhY2Vob2xkZXIgZHJvcC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRyb3BJ
bnRlcmFjdGlvbjpwZXJmb3JtRHJvcDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkcm9w
SW50ZXJhY3Rpb246aXRlbTp3aWxsQW5pbWF0ZURyb3BXaXRoQW5pbWF0b3I6XSk6CisKKyAgICAg
ICAgRml4ZXMgYSBidWcgd2hlcmUgdGhlIHVuc2VsZWN0ZWQgY29udGVudCBzbmFwc2hvdCB2aWV3
IGNvdWxkIGxpbmdlciBhcm91bmQgb24gdGhlIHdlYiB2aWV3IGZvcmV2ZXIgYWZ0ZXIgYSBkcm9w
CisgICAgICAgIHdoZXJlIHRoZSBkYXRhIGRvZXNuJ3QgbG9hZCBpbiB0aW1lIGZvciB0aGUgZHJv
cCB0byBmaW5pc2ggYnkga2VlcGluZyB0cmFjayBvZiB3aGV0aGVyIHRoZXJlIGlzIGFuIGFjdGl2
ZWx5CisgICAgICAgIGFuaW1hdGluZyBkcmFnIGl0ZW0sIGFuZCBvbmx5IGFwcGx5aW5nIHRoZSB1
bnNlbGVjdGVkIGNvbnRlbnQgc25hcHNob3QgaWYgc28uCisKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBkcm9wSW50ZXJhY3Rpb246cHJldmlld0ZvckRyb3BwaW5nSXRlbTp3aXRoRGVmYXVsdDpd
KToKKworICAgICAgICBTdGFzaCB0aGUgZGVmYXVsdCBkcm9wIHByZXZpZXcgYXdheSBoZXJlLgor
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6aW5zZXJ0RHJvcHBlZEltYWdlUGxhY2Vob2xkZXJzKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aW5zZXJ0
RHJvcHBlZEltYWdlUGxhY2Vob2xkZXJzKToKKworICAgICAgICBTZWUgV2ViQ29yZSBDaGFuZ2VM
b2cgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlk
RmluaXNoTG9hZGluZ0ltYWdlRm9yRWxlbWVudCk6CisKKyAgICAgICAgSWYgdGhlIGltYWdlIHRo
YXQgZmluaXNoZWQgbG9hZGluZyBpcyBhIGRyb3BwZWQgaW1hZ2UgcGxhY2Vob2xkZXIsIGFsbG93
IERyYWdDb250cm9sbGVyIHRvICJmaW5hbGl6ZSIgaXQgYnkKKyAgICAgICAgc3RyaXBwaW5nIGF3
YXkgc29tZSBzdHlsZXMgdGhhdCB3ZXJlIHRlbXBvcmFyaWx5IGFkZGVkLgorCiAyMDE5LTA5LTEx
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
ICgyNDUwMDYpOiBjYW4ndCBzY3JvbGwgaW4gInJlYWQgbW9yZSIgdmlldyBpbiBFdmVudGJyaXRl
IGFwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9XZWJDb250ZW50UmVhZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dlYkNvbnRlbnRSZWFkZXIuaAppbmRleCA4N2Y0
NTU1MDMwOWI1OTUyOTgwNTBiMWQ1OTU3MDVmYmRjNzk3MThiLi42ODNlMjQ0MzQ5YzkwNWE2ODI5
OTczNDBlODM1ZTZlZGE4YTZmZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1dlYkNvbnRlbnRSZWFkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dlYkNvbnRl
bnRSZWFkZXIuaApAQCAtNzksOCArNzksOCBAQCBwcml2YXRlOgogICAgIGJvb2wgcmVhZEltYWdl
KFJlZjxTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgdHlwZSwgUHJlc2VudGF0aW9uU2l6
ZSBwcmVmZXJyZWRQcmVzZW50YXRpb25TaXplID0geyB9KSBvdmVycmlkZTsKICAgICBib29sIHJl
YWRVUkwoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgYm9v
bCByZWFkRGF0YUJ1ZmZlcihTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgbmFtZSwgUHJlc2VudGF0aW9uU2l6ZSBwcmVmZXJyZWRQcmVzZW50YXRpb25TaXpl
ID0geyB9KSBvdmVycmlkZTsKLSNlbmRpZgogICAgIGJvb2wgcmVhZFBsYWluVGV4dChjb25zdCBT
dHJpbmcmKSBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogY2xhc3MgV2ViQ29udGVudE1hcmt1cFJl
YWRlciBmaW5hbCA6IHB1YmxpYyBGcmFtZVdlYkNvbnRlbnRSZWFkZXIgewpAQCAtMTAzLDggKzEw
Myw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCByZWFkSW1hZ2UoUmVmPFNoYXJlZEJ1ZmZlcj4mJiwg
Y29uc3QgU3RyaW5nJiwgUHJlc2VudGF0aW9uU2l6ZSA9IHsgfSkgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBib29sIHJlYWRVUkwoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJikgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIHJlYWREYXRhQnVmZmVyKFNoYXJlZEJ1
ZmZlciYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFByZXNlbnRhdGlvblNpemUgPSB7
IH0pIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0jZW5kaWYKICAgICBib29sIHJlYWRQbGFp
blRleHQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgog
fTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRleCA0ZWE4OTMwYTZjOTkzYzE2OWU5MmE0MDgw
MjU4ZjRiYmE1NDljNzU0Li44NTZlYjg4Njg3YTgzNThiMWI3ZTE5NTY4NjAxOGU1NjM2MTI0OWRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtMTI2LDYgKzEyNiw5
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKCkgY29uc3QgeyByZXR1cm4g
bV9jcmVhdGVkQnlQYXJzZXI7IH0KIAorICAgIGJvb2wgaXNEcm9wcGVkSW1hZ2VQbGFjZWhvbGRl
cigpIGNvbnN0IHsgcmV0dXJuIG1faXNEcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcjsgfQorICAgIHZv
aWQgc2V0SXNEcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcigpIHsgbV9pc0Ryb3BwZWRJbWFnZVBsYWNl
aG9sZGVyID0gdHJ1ZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTEltYWdlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqID0gbnVsbHB0ciwg
Ym9vbCBjcmVhdGVkQnlQYXJzZXIgPSBmYWxzZSk7CiAKQEAgLTE4OSw2ICsxOTIsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9leHBlcmltZW50YWxJbWFnZU1lbnVFbmFibGVkOwogICAgIGJvb2wg
bV9oYWROYW1lQmVmb3JlQXR0cmlidXRlQ2hhbmdlZCB7IGZhbHNlIH07IC8vIEZJWE1FOiBXZSBv
bmx5IG5lZWQgdGhpcyBiZWNhdXNlIHBhcnNlQXR0cmlidXRlKCkgY2FuJ3Qgc2VlIHRoZSBvbGQg
dmFsdWUuCiAgICAgYm9vbCBtX2NyZWF0ZWRCeVBhcnNlciB7IGZhbHNlIH07CisgICAgYm9vbCBt
X2lzRHJvcHBlZEltYWdlUGxhY2Vob2xkZXIgeyBmYWxzZSB9OwogCiAgICAgUmVmUHRyPEVkaXRh
YmxlSW1hZ2VSZWZlcmVuY2U+IG1fZWRpdGFibGVJbWFnZTsKICAgICBXZWFrUHRyPEhUTUxQaWN0
dXJlRWxlbWVudD4gbV9waWN0dXJlRWxlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5jcHAKaW5kZXggZDVjZjNkYWQ3OGUyNzJjMmY3N2NiMGE1OGQwNjc2YjU0Y2JmYmUwZi4u
MjQ0MDM1OGE2NjBhNzAzNGY2NWRlOGRjZGQ1MTFkMDJkNjA2YjJhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTgzLDYgKzgzLDcgQEAKICNpbmNsdWRlICJUZXh0
LmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgi
CisjaW5jbHVkZSAiV2ViQ29udGVudFJlYWRlci5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgogCiAj
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCkBAIC0yMDYsNiArMjA3LDcgQEAgdm9pZCBEcmFn
Q29udHJvbGxlcjo6ZHJhZ0VuZGVkKCkKICAgICBtX2RpZEluaXRpYXRlRHJhZyA9IGZhbHNlOwog
ICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0gbnVsbHB0cjsKICAgICBjbGVhckRyYWdDYXJldCgp
OworICAgIHJlbW92ZUFsbERyb3BwZWRJbWFnZVBsYWNlaG9sZGVycygpOwogICAgIAogICAgIG1f
Y2xpZW50LmRyYWdFbmRlZCgpOwogfQpAQCAtMjM4LDYgKzI0MCwxNiBAQCBpbmxpbmUgc3RhdGlj
IGJvb2wgZHJhZ0lzSGFuZGxlZEJ5RG9jdW1lbnQoRHJhZ0hhbmRsaW5nTWV0aG9kIGRyYWdIYW5k
bGluZ01ldGhvZAogCiBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZ09wZXJhdGlvbihj
b25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiB7CisgICAgaWYgKCFtX2Ryb3BwZWRJbWFnZVBsYWNl
aG9sZGVycy5pc0VtcHR5KCkgJiYgbV9kcm9wcGVkSW1hZ2VQbGFjZWhvbGRlclJhbmdlICYmIHRy
eVRvVXBkYXRlRHJvcHBlZEltYWdlUGxhY2Vob2xkZXJzKGRyYWdEYXRhKSkgeworICAgICAgICBt
X2Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVycy5jbGVhcigpOworICAgICAgICBtX2Ryb3BwZWRJbWFn
ZVBsYWNlaG9sZGVyUmFuZ2UgPSBudWxscHRyOworICAgICAgICBtX2RvY3VtZW50VW5kZXJNb3Vz
ZSA9IG51bGxwdHI7CisgICAgICAgIGNsZWFyRHJhZ0NhcmV0KCk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIHJlbW92ZUFsbERyb3BwZWRJbWFnZVBsYWNlaG9sZGVycygpOwor
CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNQZXJmb3JtaW5nRHJvcChtX2lzUGVyZm9ybWluZ0Ry
b3AsIHRydWUpOwogICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBpZ25vcmVTZWxlY3Rpb25D
aGFuZ2VzKG1fcGFnZS5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKSwgV1RG
OjpudWxsb3B0LCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246Oklnbm9yZVNlbGVjdGlvbkNoYW5n
ZXMpOwogCkBAIC0xMzEyLDYgKzEzMjQsMTM4IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRvU3lz
dGVtRHJhZyhEcmFnSW1hZ2UgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBkcmFnTG9jLCBjb25zCiAg
ICAgY2xlYW51cEFmdGVyU3lzdGVtRHJhZygpOwogfQogCit2b2lkIERyYWdDb250cm9sbGVyOjpy
ZW1vdmVBbGxEcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcnMoKQoreworICAgIG1fZHJvcHBlZEltYWdl
UGxhY2Vob2xkZXJSYW5nZSA9IG51bGxwdHI7CisgICAgZm9yIChhdXRvJiBwbGFjZWhvbGRlciA6
IHN0ZDo6ZXhjaGFuZ2UobV9kcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcnMsIHsgfSkpIHsKKyAgICAg
ICAgaWYgKHBsYWNlaG9sZGVyLT5pc0Nvbm5lY3RlZCgpKQorICAgICAgICAgICAgcGxhY2Vob2xk
ZXItPnJlbW92ZSgpOworICAgIH0KK30KKworYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5VG9VcGRh
dGVEcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcnMoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQorewor
ICAgIEFTU0VSVCghbV9kcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcnMuaXNFbXB0eSgpKTsKKyAgICBB
U1NFUlQobV9kcm9wcGVkSW1hZ2VQbGFjZWhvbGRlclJhbmdlKTsKKworICAgIGF1dG8gZG9jdW1l
bnQgPSBtYWtlUmVmKG1fZHJvcHBlZEltYWdlUGxhY2Vob2xkZXJzWzBdLT5kb2N1bWVudCgpKTsK
KyAgICBhdXRvIGZyYW1lID0gbWFrZVJlZlB0cihkb2N1bWVudC0+ZnJhbWUoKSk7CisgICAgaWYg
KCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgV2ViQ29udGVudFJlYWRlciBy
ZWFkZXIoKmZyYW1lLCAqbV9kcm9wcGVkSW1hZ2VQbGFjZWhvbGRlclJhbmdlLCB0cnVlKTsKKyAg
ICBhdXRvIHBhc3RlYm9hcmQgPSBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChkcmFn
RGF0YSk7CisgICAgcGFzdGVib2FyZC0+cmVhZChyZWFkZXIpOworCisgICAgaWYgKCFyZWFkZXIu
ZnJhZ21lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFZlY3RvcjxSZWY8SFRNTElt
YWdlRWxlbWVudD4+IGltYWdlRWxlbWVudHM7CisgICAgZm9yIChhdXRvJiBpbWFnZUVsZW1lbnQg
OiBkZXNjZW5kYW50c09mVHlwZTxIVE1MSW1hZ2VFbGVtZW50PigqcmVhZGVyLmZyYWdtZW50KSkK
KyAgICAgICAgaW1hZ2VFbGVtZW50cy5hcHBlbmQoaW1hZ2VFbGVtZW50KTsKKworICAgIGlmIChp
bWFnZUVsZW1lbnRzLnNpemUoKSAhPSBtX2Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVycy5zaXplKCkp
IHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGltYWdlRWxlbWVudHMuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgYXV0byYgaW1hZ2VFbGVtZW50ID0gaW1hZ2VFbGVtZW50c1tpXTsK
KyAgICAgICAgYXV0byYgcGxhY2Vob2xkZXIgPSBtX2Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVyc1tp
XTsKKyAgICAgICAgcGxhY2Vob2xkZXItPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oSFRNTE5hbWVzOjpzcmNBdHRyLCBpbWFnZUVsZW1lbnQtPmF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oSFRNTE5hbWVzOjpzcmNBdHRyKSk7CisjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKKyAgICAgICAgaWYgKGF1dG8gYXR0YWNobWVudCA9IGltYWdlRWxlbWVudC0+YXR0
YWNobWVudEVsZW1lbnQoKSkKKyAgICAgICAgICAgIHBsYWNlaG9sZGVyLT5zZXRBdHRhY2htZW50
RWxlbWVudChhdHRhY2htZW50LnJlbGVhc2VOb25OdWxsKCkpOworI2VuZGlmCisgICAgfQorICAg
IHJldHVybiB0cnVlOworfQorCit2b2lkIERyYWdDb250cm9sbGVyOjppbnNlcnREcm9wcGVkSW1h
Z2VQbGFjZWhvbGRlcnNBdENhcmV0KGNvbnN0IFZlY3RvcjxJbnRTaXplPiYgaW1hZ2VTaXplcykK
K3sKKyAgICBhdXRvJiBjYXJldENvbnRyb2xsZXIgPSBtX3BhZ2UuZHJhZ0NhcmV0Q29udHJvbGxl
cigpOworICAgIGlmICghY2FyZXRDb250cm9sbGVyLmlzQ29udGVudFJpY2hseUVkaXRhYmxlKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gZHJvcENhcmV0ID0gY2FyZXRDb250cm9sbGVy
LmNhcmV0UG9zaXRpb24oKTsKKyAgICBpZiAoZHJvcENhcmV0LmlzTnVsbCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZlB0cihkcm9wQ2FyZXQuZGVlcEVx
dWl2YWxlbnQoKS5kb2N1bWVudCgpKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1
cm47CisKKyAgICBhdXRvIGZyYW1lID0gbWFrZVJlZlB0cihkb2N1bWVudC0+ZnJhbWUoKSk7Cisg
ICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVGVtcG9yYXJ5U2VsZWN0aW9u
Q2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqZnJhbWUsIFdURjo6bnVsbG9wdCwgeyBUZW1wb3JhcnlT
ZWxlY3Rpb25PcHRpb246Oklnbm9yZVNlbGVjdGlvbkNoYW5nZXMgfSk7CisKKyAgICBhdXRvIGZy
YWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKCpkb2N1bWVudCk7CisgICAgZm9yIChh
dXRvJiBzaXplIDogaW1hZ2VTaXplcykgeworICAgICAgICBBU1NFUlQoIXNpemUuaXNFbXB0eSgp
KTsKKyAgICAgICAgYXV0byBpbWFnZSA9IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZSgqZG9jdW1l
bnQpOworICAgICAgICBpbWFnZS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihI
VE1MTmFtZXM6OndpZHRoQXR0ciwgQXRvbVN0cmluZzo6bnVtYmVyKHNpemUud2lkdGgoKSkpOwor
ICAgICAgICBpbWFnZS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFt
ZXM6OmhlaWdodEF0dHIsIEF0b21TdHJpbmc6Om51bWJlcihzaXplLmhlaWdodCgpKSk7CisgICAg
ICAgIGltYWdlLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5TWF4V2lkdGgsIDEw
MCwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKTsKKyAgICAgICAgaW1hZ2UtPnNl
dElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsIENvbG9yKENv
bG9yOjpibGFjaykuY29sb3JXaXRoQWxwaGEoMC4wNSkuY3NzVGV4dCgpKTsKKyAgICAgICAgaW1h
Z2UtPnNldElzRHJvcHBlZEltYWdlUGxhY2Vob2xkZXIoKTsKKyAgICAgICAgZnJhZ21lbnQtPmFw
cGVuZENoaWxkKFdURk1vdmUoaW1hZ2UpKTsKKyAgICB9CisKKyAgICBmcmFtZS0+c2VsZWN0aW9u
KCkuc2V0U2VsZWN0aW9uKGRyb3BDYXJldCk7CisKKyAgICBhdXRvIGNvbW1hbmQgPSBSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCpkb2N1bWVudCwgV1RGTW92ZShmcmFnbWVudCksIHsg
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nLCBSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6U21hcnRSZXBsYWNlIH0sIEVkaXRBY3Rpb246Okluc2VydEZyb21Ecm9wKTsKKyAg
ICBjb21tYW5kLT5hcHBseSgpOworCisgICAgYXV0byBpbnNlcnRlZENvbnRlbnRSYW5nZSA9IGNv
bW1hbmQtPmluc2VydGVkQ29udGVudFJhbmdlKCk7CisgICAgaWYgKCFpbnNlcnRlZENvbnRlbnRS
YW5nZSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gY29udGFpbmVyID0gbWFrZVJlZlB0cihpbnNlcnRlZENvbnRlbnRS
YW5nZS0+Y29tbW9uQW5jZXN0b3JDb250YWluZXIoKSk7CisgICAgaWYgKCFpczxDb250YWluZXJO
b2RlPihjb250YWluZXIpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPFJlZjxIVE1MSW1hZ2VFbGVtZW50Pj4gcGxh
Y2Vob2xkZXJzOworICAgIGZvciAoYXV0byYgcGxhY2Vob2xkZXIgOiBkZXNjZW5kYW50c09mVHlw
ZTxIVE1MSW1hZ2VFbGVtZW50Pihkb3duY2FzdDxDb250YWluZXJOb2RlPigqY29udGFpbmVyKSkp
IHsKKyAgICAgICAgYXV0byBpbnRlcnNlY3RzTm9kZSA9IGluc2VydGVkQ29udGVudFJhbmdlLT5p
bnRlcnNlY3RzTm9kZShwbGFjZWhvbGRlcik7CisgICAgICAgIGlmICghaW50ZXJzZWN0c05vZGUu
aGFzRXhjZXB0aW9uKCkgJiYgaW50ZXJzZWN0c05vZGUucmV0dXJuVmFsdWUoKSkKKyAgICAgICAg
ICAgIHBsYWNlaG9sZGVycy5hcHBlbmQocGxhY2Vob2xkZXIpOworICAgIH0KKworICAgIGlmIChw
bGFjZWhvbGRlcnMuc2l6ZSgpICE9IGltYWdlU2l6ZXMuc2l6ZSgpKSB7CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBwbGFjZWhvbGRlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYXV0byYg
cGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcnNbaV07CisgICAgICAgIGF1dG8gaW1hZ2VTaXplID0g
aW1hZ2VTaXplc1tpXTsKKyAgICAgICAgZG91YmxlIGNsaWVudFdpZHRoID0gcGxhY2Vob2xkZXIt
PmNsaWVudFdpZHRoKCk7CisgICAgICAgIGRvdWJsZSBoZWlnaHRSZXNwZWN0aW5nQXNwZWN0UmF0
aW8gPSAoaW1hZ2VTaXplLmhlaWdodCgpICogY2xpZW50V2lkdGgpIC8gaW1hZ2VTaXplLndpZHRo
KCk7CisgICAgICAgIHBsYWNlaG9sZGVyLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKEhUTUxOYW1lczo6aGVpZ2h0QXR0ciwgQXRvbVN0cmluZzo6bnVtYmVyKGhlaWdodFJlc3Bl
Y3RpbmdBc3BlY3RSYXRpbykpOworICAgIH0KKworICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQo
KTsKKworICAgIG1fZHJvcHBlZEltYWdlUGxhY2Vob2xkZXJzID0gV1RGTW92ZShwbGFjZWhvbGRl
cnMpOworICAgIG1fZHJvcHBlZEltYWdlUGxhY2Vob2xkZXJSYW5nZSA9IFdURk1vdmUoaW5zZXJ0
ZWRDb250ZW50UmFuZ2UpOworCisgICAgZnJhbWUtPnNlbGVjdGlvbigpLmNsZWFyKCk7CisgICAg
Y2FyZXRDb250cm9sbGVyLnNldENhcmV0UG9zaXRpb24obV9kcm9wcGVkSW1hZ2VQbGFjZWhvbGRl
clJhbmdlLT5zdGFydFBvc2l0aW9uKCkpOworfQorCit2b2lkIERyYWdDb250cm9sbGVyOjpmaW5h
bGl6ZURyb3BwZWRJbWFnZVBsYWNlaG9sZGVyKEhUTUxJbWFnZUVsZW1lbnQmIHBsYWNlaG9sZGVy
KQoreworICAgIEFTU0VSVChwbGFjZWhvbGRlci5pc0Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVyKCkp
OworICAgIHBsYWNlaG9sZGVyLnJlbW92ZUF0dHJpYnV0ZShIVE1MTmFtZXM6OmhlaWdodEF0dHIp
OworICAgIHBsYWNlaG9sZGVyLnJlbW92ZUlubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlC
YWNrZ3JvdW5kQ29sb3IpOworfQorCiAvLyBNYW51YWwgZHJhZyBjYXJldCBtYW5pcHVsYXRpb24K
IHZvaWQgRHJhZ0NvbnRyb2xsZXI6OnBsYWNlRHJhZ0NhcmV0KGNvbnN0IEludFBvaW50JiB3aW5k
b3dQb2ludCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRleCA3M2ZlZDA5
ZjEwYzUyMGM1MWJmMjhiZGY2NGQyMWVjYzZhOGRiNjNkLi5kMmJhMWZjYWIxMWNmMmI5YjhjNGFk
NmNiYTcxZjAzNWMyMjNhZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCkBA
IC00MCw2ICs0MCw3IEBAIGNsYXNzIERyYWdEYXRhOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZy
YW1lOwogY2xhc3MgRnJhbWVTZWxlY3Rpb247CitjbGFzcyBIVE1MSW1hZ2VFbGVtZW50OwogY2xh
c3MgSFRNTElucHV0RWxlbWVudDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBQYWdlOwpAQCAtODgs
NiArODksMTIgQEAgc3RydWN0IFByb21pc2VkQXR0YWNobWVudEluZm87CiAgICAgICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZHJhZ0VuZGVkKCk7CiAgICAgICAgIAogICAgICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHBsYWNlRHJhZ0NhcmV0KGNvbnN0IEludFBvaW50Jik7CisKKyAgICAgICAgY29u
c3QgVmVjdG9yPFJlZjxIVE1MSW1hZ2VFbGVtZW50Pj4mIGRyb3BwZWRJbWFnZVBsYWNlaG9sZGVy
cygpIGNvbnN0IHsgcmV0dXJuIG1fZHJvcHBlZEltYWdlUGxhY2Vob2xkZXJzOyB9CisgICAgICAg
IGNvbnN0IFJlZlB0cjxSYW5nZT4mIGRyb3BwZWRJbWFnZVBsYWNlaG9sZGVyUmFuZ2UoKSBjb25z
dCB7IHJldHVybiBtX2Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVyUmFuZ2U7IH0KKworICAgICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGZpbmFsaXplRHJvcHBlZEltYWdlUGxhY2Vob2xkZXIoSFRNTElt
YWdlRWxlbWVudCYpOworICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGluc2VydERyb3BwZWRJ
bWFnZVBsYWNlaG9sZGVyc0F0Q2FyZXQoY29uc3QgVmVjdG9yPEludFNpemU+JiBpbWFnZVNpemVz
KTsKICAgICAgICAgCiAgICAgICAgIGJvb2wgc3RhcnREcmFnKEZyYW1lJiBzcmMsIGNvbnN0IERy
YWdTdGF0ZSYsIERyYWdPcGVyYXRpb24gc3JjT3AsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
ZHJhZ0V2ZW50LCBjb25zdCBJbnRQb2ludCYgZHJhZ09yaWdpbiwgSGFzTm9uRGVmYXVsdFBhc3Rl
Ym9hcmREYXRhKTsKICAgICAgICAgc3RhdGljIGNvbnN0IEludFNpemUmIG1heERyYWdJbWFnZVNp
emUoKTsKQEAgLTEyOCw2ICsxMzUsOSBAQCBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5mbzsK
ICNlbmRpZgogICAgICAgICB9CiAKKyAgICAgICAgYm9vbCB0cnlUb1VwZGF0ZURyb3BwZWRJbWFn
ZVBsYWNlaG9sZGVycyhjb25zdCBEcmFnRGF0YSYpOworICAgICAgICB2b2lkIHJlbW92ZUFsbERy
b3BwZWRJbWFnZVBsYWNlaG9sZGVycygpOworCiAgICAgICAgIFN0cmluZyBwbGF0Zm9ybUNvbnRl
bnRUeXBlRm9yQmxvYlR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKSBjb25zdDsKIAogICAgICAgICB2
b2lkIGNsZWFudXBBZnRlclN5c3RlbURyYWcoKTsKQEAgLTE1Miw2ICsxNjIsOCBAQCBzdHJ1Y3Qg
UHJvbWlzZWRBdHRhY2htZW50SW5mbzsKICAgICAgICAgSW50UG9pbnQgbV9kcmFnT2Zmc2V0Owog
ICAgICAgICBVUkwgbV9kcmFnZ2luZ0ltYWdlVVJMOwogICAgICAgICBib29sIG1faXNQZXJmb3Jt
aW5nRHJvcCB7IGZhbHNlIH07CisgICAgICAgIFZlY3RvcjxSZWY8SFRNTEltYWdlRWxlbWVudD4+
IG1fZHJvcHBlZEltYWdlUGxhY2Vob2xkZXJzOworICAgICAgICBSZWZQdHI8UmFuZ2U+IG1fZHJv
cHBlZEltYWdlUGxhY2Vob2xkZXJSYW5nZTsKICAgICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBpc0RyYWdnYWJsZUxpbmsoY29uc3QgRWxlbWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZC5oCmluZGV4IDI4NzdjZWRiZTYwODI2Y2MyMDg1MGM5MTcxZWI4OTY1ZDVhOTQz
YWEuLmZiODYwZTEzODQ1MjFhOTg5NWM0N2E1MmI0OWEyNDMyYmEzZmQ4NWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTE0NCw4ICsxNDQsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIHJlYWRJbWFnZShSZWY8U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcm
IHR5cGUsIFByZXNlbnRhdGlvblNpemUgcHJlZmVycmVkUHJlc2VudGF0aW9uU2l6ZSA9IHsgfSkg
PSAwOwogICAgIHZpcnR1YWwgYm9vbCByZWFkVVJMKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
dGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgcmVhZERhdGFCdWZmZXIoU2hhcmVkQnVmZmVy
JiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIFByZXNlbnRhdGlvblNp
emUgcHJlZmVycmVkUHJlc2VudGF0aW9uU2l6ZSA9IHsgfSkgPSAwOwotI2VuZGlmCiAgICAgdmly
dHVhbCBib29sIHJlYWRQbGFpblRleHQoY29uc3QgU3RyaW5nJikgPSAwOworI2VuZGlmCiB9Owog
CiBzdHJ1Y3QgUGFzdGVib2FyZFBsYWluVGV4dCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5oCmluZGV4IGY1NTIxOTYxYjZhOTA1ZGJm
NzY3OGQwMjNmMTYyMjU1ODE5ODYwYmEuLjQ3NWM3OWFlZDliYTI5YzEwNmU4ZDQ0NmUyMzI4OGRl
MjFmNzJkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1VUSVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1VUSVV0aWxpdGllcy5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLVN0cmluZyBNSU1FVHlwZUZyb21VVEkoY29uc3Qg
U3RyaW5nJik7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgTUlNRVR5cGVGcm9tVVRJKGNvbnN0IFN0
cmluZyYpOwogU3RyaW5nIE1JTUVUeXBlRnJvbVVUSVRyZWUoY29uc3QgU3RyaW5nJik7CiBXRUJD
T1JFX0VYUE9SVCBTdHJpbmcgVVRJRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYpOwogYm9vbCBp
c0RlY2xhcmVkVVRJKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCA2YWJlODI3ZDQ5ZGNkMGFhNGU0YmJlNDFiYTBkZTBjYTgxNjM2MTViLi5j
MzljNzFlY2QxZjQyY2Y2Yzc4M2ZhMmRhZjQyZTQ5MTNjZjE2MDI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzQzLDYgKzc0Myw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0KGJvb2wgYWRkZWQpOwogICAg
IHZvaWQgcmVxdWVzdERyYWdTdGFydChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgV2ViQ29yZTo6
RHJhZ1NvdXJjZUFjdGlvbiBhbGxvd2VkQWN0aW9ucyk7CiAgICAgdm9pZCByZXF1ZXN0QWRkaXRp
b25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIFdlYkNvcmU6
OkRyYWdTb3VyY2VBY3Rpb24gYWxsb3dlZEFjdGlvbnMpOworICAgIHZvaWQgaW5zZXJ0RHJvcHBl
ZEltYWdlUGxhY2Vob2xkZXJzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJbnRTaXplPiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiwgT3B0aW9u
YWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+KT4mJiByZXBseSk7CiAgICAgdm9pZCB3aWxs
UmVjZWl2ZUVkaXREcmFnU25hcHNob3QoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVFZGl0RHJhZ1Nu
YXBzaG90KE9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPik7CiAgICAgdm9pZCBk
aWRDb25jbHVkZURyb3AoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaAppbmRleCBmNTdkYjlmMDllMTVkYmM0ZTNiZGMw
Yjk0MDk1YjUwODE3ZTgxNDg5Li5kMmUwYjkwOWZlYzU0NGM1MzI5NjE2MzAyZjhmN2JhYWI5ODIy
M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRl
cmFjdGlvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0RyYWdEcm9w
SW50ZXJhY3Rpb25TdGF0ZS5oCkBAIC01OSw2ICs1OSwxMSBAQCBzdHJ1Y3QgRHJhZ1NvdXJjZVN0
YXRlIHsKICAgICBOU0ludGVnZXIgaXRlbUlkZW50aWZpZXIgeyAwIH07CiB9OwogCitzdHJ1Y3Qg
SXRlbUFuZFByZXZpZXcgeworICAgIFJldGFpblB0cjxVSURyYWdJdGVtPiBpdGVtOworICAgIFJl
dGFpblB0cjxVSVRhcmdldGVkRHJhZ1ByZXZpZXc+IHByZXZpZXc7Cit9OworCiBzdHJ1Y3QgSXRl
bUFuZFByZXZpZXdQcm92aWRlciB7CiAgICAgUmV0YWluUHRyPFVJRHJhZ0l0ZW0+IGl0ZW07CiAg
ICAgQmxvY2tQdHI8dm9pZChVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKik+IHByb3ZpZGVyOwpAQCAt
OTgsMTMgKzEwMywxNyBAQCBwdWJsaWM6CiAgICAgQmxvY2tQdHI8dm9pZCgpPiB0YWtlRHJhZ0Nh
bmNlbFNldERvd25CbG9jaygpIHsgcmV0dXJuIFdURk1vdmUobV9kcmFnQ2FuY2VsU2V0RG93bkJs
b2NrKTsgfQogICAgIEJsb2NrUHRyPHZvaWQoTlNBcnJheTxVSURyYWdJdGVtICo+ICopPiB0YWtl
QWRkRHJhZ0l0ZW1Db21wbGV0aW9uQmxvY2soKSB7IHJldHVybiBXVEZNb3ZlKG1fYWRkRHJhZ0l0
ZW1Db21wbGV0aW9uQmxvY2spOyB9CiAKKyAgICB2b2lkIHNldERlZmF1bHREcm9wUHJldmlldyhV
SURyYWdJdGVtICosIFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqKTsKICAgICB2b2lkIHByZXBhcmVG
b3JEZWxheWVkRHJvcFByZXZpZXcoVUlEcmFnSXRlbSAqLCB2b2lkKF5wcm92aWRlcikoVUlUYXJn
ZXRlZERyYWdQcmV2aWV3ICpwcmV2aWV3KSk7CiAgICAgdm9pZCBkZWxpdmVyRGVsYXllZERyb3BQ
cmV2aWV3KFVJVmlldyAqY29udGVudFZpZXcsIFVJVmlldyAqcHJldmlld0NvbnRhaW5lciwgY29u
c3QgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmKTsKKyAgICB2b2lkIGRlbGl2ZXJEZWxheWVk
RHJvcFByZXZpZXcoVUlWaWV3ICpjb250ZW50VmlldywgQ0dSZWN0IHVub2JzY3VyZWRDb250ZW50
UmVjdCwgTlNBcnJheTxVSURyYWdJdGVtICo+ICosIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJbnRS
ZWN0PiYgcGxhY2Vob2xkZXJSZWN0cyk7CiAgICAgdm9pZCBjbGVhckFsbERlbGF5ZWRJdGVtUHJl
dmlld1Byb3ZpZGVycygpOwogCiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlUHJldmlld3NGb3JB
Y3RpdmVEcmFnU291cmNlcygpOwogICAgIE9wdGlvbmFsPERyYWdTb3VyY2VTdGF0ZT4gYWN0aXZl
RHJhZ1NvdXJjZUZvckl0ZW0oVUlEcmFnSXRlbSAqKSBjb25zdDsKKyAgICBVSVRhcmdldGVkRHJh
Z1ByZXZpZXcgKmRlZmF1bHREcm9wUHJldmlldyhVSURyYWdJdGVtICopIGNvbnN0OworICAgIEJs
b2NrUHRyPHZvaWQoVUlUYXJnZXRlZERyYWdQcmV2aWV3ICopPiBkcm9wUHJldmlld1Byb3ZpZGVy
KFVJRHJhZ0l0ZW0gKik7CiAKICAgICBDR1BvaW50IG1fbGFzdEdsb2JhbFBvc2l0aW9uIHsgQ0dQ
b2ludFplcm8gfTsKICAgICBDR1BvaW50IG1fYWRqdXN0ZWRQb3NpdGlvbkZvckRyYWdFbmQgeyBD
R1BvaW50WmVybyB9OwpAQCAtMTE5LDYgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8
RHJhZ1NvdXJjZVN0YXRlPiBtX3N0YWdlZERyYWdTb3VyY2U7CiAgICAgVmVjdG9yPERyYWdTb3Vy
Y2VTdGF0ZT4gbV9hY3RpdmVEcmFnU291cmNlczsKICAgICBWZWN0b3I8SXRlbUFuZFByZXZpZXdQ
cm92aWRlcj4gbV9kZWxheWVkSXRlbVByZXZpZXdQcm92aWRlcnM7CisgICAgVmVjdG9yPEl0ZW1B
bmRQcmV2aWV3PiBtX2RlZmF1bHREcm9wUHJldmlld3M7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9EcmFnRHJvcElu
dGVyYWN0aW9uU3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJ
bnRlcmFjdGlvblN0YXRlLm1tCmluZGV4IGFmMjc2YTMwMzA5MmUwNmE4MDg5NDczNzA5ZTliYWNl
MWVlZTRkOTQuLjU4OGU4M2M5NTJhYzkxZjMxOWVkZTFkMGNmODUzN2ZlZmM3MTA3NjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9uU3Rh
dGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJhY3Rp
b25TdGF0ZS5tbQpAQCAtMjMsMTEgKzIzLDEyIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRyYWdEcm9w
SW50ZXJhY3Rpb25TdGF0ZS5oIgorI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJEcmFnRHJv
cEludGVyYWN0aW9uU3RhdGUuaCIKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgPFdlYkNvcmUv
RHJhZ0l0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvSW1hZ2UuaD4KIApAQCAtMTg1LDYgKzE4Niwz
MSBAQCB2b2lkIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTo6ZHJhZ1Nlc3Npb25XaWxsQmVnaW4o
KQogICAgIHVwZGF0ZVByZXZpZXdzRm9yQWN0aXZlRHJhZ1NvdXJjZXMoKTsKIH0KIAordm9pZCBE
cmFnRHJvcEludGVyYWN0aW9uU3RhdGU6OnNldERlZmF1bHREcm9wUHJldmlldyhVSURyYWdJdGVt
ICppdGVtLCBVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKnByZXZpZXcpCit7CisgICAgbV9kZWZhdWx0
RHJvcFByZXZpZXdzLmFwcGVuZCh7IGl0ZW0sIHByZXZpZXcgfSk7Cit9CisKK1VJVGFyZ2V0ZWRE
cmFnUHJldmlldyAqRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlOjpkZWZhdWx0RHJvcFByZXZpZXco
VUlEcmFnSXRlbSAqaXRlbSkgY29uc3QKK3sKKyAgICBhdXRvIG1hdGNoSW5kZXggPSBtX2RlZmF1
bHREcm9wUHJldmlld3MuZmluZE1hdGNoaW5nKFsmXSAoYXV0byYgaXRlbUFuZFByZXZpZXcpIHsK
KyAgICAgICAgcmV0dXJuIGl0ZW1BbmRQcmV2aWV3Lml0ZW0gPT0gaXRlbTsKKyAgICB9KTsKKyAg
ICByZXR1cm4gbWF0Y2hJbmRleCA9PSBub3RGb3VuZCA/IG5pbCA6IG1fZGVmYXVsdERyb3BQcmV2
aWV3c1ttYXRjaEluZGV4XS5wcmV2aWV3LmdldCgpOworfQorCitCbG9ja1B0cjx2b2lkKFVJVGFy
Z2V0ZWREcmFnUHJldmlldyAqKT4gRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlOjpkcm9wUHJldmll
d1Byb3ZpZGVyKFVJRHJhZ0l0ZW0gKml0ZW0pCit7CisgICAgYXV0byBtYXRjaEluZGV4ID0gbV9k
ZWxheWVkSXRlbVByZXZpZXdQcm92aWRlcnMuZmluZE1hdGNoaW5nKFsmXSAoYXV0byYgaXRlbUFu
ZFByb3ZpZGVyKSB7CisgICAgICAgIHJldHVybiBpdGVtQW5kUHJvdmlkZXIuaXRlbSA9PSBpdGVt
OworICAgIH0pOworCisgICAgaWYgKG1hdGNoSW5kZXggPT0gbm90Rm91bmQpCisgICAgICAgIHJl
dHVybiBuaWw7CisKKyAgICByZXR1cm4gbV9kZWxheWVkSXRlbVByZXZpZXdQcm92aWRlcnNbbWF0
Y2hJbmRleF0ucHJvdmlkZXI7Cit9CisKIHZvaWQgRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlOjpw
cmVwYXJlRm9yRGVsYXllZERyb3BQcmV2aWV3KFVJRHJhZ0l0ZW0gKml0ZW0sIHZvaWQoXnByb3Zp
ZGVyKShVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKnByZXZpZXcpKQogewogICAgIG1fZGVsYXllZEl0
ZW1QcmV2aWV3UHJvdmlkZXJzLmFwcGVuZCh7IGl0ZW0sIHByb3ZpZGVyIH0pOwpAQCAtMjAyLDYg
KzIyOCw2MSBAQCB2b2lkIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTo6ZGVsaXZlckRlbGF5ZWRE
cm9wUHJldmlldyhVSVZpZXcgKmNvbnRlbnRWaWV3LCBVSQogICAgIG1fZGVsYXllZEl0ZW1QcmV2
aWV3UHJvdmlkZXJzLmNsZWFyKCk7CiB9CiAKK3ZvaWQgRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRl
OjpkZWxpdmVyRGVsYXllZERyb3BQcmV2aWV3KFVJVmlldyAqY29udGVudFZpZXcsIENHUmVjdCB1
bm9ic2N1cmVkQ29udGVudFJlY3QsIE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAqaXRlbXMsIGNvbnN0
IFZlY3RvcjxJbnRSZWN0PiYgcGxhY2Vob2xkZXJSZWN0cykKK3sKKyAgICBpZiAoaXRlbXMuY291
bnQgIT0gcGxhY2Vob2xkZXJSZWN0cy5zaXplKCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coRHJh
Z0FuZERyb3AsICJGYWlsZWQgdG8gYW5pbWF0ZSBpbWFnZSBwbGFjZWhvbGRlcnM6IG51bWJlciBv
ZiBkcmFnIGl0ZW1zICgldHUpIGRvZXMgbm90IG1hdGNoIG51bWJlciBvZiBwbGFjZWhvbGRlcnMg
KCV0dSkiLCBpdGVtcy5jb3VudCwgcGxhY2Vob2xkZXJSZWN0cy5zaXplKCkpOworICAgICAgICBj
bGVhckFsbERlbGF5ZWRJdGVtUHJldmlld1Byb3ZpZGVycygpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwbGFjZWhvbGRlclJlY3RzLnNpemUo
KTsgKytpKSB7CisgICAgICAgIFVJRHJhZ0l0ZW0gKml0ZW0gPSBbaXRlbXMgb2JqZWN0QXRJbmRl
eDppXTsKKyAgICAgICAgYXV0byYgcGxhY2Vob2xkZXJSZWN0ID0gcGxhY2Vob2xkZXJSZWN0c1tp
XTsKKyAgICAgICAgYXV0byBwcm92aWRlciA9IGRyb3BQcmV2aWV3UHJvdmlkZXIoaXRlbSk7Cisg
ICAgICAgIGlmICghcHJvdmlkZXIpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBh
dXRvIGRlZmF1bHRQcmV2aWV3ID0gZGVmYXVsdERyb3BQcmV2aWV3KGl0ZW0pOworICAgICAgICBh
dXRvIGRlZmF1bHRQcmV2aWV3U2l6ZSA9IFtkZWZhdWx0UHJldmlldyBzaXplXTsKKyAgICAgICAg
aWYgKCFkZWZhdWx0UHJldmlldyB8fCBkZWZhdWx0UHJldmlld1NpemUud2lkdGggPD0gMCB8fCBk
ZWZhdWx0UHJldmlld1NpemUuaGVpZ2h0IDw9IDAgfHwgcGxhY2Vob2xkZXJSZWN0LmlzRW1wdHko
KSkgeworICAgICAgICAgICAgcHJvdmlkZXIobmlsKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB9CisKKyAgICAgICAgRmxvYXRSZWN0IHByZXZpZXdJbnRlcnNlY3Rpb25SZWN0ID0g
ZW5jbG9zaW5nSW50UmVjdChDR1JlY3RJbnRlcnNlY3Rpb24odW5vYnNjdXJlZENvbnRlbnRSZWN0
LCBwbGFjZWhvbGRlclJlY3QpKTsKKyAgICAgICAgaWYgKHByZXZpZXdJbnRlcnNlY3Rpb25SZWN0
LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgLy8gSWYgdGhlIHByZXZpZXcgcmVjdCBpcyBjb21w
bGV0ZWx5IG9mZnNjcmVlbiwgZG9uJ3QgYm90aGVyIHRyeWluZyB0byBjbGlwIG91dCBvciBzY2Fs
ZSB0aGUgZGVmYXVsdCBwcmV2aWV3OworICAgICAgICAgICAgLy8gc2ltcGx5IHJldGFyZ2V0IHRo
ZSBkZWZhdWx0IHByZXZpZXcuCisgICAgICAgICAgICBhdXRvIHRhcmdldCA9IGFkb3B0TlMoW1tV
SURyYWdQcmV2aWV3VGFyZ2V0IGFsbG9jXSBpbml0V2l0aENvbnRhaW5lcjpjb250ZW50VmlldyBj
ZW50ZXI6cGxhY2Vob2xkZXJSZWN0LmNlbnRlcigpXSk7CisgICAgICAgICAgICBwcm92aWRlcihb
ZGVmYXVsdFByZXZpZXcgcmV0YXJnZXRlZFByZXZpZXdXaXRoVGFyZ2V0OnRhcmdldC5nZXQoKV0p
OworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBUYXJnZXRl
ZCBwcmV2aWV3cyBkb24ndCBjbGlwIHRvIHRoZSBib3VuZHMgb2YgYW55IGVuY2xvc2luZyB2aWV3
OyB0aGlzIG1lYW5zIHRoYXQgd2hlbiB0YXJnZXRpbmcgcHJldmlld3Mgb3V0c2lkZQorICAgICAg
ICAvLyB0aGUgdmlzaWJsZSBib3VuZHMgb2YgdGhlIGNvbnRlbnQgdmlldywgdGhlIHByZXZpZXcg
d2lsbCBzcGlsbCBvdXQgdGhlIHdlYiB2aWV3LiBUaGlzIGlzIG1vc3Qgbm90aWNlYWJsZSB3aGVu
CisgICAgICAgIC8vIGRyb3BwaW5nIGEgdGFsbCBpbWFnZSBpbnRvIE1haWwgY29tcG9zZSBvbiBp
T1MgMTMsIHdoZXJlIHRoZSBib3R0b20gb2YgdGhlIGNvbXBvc2Ugd2luZG93IGlzIG5vdCBmbHVz
aCBhZ2FpbnN0CisgICAgICAgIC8vIHRoZSBib3R0b20gb2YgdGhlIHdpbmRvdy4gVG8gbWl0aWdh
dGUgdGhpcywgd2UgdXNlIHRoZSBwcmV2aWV3IHRhcmdldCdzIGB2aXNpYmxlUGF0aGAgcHJvcGVy
dHkgdG8gY2xpcCB0aGUgZGVmYXVsdAorICAgICAgICAvLyBkcm9wIHByZXZpZXcncyB2aWV3LCBi
eSB0aGUgc2FtZSBwcm9wb3J0aW9uIHRoYXQgdGhlIGZpbmFsIHBsYWNlaG9sZGVyIGltYWdlIGlz
IGNsaXBwZWQgKHdpdGggcmVzcGVjdCB0byB0aGUKKyAgICAgICAgLy8gdW5vYnNjdXJlZCBjb250
ZW50IHJlY3QpLgorICAgICAgICBhdXRvIHByZXZpZXdCb3VuZHMgPSBbZGVmYXVsdFByZXZpZXcg
dmlld10uYm91bmRzOworICAgICAgICBhdXRvIGluc2V0UHJldmlld0JvdW5kcyA9IFVJRWRnZUlu
c2V0c0luc2V0UmVjdChwcmV2aWV3Qm91bmRzLCB7CisgICAgICAgICAgICAocHJldmlld0ludGVy
c2VjdGlvblJlY3QueSgpIC0gcGxhY2Vob2xkZXJSZWN0LnkoKSkgLyBwbGFjZWhvbGRlclJlY3Qu
aGVpZ2h0KCkgKiBwcmV2aWV3Qm91bmRzLnNpemUuaGVpZ2h0LAorICAgICAgICAgICAgKHByZXZp
ZXdJbnRlcnNlY3Rpb25SZWN0LngoKSAtIHBsYWNlaG9sZGVyUmVjdC54KCkpIC8gcGxhY2Vob2xk
ZXJSZWN0LndpZHRoKCkgKiBwcmV2aWV3Qm91bmRzLnNpemUud2lkdGgsCisgICAgICAgICAgICAo
cGxhY2Vob2xkZXJSZWN0Lm1heFkoKSAtIHByZXZpZXdJbnRlcnNlY3Rpb25SZWN0Lm1heFkoKSkg
LyBwbGFjZWhvbGRlclJlY3QuaGVpZ2h0KCkgKiBwcmV2aWV3Qm91bmRzLnNpemUuaGVpZ2h0LAor
ICAgICAgICAgICAgKHBsYWNlaG9sZGVyUmVjdC5tYXhYKCkgLSBwcmV2aWV3SW50ZXJzZWN0aW9u
UmVjdC5tYXhYKCkpIC8gcGxhY2Vob2xkZXJSZWN0LndpZHRoKCkgKiBwcmV2aWV3Qm91bmRzLnNp
emUud2lkdGgKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byB0cmFuc2Zvcm0gPSBDR0FmZmlu
ZVRyYW5zZm9ybU1ha2VTY2FsZShwbGFjZWhvbGRlclJlY3Qud2lkdGgoKSAvIGRlZmF1bHRQcmV2
aWV3U2l6ZS53aWR0aCwgcGxhY2Vob2xkZXJSZWN0LmhlaWdodCgpIC8gZGVmYXVsdFByZXZpZXdT
aXplLmhlaWdodCk7CisgICAgICAgIGF1dG8gdGFyZ2V0ID0gYWRvcHROUyhbW1VJRHJhZ1ByZXZp
ZXdUYXJnZXQgYWxsb2NdIGluaXRXaXRoQ29udGFpbmVyOmNvbnRlbnRWaWV3IGNlbnRlcjpwcmV2
aWV3SW50ZXJzZWN0aW9uUmVjdC5jZW50ZXIoKSB0cmFuc2Zvcm06dHJhbnNmb3JtXSk7CisgICAg
ICAgIFtkZWZhdWx0UHJldmlldyBwYXJhbWV0ZXJzXS52aXNpYmxlUGF0aCA9IFtVSUJlemllclBh
dGggYmV6aWVyUGF0aFdpdGhSZWN0Omluc2V0UHJldmlld0JvdW5kc107CisgICAgICAgIGF1dG8g
bmV3UHJldmlldyA9IGFkb3B0TlMoW1tVSVRhcmdldGVkRHJhZ1ByZXZpZXcgYWxsb2NdIGluaXRX
aXRoVmlldzpbZGVmYXVsdFByZXZpZXcgdmlld10gcGFyYW1ldGVyczpbZGVmYXVsdFByZXZpZXcg
cGFyYW1ldGVyc10gdGFyZ2V0OnRhcmdldC5nZXQoKV0pOworICAgICAgICBwcm92aWRlcihuZXdQ
cmV2aWV3LmdldCgpKTsKKyAgICB9CisKKyAgICBtX2RlbGF5ZWRJdGVtUHJldmlld1Byb3ZpZGVy
cy5jbGVhcigpOworfQorCiB2b2lkIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTo6Y2xlYXJBbGxE
ZWxheWVkSXRlbVByZXZpZXdQcm92aWRlcnMoKQogewogICAgIGZvciAoYXV0byYgaXRlbUFuZFBy
ZXZpZXdQcm92aWRlciA6IG1fZGVsYXllZEl0ZW1QcmV2aWV3UHJvdmlkZXJzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
CmluZGV4IDgwNzBkM2QxNGFkYTY5ZmE4NDk1ZTBhYTdlZGZlMmM3MGRhYjJkYTguLmYxNjljZWUx
MjYyYmU4MDhiMDMxOGZlOTNkZDBkZmZkOTJkOGU1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTM1Niw2
ICszNTYsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogCiAgICAgQk9PTCBfZm9j
dXNSZXF1aXJlc1N0cm9uZ1Bhc3N3b3JkQXNzaXN0YW5jZTsKICAgICBCT09MIF93YWl0aW5nRm9y
RWRpdERyYWdTbmFwc2hvdDsKKyAgICBOU0ludGVnZXIgX2Ryb3BBbmltYXRpb25Db3VudDsKIAog
ICAgIEJPT0wgX2hhc1NldFVwSW50ZXJhY3Rpb25zOwogICAgIE5TVUludGVnZXIgX2lnbm9yZVNl
bGVjdGlvbkNvbW1hbmRGYWRlQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBhNDNlYTYzZDllM2Ni
NTEwNzRmMzc0ZDZiNjA0ZTIwYjVlNGI2ZWY1Li40NjFmZWRmN2ZkNmQ5ODU1YTk0YmJhZmNhNDVj
NTBmMjE2NzE3NWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTkzLDYgKzkzLDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvSW5wdXRNb2RlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleUV2ZW50Q29kZXNJT1Mu
aD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF0aC5o
PgpAQCAtMTAyLDYgKzEwMyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGJhci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9TaGFyZURhdGEuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRv
ci5oPgorI2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
VmlzaWJsZVNlbGVjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Xcml0aW5nRGlyZWN0aW9uLmg+CkBAIC02NzE3LDYgKzY3MTksOSBAQCAtICh2
b2lkKV9kZWxpdmVyRGVsYXllZERyb3BQcmV2aWV3SWZQb3NzaWJsZTooT3B0aW9uYWw8V2ViQ29y
ZTo6VGV4dEluZGljYXRvckRhdAogICAgIGlmICghdW5zZWxlY3RlZFNuYXBzaG90SW1hZ2UpCiAg
ICAgICAgIHJldHVybjsKIAorICAgIGlmICghX2Ryb3BBbmltYXRpb25Db3VudCkKKyAgICAgICAg
cmV0dXJuOworCiAgICAgYXV0byB1bnNlbGVjdGVkQ29udGVudEltYWdlRm9yRWRpdERyYWcgPSBh
ZG9wdE5TKFtbVUlJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOnVuc2VsZWN0ZWRTbmFwc2hv
dEltYWdlLmdldCgpIHNjYWxlOl9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpIG9yaWVudGF0aW9u
OlVJSW1hZ2VPcmllbnRhdGlvblVwXSk7CiAgICAgX3Vuc2VsZWN0ZWRDb250ZW50U25hcHNob3Qg
PSBhZG9wdE5TKFtbVUlJbWFnZVZpZXcgYWxsb2NdIGluaXRXaXRoSW1hZ2U6dW5zZWxlY3RlZENv
bnRlbnRJbWFnZUZvckVkaXREcmFnLmdldCgpXSk7CiAgICAgW191bnNlbGVjdGVkQ29udGVudFNu
YXBzaG90IHNldEZyYW1lOmRhdGEtPmNvbnRlbnRJbWFnZVdpdGhvdXRTZWxlY3Rpb25SZWN0SW5S
b290Vmlld0Nvb3JkaW5hdGVzXTsKQEAgLTY5ODMsNiArNjk4OCw3MiBAQCAtICh2b2lkKXNlbGVj
dFBvc2l0aW9uQXRQb2ludDooQ0dQb2ludClwb2ludCB3aXRoQ29udGV4dFJlcXVlc3Q6KFVJV0tE
b2N1bWVudFJlcQogCiAjZW5kaWYKIAorc3RhdGljIFZlY3RvcjxXZWJDb3JlOjpJbnRTaXplPiBz
aXplc09mUGxhY2Vob2xkZXJFbGVtZW50c1RvSW5zZXJ0V2hlbkRyb3BwaW5nSXRlbXMoTlNBcnJh
eTxOU0l0ZW1Qcm92aWRlciAqPiAqaXRlbVByb3ZpZGVycykKK3sKKyAgICBWZWN0b3I8V2ViQ29y
ZTo6SW50U2l6ZT4gc2l6ZXM7CisgICAgZm9yIChOU0l0ZW1Qcm92aWRlciAqaXRlbSBpbiBpdGVt
UHJvdmlkZXJzKSB7CisgICAgICAgIGlmICghV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6aXNT
dXBwb3J0ZWRJbWFnZU1JTUVUeXBlKFdlYkNvcmU6Ok1JTUVUeXBlRnJvbVVUSShpdGVtLndlYl9m
aWxlVXBsb2FkQ29udGVudFR5cGVzLmZpcnN0T2JqZWN0KSkpCisgICAgICAgICAgICByZXR1cm4g
eyB9OworCisgICAgICAgIFdlYkNvcmU6OkludFNpemUgcHJlc2VudGF0aW9uU2l6ZShpdGVtLnBy
ZWZlcnJlZFByZXNlbnRhdGlvblNpemUpOworICAgICAgICBpZiAocHJlc2VudGF0aW9uU2l6ZS5p
c0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4geyB9OworCisgICAgICAgIHNpemVzLmFwcGVu
ZChXVEZNb3ZlKHByZXNlbnRhdGlvblNpemUpKTsKKyAgICB9CisgICAgcmV0dXJuIHNpemVzOwor
fQorCistIChCT09MKV9oYW5kbGVEcm9wQnlJbnNlcnRpbmdJbWFnZVBsYWNlaG9sZGVyczooTlNB
cnJheTxOU0l0ZW1Qcm92aWRlciAqPiAqKWl0ZW1Qcm92aWRlcnMgc2Vzc2lvbjooaWQgPFVJRHJv
cFNlc3Npb24+KXNlc3Npb24KK3sKKyAgICBpZiAoIV93ZWJWaWV3Ll9lZGl0YWJsZSkKKyAgICAg
ICAgcmV0dXJuIE5POworCisgICAgaWYgKF9kcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuZHJhZ1Nl
c3Npb24oKSkKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgaWYgKHNlc3Npb24uaXRlbXMuY291
bnQgIT0gaXRlbVByb3ZpZGVycy5jb3VudCkKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgYXV0
byBpbWFnZVBsYWNlaG9sZGVyU2l6ZXMgPSBzaXplc09mUGxhY2Vob2xkZXJFbGVtZW50c1RvSW5z
ZXJ0V2hlbkRyb3BwaW5nSXRlbXMoaXRlbVByb3ZpZGVycyk7CisgICAgaWYgKGltYWdlUGxhY2Vo
b2xkZXJTaXplcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBOTzsKKworICAgIFJFTEVBU0Vf
TE9HKERyYWdBbmREcm9wLCAiSW5zZXJ0aW5nIGRyb3BwZWQgaW1hZ2UgcGxhY2Vob2xkZXJzIGZv
ciBzZXNzaW9uOiAlcCIsIHNlc3Npb24pOworCisgICAgX3BhZ2UtPmluc2VydERyb3BwZWRJbWFn
ZVBsYWNlaG9sZGVycyhpbWFnZVBsYWNlaG9sZGVyU2l6ZXMsIFtwcm90ZWN0ZWRTZWxmID0gcmV0
YWluUHRyKHNlbGYpLCBkcmFnSXRlbXMgPSByZXRhaW5QdHIoc2Vzc2lvbi5pdGVtcyldIChhdXRv
JiBwbGFjZWhvbGRlclJlY3RzLCBhdXRvIGRhdGEpIHsKKyAgICAgICAgYXV0byYgc3RhdGUgPSBw
cm90ZWN0ZWRTZWxmLT5fZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlOworICAgICAgICBpZiAoIWRh
dGEgfHwgIXByb3RlY3RlZFNlbGYtPl9kcm9wQW5pbWF0aW9uQ291bnQpIHsKKyAgICAgICAgICAg
IFJFTEVBU0VfTE9HKERyYWdBbmREcm9wLCAiRmFpbGVkIHRvIGFuaW1hdGUgaW1hZ2UgcGxhY2Vo
b2xkZXJzOiBtaXNzaW5nIHRleHQgaW5kaWNhdG9yIGRhdGEuIik7CisgICAgICAgICAgICBzdGF0
ZS5jbGVhckFsbERlbGF5ZWRJdGVtUHJldmlld1Byb3ZpZGVycygpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBzbmFwc2hvdFdpdGhvdXRTZWxlY3Rpb24g
PSBkYXRhLT5jb250ZW50SW1hZ2VXaXRob3V0U2VsZWN0aW9uOworICAgICAgICBpZiAoIXNuYXBz
aG90V2l0aG91dFNlbGVjdGlvbikgeworICAgICAgICAgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERy
b3AsICJGYWlsZWQgdG8gYW5pbWF0ZSBpbWFnZSBwbGFjZWhvbGRlcnM6IG1pc3NpbmcgdW5zZWxl
Y3RlZCBjb250ZW50IGltYWdlLiIpOworICAgICAgICAgICAgc3RhdGUuY2xlYXJBbGxEZWxheWVk
SXRlbVByZXZpZXdQcm92aWRlcnMoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGF1dG8gdW5zZWxlY3RlZFNuYXBzaG90SW1hZ2UgPSBzbmFwc2hvdFdpdGhvdXRT
ZWxlY3Rpb24tPm5hdGl2ZUltYWdlKCk7CisgICAgICAgIGlmICghdW5zZWxlY3RlZFNuYXBzaG90
SW1hZ2UpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HKERyYWdBbmREcm9wLCAiRmFpbGVkIHRv
IGFuaW1hdGUgaW1hZ2UgcGxhY2Vob2xkZXJzOiBjb3VsZCBub3QgZGVjb2RlIHVuc2VsZWN0ZWQg
Y29udGVudCBpbWFnZS4iKTsKKyAgICAgICAgICAgIHN0YXRlLmNsZWFyQWxsRGVsYXllZEl0ZW1Q
cmV2aWV3UHJvdmlkZXJzKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBhdXRvIHVuc2VsZWN0ZWRDb250ZW50SW1hZ2VGb3JFZGl0RHJhZyA9IGFkb3B0TlMoW1tV
SUltYWdlIGFsbG9jXSBpbml0V2l0aENHSW1hZ2U6dW5zZWxlY3RlZFNuYXBzaG90SW1hZ2UuZ2V0
KCkgc2NhbGU6cHJvdGVjdGVkU2VsZi0+X3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkgb3JpZW50
YXRpb246VUlJbWFnZU9yaWVudGF0aW9uVXBdKTsKKyAgICAgICAgYXV0byBzbmFwc2hvdFZpZXcg
PSBhZG9wdE5TKFtbVUlJbWFnZVZpZXcgYWxsb2NdIGluaXRXaXRoSW1hZ2U6dW5zZWxlY3RlZENv
bnRlbnRJbWFnZUZvckVkaXREcmFnLmdldCgpXSk7CisgICAgICAgIFtzbmFwc2hvdFZpZXcgc2V0
RnJhbWU6ZGF0YS0+Y29udGVudEltYWdlV2l0aG91dFNlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29v
cmRpbmF0ZXNdOworICAgICAgICBbcHJvdGVjdGVkU2VsZiBhZGRTdWJ2aWV3OnNuYXBzaG90Vmll
dy5nZXQoKV07CisgICAgICAgIHByb3RlY3RlZFNlbGYtPl91bnNlbGVjdGVkQ29udGVudFNuYXBz
aG90ID0gV1RGTW92ZShzbmFwc2hvdFZpZXcpOworICAgICAgICBzdGF0ZS5kZWxpdmVyRGVsYXll
ZERyb3BQcmV2aWV3KHByb3RlY3RlZFNlbGYuZ2V0KCksIFtwcm90ZWN0ZWRTZWxmIHVub2JzY3Vy
ZWRDb250ZW50UmVjdF0sIGRyYWdJdGVtcy5nZXQoKSwgcGxhY2Vob2xkZXJSZWN0cyk7CisgICAg
fSk7CisKKyAgICByZXR1cm4gWUVTOworfQorCiAjcHJhZ21hIG1hcmsgLSBVSURyYWdJbnRlcmFj
dGlvbkRlbGVnYXRlCiAKIC0gKEJPT0wpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rp
b24gKilpbnRlcmFjdGlvbiBzaG91bGREZWxheUNvbXBldGluZ0dlc3R1cmVSZWNvZ25pemVyOihV
SUdlc3R1cmVSZWNvZ25pemVyICopY29tcGV0aW5nR2VzdHVyZVJlY29nbml6ZXIKQEAgLTcyNjMs
NiArNzMzNCw3IEBAIC0gKHZvaWQpZHJvcEludGVyYWN0aW9uOihVSURyb3BJbnRlcmFjdGlvbiAq
KWludGVyYWN0aW9uIHBlcmZvcm1Ecm9wOihpZCA8VUlEcm9wCiAgICAgW1tXZWJJdGVtUHJvdmlk
ZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSBzZXRJdGVtUHJvdmlkZXJzOml0ZW1Qcm92aWRl
cnNdOwogICAgIFtbV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBzaGFyZWRJbnN0YW5jZV0gaW5j
cmVtZW50UGVuZGluZ09wZXJhdGlvbkNvdW50XTsKICAgICBhdXRvIGRyYWdEYXRhID0gW3NlbGYg
ZHJhZ0RhdGFGb3JEcm9wU2Vzc2lvbjpzZXNzaW9uIGRyYWdEZXN0aW5hdGlvbkFjdGlvbjpXS0Ry
YWdEZXN0aW5hdGlvbkFjdGlvbkFueV07CisgICAgQk9PTCBzaG91bGRTbmFwc2hvdFZpZXcgPSAh
W3NlbGYgX2hhbmRsZURyb3BCeUluc2VydGluZ0ltYWdlUGxhY2Vob2xkZXJzOml0ZW1Qcm92aWRl
cnMgc2Vzc2lvbjpzZXNzaW9uXTsKIAogICAgIFJFTEVBU0VfTE9HKERyYWdBbmREcm9wLCAiTG9h
ZGluZyBkYXRhIGZyb20gJXR1IGl0ZW0gcHJvdmlkZXJzIGZvciBzZXNzaW9uOiAlcCIsIGl0ZW1Q
cm92aWRlcnMuY291bnQsIHNlc3Npb24pOwogICAgIC8vIEFsd2F5cyBsb2FkaW5nIGNvbnRlbnQg
ZnJvbSB0aGUgaXRlbSBwcm92aWRlciBlbnN1cmVzIHRoYXQgdGhlIHdlYiBwcm9jZXNzIHdpbGwg
YmUgYWxsb3dlZCB0byBjYWxsIGJhY2sgaW4gdG8gdGhlIFVJCkBAIC03MjcwLDcgKzczNDIsNyBA
QCAtICh2b2lkKWRyb3BJbnRlcmFjdGlvbjooVUlEcm9wSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlv
biBwZXJmb3JtRHJvcDooaWQgPFVJRHJvcAogICAgIC8vIG9yIHRoZSBwYWdlIHByZXZlbnRlZCBk
ZWZhdWx0IG9uIGBkcmFnb3ZlcmAsIGJ1dCB3aXRob3V0IHRoaXMsIGRyb3BwaW5nIGludG8gYSBu
b3JtYWwgZWRpdGFibGUgYXJlYXMgd2lsbCBmYWlsIGR1ZSB0bwogICAgIC8vIGl0ZW0gcHJvdmlk
ZXJzIG5vdCBsb2FkaW5nIGFueSBkYXRhLgogICAgIFJldGFpblB0cjxXS0NvbnRlbnRWaWV3PiBy
ZXRhaW5lZFNlbGYoc2VsZik7Ci0gICAgW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJl
ZEluc3RhbmNlXSBkb0FmdGVyTG9hZGluZ1Byb3ZpZGVkQ29udGVudEludG9GaWxlVVJMczpbcmV0
YWluZWRTZWxmLCBjYXB0dXJlZERyYWdEYXRhID0gV1RGTW92ZShkcmFnRGF0YSldIChOU0FycmF5
ICpmaWxlVVJMcykgbXV0YWJsZSB7CisgICAgW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNo
YXJlZEluc3RhbmNlXSBkb0FmdGVyTG9hZGluZ1Byb3ZpZGVkQ29udGVudEludG9GaWxlVVJMczpb
cmV0YWluZWRTZWxmLCBjYXB0dXJlZERyYWdEYXRhID0gV1RGTW92ZShkcmFnRGF0YSksIHNob3Vs
ZFNuYXBzaG90Vmlld10gKE5TQXJyYXkgKmZpbGVVUkxzKSBtdXRhYmxlIHsKICAgICAgICAgUkVM
RUFTRV9MT0coRHJhZ0FuZERyb3AsICJMb2FkZWQgZGF0YSBpbnRvICV0dSBmaWxlcyIsIGZpbGVV
UkxzLmNvdW50KTsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gZmlsZW5hbWVzOwogICAgICAgICBm
b3IgKE5TVVJMICpmaWxlVVJMIGluIGZpbGVVUkxzKQpAQCAtNzI4MSwxOCArNzM1MywyMCBAQCAt
ICh2b2lkKWRyb3BJbnRlcmFjdGlvbjooVUlEcm9wSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBw
ZXJmb3JtRHJvcDooaWQgPFVJRHJvcAogICAgICAgICBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246
OkhhbmRsZUFycmF5IHNhbmRib3hFeHRlbnNpb25Gb3JVcGxvYWQ7CiAgICAgICAgIHJldGFpbmVk
U2VsZi0+X3BhZ2UtPmNyZWF0ZVNhbmRib3hFeHRlbnNpb25zSWZOZWVkZWQoZmlsZW5hbWVzLCBz
YW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBzYW5kYm94RXh0ZW5zaW9uRm9yVXBsb2FkKTsKICAgICAg
ICAgcmV0YWluZWRTZWxmLT5fcGFnZS0+cGVyZm9ybURyYWdPcGVyYXRpb24oY2FwdHVyZWREcmFn
RGF0YSwgImRhdGEgaW50ZXJhY3Rpb24gcGFzdGVib2FyZCIsIFdURk1vdmUoc2FuZGJveEV4dGVu
c2lvbkhhbmRsZSksIFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbkZvclVwbG9hZCkpOwotICAgICAg
ICByZXRhaW5lZFNlbGYtPl92aXNpYmxlQ29udGVudFZpZXdTbmFwc2hvdCA9IFtyZXRhaW5lZFNl
bGYgc25hcHNob3RWaWV3QWZ0ZXJTY3JlZW5VcGRhdGVzOk5PXTsKLSAgICAgICAgW1VJVmlldyBw
ZXJmb3JtV2l0aG91dEFuaW1hdGlvbjpbcmV0YWluZWRTZWxmXSB7CisgICAgICAgIGlmIChzaG91
bGRTbmFwc2hvdFZpZXcpIHsKKyAgICAgICAgICAgIHJldGFpbmVkU2VsZi0+X3Zpc2libGVDb250
ZW50Vmlld1NuYXBzaG90ID0gW3JldGFpbmVkU2VsZiBzbmFwc2hvdFZpZXdBZnRlclNjcmVlblVw
ZGF0ZXM6Tk9dOwogICAgICAgICAgICAgW3JldGFpbmVkU2VsZi0+X3Zpc2libGVDb250ZW50Vmll
d1NuYXBzaG90IHNldEZyYW1lOltyZXRhaW5lZFNlbGYgYm91bmRzXV07CiAgICAgICAgICAgICBb
cmV0YWluZWRTZWxmIGFkZFN1YnZpZXc6cmV0YWluZWRTZWxmLT5fdmlzaWJsZUNvbnRlbnRWaWV3
U25hcHNob3QuZ2V0KCldOwotICAgICAgICB9XTsKKyAgICAgICAgfQogICAgIH1dOwogfQogCiAt
ICh2b2lkKWRyb3BJbnRlcmFjdGlvbjooVUlEcm9wSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBp
dGVtOihVSURyYWdJdGVtICopaXRlbSB3aWxsQW5pbWF0ZURyb3BXaXRoQW5pbWF0b3I6KGlkIDxV
SURyYWdBbmltYXRpbmc+KWFuaW1hdG9yCiB7CisgICAgX2Ryb3BBbmltYXRpb25Db3VudCsrOwog
ICAgIFthbmltYXRvciBhZGRDb21wbGV0aW9uOltzdHJvbmdTZWxmID0gcmV0YWluUHRyKHNlbGYp
XSAoVUlWaWV3QW5pbWF0aW5nUG9zaXRpb24pIHsKLSAgICAgICAgW3N0ZDo6ZXhjaGFuZ2Uoc3Ry
b25nU2VsZi0+X3Vuc2VsZWN0ZWRDb250ZW50U25hcHNob3QsIG5pbCkgcmVtb3ZlRnJvbVN1cGVy
dmlld107CisgICAgICAgIGlmICghLS1zdHJvbmdTZWxmLT5fZHJvcEFuaW1hdGlvbkNvdW50KQor
ICAgICAgICAgICAgW3N0ZDo6ZXhjaGFuZ2Uoc3Ryb25nU2VsZi0+X3Vuc2VsZWN0ZWRDb250ZW50
U25hcHNob3QsIG5pbCkgcmVtb3ZlRnJvbVN1cGVydmlld107CiAgICAgfV07CiB9CiAKQEAgLTcz
MDYsNiArNzM4MCw4IEBAIC0gKHZvaWQpZHJvcEludGVyYWN0aW9uOihVSURyb3BJbnRlcmFjdGlv
biAqKWludGVyYWN0aW9uIGNvbmNsdWRlRHJvcDooaWQgPFVJRHJvCiAKIC0gKFVJVGFyZ2V0ZWRE
cmFnUHJldmlldyAqKWRyb3BJbnRlcmFjdGlvbjooVUlEcm9wSW50ZXJhY3Rpb24gKilpbnRlcmFj
dGlvbiBwcmV2aWV3Rm9yRHJvcHBpbmdJdGVtOihVSURyYWdJdGVtICopaXRlbSB3aXRoRGVmYXVs
dDooVUlUYXJnZXRlZERyYWdQcmV2aWV3ICopZGVmYXVsdFByZXZpZXcKIHsKKyAgICBfZHJhZ0Ry
b3BJbnRlcmFjdGlvblN0YXRlLnNldERlZmF1bHREcm9wUHJldmlldyhpdGVtLCBkZWZhdWx0UHJl
dmlldyk7CisKICAgICBDR1JlY3QgY2FyZXRSZWN0ID0gX3BhZ2UtPmN1cnJlbnREcmFnQ2FyZXRS
ZWN0KCk7CiAgICAgaWYgKENHUmVjdElzRW1wdHkoY2FyZXRSZWN0KSkKICAgICAgICAgcmV0dXJu
IG5pbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CmluZGV4IGM2OTM3M2M3M2I4NmNhMDMzNTdiNjYyZjM3OWIyNmM3MWY2ZDcwZWYuLjllZmU0YzMy
N2JmNThjMWY2NGRmM2VhMTg1MDg4ZDg3OTViNjdjNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMTIwOCw2ICsxMjA4LDE0IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29u
c3QgSW50UG9pbnQmIGNsaWVudFBvCiAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6UmVxdWVzdEFkZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKGNsaWVudFBvc2l0
aW9uLCBnbG9iYWxQb3NpdGlvbiwgYWxsb3dlZEFjdGlvbnMpLCBtX3dlYlBhZ2VJRCk7CiB9CiAK
K3ZvaWQgV2ViUGFnZVByb3h5OjppbnNlcnREcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcnMoY29uc3Qg
VmVjdG9yPEludFNpemU+JiBpbWFnZVNpemVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IFZlY3RvcjxJbnRSZWN0PiYsIE9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGhhc1J1bm5pbmdQcm9jZXNzKCkpCisg
ICAgICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6Okluc2VydERyb3BwZWRJbWFnZVBsYWNlaG9sZGVycyhpbWFnZVNpemVzKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1fd2ViUGFnZUlEKTsKKyAgICBlbHNlCisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSwgV1RGOjpudWxsb3B0KTsKK30KKwogdm9pZCBXZWJQ
YWdlUHJveHk6OndpbGxSZWNlaXZlRWRpdERyYWdTbmFwc2hvdCgpCiB7CiAgICAgcGFnZUNsaWVu
dCgpLndpbGxSZWNlaXZlRWRpdERyYWdTbmFwc2hvdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDkyYTI0MjNmNWM1MzM0MDIxOWFhMTAzZjE3NWU1
ODRkZTBjNDQzZTEuLjY2NGM4NmY0OThmY2UyYjViNjg1ZDZmNDgwMmRjODA3OTI2ODUwODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEyOTEsNiAr
MTI5MSw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERB
VEFfSU5URVJBQ1RJT04pCiAgICAgdm9pZCByZXF1ZXN0RHJhZ1N0YXJ0KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCB1aW50NjRfdCBhbGxvd2VkQWN0aW9ucyk7CiAgICAgdm9pZCByZXF1ZXN0QWRk
aXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVu
dFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2
NF90IGFsbG93ZWRBY3Rpb25zKTsKKyAgICB2b2lkIGluc2VydERyb3BwZWRJbWFnZVBsYWNlaG9s
ZGVycyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6SW50U2l6ZT4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYsIE9wdGlvbmFsPFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEYXRhPik+JiYgcmVwbHkpOwogICAgIHZvaWQgY29tcHV0ZUFuZFNlbmRFZGl0
RHJhZ1NuYXBzaG90KCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggOWQ0ZjkzZWJjYmNiMjA5ZmM5
MTIzMmUxZTRlZTUwOWFjMjljMDNlOS4uZmVjY2M2MDcyMjdjNDRlOWM1NGU3YjRlNmZhM2I3YTQw
MTlmZDYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMTEsNiArMzExLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZFR5cGUKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoRFJBR19TVVBQT1JUKQog
ICAgIFJlcXVlc3REcmFnU3RhcnQoV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdl
YkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9uLCB1aW50NjRfdCBhbGxvd2VkQWN0aW9ucykK
ICAgICBSZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oV2ViQ29yZTo6SW50UG9p
bnQgY2xpZW50UG9zaXRpb24sIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9uLCB1aW50
NjRfdCBhbGxvd2VkQWN0aW9ucykKKyAgICBJbnNlcnREcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcnMo
VmVjdG9yPFdlYkNvcmU6OkludFNpemU+IGltYWdlU2l6ZSkgLT4gKFZlY3RvcjxXZWJDb3JlOjpJ
bnRSZWN0PiBkcm9wUHJldmlld1JlY3RzLCBPcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGF0YT4gdGV4dEluZGljYXRvcikgQXN5bmMKICAgICBEaWRDb25jbHVkZURyb3AoKQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KaW5kZXggMzhlMWI5NTU3NTczZDYxZjdmM2MxYjJkYWUwMDA1NjA2ODgwMDk0YS4uODNi
ZTFjNzhmNzIxM2M0MDNjNTBkYTM3NTdhZTFkZGRlY2ExMjk1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTg5NCw2ICs4
OTQsNDAgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Np
b24oY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW8KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkRpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0KGRpZEhhbmRsZURy
YWcpKTsKIH0KIAordm9pZCBXZWJQYWdlOjppbnNlcnREcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcnMo
Y29uc3QgVmVjdG9yPEludFNpemU+JiBpbWFnZVNpemVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYsIE9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JE
YXRhPik+JiYgcmVwbHkpCit7CisgICAgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmluc2VydERy
b3BwZWRJbWFnZVBsYWNlaG9sZGVyc0F0Q2FyZXQoaW1hZ2VTaXplcyk7CisgICAgYXV0byBwbGFj
ZWhvbGRlclJlY3RzID0gbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRyb3BwZWRJbWFnZVBsYWNl
aG9sZGVycygpLm1hcChbJl0gKGF1dG8mIGVsZW1lbnQpIHsKKyAgICAgICAgcmV0dXJuIHJvb3RW
aWV3Qm91bmRzRm9yRWxlbWVudChlbGVtZW50KTsKKyAgICB9KTsKKworICAgIGF1dG8gaW1hZ2VQ
bGFjZWhvbGRlclJhbmdlID0gbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRyb3BwZWRJbWFnZVBs
YWNlaG9sZGVyUmFuZ2UoKTsKKyAgICBpZiAocGxhY2Vob2xkZXJSZWN0cy5zaXplKCkgIT0gaW1h
Z2VTaXplcy5zaXplKCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERyb3AsICJGYWls
ZWQgdG8gaW5zZXJ0IGRyb3BwZWQgaW1hZ2UgcGxhY2Vob2xkZXJzOiBwbGFjZWhvbGRlciByZWN0
IGNvdW50ICgldHUpIGRvZXMgbm90IG1hdGNoIGltYWdlIHNpemUgY291bnQgKCV0dSkuIiwgcGxh
Y2Vob2xkZXJSZWN0cy5zaXplKCksIGltYWdlU2l6ZXMuc2l6ZSgpKTsKKyAgICAgICAgcmVwbHko
eyB9LCBXVEY6Om51bGxvcHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFp
bWFnZVBsYWNlaG9sZGVyUmFuZ2UpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERyb3As
ICJGYWlsZWQgdG8gaW5zZXJ0IGRyb3BwZWQgaW1hZ2UgcGxhY2Vob2xkZXJzOiBubyBpbWFnZSBw
bGFjZWhvbGRlciByYW5nZS4iKTsKKyAgICAgICAgcmVwbHkoeyB9LCBXVEY6Om51bGxvcHQpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgT3B0aW9uYWw8VGV4dEluZGljYXRvckRhdGE+
IHRleHRJbmRpY2F0b3JEYXRhOworICAgIE9wdGlvblNldDxUZXh0SW5kaWNhdG9yT3B0aW9uPiB0
ZXh0SW5kaWNhdG9yT3B0aW9ucyA9IHsKKyAgICAgICAgVGV4dEluZGljYXRvck9wdGlvbkluY2x1
ZGVTbmFwc2hvdE9mQWxsVmlzaWJsZUNvbnRlbnRXaXRob3V0U2VsZWN0aW9uLAorICAgICAgICBU
ZXh0SW5kaWNhdG9yT3B0aW9uRXhwYW5kQ2xpcEJleW9uZFZpc2libGVSZWN0LAorICAgICAgICBU
ZXh0SW5kaWNhdG9yT3B0aW9uUGFpbnRBbGxDb250ZW50LAorICAgICAgICBUZXh0SW5kaWNhdG9y
T3B0aW9uVXNlU2VsZWN0aW9uUmVjdEZvclNpemluZworICAgIH07CisKKyAgICBpZiAoYXV0byB0
ZXh0SW5kaWNhdG9yID0gVGV4dEluZGljYXRvcjo6Y3JlYXRlV2l0aFJhbmdlKCppbWFnZVBsYWNl
aG9sZGVyUmFuZ2UsIHRleHRJbmRpY2F0b3JPcHRpb25zLnRvUmF3KCksIFRleHRJbmRpY2F0b3JQ
cmVzZW50YXRpb25UcmFuc2l0aW9uOjpOb25lLCB7IH0pKQorICAgICAgICB0ZXh0SW5kaWNhdG9y
RGF0YSA9IHRleHRJbmRpY2F0b3ItPmRhdGEoKTsKKworICAgIHJlcGx5KFdURk1vdmUocGxhY2Vo
b2xkZXJSZWN0cyksIFdURk1vdmUodGV4dEluZGljYXRvckRhdGEpKTsKK30KKwogdm9pZCBXZWJQ
YWdlOjpkaWRDb25jbHVkZURyb3AoKQogewogICAgIG1fcmFuZ2VGb3JEcm9wU25hcHNob3QgPSBu
dWxscHRyOwpAQCAtOTIzLDYgKzk1Nyw5IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ29uY2x1ZGVFZGl0
RHJhZygpCiAKIHZvaWQgV2ViUGFnZTo6ZGlkRmluaXNoTG9hZGluZ0ltYWdlRm9yRWxlbWVudChX
ZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50JiBlbGVtZW50KQogeworICAgIGlmIChlbGVtZW50Lmlz
RHJvcHBlZEltYWdlUGxhY2Vob2xkZXIoKSkKKyAgICAgICAgbV9wYWdlLT5kcmFnQ29udHJvbGxl
cigpLmZpbmFsaXplRHJvcHBlZEltYWdlUGxhY2Vob2xkZXIoZWxlbWVudCk7CisKICAgICBpZiAo
bV9wZW5kaW5nSW1hZ2VFbGVtZW50c0ZvckRyb3BTbmFwc2hvdC5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGZiODIwNjlhNDIwYzUxYWY5MmQ5NmZlZDM0ODA0YmExMGZhODJiMzYuLjRkZThiNTgz
OWQ0MzBkMWNjOTcyNTU5NjhmNDQ0ODJhZTFlODQ2ZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAxOS0wOS0xMSAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBE
cm9wIGFuaW1hdGlvbiB3aGVuIGRyYWdnaW5nIGltYWdlcyBmcm9tIFBob3RvcyB0byBXZWJLaXQy
IE1haWwgY29tcG9zZSBpcyBpbmNvcnJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMTY3NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTEyNTA5
NTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGEgY291cGxlIG9mIG5ldyBBUEkgdGVzdHMgdG8gZXhlcmNpc2UgdGhlIG5ldyBpbWFnZSBwbGFj
ZWhvbGRlciBkcm9wIGNvZGVwYXRoLCBpbiBhZGRpdGlvbiB0byB0ZXN0aW5nCisgICAgICAgIGlu
ZnJhc3RydWN0dXJlIHRvIHNpbXVsYXRlIHRoZSB0aW1pbmcgb2YgZHJvcCBhbmltYXRpb24gZGVs
ZWdhdGUgY2FsbHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tOgorICAgICAgICAoLVtOU0FycmF5IF9hdHRh
Y2htZW50V2l0aE5hbWU6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgYWxsQm91bmRpbmdD
bGllbnRSZWN0czpdKToKKworICAgICAgICBBZGQgc29tZSBuZXcgQVBJIHRlc3RpbmcgaGVscGVy
IG1ldGhvZHMuCisKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnRhcmdldGVkSW1hZ2VEcmFnUHJl
dmlldyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKworICAgICAgICBBZGQgdHdv
IG5ldyB0ZXN0cywgdG86CisgICAgICAgICgxKSB2ZXJpZnkgdGhhdCBpbWFnZXMgYXJlIGRyb3Bw
ZWQgYXMgYXR0YWNobWVudC1iYWNrZWQgcGxhY2Vob2xkZXIgaW1hZ2UgZWxlbWVudHMgd2hlbiB0
aGUgd2ViIHZpZXcgaXMgZWRpdGFibGUKKyAgICAgICAgICAgIGFuZCBlbmFibGVzIGF0dGFjaG1l
bnQgZWxlbWVudHMsIGFuZAorICAgICAgICAoMikgdmVyaWZ5IHRoYXQgd2hlbiBkcm9wcGluZyBh
biBpbWFnZSB0YWxsZXIgdGhhbiB0aGUgd2ViIHZpZXcsIHRoZSBib3R0b20gcG9ydGlvbiBvZiB0
aGUgZHJvcCBwcmV2aWV3IGlzCisgICAgICAgICAgICBjbGlwcGVkIHVzaW5nIHRoZSB0YXJnZXRl
ZCBwcmV2aWV3IHBhcmFtZXRlcidzIHZpc2libGVQYXRoLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvRHJhZ0FuZERyb3BUZXN0c0lPUy5tbToKKyAgICAgICAgKC1bTlNJdGVt
UHJvdmlkZXIgcmVnaXN0ZXJEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjp3aXRo
RGF0YTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL0RyYWdBbmRE
cm9wU2ltdWxhdG9yLmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9OU0l0ZW1Qcm92
aWRlckFkZGl0aW9ucy5oOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL05T
SXRlbVByb3ZpZGVyQWRkaXRpb25zLm1tOiBBZGRlZC4KKworICAgICAgICBNb3ZlIHNvbWUgY29t
bW9uIGhlbHBlcnMgZm9yIHJlZ2lzdGVyaW5nIGRhdGEgb24gYSBOU0l0ZW1Qcm92aWRlciB0byBh
IHNlcGFyYXRlIGZpbGUsIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgaW4KKyAgICAgICAgYm90aCBX
S0F0dGFjaG1lbnRUZXN0cyBhbmQgRHJhZ0FuZERyb3BUZXN0cy4KKworICAgICAgICAoLVtOU0l0
ZW1Qcm92aWRlciByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOndp
dGhEYXRhOl0pOgorICAgICAgICAoLVtOU0l0ZW1Qcm92aWRlciByZWdpc3RlckRhdGFSZXByZXNl
bnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOndpdGhEYXRhOmxvYWRpbmdEZWxheTpdKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL2lvcy9EcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbToKKyAgICAg
ICAgKC1bRHJhZ0FuZERyb3BTaW11bGF0b3IgaW5pdFdpdGhXZWJWaWV3Ol0pOgorICAgICAgICAo
LVtEcmFnQW5kRHJvcFNpbXVsYXRvciBfY29uY2x1ZGVEcm9wQW5kUGVyZm9ybU9wZXJhdGlvbklm
TmVjZXNzYXJ5XSk6CisgICAgICAgICgtW0RyYWdBbmREcm9wU2ltdWxhdG9yIGNsZWFyRXh0ZXJu
YWxEcmFnSW5mb3JtYXRpb25dKToKKyAgICAgICAgKC1bRHJhZ0FuZERyb3BTaW11bGF0b3Igc2V0
RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOmRlZmF1bHREcm9wUHJldmlld3M6XSk6CisKKyAgICAgICAg
QWRkIGEgbmV3IG1ldGhvZCB0byBhbGxvdyB0ZXN0cyB0byBzcGVjaWZ5IGJvdGggYSBsaXN0IG9m
IGV4dGVybmFsbHkgZHJhZ2dlZCBpdGVtIHByb3ZpZGVycywgYXMgd2VsbCBhcyBkZWZhdWx0Cisg
ICAgICAgIHRhcmdldGVkIHByZXZpZXdzIGZvciBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGl0
ZW1zLiBUaGVzZSBkZWZhdWx0IHByZXZpZXdzIGFyZSB1c2VkIHdoZW4gaW52b2tpbmcgdGhlIGRy
b3AKKyAgICAgICAgaW50ZXJhY3Rpb24gZGVsZWdhdGUncyBwcmV2aWV3IGdlbmVyYXRpb24gbWV0
aG9kcy4KKworICAgICAgICAoLVtEcmFnQW5kRHJvcFNpbXVsYXRvciBhZGRBbmltYXRpb25zOl0p
OgorCisgICAgICAgIE5vdCBpbXBsZW1lbnRlZCB5ZXQ7IGZvciBub3csIHRoaXMgc2ltcGx5IGFz
c2VydHMuCisKKyAgICAgICAgKC1bRHJhZ0FuZERyb3BTaW11bGF0b3IgYWRkQ29tcGxldGlvbjpd
KToKKworICAgICAgICBRdWV1ZXMgYSBjb21wbGV0aW9uIGhhbmRsZXIsIHdoaWNoIGlzIGludm9r
ZWQgd2hlbiB0aGUgZHJvcCBhbmltYXRpb24gZm9yIGVhY2ggaXRlbSBjb21wbGV0ZXMuIERlcGVu
ZGluZyBvbiB0aGUKKyAgICAgICAgdmFsdWUgb2YgRHJhZ0FuZERyb3BTaW11bGF0b3IncyAtZHJv
cEFuaW1hdGlvblRpbWluZywgdGhpcyBtYXkgb2NjdXIgZWl0aGVyIGJlZm9yZSBvciBhZnRlciBo
YW5kbGluZyB0aGUgZHJvcC4KKyAgICAgICAgQnkgZGVmYXVsdCwgdGhlc2Ugd2lsbCBiZSBpbnZv
a2VkIGFmdGVyIHRoZSBkcm9wIGNvbXBsZXRlcywgd2hpY2ggcmVwcmVzZW50cyB0aGUgY29tbW9u
IGNhc2Ugd2hlcmUgZGF0YSBjYW4gYmUKKyAgICAgICAgbG9hZGVkIHF1aWNrbHkgcmVsYXRpdmUg
dG8gdGhlIGRyb3AgYW5pbWF0aW9uLgorCisgICAgICAgICgtW0RyYWdBbmREcm9wU2ltdWxhdG9y
IF9pbnZva2VEcm9wQW5pbWF0aW9uQ29tcGxldGlvbkJsb2Nrc0FuZENvbmNsdWRlRHJvcF0pOgor
ICAgICAgICAoLVtEcmFnQW5kRHJvcFNpbXVsYXRvciBfd2ViVmlldzpkYXRhSW50ZXJhY3Rpb25P
cGVyYXRpb25XYXNIYW5kbGVkOmZvclNlc3Npb246aXRlbVByb3ZpZGVyczpdKToKKwogMjAxOS0w
OS0xMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS11bV1BFXSBTdG9wIHVzaW5nIHRoZSBzZXNzaW9uIGJ1cyBpbiB0aGUgdW5pdCB0ZXN0
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMGFlMDVkYTYyNWM5ZGRiYjllYTBlZjJhNGZj
NDJhYjRlY2EzZDYxLi40ZjNkNWIwNWE3MWMyOTdkYzJjZTYxOGU5NzA1ZGMzNjJhMDFkYzMwIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAyNyw2ICsxMDI3LDcgQEAKIAkJRjRFMEEyQjQy
MTIyNDAyQjAwQUY3QzdGIC8qIGltYWdlLWFuZC1maWxlLXVwbG9hZC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RTBBMkIzMjEyMjNG
MkQwMEFGN0M3RiAvKiBpbWFnZS1hbmQtZmlsZS11cGxvYWQuaHRtbCAqLzsgfTsKIAkJRjRFMEEy
QjgyMTIyODQ3NDAwQUY3QzdGIC8qIFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFMEEyQjcyMTIyODQ3NDAw
QUY3QzdGIC8qIFRlc3RGaWxlUHJvbWlzZVJlY2VpdmVyLm1tICovOyB9OwogCQlGNEUzRDgwODIw
RjcwQkI5MDA3QjU4QzUgLyogc2lnbmlmaWNhbnQtdGV4dC1taWxlc3RvbmUtYXJ0aWNsZS5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
RTNEODA3MjBGNzA4RTQwMDdCNThDNSAvKiBzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9uZS1hcnRp
Y2xlLmh0bWwgKi87IH07CisJCUY0RUI0RTkxMjMyOEFDMzAwMDU3NERBQiAvKiBOU0l0ZW1Qcm92
aWRlckFkZGl0aW9ucy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0RUI0RTkwMjMyOEFDMzAwMDU3NERBQiAvKiBOU0l0ZW1Qcm92aWRlckFkZGl0aW9u
cy5tbSAqLzsgfTsKIAkJRjRGMTM3OTIxRDlCNjgzRTAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRl
c3Qtbm93LXBsYXlpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNEYxMzc5MTFEOUI2ODMyMDAyQkVDNTcgLyogbGFyZ2UtdmlkZW8t
dGVzdC1ub3ctcGxheWluZy5odG1sICovOyB9OwogCQlGNEY0MDVCQzFENEMwRDFDMDA3QTk3MDcg
LyogZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEY0MDVCQTFENEMw
Q0Y4MDA3QTk3MDcgLyogZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRt
bCAqLzsgfTsKIAkJRjRGNDA1QkQxRDRDMEQxQzAwN0E5NzA3IC8qIHNraW5ueS1hdXRvcGxheWlu
Zy12aWRlby13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGNDA1QkIxRDRDMENGODAwN0E5NzA3IC8qIHNraW5ueS1h
dXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi87IH07CkBAIC0yNTIwLDYgKzI1MjEs
OCBAQAogCQlGNEUwQTJCNjIxMjI4NDc0MDBBRjdDN0YgLyogVGVzdEZpbGVQcm9taXNlUmVjZWl2
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdEZpbGVQcm9taXNlUmVjZWl2ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFMEEyQjcyMTIyODQ3NDAwQUY3QzdGIC8qIFRlc3RGaWxl
UHJvbWlzZVJlY2VpdmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGVzdEZpbGVQcm9taXNl
UmVjZWl2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTNEODA3MjBGNzA4
RTQwMDdCNThDNSAvKiBzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9uZS1hcnRpY2xlLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic2lnbmlmaWNhbnQtdGV4dC1taWxlc3RvbmUtYXJ0
aWNsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRFQjRFOEYyMzI4QUMz
MDAwNTc0REFCIC8qIE5TSXRlbVByb3ZpZGVyQWRkaXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5T
SXRlbVByb3ZpZGVyQWRkaXRpb25zLmg7IHBhdGggPSBjb2NvYS9OU0l0ZW1Qcm92aWRlckFkZGl0
aW9ucy5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUY0RUI0RTkwMjMyOEFDMzAw
MDU3NERBQiAvKiBOU0l0ZW1Qcm92aWRlckFkZGl0aW9ucy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IE5TSXRlbVByb3ZpZGVyQWRkaXRpb25zLm1tOyBwYXRoID0gY29jb2EvTlNJdGVtUHJvdmlk
ZXJBZGRpdGlvbnMubW07IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJRjRGMTM3OTEx
RDlCNjgzMjAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmcuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEY0MDVCQTFENEMwQ0Y4MDA3QTk3
MDcgLyogZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJmdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1h
dWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRGNDA1QkIxRDRDMENG
ODAwN0E5NzA3IC8qIHNraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgt
YXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODI1LDYgKzI4Mjgs
OCBAQAogCQkJCUNEMkQwRDE5MjEzNDY1NTYwMDE4Qzc4NCAvKiBOb3dQbGF5aW5nLm1tICovLAog
CQkJCTJFQ0ZGNTU0MUQ5QjEyRjgwMEI1NTM5NCAvKiBOb3dQbGF5aW5nQ29udHJvbHNUZXN0cy5t
bSAqLywKIAkJCQlBMTBGMDQ3QzFFM0FEMjlDMDBDOTVFMTkgLyogTlNGaWxlTWFuYWdlckV4dHJh
cy5tbSAqLywKKwkJCQlGNEVCNEU4RjIzMjhBQzMwMDA1NzREQUIgLyogTlNJdGVtUHJvdmlkZXJB
ZGRpdGlvbnMuaCAqLywKKwkJCQlGNEVCNEU5MDIzMjhBQzMwMDA1NzREQUIgLyogTlNJdGVtUHJv
dmlkZXJBZGRpdGlvbnMubW0gKi8sCiAJCQkJMzdBMjJBQTUxRENBQTI3MjAwQUZCRkM0IC8qIE9i
c2VydmVkUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNBZnRlckNyYXNoLm1tICovLAogCQkJCUNFQTZD
RjIyMTlDQ0Y1QkQwMDY0RjVBNyAvKiBPcGVuQW5kQ2xvc2VXaW5kb3cubW0gKi8sCiAJCQkJQ0VC
Q0ExMkUxRTNBNjYwMTAwQzczMjkzIC8qIE92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5Lm1t
ICovLApAQCAtNDYyMiw2ICs0NjI3LDcgQEAKIAkJCQkyRUNGRjU1NTFEOUIxMkY4MDBCNTUzOTQg
LyogTm93UGxheWluZ0NvbnRyb2xzVGVzdHMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTBGMDQ3
RTFFM0FEMjlDMDBDOTVFMTkgLyogTlNGaWxlTWFuYWdlckV4dHJhcy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUY0NDI4NTFEMjE0MERGMjkwMENDREEyMiAvKiBOU0ZvbnRQYW5lbFRlc3RpbmcubW0g
aW4gU291cmNlcyAqLywKKwkJCQlGNEVCNEU5MTIzMjhBQzMwMDA1NzREQUIgLyogTlNJdGVtUHJv
dmlkZXJBZGRpdGlvbnMubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0EyMkFBNzFEQ0FBMjcyMDBB
RkJGQzQgLyogT2JzZXJ2ZWRSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0FmdGVyQ3Jhc2gubW0gaW4g
U291cmNlcyAqLywKIAkJCQkyRDcwMDU5OTIxRURBNEQwMDAzNDYzQ0IgLyogT2Zmc2NyZWVuV2lu
ZG93Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMjUxQTQxMUFGNjAwNDQ3QzRDIC8qIE9w
ZW5BbmRDbG9zZVdpbmRvdy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0KaW5k
ZXggMjQyMmMxMzRhYmI3ZTMyZGY1MTAzNzUzYjQ1Yzg5YzQyOWRiMWU3Mi4uYjZmY2Q5MzU4NTBl
YmQ2N2IyYjE4NjEwZTQ4ODkwNjY1ZTMxOTJhYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tCkBAIC0y
OCw2ICsyOCw3IEBACiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpCiAKICNpbXBv
cnQgIkRyYWdBbmREcm9wU2ltdWxhdG9yLmgiCisjaW1wb3J0ICJOU0l0ZW1Qcm92aWRlckFkZGl0
aW9ucy5oIgogI2ltcG9ydCAiUGVuY2lsS2l0VGVzdFNQSS5oIgogI2ltcG9ydCAiUGxhdGZvcm1V
dGlsaXRpZXMuaCIKICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKQEAgLTUzLDYg
KzU0LDIxIEBAIFNPRlRfTElOS19GUkFNRVdPUksoTWFwS2l0KQogU09GVF9MSU5LX0NMQVNTKE1h
cEtpdCwgTUtNYXBJdGVtKQogU09GVF9MSU5LX0NMQVNTKE1hcEtpdCwgTUtQbGFjZW1hcmspCiAK
K0BpbnRlcmZhY2UgTlNBcnJheSAoQXR0YWNobWVudFRlc3RpbmdIZWxwZXJzKQorLSAoX1dLQXR0
YWNobWVudCAqKV9hdHRhY2htZW50V2l0aE5hbWU6KE5TU3RyaW5nICopbmFtZTsKK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIE5TQXJyYXkgKEF0dGFjaG1lbnRUZXN0aW5nSGVscGVycykKKy0gKF9X
S0F0dGFjaG1lbnQgKilfYXR0YWNobWVudFdpdGhOYW1lOihOU1N0cmluZyAqKW5hbWUKK3sKKyAg
ICBmb3IgKF9XS0F0dGFjaG1lbnQgKmF0dGFjaG1lbnQgaW4gc2VsZikgeworICAgICAgICBpZiAo
W2F0dGFjaG1lbnQuaW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzpuYW1lXSkKKyAgICAgICAgICAg
IHJldHVybiBhdHRhY2htZW50OworICAgIH0KKyAgICByZXR1cm4gbmlsOworfQorQGVuZAorCiAj
ZGVmaW5lIFVTRVNfTU9ERVJOX0FUVFJJQlVURURfU1RSSU5HX0NPTlZFUlNJT04gKChQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAw
MDApIHx8IFBMQVRGT1JNKE1BQykpCiAKIEBpbnRlcmZhY2UgQXR0YWNobWVudFVwZGF0ZU9ic2Vy
dmVyIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+CkBAIC0yNzEsNiArMjg3LDI1IEBA
IC0gKF9XS0F0dGFjaG1lbnQgKilzeW5jaHJvbm91c2x5SW5zZXJ0QXR0YWNobWVudFdpdGhGaWxl
bmFtZTooTlNTdHJpbmcgKilmaWxlbmFtCiAgICAgcmV0dXJuIGF0dGFjaG1lbnQuYXV0b3JlbGVh
c2UoKTsKIH0KIAorLSAoTlNBcnJheTxOU1ZhbHVlICo+ICopYWxsQm91bmRpbmdDbGllbnRSZWN0
czooTlNTdHJpbmcgKilxdWVyeVNlbGVjdG9yCit7CisgICAgYXV0byByZWN0cyA9IGFkb3B0TlMo
W1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworICAgIGJvb2wgZG9uZUV2YWx1YXRpbmdT
Y3JpcHQgPSBmYWxzZTsKKyAgICBOU1N0cmluZyAqc2NyaXB0ID0gW05TU3RyaW5nIHN0cmluZ1dp
dGhGb3JtYXQ6QCJBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyVAJykpLm1h
cChlID0+IHsgY29uc3QgciA9IGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7IHJldHVybiBbci5s
ZWZ0LCByLnRvcCwgci53aWR0aCwgci5oZWlnaHRdOyB9KSIsIHF1ZXJ5U2VsZWN0b3JdOworICAg
IFtzZWxmIGV2YWx1YXRlSmF2YVNjcmlwdDpzY3JpcHQgY29tcGxldGlvbkhhbmRsZXI6W3JlY3Rz
LCAmZG9uZUV2YWx1YXRpbmdTY3JpcHRdIChOU0FycmF5PE5TQXJyYXk8TlNOdW1iZXIgKj4gKj4g
KnJlc3VsdCwgTlNFcnJvciAqKSB7CisgICAgICAgIGZvciAoTlNBcnJheTxOU051bWJlciAqPiAq
cmVjdEluZm8gaW4gcmVzdWx0KSB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAg
ICAgIFtyZWN0cyBhZGRPYmplY3Q6W05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0OkNHUmVjdE1ha2Uo
cmVjdEluZm9bMF0uZmxvYXRWYWx1ZSwgcmVjdEluZm9bMV0uZmxvYXRWYWx1ZSwgcmVjdEluZm9b
Ml0uZmxvYXRWYWx1ZSwgcmVjdEluZm9bM10uZmxvYXRWYWx1ZSldXTsKKyNlbHNlCisgICAgICAg
ICAgICBbcmVjdHMgYWRkT2JqZWN0OltOU1ZhbHVlIHZhbHVlV2l0aFJlY3Q6TlNNYWtlUmVjdChy
ZWN0SW5mb1swXS5mbG9hdFZhbHVlLCByZWN0SW5mb1sxXS5mbG9hdFZhbHVlLCByZWN0SW5mb1sy
XS5mbG9hdFZhbHVlLCByZWN0SW5mb1szXS5mbG9hdFZhbHVlKV1dOworI2VuZGlmCisgICAgICAg
IH0KKyAgICAgICAgZG9uZUV2YWx1YXRpbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUV2YWx1YXRpbmdTY3JpcHQpOworICAgIHJldHVy
biByZWN0cy5hdXRvcmVsZWFzZSgpOworfQorCiAtIChDR1BvaW50KWF0dGFjaG1lbnRFbGVtZW50
TWlkUG9pbnQKIHsKICAgICBfX2Jsb2NrIENHUG9pbnQgbWlkUG9pbnQ7CkBAIC0xNjUwLDYgKzE2
ODUsOTAgQEAgVEVTVChXS0F0dGFjaG1lbnRUZXN0c01hYywgRHJhZ0F0dGFjaG1lbnRXaXRoTm9U
eXBlU2hvdWxkTm90Q3Jhc2gpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCitzdGF0aWMg
UmV0YWluUHRyPFVJVGFyZ2V0ZWREcmFnUHJldmlldz4gdGFyZ2V0ZWRJbWFnZURyYWdQcmV2aWV3
KFdLV2ViVmlldyAqd2ViVmlldywgTlNEYXRhICppbWFnZURhdGEsIENHU2l6ZSBzaXplKQorewor
ICAgIGF1dG8gaW1hZ2VWaWV3ID0gYWRvcHROUyhbW1VJSW1hZ2VWaWV3IGFsbG9jXSBpbml0V2l0
aEltYWdlOltVSUltYWdlIGltYWdlV2l0aERhdGE6aW1hZ2VEYXRhXV0pOworICAgIFtpbWFnZVZp
ZXcgc2V0Qm91bmRzOkNHUmVjdE1ha2UoMCwgMCwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpXTsK
KyAgICBhdXRvIGRlZmF1bHREcm9wVGFyZ2V0ID0gYWRvcHROUyhbW1VJRHJhZ1ByZXZpZXdUYXJn
ZXQgYWxsb2NdIGluaXRXaXRoQ29udGFpbmVyOndlYlZpZXcgY2VudGVyOkNHUG9pbnRNYWtlKDQ1
MCwgNDUwKV0pOworICAgIGF1dG8gcGFyYW1ldGVycyA9IGFkb3B0TlMoW1tVSURyYWdQcmV2aWV3
UGFyYW1ldGVycyBhbGxvY10gaW5pdF0pOworICAgIHJldHVybiBhZG9wdE5TKFtbVUlUYXJnZXRl
ZERyYWdQcmV2aWV3IGFsbG9jXSBpbml0V2l0aFZpZXc6aW1hZ2VWaWV3LmdldCgpIHBhcmFtZXRl
cnM6cGFyYW1ldGVycy5nZXQoKSB0YXJnZXQ6ZGVmYXVsdERyb3BUYXJnZXQuZ2V0KCldKTsKK30K
KworVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgVGFyZ2V0ZWRQcmV2aWV3c1doZW5Ecm9wcGlu
Z0ltYWdlcykKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3Rm9yVGVzdGluZ0F0dGFjaG1l
bnRzKCk7CisgICAgW3dlYlZpZXcgX3NldEVkaXRhYmxlOllFU107CisKKyAgICBhdXRvIHNpbXVs
YXRvciA9IGFkb3B0TlMoW1tEcmFnQW5kRHJvcFNpbXVsYXRvciBhbGxvY10gaW5pdFdpdGhXZWJW
aWV3OndlYlZpZXcuZ2V0KCldKTsKKworICAgIC8vIFRoZSBmaXJzdCBpdGVtIHByZXZpZXcgc2hv
dWxkIGJlIHNjYWxlZCBkb3duIGJ5IGEgZmFjdG9yIG9mIDIuCisgICAgYXV0byBmaXJzdFByZXZp
ZXcgPSB0YXJnZXRlZEltYWdlRHJhZ1ByZXZpZXcod2ViVmlldy5nZXQoKSwgdGVzdEltYWdlRGF0
YSgpLCBDR1NpemVNYWtlKDQzMCwgMzQ4KSk7CisgICAgYXV0byBmaXJzdEl0ZW0gPSBhZG9wdE5T
KFtbTlNJdGVtUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbZmlyc3RJdGVtIHJlZ2lzdGVy
RGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6KF9fYnJpZGdlIE5TU3RyaW5nICop
a1VUVHlwZVBORyB3aXRoRGF0YTp0ZXN0SW1hZ2VEYXRhKCkgbG9hZGluZ0RlbGF5OjAuNV07Cisg
ICAgW2ZpcnN0SXRlbSBzZXRQcmVmZXJyZWRQcmVzZW50YXRpb25TaXplOkNHU2l6ZU1ha2UoMjE1
LCAxNzQpXTsKKyAgICBbZmlyc3RJdGVtIHNldFN1Z2dlc3RlZE5hbWU6QCJpY29uIl07CisKKyAg
ICAvLyBUaGUgc2Vjb25kIGl0ZW0gcHJldmlldyBzaG91bGQgYmUgc2NhbGVkIHVwIGJ5IGEgZmFj
dG9yIG9mIDIuCisgICAgYXV0byBzZWNvbmRQcmV2aWV3ID0gdGFyZ2V0ZWRJbWFnZURyYWdQcmV2
aWV3KHdlYlZpZXcuZ2V0KCksIHRlc3RHSUZEYXRhKCksIENHU2l6ZU1ha2UoMjYsIDMyKSk7Cisg
ICAgYXV0byBzZWNvbmRJdGVtID0gYWRvcHROUyhbW05TSXRlbVByb3ZpZGVyIGFsbG9jXSBpbml0
XSk7CisgICAgW3NlY29uZEl0ZW0gcmVnaXN0ZXJEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBlSWRl
bnRpZmllcjooX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlR0lGIHdpdGhEYXRhOnRlc3RHSUZE
YXRhKCkgbG9hZGluZ0RlbGF5OjAuNV07CisgICAgW3NlY29uZEl0ZW0gc2V0UHJlZmVycmVkUHJl
c2VudGF0aW9uU2l6ZTpDR1NpemVNYWtlKDUyLCA2NCldOworICAgIFtzZWNvbmRJdGVtIHNldFN1
Z2dlc3RlZE5hbWU6QCJhcHBsZSJdOworCisgICAgW3NpbXVsYXRvciBzZXREcm9wQW5pbWF0aW9u
VGltaW5nOkRyb3BBbmltYXRpb25TaG91bGRGaW5pc2hCZWZvcmVIYW5kbGluZ0Ryb3BdOworICAg
IFtzaW11bGF0b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOltOU0FycmF5IGFycmF5V2l0aE9i
amVjdHM6Zmlyc3RJdGVtLmdldCgpLCBzZWNvbmRJdGVtLmdldCgpLCBuaWxdIGRlZmF1bHREcm9w
UHJldmlld3M6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0czpmaXJzdFByZXZpZXcuZ2V0KCksIHNl
Y29uZFByZXZpZXcuZ2V0KCksIG5pbF1dOworICAgIFtzaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50
TWFrZSgwLCAwKSB0bzpDR1BvaW50TWFrZSg0NTAsIDQ1MCldOworCisgICAgRVhQRUNUX0VRKFtz
aW11bGF0b3IgZGVsYXllZERyb3BQcmV2aWV3c10uY291bnQsIDJVKTsKKyAgICBVSVRhcmdldGVk
RHJhZ1ByZXZpZXcgKmZpcnN0RGVsYXllZFByZXZpZXcgPSBbc2ltdWxhdG9yIGRlbGF5ZWREcm9w
UHJldmlld3NdLmZpcnN0T2JqZWN0OworICAgIFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqc2Vjb25k
RGVsYXllZFByZXZpZXcgPSBbc2ltdWxhdG9yIGRlbGF5ZWREcm9wUHJldmlld3NdLmxhc3RPYmpl
Y3Q7CisgICAgYXV0byBpbWFnZUVsZW1lbnRCb3VuZHMgPSByZXRhaW5QdHIoW3dlYlZpZXcgYWxs
Qm91bmRpbmdDbGllbnRSZWN0czpAIklNRyJdKTsKKworICAgIEVYUEVDVF9UUlVFKENHQWZmaW5l
VHJhbnNmb3JtRXF1YWxUb1RyYW5zZm9ybShDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZSgwLjUs
IDAuNSksIGZpcnN0RGVsYXllZFByZXZpZXcudGFyZ2V0LnRyYW5zZm9ybSkpOworICAgIEVYUEVD
VF9UUlVFKENHUmVjdEVxdWFsVG9SZWN0KENHUmVjdE1ha2UoMCwgMCwgNDMwLCAzNDgpLCBmaXJz
dERlbGF5ZWRQcmV2aWV3LnBhcmFtZXRlcnMudmlzaWJsZVBhdGguYm91bmRzKSk7CisgICAgRVhQ
RUNUX1RSVUUoQ0dSZWN0Q29udGFpbnNQb2ludChbaW1hZ2VFbGVtZW50Qm91bmRzIGZpcnN0T2Jq
ZWN0XS5DR1JlY3RWYWx1ZSwgZmlyc3REZWxheWVkUHJldmlldy50YXJnZXQuY2VudGVyKSk7CisK
KyAgICBFWFBFQ1RfVFJVRShDR0FmZmluZVRyYW5zZm9ybUVxdWFsVG9UcmFuc2Zvcm0oQ0dBZmZp
bmVUcmFuc2Zvcm1NYWtlU2NhbGUoMiwgMiksIHNlY29uZERlbGF5ZWRQcmV2aWV3LnRhcmdldC50
cmFuc2Zvcm0pKTsKKyAgICBFWFBFQ1RfVFJVRShDR1JlY3RFcXVhbFRvUmVjdChDR1JlY3RNYWtl
KDAsIDAsIDI2LCAzMiksIHNlY29uZERlbGF5ZWRQcmV2aWV3LnBhcmFtZXRlcnMudmlzaWJsZVBh
dGguYm91bmRzKSk7CisgICAgRVhQRUNUX1RSVUUoQ0dSZWN0Q29udGFpbnNQb2ludChbaW1hZ2VF
bGVtZW50Qm91bmRzIGxhc3RPYmplY3RdLkNHUmVjdFZhbHVlLCBzZWNvbmREZWxheWVkUHJldmll
dy50YXJnZXQuY2VudGVyKSk7CisKKyAgICBbd2ViVmlldyBleHBlY3RFbGVtZW50Q291bnQ6MiBx
dWVyeVNlbGVjdG9yOkAiSU1HIl07CisgICAgX1dLQXR0YWNobWVudCAqcG5nQXR0YWNobWVudCA9
IFtbc2ltdWxhdG9yIGluc2VydGVkQXR0YWNobWVudHNdIF9hdHRhY2htZW50V2l0aE5hbWU6QCJp
Y29uLnBuZyJdOworICAgIF9XS0F0dGFjaG1lbnQgKmdpZkF0dGFjaG1lbnQgPSBbW3NpbXVsYXRv
ciBpbnNlcnRlZEF0dGFjaG1lbnRzXSBfYXR0YWNobWVudFdpdGhOYW1lOkAiYXBwbGUuZ2lmIl07
CisgICAgRVhQRUNUX1dLX1NUUkVRKHBuZ0F0dGFjaG1lbnQuaW5mby5jb250ZW50VHlwZSwgQCJp
bWFnZS9wbmciKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoZ2lmQXR0YWNobWVudC5pbmZvLmNvbnRl
bnRUeXBlLCBAImltYWdlL2dpZiIpOworfQorCitURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBU
YXJnZXRlZFByZXZpZXdJc0NsaXBwZWRXaGVuRHJvcHBpbmdUYWxsSW1hZ2UpCit7CisgICAgYXV0
byB3ZWJWaWV3ID0gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2htZW50cyhDR1NpemVNYWtlKDgwMCwg
MjAwKSk7CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3Vt
ZW50LmJvZHkuc3R5bGUubWFyZ2luID0gJzAnIl07CisgICAgW3dlYlZpZXcgX3NldEVkaXRhYmxl
OllFU107CisKKyAgICBhdXRvIGltYWdlRGF0YSA9IHJldGFpblB0cihbTlNEYXRhIGRhdGFXaXRo
Q29udGVudHNPZlVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiNDAw
eDQwMC1ncmVlbiIgd2l0aEV4dGVuc2lvbjpAInBuZyIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXV0pOworICAgIGF1dG8gc2ltdWxhdG9yID0gYWRvcHROUyhbW0RyYWdB
bmREcm9wU2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOwor
CisgICAgYXV0byBwcmV2aWV3ID0gdGFyZ2V0ZWRJbWFnZURyYWdQcmV2aWV3KHdlYlZpZXcuZ2V0
KCksIGltYWdlRGF0YS5nZXQoKSwgQ0dTaXplTWFrZSgxMDAsIDEwMCkpOworICAgIGF1dG8gaXRl
bSA9IGFkb3B0TlMoW1tOU0l0ZW1Qcm92aWRlciBhbGxvY10gaW5pdF0pOworICAgIFtpdGVtIHJl
Z2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6KF9fYnJpZGdlIE5TU3Ry
aW5nICopa1VUVHlwZVBORyB3aXRoRGF0YTppbWFnZURhdGEuZ2V0KCkgbG9hZGluZ0RlbGF5OjAu
NV07CisgICAgW2l0ZW0gc2V0UHJlZmVycmVkUHJlc2VudGF0aW9uU2l6ZTpDR1NpemVNYWtlKDQw
MCwgNDAwKV07CisgICAgW2l0ZW0gc2V0U3VnZ2VzdGVkTmFtZTpAImdyZWVuIl07CisKKyAgICBb
c2ltdWxhdG9yIHNldERyb3BBbmltYXRpb25UaW1pbmc6RHJvcEFuaW1hdGlvblNob3VsZEZpbmlz
aEJlZm9yZUhhbmRsaW5nRHJvcF07CisgICAgW3NpbXVsYXRvciBzZXRFeHRlcm5hbEl0ZW1Qcm92
aWRlcnM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0Oml0ZW0uZ2V0KCldIGRlZmF1bHREcm9wUHJl
dmlld3M6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OnByZXZpZXcuZ2V0KCldXTsKKyAgICBbc2lt
dWxhdG9yIHJ1bkZyb206Q0dQb2ludE1ha2UoMCwgMCkgdG86Q0dQb2ludE1ha2UoMzUwLCAzNTAp
XTsKKworICAgIEVYUEVDVF9FUShbc2ltdWxhdG9yIGRlbGF5ZWREcm9wUHJldmlld3NdLmNvdW50
LCAxVSk7CisgICAgVUlUYXJnZXRlZERyYWdQcmV2aWV3ICpkZWxheWVkUHJldmlldyA9IFtzaW11
bGF0b3IgZGVsYXllZERyb3BQcmV2aWV3c10uZmlyc3RPYmplY3Q7CisgICAgRVhQRUNUX1RSVUUo
Q0dBZmZpbmVUcmFuc2Zvcm1FcXVhbFRvVHJhbnNmb3JtKENHQWZmaW5lVHJhbnNmb3JtTWFrZVNj
YWxlKDQsIDQpLCBkZWxheWVkUHJldmlldy50YXJnZXQudHJhbnNmb3JtKSk7CisgICAgRVhQRUNU
X1RSVUUoQ0dSZWN0RXF1YWxUb1JlY3QoQ0dSZWN0TWFrZSgwLCAwLCAxMDAsIDUwKSwgZGVsYXll
ZFByZXZpZXcucGFyYW1ldGVycy52aXNpYmxlUGF0aC5ib3VuZHMpKTsKKyAgICBFWFBFQ1RfVFJV
RShDR1BvaW50RXF1YWxUb1BvaW50KENHUG9pbnRNYWtlKDIwMCwgMTAwKSwgZGVsYXllZFByZXZp
ZXcudGFyZ2V0LmNlbnRlcikpOworCisgICAgW3dlYlZpZXcgZXhwZWN0RWxlbWVudENvdW50OjEg
cXVlcnlTZWxlY3RvcjpAIklNRyJdOworICAgIF9XS0F0dGFjaG1lbnQgKmF0dGFjaG1lbnQgPSBb
W3NpbXVsYXRvciBpbnNlcnRlZEF0dGFjaG1lbnRzXSBfYXR0YWNobWVudFdpdGhOYW1lOkAiZ3Jl
ZW4ucG5nIl07CisgICAgRVhQRUNUX1dLX1NUUkVRKGF0dGFjaG1lbnQuaW5mby5jb250ZW50VHlw
ZSwgQCJpbWFnZS9wbmciKTsKK30KKwogVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0
RHJvcHBlZEltYWdlQXNBdHRhY2htZW50KQogewogICAgIGF1dG8gd2ViVmlldyA9IHdlYlZpZXdG
b3JUZXN0aW5nQXR0YWNobWVudHMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL2lvcy9EcmFnQW5kRHJvcFRlc3RzSU9TLm1tCmluZGV4IDQ3MDkwNDc2ZDdjZTUzMTE0ZTNk
YjgzYjkyNmZlMzJjZmJmMWUwNDkuLmY1ZTU2ZTY5N2QyZjBjYjcwNTJlYjMwYzFkMzVlMjNlMTg2
NjE1OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdBbmRE
cm9wVGVzdHNJT1MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRHJhZ0Fu
ZERyb3BUZXN0c0lPUy5tbQpAQCAtMjksNiArMjksNyBAQAogCiAjaW1wb3J0ICJDbGFzc01ldGhv
ZFN3aXp6bGVyLmgiCiAjaW1wb3J0ICJEcmFnQW5kRHJvcFNpbXVsYXRvci5oIgorI2ltcG9ydCAi
TlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMuaCIKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgi
CiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgpAQCAtNTMs
MTAgKzU0LDYgQEAgU09GVF9MSU5LX0ZSQU1FV09SSyhNYXBLaXQpCiBTT0ZUX0xJTktfQ0xBU1Mo
TWFwS2l0LCBNS01hcEl0ZW0pCiBTT0ZUX0xJTktfQ0xBU1MoTWFwS2l0LCBNS1BsYWNlbWFyaykK
IAotdHlwZWRlZiB2b2lkICheRmlsZUxvYWRDb21wbGV0aW9uQmxvY2spKE5TVVJMICosIEJPT0ws
IE5TRXJyb3IgKik7Ci10eXBlZGVmIHZvaWQgKF5EYXRhTG9hZENvbXBsZXRpb25CbG9jaykoTlNE
YXRhICosIE5TRXJyb3IgKik7Ci10eXBlZGVmIHZvaWQgKF5OU0l0ZW1Qcm92aWRlckRhdGFMb2Fk
Q29tcGxldGlvbkJsb2NrKShOU0RhdGEgKiwgTlNFcnJvciAqKTsKLQogI2lmICFVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQogCiBAaW50ZXJmYWNlIE5TSXRlbVByb3ZpZGVyUmVwcmVzZW50YXRpb25P
cHRpb25zIDogTlNPYmplY3QKQEAgLTgxLDE5ICs3OCw2IEBAIHN0YXRpYyBOU0RhdGEgKnRlc3Ra
SVBBcmNoaXZlKCkKICAgICByZXR1cm4gW05TRGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZVUkw6emlw
RmlsZVVSTF07CiB9CiAKLUBpbXBsZW1lbnRhdGlvbiBOU0l0ZW1Qcm92aWRlciAoRHJhZ0FuZERy
b3BUZXN0cykKLQotLSAodm9pZClyZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVu
dGlmaWVyOihOU1N0cmluZyAqKXR5cGVJZGVudGlmaWVyIHdpdGhEYXRhOihOU0RhdGEgKilkYXRh
Ci17Ci0gICAgUmV0YWluUHRyPE5TRGF0YT4gcmV0YWluZWREYXRhID0gZGF0YTsKLSAgICBbc2Vs
ZiByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOnR5cGVJZGVudGlm
aWVyIHZpc2liaWxpdHk6TlNJdGVtUHJvdmlkZXJSZXByZXNlbnRhdGlvblZpc2liaWxpdHlBbGwg
bG9hZEhhbmRsZXI6IFtyZXRhaW5lZERhdGFdIChEYXRhTG9hZENvbXBsZXRpb25CbG9jayBibG9j
aykgLT4gTlNQcm9ncmVzcyAqIHsKLSAgICAgICAgYmxvY2socmV0YWluZWREYXRhLmdldCgpLCBu
aWwpOwotICAgICAgICByZXR1cm4gW05TUHJvZ3Jlc3MgZGlzY3JldGVQcm9ncmVzc1dpdGhUb3Rh
bFVuaXRDb3VudDoxMDBdOwotICAgIH1dOwotfQotCi1AZW5kCi0KIEBpbXBsZW1lbnRhdGlvbiBU
ZXN0V0tXZWJWaWV3IChEcmFnQW5kRHJvcFRlc3RzKQogCiAtIChCT09MKWVkaXRvckNvbnRhaW5z
SW1hZ2VFbGVtZW50CkBAIC05OTcsNyArOTgxLDcgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBF
eHRlcm5hbFNvdXJjZVVURjhQbGFpblRleHRPbmx5KQogICAgIE5TU3RyaW5nICp0ZXh0UGF5bG9h
ZCA9IEAiQ2VjaSBuJ2VzdCBwYXMgdW5lIHN0cmluZyI7CiAgICAgYXV0byBzaW11bGF0b3IgPSBh
ZG9wdE5TKFtbRHJhZ0FuZERyb3BTaW11bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3ZWJW
aWV3LmdldCgpXSk7CiAgICAgYXV0byBzaW11bGF0ZWRJdGVtUHJvdmlkZXIgPSBhZG9wdE5TKFtb
TlNJdGVtUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsKLSAgICBbc2ltdWxhdGVkSXRlbVByb3ZpZGVy
IHJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6KF9fYnJpZGdlIE5T
U3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHQgdmlzaWJpbGl0eTpOU0l0ZW1Qcm92aWRlclJl
cHJlc2VudGF0aW9uVmlzaWJpbGl0eUFsbCBsb2FkSGFuZGxlcjpeTlNQcm9ncmVzcyAqKE5TSXRl
bVByb3ZpZGVyRGF0YUxvYWRDb21wbGV0aW9uQmxvY2sgY29tcGxldGlvbkJsb2NrKQorICAgIFtz
aW11bGF0ZWRJdGVtUHJvdmlkZXIgcmVnaXN0ZXJEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBlSWRl
bnRpZmllcjooX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlVVRGOFBsYWluVGV4dCB2aXNpYmls
aXR5Ok5TSXRlbVByb3ZpZGVyUmVwcmVzZW50YXRpb25WaXNpYmlsaXR5QWxsIGxvYWRIYW5kbGVy
Ol5OU1Byb2dyZXNzICooRGF0YUxvYWRDb21wbGV0aW9uQmxvY2sgY29tcGxldGlvbkJsb2NrKQog
ICAgIHsKICAgICAgICAgY29tcGxldGlvbkJsb2NrKFt0ZXh0UGF5bG9hZCBkYXRhVXNpbmdFbmNv
ZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10sIG5pbCk7CiAgICAgICAgIHJldHVybiBbTlNQcm9n
cmVzcyBkaXNjcmV0ZVByb2dyZXNzV2l0aFRvdGFsVW5pdENvdW50OjEwMF07CkBAIC0xMDE3LDcg
KzEwMDEsNyBAQCBURVNUKERyYWdBbmREcm9wVGVzdHMsIEV4dGVybmFsU291cmNlSlBFR09ubHkp
CiAKICAgICBhdXRvIHNpbXVsYXRvciA9IGFkb3B0TlMoW1tEcmFnQW5kRHJvcFNpbXVsYXRvciBh
bGxvY10gaW5pdFdpdGhXZWJWaWV3OndlYlZpZXcuZ2V0KCldKTsKICAgICBhdXRvIHNpbXVsYXRl
ZEl0ZW1Qcm92aWRlciA9IGFkb3B0TlMoW1tOU0l0ZW1Qcm92aWRlciBhbGxvY10gaW5pdF0pOwot
ICAgIFtzaW11bGF0ZWRJdGVtUHJvdmlkZXIgcmVnaXN0ZXJEYXRhUmVwcmVzZW50YXRpb25Gb3JU
eXBlSWRlbnRpZmllcjooX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlSlBFRyB2aXNpYmlsaXR5
Ok5TSXRlbVByb3ZpZGVyUmVwcmVzZW50YXRpb25WaXNpYmlsaXR5QWxsIGxvYWRIYW5kbGVyOl5O
U1Byb2dyZXNzICooTlNJdGVtUHJvdmlkZXJEYXRhTG9hZENvbXBsZXRpb25CbG9jayBjb21wbGV0
aW9uQmxvY2spCisgICAgW3NpbXVsYXRlZEl0ZW1Qcm92aWRlciByZWdpc3RlckRhdGFSZXByZXNl
bnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVKUEVH
IHZpc2liaWxpdHk6TlNJdGVtUHJvdmlkZXJSZXByZXNlbnRhdGlvblZpc2liaWxpdHlBbGwgbG9h
ZEhhbmRsZXI6Xk5TUHJvZ3Jlc3MgKihEYXRhTG9hZENvbXBsZXRpb25CbG9jayBjb21wbGV0aW9u
QmxvY2spCiAgICAgewogICAgICAgICBjb21wbGV0aW9uQmxvY2soVUlJbWFnZUpQRUdSZXByZXNl
bnRhdGlvbih0ZXN0SWNvbkltYWdlKCksIDAuNSksIG5pbCk7CiAgICAgICAgIHJldHVybiBbTlNQ
cm9ncmVzcyBkaXNjcmV0ZVByb2dyZXNzV2l0aFRvdGFsVW5pdENvdW50OjEwMF07CkBAIC0xMzEz
LDcgKzEyOTcsNyBAQCBURVNUKERyYWdBbmREcm9wVGVzdHMsIEluamVjdGVkQnVuZGxlT3ZlcnJp
ZGVQZXJmb3JtVHdvU3RlcERyb3ApCiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpIl07CiAKICAgICBhdXRv
IHNpbXVsYXRlZEl0ZW1Qcm92aWRlciA9IGFkb3B0TlMoW1tOU0l0ZW1Qcm92aWRlciBhbGxvY10g
aW5pdF0pOwotICAgIFtzaW11bGF0ZWRJdGVtUHJvdmlkZXIgcmVnaXN0ZXJEYXRhUmVwcmVzZW50
YXRpb25Gb3JUeXBlSWRlbnRpZmllcjooX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlVVRGOFBs
YWluVGV4dCB2aXNpYmlsaXR5Ok5TSXRlbVByb3ZpZGVyUmVwcmVzZW50YXRpb25WaXNpYmlsaXR5
QWxsIGxvYWRIYW5kbGVyOl5OU1Byb2dyZXNzICooTlNJdGVtUHJvdmlkZXJEYXRhTG9hZENvbXBs
ZXRpb25CbG9jayBjb21wbGV0aW9uQmxvY2spCisgICAgW3NpbXVsYXRlZEl0ZW1Qcm92aWRlciBy
ZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOihfX2JyaWRnZSBOU1N0
cmluZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0IHZpc2liaWxpdHk6TlNJdGVtUHJvdmlkZXJSZXBy
ZXNlbnRhdGlvblZpc2liaWxpdHlBbGwgbG9hZEhhbmRsZXI6Xk5TUHJvZ3Jlc3MgKihEYXRhTG9h
ZENvbXBsZXRpb25CbG9jayBjb21wbGV0aW9uQmxvY2spCiAgICAgewogICAgICAgICBjb21wbGV0
aW9uQmxvY2soW0AiSGVsbG8gd29ybGQiIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0Vu
Y29kaW5nXSwgbmlsKTsKICAgICAgICAgcmV0dXJuIFtOU1Byb2dyZXNzIGRpc2NyZXRlUHJvZ3Jl
c3NXaXRoVG90YWxVbml0Q291bnQ6MTAwXTsKQEAgLTEzMzYsNyArMTMyMCw3IEBAIFRFU1QoRHJh
Z0FuZERyb3BUZXN0cywgSW5qZWN0ZWRCdW5kbGVBbGxvd1BlcmZvcm1Ud29TdGVwRHJvcCkKICAg
ICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCku
cmVtb3ZlQWxsUmFuZ2VzKCkiXTsKIAogICAgIGF1dG8gc2ltdWxhdGVkSXRlbVByb3ZpZGVyID0g
YWRvcHROUyhbW05TSXRlbVByb3ZpZGVyIGFsbG9jXSBpbml0XSk7Ci0gICAgW3NpbXVsYXRlZEl0
ZW1Qcm92aWRlciByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOihf
X2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0IHZpc2liaWxpdHk6TlNJdGVt
UHJvdmlkZXJSZXByZXNlbnRhdGlvblZpc2liaWxpdHlBbGwgbG9hZEhhbmRsZXI6Xk5TUHJvZ3Jl
c3MgKihOU0l0ZW1Qcm92aWRlckRhdGFMb2FkQ29tcGxldGlvbkJsb2NrIGNvbXBsZXRpb25CbG9j
aykKKyAgICBbc2ltdWxhdGVkSXRlbVByb3ZpZGVyIHJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9u
Rm9yVHlwZUlkZW50aWZpZXI6KF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRl
eHQgdmlzaWJpbGl0eTpOU0l0ZW1Qcm92aWRlclJlcHJlc2VudGF0aW9uVmlzaWJpbGl0eUFsbCBs
b2FkSGFuZGxlcjpeTlNQcm9ncmVzcyAqKERhdGFMb2FkQ29tcGxldGlvbkJsb2NrIGNvbXBsZXRp
b25CbG9jaykKICAgICB7CiAgICAgICAgIGNvbXBsZXRpb25CbG9jayhbQCJIZWxsbyB3b3JsZCIg
ZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddLCBuaWwpOwogICAgICAgICBy
ZXR1cm4gW05TUHJvZ3Jlc3MgZGlzY3JldGVQcm9ncmVzc1dpdGhUb3RhbFVuaXRDb3VudDoxMDBd
OwpAQCAtMTU4MSwxNCArMTU2NSwxNCBAQCBURVNUKERyYWdBbmREcm9wVGVzdHMsIFdlYkl0ZW1Q
cm92aWRlclBhc3RlYm9hcmRMb2FkaW5nKQogCiAgICAgV2ViSXRlbVByb3ZpZGVyUGFzdGVib2Fy
ZCAqcGFzdGVib2FyZCA9IFtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNl
XTsKICAgICBhdXRvIGZhc3RJdGVtID0gYWRvcHROUyhbW05TSXRlbVByb3ZpZGVyIGFsbG9jXSBp
bml0XSk7Ci0gICAgW2Zhc3RJdGVtIHJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlk
ZW50aWZpZXI6KF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHQgdmlzaWJp
bGl0eTpOU0l0ZW1Qcm92aWRlclJlcHJlc2VudGF0aW9uVmlzaWJpbGl0eUFsbCBsb2FkSGFuZGxl
cjpeTlNQcm9ncmVzcyAqKE5TSXRlbVByb3ZpZGVyRGF0YUxvYWRDb21wbGV0aW9uQmxvY2sgY29t
cGxldGlvbkJsb2NrKQorICAgIFtmYXN0SXRlbSByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZv
clR5cGVJZGVudGlmaWVyOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0
IHZpc2liaWxpdHk6TlNJdGVtUHJvdmlkZXJSZXByZXNlbnRhdGlvblZpc2liaWxpdHlBbGwgbG9h
ZEhhbmRsZXI6Xk5TUHJvZ3Jlc3MgKihEYXRhTG9hZENvbXBsZXRpb25CbG9jayBjb21wbGV0aW9u
QmxvY2spCiAgICAgewogICAgICAgICBjb21wbGV0aW9uQmxvY2soW2Zhc3RTdHJpbmcgZGF0YVVz
aW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddLCBuaWwpOwogICAgICAgICByZXR1cm4g
bmlsOwogICAgIH1dOwogCiAgICAgYXV0byBzbG93SXRlbSA9IGFkb3B0TlMoW1tOU0l0ZW1Qcm92
aWRlciBhbGxvY10gaW5pdF0pOwotICAgIFtzbG93SXRlbSByZWdpc3RlckRhdGFSZXByZXNlbnRh
dGlvbkZvclR5cGVJZGVudGlmaWVyOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVVVEY4UGxh
aW5UZXh0IHZpc2liaWxpdHk6TlNJdGVtUHJvdmlkZXJSZXByZXNlbnRhdGlvblZpc2liaWxpdHlB
bGwgbG9hZEhhbmRsZXI6Xk5TUHJvZ3Jlc3MgKihOU0l0ZW1Qcm92aWRlckRhdGFMb2FkQ29tcGxl
dGlvbkJsb2NrIGNvbXBsZXRpb25CbG9jaykKKyAgICBbc2xvd0l0ZW0gcmVnaXN0ZXJEYXRhUmVw
cmVzZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjooX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBl
VVRGOFBsYWluVGV4dCB2aXNpYmlsaXR5Ok5TSXRlbVByb3ZpZGVyUmVwcmVzZW50YXRpb25WaXNp
YmlsaXR5QWxsIGxvYWRIYW5kbGVyOl5OU1Byb2dyZXNzICooRGF0YUxvYWRDb21wbGV0aW9uQmxv
Y2sgY29tcGxldGlvbkJsb2NrKQogICAgIHsKICAgICAgICAgc2xlZXAoMl9zKTsKICAgICAgICAg
Y29tcGxldGlvbkJsb2NrKFtzbG93U3RyaW5nIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmlu
Z0VuY29kaW5nXSwgbmlsKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2Ev
RHJhZ0FuZERyb3BTaW11bGF0b3IuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvRHJhZ0Fu
ZERyb3BTaW11bGF0b3IuaAppbmRleCA3ZjMxYzRmZjcxNmI3Zjg3YTJlNmMzOTk0MTZkMGE2ZDVi
NjljYmQ0Li5iNWIwZGQzZDNlMDUzZjMyNmUzM2VmNjU5ZjZhNjhjMmI0ODE0MjFlIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0RyYWdBbmREcm9wU2ltdWxhdG9yLmgKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9EcmFnQW5kRHJvcFNpbXVsYXRvci5oCkBAIC00
Nyw2ICs0NywxMSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBEcmFnQW5kRHJvcFBoYXNl
KSB7CiAgICAgRHJhZ0FuZERyb3BQaGFzZVBlcmZvcm1pbmdEcm9wID0gNAogfTsKIAordHlwZWRl
ZiBOU19FTlVNKE5TSW50ZWdlciwgRHJvcEFuaW1hdGlvblRpbWluZykgeworICAgIERyb3BBbmlt
YXRpb25TaG91bGRGaW5pc2hBZnRlckhhbmRsaW5nRHJvcCwKKyAgICBEcm9wQW5pbWF0aW9uU2hv
dWxkRmluaXNoQmVmb3JlSGFuZGxpbmdEcm9wCit9OworCiB0eXBlZGVmIE5TRGljdGlvbmFyeTxO
U051bWJlciAqLCBOU1ZhbHVlICo+ICpQcm9ncmVzc1RvQ0dQb2ludFZhbHVlTWFwOwogCiBAaW50
ZXJmYWNlIE1vY2tEcmFnRHJvcFNlc3Npb24gOiBOU09iamVjdCA8VUlEcmFnRHJvcFNlc3Npb24+
IHsKQEAgLTkxLDYgKzk2LDcgQEAgdHlwZWRlZiBOU0RpY3Rpb25hcnk8TlNOdW1iZXIgKiwgTlNW
YWx1ZSAqPiAqUHJvZ3Jlc3NUb0NHUG9pbnRWYWx1ZU1hcDsKIC0gKGluc3RhbmNldHlwZSlpbml0
V2l0aFdlYlZpZXc6KFRlc3RXS1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClydW5Gcm9tOihD
R1BvaW50KXN0YXJ0TG9jYXRpb24gdG86KENHUG9pbnQpZW5kTG9jYXRpb24gYWRkaXRpb25hbEl0
ZW1SZXF1ZXN0TG9jYXRpb25zOihQcm9ncmVzc1RvQ0dQb2ludFZhbHVlTWFwKWFkZGl0aW9uYWxJ
dGVtUmVxdWVzdExvY2F0aW9uczsKIC0gKHZvaWQpZW5zdXJlSW5wdXRTZXNzaW9uOworLSAodm9p
ZClzZXRFeHRlcm5hbEl0ZW1Qcm92aWRlcnM6KE5TQXJyYXk8TlNJdGVtUHJvdmlkZXIgKj4gKilp
dGVtUHJvdmlkZXJzIGRlZmF1bHREcm9wUHJldmlld3M6KE5TQXJyYXk8VUlUYXJnZXRlZERyYWdQ
cmV2aWV3ICo+ICopcHJldmlld3M7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
RHJhZ0FuZERyb3BQaGFzZSBwaGFzZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93
c0ZvY3VzVG9TdGFydElucHV0U2Vzc2lvbjsKQEAgLTExNSw2ICsxMjEsNyBAQCB0eXBlZGVmIE5T
RGljdGlvbmFyeTxOU051bWJlciAqLCBOU1ZhbHVlICo+ICpQcm9ncmVzc1RvQ0dQb2ludFZhbHVl
TWFwOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5PFVJVGFyZ2V0ZWRE
cmFnUHJldmlldyAqPiAqY2FuY2VsbGF0aW9uUHJldmlld3M7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TQXJyYXkgKmRyb3BQcmV2aWV3czsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNBcnJheSAqZGVsYXllZERyb3BQcmV2aWV3czsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljKSBEcm9wQW5pbWF0aW9uVGltaW5nIGRyb3BBbmltYXRpb25UaW1pbmc7CiAKICNlbmRp
ZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL05TSXRlbVByb3ZpZGVyQWRkaXRpb25zLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL05TSXRlbVByb3ZpZGVyQWRkaXRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQ4ZmY3NzJiYjRl
NWNlYTAyNWUwZWRjMTYyNzYzMTBlZTYyMGE0YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvTlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMuaApAQCAtMCwwICsxLDM2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91
bmRhdGlvbi5oPgorCit0eXBlZGVmIHZvaWQgKF5GaWxlTG9hZENvbXBsZXRpb25CbG9jaykoTlNV
UkwgKiwgQk9PTCwgTlNFcnJvciAqKTsKK3R5cGVkZWYgdm9pZCAoXkRhdGFMb2FkQ29tcGxldGlv
bkJsb2NrKShOU0RhdGEgKiwgTlNFcnJvciAqKTsKKworQGludGVyZmFjZSBOU0l0ZW1Qcm92aWRl
ciAoTlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMpCistICh2b2lkKXJlZ2lzdGVyRGF0YVJlcHJlc2Vu
dGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6KE5TU3RyaW5nICopdHlwZUlkZW50aWZpZXIgd2l0aERh
dGE6KE5TRGF0YSAqKWRhdGE7CistICh2b2lkKXJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9y
VHlwZUlkZW50aWZpZXI6KE5TU3RyaW5nICopdHlwZUlkZW50aWZpZXIgd2l0aERhdGE6KE5TRGF0
YSAqKWRhdGEgbG9hZGluZ0RlbGF5OihOU1RpbWVJbnRlcnZhbClkZWxheTsKK0BlbmQKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvTlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL05TSXRlbVByb3ZpZGVyQWRkaXRpb25zLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY3YmQ1ZGM2NTkxOGY0YjYwN2MwMzA4YjhjMTRkM2UwZDJkZGY2YzEKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL05TSXRlbVByb3ZpZGVy
QWRkaXRpb25zLm1tCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIk5TSXRlbVByb3ZpZGVyQWRkaXRpb25zLmgiCisKKyNpbXBvcnQgPHd0
Zi9CbG9ja1B0ci5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAaW1wbGVtZW50YXRp
b24gTlNJdGVtUHJvdmlkZXIgKE5TSXRlbVByb3ZpZGVyQWRkaXRpb25zKQorCistICh2b2lkKXJl
Z2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6KE5TU3RyaW5nICopdHlw
ZUlkZW50aWZpZXIgd2l0aERhdGE6KE5TRGF0YSAqKWRhdGEKK3sKKyAgICBbc2VsZiByZWdpc3Rl
ckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOnR5cGVJZGVudGlmaWVyIHdpdGhE
YXRhOmRhdGEgbG9hZGluZ0RlbGF5OjBdOworfQorCistICh2b2lkKXJlZ2lzdGVyRGF0YVJlcHJl
c2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6KE5TU3RyaW5nICopdHlwZUlkZW50aWZpZXIgd2l0
aERhdGE6KE5TRGF0YSAqKWRhdGEgbG9hZGluZ0RlbGF5OihOU1RpbWVJbnRlcnZhbClkZWxheQor
eworICAgIGF1dG8gcmV0YWluZWREYXRhID0gcmV0YWluUHRyKGRhdGEpOworICAgIFtzZWxmIHJl
Z2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6dHlwZUlkZW50aWZpZXIg
dmlzaWJpbGl0eTpOU0l0ZW1Qcm92aWRlclJlcHJlc2VudGF0aW9uVmlzaWJpbGl0eUFsbCBsb2Fk
SGFuZGxlcjogW3JldGFpbmVkRGF0YSwgZGVsYXldIChEYXRhTG9hZENvbXBsZXRpb25CbG9jayBi
bG9jaykgLT4gTlNQcm9ncmVzcyAqIHsKKyAgICAgICAgaWYgKGRlbGF5ID4gMCkgeworICAgICAg
ICAgICAgZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgKGlu
dDY0X3QpKGRlbGF5ICogTlNFQ19QRVJfU0VDKSksIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCks
IFtibG9jayA9IG1ha2VCbG9ja1B0cihibG9jayksIHJldGFpbmVkRGF0YV0geworICAgICAgICAg
ICAgICAgIGJsb2NrKHJldGFpbmVkRGF0YS5nZXQoKSwgbmlsKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGJsb2NrKHJldGFpbmVkRGF0YS5nZXQoKSwgbmls
KTsKKyAgICAgICAgcmV0dXJuIFtOU1Byb2dyZXNzIGRpc2NyZXRlUHJvZ3Jlc3NXaXRoVG90YWxV
bml0Q291bnQ6MTAwXTsKKyAgICB9XTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9pb3MvRHJhZ0FuZERyb3BTaW11bGF0b3JJT1MubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2lvcy9EcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbQppbmRleCA1NTU1N2JhY2QwNzMx
NzJlNGQ2NzAxMGMxMjhhYTI2ZGNhMmVjZGI3Li44ZWI1YjA2YzljZDJmOTQ3ODQ4OWRjZTczMmMy
OTkyODllMjcwN2VkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EcmFnQW5k
RHJvcFNpbXVsYXRvcklPUy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EcmFnQW5k
RHJvcFNpbXVsYXRvcklPUy5tbQpAQCAtMjk2LDYgKzI5Niw5IEBAIElHTk9SRV9XQVJOSU5HU19F
TkQKIAogQGVuZAogCitAaW50ZXJmYWNlIERyYWdBbmREcm9wU2ltdWxhdG9yICgpIDxVSURyYWdB
bmltYXRpbmc+CitAZW5kCisKIEBpbXBsZW1lbnRhdGlvbiBEcmFnQW5kRHJvcFNpbXVsYXRvciB7
CiAgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IF93ZWJWaWV3OwogICAgIFJldGFpblB0cjxN
b2NrRHJhZ1Nlc3Npb24+IF9kcmFnU2Vzc2lvbjsKQEAgLTMxNCw2ICszMTcsNyBAQCBAaW1wbGVt
ZW50YXRpb24gRHJhZ0FuZERyb3BTaW11bGF0b3IgewogICAgIFJldGFpblB0cjxOU011dGFibGVB
cnJheTxVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKj4+IF9jYW5jZWxsYXRpb25QcmV2aWV3czsKICAg
ICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IF9kcm9wUHJldmlld3M7CiAgICAgUmV0YWluUHRy
PE5TTXV0YWJsZUFycmF5PiBfZGVsYXllZERyb3BQcmV2aWV3czsKKyAgICBSZXRhaW5QdHI8TlNN
dXRhYmxlQXJyYXk+IF9kZWZhdWx0RHJvcFByZXZpZXdzRm9yRXh0ZXJuYWxJdGVtczsKIAogICAg
IFJldGFpblB0cjxOU011dGFibGVBcnJheTxfV0tBdHRhY2htZW50ICo+PiBfaW5zZXJ0ZWRBdHRh
Y2htZW50czsKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8X1dLQXR0YWNobWVudCAqPj4g
X3JlbW92ZWRBdHRhY2htZW50czsKQEAgLTMzMiw2ICszMzYsNyBAQCBAaW1wbGVtZW50YXRpb24g
RHJhZ0FuZERyb3BTaW11bGF0b3IgewogICAgIEJsb2NrUHRyPFVJRHJvcE9wZXJhdGlvbihVSURy
b3BPcGVyYXRpb24sIGlkKT4gX292ZXJyaWRlRHJhZ1VwZGF0ZUJsb2NrOwogICAgIEJsb2NrUHRy
PHZvaWQoQk9PTCwgTlNBcnJheSAqKT4gX2Ryb3BDb21wbGV0aW9uQmxvY2s7CiAgICAgQmxvY2tQ
dHI8dm9pZCgpPiBfc2Vzc2lvbldpbGxCZWdpbkJsb2NrOworICAgIFZlY3RvcjxCbG9ja1B0cjx2
b2lkKFVJVmlld0FuaW1hdGluZ1Bvc2l0aW9uKT4+IF9kcm9wQW5pbWF0aW9uQ29tcGxldGlvbkJs
b2NrczsKIH0KIAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0ZyYW1lOihDR1JlY3Qp
ZnJhbWUKQEAgLTM1NCw2ICszNTksNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJWaWV3
OihUZXN0V0tXZWJWaWV3ICopd2ViVmlldwogICAgICAgICBfc2hvdWxkRW5zdXJlVUlBcHBsaWNh
dGlvbiA9IE5POwogICAgICAgICBfc2hvdWxkQmVjb21lRmlyc3RSZXNwb25kZXIgPSBZRVM7CiAg
ICAgICAgIF9zaG91bGRBbGxvd01vdmVPcGVyYXRpb24gPSBZRVM7CisgICAgICAgIF9kcm9wQW5p
bWF0aW9uVGltaW5nID0gRHJvcEFuaW1hdGlvblNob3VsZEZpbmlzaEFmdGVySGFuZGxpbmdEcm9w
OwogICAgICAgICBbX3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpzZWxmXTsKICAgICAgICAgW193ZWJW
aWV3IF9zZXRJbnB1dERlbGVnYXRlOnNlbGZdOwogICAgICAgICBzZWxmLmRyYWdEZXN0aW5hdGlv
bkFjdGlvbiA9IFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55ICYgfldLRHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uTG9hZDsKQEAgLTQ4MCw4ICs0ODYsMTYgQEAgLSAodm9pZClfY29uY2x1ZGVEcm9wQW5k
UGVyZm9ybU9wZXJhdGlvbklmTmVjZXNzYXJ5CiAgICAgICAgIE5TSW50ZWdlciBkcm9wUHJldmll
d0luZGV4ID0gMDsKICAgICAgICAgX19ibG9jayBOU1VJbnRlZ2VyIG51bWJlck9mUGVuZGluZ1By
ZXZpZXdzID0gW19kcm9wU2Vzc2lvbiBpdGVtc10uY291bnQ7CiAgICAgICAgIF9pc0RvbmVXYWl0
aW5nRm9yRGVsYXllZERyb3BQcmV2aWV3cyA9ICFudW1iZXJPZlBlbmRpbmdQcmV2aWV3czsKKyAg
ICAgICAgQk9PTCBjYW5Vc2VEZWZhdWx0RHJvcFByZXZpZXdzRm9yRXh0ZXJuYWxJdGVtcyA9IFtf
ZGVmYXVsdERyb3BQcmV2aWV3c0ZvckV4dGVybmFsSXRlbXMgY291bnRdID09IFtfZHJvcFNlc3Np
b24gaXRlbXNdLmNvdW50OwogICAgICAgICBmb3IgKFVJRHJhZ0l0ZW0gKml0ZW0gaW4gW19kcm9w
U2Vzc2lvbiBpdGVtc10pIHsKLSAgICAgICAgICAgIGF1dG8gZGVmYXVsdFByZXZpZXcgPSBhZG9w
dE5TKFtbVUlUYXJnZXRlZERyYWdQcmV2aWV3IGFsbG9jXSBpbml0V2l0aFZpZXc6X3dlYlZpZXcu
Z2V0KCldKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxVSVRhcmdldGVkRHJhZ1ByZXZpZXc+IGRl
ZmF1bHRQcmV2aWV3OworICAgICAgICAgICAgaWYgKGNhblVzZURlZmF1bHREcm9wUHJldmlld3NG
b3JFeHRlcm5hbEl0ZW1zKQorICAgICAgICAgICAgICAgIGRlZmF1bHRQcmV2aWV3ID0gW19kZWZh
dWx0RHJvcFByZXZpZXdzRm9yRXh0ZXJuYWxJdGVtcyBvYmplY3RBdEluZGV4OmRyb3BQcmV2aWV3
SW5kZXhdOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gSnVzdCBmYWxs
IGJhY2sgdG8gYW4gYXJiaXRyYXJ5IG5vbi1udWxsIGRyYWcgcHJldmlldyBpZiB0aGUgdGVzdCBk
aWRuJ3Qgc3BlY2lmeSBvbmUuCisgICAgICAgICAgICAgICAgZGVmYXVsdFByZXZpZXcgPSBhZG9w
dE5TKFtbVUlUYXJnZXRlZERyYWdQcmV2aWV3IGFsbG9jXSBpbml0V2l0aFZpZXc6X3dlYlZpZXcu
Z2V0KCldKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgaWQgPFVJRHJvcEludGVyYWN0
aW9uRGVsZWdhdGVfU3RhZ2luZ18zMTA3NTAwNT4gZGVsZWdhdGUgPSAoaWQgPFVJRHJvcEludGVy
YWN0aW9uRGVsZWdhdGVfU3RhZ2luZ18zMTA3NTAwNT4pW193ZWJWaWV3IGRyb3BJbnRlcmFjdGlv
bkRlbGVnYXRlXTsKICAgICAgICAgICAgIFVJRHJvcEludGVyYWN0aW9uICppbnRlcmFjdGlvbiA9
IFtfd2ViVmlldyBkcm9wSW50ZXJhY3Rpb25dOwogICAgICAgICAgICAgW19kcm9wUHJldmlld3Mg
YWRkT2JqZWN0OltkZWxlZ2F0ZSBkcm9wSW50ZXJhY3Rpb246aW50ZXJhY3Rpb24gcHJldmlld0Zv
ckRyb3BwaW5nSXRlbTppdGVtIHdpdGhEZWZhdWx0OmRlZmF1bHRQcmV2aWV3LmdldCgpXSA/OiBO
U051bGwubnVsbF07CkBAIC00OTcsNiArNTExLDE4IEBAIC0gKHZvaWQpX2NvbmNsdWRlRHJvcEFu
ZFBlcmZvcm1PcGVyYXRpb25JZk5lY2Vzc2FyeQogICAgICAgICB9CiAgICAgICAgIFtbX3dlYlZp
ZXcgZHJvcEludGVyYWN0aW9uRGVsZWdhdGVdIGRyb3BJbnRlcmFjdGlvbjpbX3dlYlZpZXcgZHJv
cEludGVyYWN0aW9uXSBwZXJmb3JtRHJvcDpfZHJvcFNlc3Npb24uZ2V0KCldOwogICAgICAgICBf
cGhhc2UgPSBEcmFnQW5kRHJvcFBoYXNlUGVyZm9ybWluZ0Ryb3A7CisKKyAgICAgICAgZm9yIChV
SURyYWdJdGVtICppdGVtIGluIFtfZHJvcFNlc3Npb24gaXRlbXNdKQorICAgICAgICAgICAgW1tf
d2ViVmlldyBkcm9wSW50ZXJhY3Rpb25EZWxlZ2F0ZV0gZHJvcEludGVyYWN0aW9uOltfd2ViVmll
dyBkcm9wSW50ZXJhY3Rpb25dIGl0ZW06aXRlbSB3aWxsQW5pbWF0ZURyb3BXaXRoQW5pbWF0b3I6
c2VsZl07CisKKyAgICAgICAgaWYgKF9kcm9wQW5pbWF0aW9uVGltaW5nID09IERyb3BBbmltYXRp
b25TaG91bGRGaW5pc2hCZWZvcmVIYW5kbGluZ0Ryb3ApIHsKKyAgICAgICAgICAgIFtfd2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6QCIiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQsIE5TRXJyb3Ig
KikgeworICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gYXQgbGVhc3QgZW5zdXJlIG9uZSBy
b3VuZCB0cmlwIHRvIHRoZSB3ZWIgcHJvY2VzcyBhbmQgYmFjaywgdG8gZW5zdXJlIHRoYXQgdGhl
IFVJIHByb2Nlc3Mgd2lsbCBoYXZlIHJlY2VpdmVkIGFueSBpbWFnZSBwbGFjZWhvbGRlcnMKKyAg
ICAgICAgICAgICAgICAvLyB0aGF0IHdlcmUganVzdCBpbnNlcnRlZCBhcyBhIHJlc3VsdCBvZiBw
ZXJmb3JtaW5nIHRoZSBkcm9wLiBIb3dldmVyLCB0aGlzIGlzIGd1YXJhbnRlZWQgdG8gcnVuIGJl
Zm9yZSB0aGUgVUkgcHJvY2VzcyByZWNlaXZlcyB0aGUgZHJvcCBjb21wbGV0aW9uCisgICAgICAg
ICAgICAgICAgLy8gbWVzc2FnZSwgc2luY2UgaXRlbSBwcm92aWRlciBsb2FkaW5nIGlzIGFzeW5j
aHJvbm91cy4KKyAgICAgICAgICAgICAgICBbc2VsZiBfaW52b2tlRHJvcEFuaW1hdGlvbkNvbXBs
ZXRpb25CbG9ja3NBbmRDb25jbHVkZURyb3BdOworICAgICAgICAgICAgfV07CisgICAgICAgIH0K
ICAgICB9IGVsc2UgewogICAgICAgICBfaXNEb25lV2l0aEN1cnJlbnRSdW4gPSB0cnVlOwogICAg
ICAgICBfcGhhc2UgPSBEcmFnQW5kRHJvcFBoYXNlQ2FuY2VsbGVkOwpAQCAtNjM5LDYgKzY2NSw3
IEBAIC0gKHZvaWQpX2FkdmFuY2VQcm9ncmVzcwogLSAodm9pZCljbGVhckV4dGVybmFsRHJhZ0lu
Zm9ybWF0aW9uCiB7CiAgICAgX2V4dGVybmFsSXRlbVByb3ZpZGVycyA9IG5pbDsKKyAgICBfZGVm
YXVsdERyb3BQcmV2aWV3c0ZvckV4dGVybmFsSXRlbXMgPSBuaWw7CiB9CiAKIC0gKENHUG9pbnQp
X2N1cnJlbnRMb2NhdGlvbgpAQCAtNjY5LDYgKzY5NiwxMyBAQCAtICh2b2lkKXNldEV4dGVybmFs
SXRlbVByb3ZpZGVyczooTlNBcnJheSAqKWV4dGVybmFsSXRlbVByb3ZpZGVycwogICAgIF9leHRl
cm5hbEl0ZW1Qcm92aWRlcnMgPSBhZG9wdE5TKFtleHRlcm5hbEl0ZW1Qcm92aWRlcnMgY29weV0p
OwogfQogCistICh2b2lkKXNldEV4dGVybmFsSXRlbVByb3ZpZGVyczooTlNBcnJheTxOU0l0ZW1Q
cm92aWRlciAqPiAqKWl0ZW1Qcm92aWRlcnMgZGVmYXVsdERyb3BQcmV2aWV3czooTlNBcnJheTxV
SVRhcmdldGVkRHJhZ1ByZXZpZXcgKj4gKilwcmV2aWV3cworeworICAgIEFTU0VSVChpdGVtUHJv
dmlkZXJzLmNvdW50ID09IHByZXZpZXdzLmNvdW50KTsKKyAgICBzZWxmLmV4dGVybmFsSXRlbVBy
b3ZpZGVycyA9IGl0ZW1Qcm92aWRlcnM7CisgICAgX2RlZmF1bHREcm9wUHJldmlld3NGb3JFeHRl
cm5hbEl0ZW1zID0gYWRvcHROUyhwcmV2aWV3cy5jb3B5KTsKK30KKwogLSAoRHJhZ0FuZERyb3BQ
aGFzZSlwaGFzZQogewogICAgIHJldHVybiBfcGhhc2U7CkBAIC03ODQsNiArODE4LDI1IEBAIC0g
KGRpc3BhdGNoX2Jsb2NrX3Qpc2Vzc2lvbldpbGxCZWdpbkJsb2NrCiAgICAgcmV0dXJuIF9zZXNz
aW9uV2lsbEJlZ2luQmxvY2suZ2V0KCk7CiB9CiAKKy0gKHZvaWQpYWRkQW5pbWF0aW9uczoodm9p
ZCAoXikoKSlhbmltYXRpb25zCit7CisgICAgLy8gVGhpcyBpcyBub3QgaW1wbGVtZW50ZWQgYnkg
dGhlIGRyYWctYW5kLWRyb3Agc2ltdWxhdG9yIHlldCwgc2luY2UgV2ViS2l0IGRvZXNuJ3QgbWFr
ZSB1c2Ugb2YKKyAgICAvLyAiYWxvbmdzaWRlIiBhbmltYXRpb25zIGR1cmluZyBkcm9wLgorICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCistICh2b2lkKWFkZENvbXBsZXRpb246KHZvaWQg
KF4pKFVJVmlld0FuaW1hdGluZ1Bvc2l0aW9uKSljb21wbGV0aW9uCit7CisgICAgX2Ryb3BBbmlt
YXRpb25Db21wbGV0aW9uQmxvY2tzLmFwcGVuZChtYWtlQmxvY2tQdHIoY29tcGxldGlvbikpOwor
fQorCistICh2b2lkKV9pbnZva2VEcm9wQW5pbWF0aW9uQ29tcGxldGlvbkJsb2Nrc0FuZENvbmNs
dWRlRHJvcAoreworICAgIGZvciAoYXV0byBibG9jayA6IHN0ZDo6ZXhjaGFuZ2UoX2Ryb3BBbmlt
YXRpb25Db21wbGV0aW9uQmxvY2tzLCB7IH0pKQorICAgICAgICBibG9jayhVSVZpZXdBbmltYXRp
bmdQb3NpdGlvbkVuZCk7CisgICAgW1tfd2ViVmlldyBkcm9wSW50ZXJhY3Rpb25EZWxlZ2F0ZV0g
ZHJvcEludGVyYWN0aW9uOltfd2ViVmlldyBkcm9wSW50ZXJhY3Rpb25dIGNvbmNsdWRlRHJvcDpf
ZHJvcFNlc3Npb24uZ2V0KCldOworfQorCiAjcHJhZ21hIG1hcmsgLSBXS1VJRGVsZWdhdGVQcml2
YXRlCiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGF0YUludGVyYWN0
aW9uOihVSURyYWdJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHNlc3Npb25XaWxsQmVnaW46KGlk
IDxVSURyYWdTZXNzaW9uPilzZXNzaW9uCkBAIC03OTcsOCArODUwLDEzIEBAIC0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGF0YUludGVyYWN0aW9uT3BlcmF0aW9uV2FzSGFu
ZGxlZDooQk9PTCloCiAgICAgaWYgKHNlbGYuZHJvcENvbXBsZXRpb25CbG9jaykKICAgICAgICAg
c2VsZi5kcm9wQ29tcGxldGlvbkJsb2NrKGhhbmRsZWQsIGl0ZW1Qcm92aWRlcnMpOwogCisgICAg
aWYgKF9kcm9wQW5pbWF0aW9uVGltaW5nID09IERyb3BBbmltYXRpb25TaG91bGRGaW5pc2hCZWZv
cmVIYW5kbGluZ0Ryb3ApIHsKKyAgICAgICAgX2lzRG9uZVdpdGhDdXJyZW50UnVuID0gdHJ1ZTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFtfd2ViVmlldyBfZG9BZnRlclJlY2Vpdmlu
Z0VkaXREcmFnU25hcHNob3RGb3JUZXN0aW5nOl57Ci0gICAgICAgIFtbX3dlYlZpZXcgZHJvcElu
dGVyYWN0aW9uRGVsZWdhdGVdIGRyb3BJbnRlcmFjdGlvbjpbX3dlYlZpZXcgZHJvcEludGVyYWN0
aW9uXSBjb25jbHVkZURyb3A6X2Ryb3BTZXNzaW9uLmdldCgpXTsKKyAgICAgICAgW3NlbGYgX2lu
dm9rZURyb3BBbmltYXRpb25Db21wbGV0aW9uQmxvY2tzQW5kQ29uY2x1ZGVEcm9wXTsKICAgICAg
ICAgX2lzRG9uZVdpdGhDdXJyZW50UnVuID0gdHJ1ZTsKICAgICB9XTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378655</attachid>
            <date>2019-09-12 10:26:29 -0700</date>
            <delta_ts>2019-09-12 12:36:06 -0700</delta_ts>
            <desc>Fix a ChangeLog typo</desc>
            <filename>bug-201724-20190912102628.patch</filename>
            <type>text/plain</type>
            <size>8609</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5Nzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY4YmMzM2RlNjFlY2Qy
NjIzZTY5MTg0YmI4Y2NiNGFiMjIzOTQxZS4uMTM1ODA1MTRjMzc1NmMyYmVlYmUzMTU1NGUxZmYz
ZDg5NWQ2YzI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE5LTA5LTEyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVGV4
dCBpbmRpY2F0b3IgZm9yIGFuIGltYWdlIGxpbmsgb24gdGhlIGZyb250IHBhZ2Ugb2YgYXBwbGUu
Y29tIGxvb2tzIHdyb25nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDE3MjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0NjIyODk0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY29tcHV0aW5n
IHRoZSBib3VuZHMgb2YgdGhlIHJhbmdlICg8YT4sIDApIHRvICg8YT4sIDEpIGZvciBhIHRleHQg
aW5kaWNhdG9yIHNuYXBzaG90IHdoZXJlIDxhPiBpcyBhIGxpbmsKKyAgICAgICAgd2l0aCBhIHNp
bmdsZSBub24tYnJlYWtpbmcgd2hpdGVzcGFjZSBjaGFyYWN0ZXIsIHdlIGN1cnJlbnRseSB1c2Ug
dGhlIHRleHQgcmVjdCBvZiB0aGUgc2luZ2xlIHNwYWNlLiBUaGlzIGxlYWRzCisgICAgICAgIHRv
IGEgY29uZnVzaW5nIHRleHQgaW5kaWNhdG9yLCBhcyB0aGUgcmVzdWx0aW5nIHNuYXBzaG90IGlz
IGEgdGlueSBibGFuayBzcXVhcmUgaW4gdGhlIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGUKKyAgICAg
ICAgbGluay4gVGhpcyBwcm9ibGVtIG1hbmlmZXN0cyB3aGVuIHN0YXJ0aW5nIGEgZHJhZyBvciBz
aG93aW5nIHRoZSBzeXN0ZW0gY29udGV4dCBtZW51IG9uIGlPUywgb3IgZm9yY2UgY2xpY2tpbmcK
KyAgICAgICAgb3IgdGhyZWUtZmluZ2VyIHRhcHBpbmcgdG8gc2hvdyBhIHByZXZpZXcgb24gbWFj
T1MuCisKKyAgICAgICAgVG8gYWRkcmVzcyB0aGlzIHNjZW5hcmlvLCB0d2VhayB0aGUgaGV1cmlz
dGljIGluIHRoZSBjYXNlIHdoZXJlIHRoZSB0ZXh0IGluZGljYXRvciBvcHRpb24KKyAgICAgICAg
VGV4dEluZGljYXRvck9wdGlvblVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxsQ29udGVudEZvckNv
bXBsZXhSYW5nZXMgaXMgc3BlY2lmaWVkLCBzdWNoIHRoYXQgd2UgY29uc2lkZXIgYSByYW5nZQor
ICAgICAgICBjb250YWluaW5nIG9ubHkgdGV4dCB3aXRoIHdoaXRlc3BhY2VzIHRvIGJlICJjb21w
bGV4IjsgYWRkaXRpb25hbGx5LCBpbnN0ZWFkIG9mIGZhbGxpbmcgYmFjayB0byB0aGUgcmFuZ2Un
cworICAgICAgICBib3VuZGluZyByZWN0ICh3aGljaCBpbiB0aGlzIGNhc2UgaXMgc3RpbGwgdGlu
eSksIGZhbGwgYmFjayB0byB0aGUgY29tbW9uIGFuY2VzdG9yIGNvbnRhaW5lcidzIGJvdW5kaW5n
IHJlY3QsCisgICAgICAgIHdoaWNoIGVuY29tcGFzc2VzIG5vdCBvbmx5IHRoZSB0ZXh0IGluc2lk
ZSB0aGUgcmFuZ2UgYnV0IGFsc28gdGhlIGVsZW1lbnQgY29udGFpbmluZyB0aGUgcmFuZ2UgKGlu
IHRoaXMgY2FzZSwKKyAgICAgICAgdGhlIGFuY2hvciBlbGVtZW50KS4KKworICAgICAgICBUZXN0
OiBmYXN0L3RleHQtaW5kaWNhdG9yL3RleHQtaW5kaWNhdG9yLWVtcHR5LWxpbmsuaHRtbAorCisg
ICAgICAgICogcGFnZS9UZXh0SW5kaWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRh
aW5zT25seVdoaXRlU3BhY2VUZXh0KToKKworICAgICAgICBBZGQgYSBoZWxwZXIgdG8gZGV0ZXJt
aW5lIHdoZXRoZXIgYSBSYW5nZSBpcyBjb21wcmlzZWQgb25seSBvZiByZW5kZXJlZCB0ZXh0IHRo
YXQgb25seSBjb250YWlucyB3aGl0ZXNwYWNlCisgICAgICAgIGNoYXJhY3RlcnMuCisKKyAgICAg
ICAgKFdlYkNvcmU6OmluaXRpYWxpemVJbmRpY2F0b3IpOgorCisgICAgICAgIFNlZSBDaGFuZ2VM
b2cgZW50cnkgYWJvdmUgZm9yIG1vcmUgZGV0YWlsLgorCiAyMDE5LTA5LTExICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIERyb3AgYW5pbWF0
aW9uIHdoZW4gZHJhZ2dpbmcgaW1hZ2VzIGZyb20gUGhvdG9zIHRvIFdlYktpdDIgTWFpbCBjb21w
b3NlIGlzIGluY29ycmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9UZXh0SW5k
aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5jcHAKaW5kZXgg
YTNmNzkwMDM2MTBiNzBlNGQyMjRiZjY3NjQ1YTE4NmUyMGEwNzkzNy4uMmI5MzkwYzFjNjNiNWEw
OGM2MjliYjI4MDBiMzk4NTkwNTBlMDI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9UZXh0SW5kaWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0
b3IuY3BwCkBAIC0yOTEsNiArMjkxLDE2IEBAIHN0YXRpYyBib29sIGhhc0FueUlsbGVnaWJsZUNv
bG9ycyhUZXh0SW5kaWNhdG9yRGF0YSYgZGF0YSwgY29uc3QgQ29sb3ImIGJhY2tncm91CiAgICAg
cmV0dXJuICFoYXNPbmx5TGVnaWJsZVRleHRDb2xvcnMgfHwgdGV4dENvbG9ycy5pc0VtcHR5KCk7
CiB9CiAKK3N0YXRpYyBib29sIGNvbnRhaW5zT25seVdoaXRlU3BhY2VUZXh0KGNvbnN0IFJhbmdl
JiByYW5nZSkKK3sKKyAgICBhdXRvKiBzdG9wID0gcmFuZ2UucGFzdExhc3ROb2RlKCk7CisgICAg
Zm9yIChhdXRvKiBub2RlID0gcmFuZ2UuZmlyc3ROb2RlKCk7IG5vZGUgJiYgbm9kZSAhPSBzdG9w
OyBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbm9kZSkpIHsKKyAgICAgICAgaWYgKCFpczxS
ZW5kZXJUZXh0Pihub2RlLT5yZW5kZXJlcigpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgICAgcmV0dXJuIHBsYWluVGV4dFJlcGxhY2luZ05vQnJlYWtTcGFjZSgmcmFuZ2Up
LnN0cmlwV2hpdGVTcGFjZSgpLmlzRW1wdHkoKTsKK30KKwogc3RhdGljIGJvb2wgaW5pdGlhbGl6
ZUluZGljYXRvcihUZXh0SW5kaWNhdG9yRGF0YSYgZGF0YSwgRnJhbWUmIGZyYW1lLCBjb25zdCBS
YW5nZSYgcmFuZ2UsIEZsb2F0U2l6ZSBtYXJnaW4sIGJvb2wgaW5kaWNhdGVzQ3VycmVudFNlbGVj
dGlvbikKIHsKICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpKQpAQCAt
MzEyLDcgKzMyMiwxNCBAQCBzdGF0aWMgYm9vbCBpbml0aWFsaXplSW5kaWNhdG9yKFRleHRJbmRp
Y2F0b3JEYXRhJiBkYXRhLCBGcmFtZSYgZnJhbWUsIGNvbnN0IFJhbgogCiAgICAgRnJhbWVTZWxl
Y3Rpb246OlRleHRSZWN0YW5nbGVIZWlnaHQgdGV4dFJlY3RIZWlnaHQgPSAoZGF0YS5vcHRpb25z
ICYgVGV4dEluZGljYXRvck9wdGlvblRpZ2h0bHlGaXRDb250ZW50KSA/IEZyYW1lU2VsZWN0aW9u
OjpUZXh0UmVjdGFuZ2xlSGVpZ2h0OjpUZXh0SGVpZ2h0IDogRnJhbWVTZWxlY3Rpb246OlRleHRS
ZWN0YW5nbGVIZWlnaHQ6OlNlbGVjdGlvbkhlaWdodDsKIAotICAgIGlmICgoZGF0YS5vcHRpb25z
ICYgVGV4dEluZGljYXRvck9wdGlvblVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxsQ29udGVudEZv
ckNvbXBsZXhSYW5nZXMpICYmIChoYXNOb25JbmxpbmVPclJlcGxhY2VkRWxlbWVudHMocmFuZ2Up
IHx8IHRyZWF0UmFuZ2VBc0NvbXBsZXhEdWVUb0lsbGVnaWJsZVRleHRDb2xvcnMpKQorICAgIGJv
b2wgdXNlQm91bmRpbmdSZWN0QW5kUGFpbnRBbGxDb250ZW50Rm9yQ29tcGxleFJhbmdlcyA9IGRh
dGEub3B0aW9ucyAmIFRleHRJbmRpY2F0b3JPcHRpb25Vc2VCb3VuZGluZ1JlY3RBbmRQYWludEFs
bENvbnRlbnRGb3JDb21wbGV4UmFuZ2VzOworICAgIGlmICh1c2VCb3VuZGluZ1JlY3RBbmRQYWlu
dEFsbENvbnRlbnRGb3JDb21wbGV4UmFuZ2VzICYmIGNvbnRhaW5zT25seVdoaXRlU3BhY2VUZXh0
KHJhbmdlKSkgeworICAgICAgICBhdXRvIGNvbW1vbkFuY2VzdG9yQ29udGFpbmVyID0gbWFrZVJl
ZlB0cihyYW5nZS5jb21tb25BbmNlc3RvckNvbnRhaW5lcigpKTsKKyAgICAgICAgaWYgKGF1dG8q
IGNvbnRhaW5lclJlbmRlcmVyID0gY29tbW9uQW5jZXN0b3JDb250YWluZXItPnJlbmRlcmVyKCkp
IHsKKyAgICAgICAgICAgIGRhdGEub3B0aW9ucyB8PSBUZXh0SW5kaWNhdG9yT3B0aW9uUGFpbnRB
bGxDb250ZW50OworICAgICAgICAgICAgdGV4dFJlY3RzLmFwcGVuZChjb250YWluZXJSZW5kZXJl
ci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYg
KHVzZUJvdW5kaW5nUmVjdEFuZFBhaW50QWxsQ29udGVudEZvckNvbXBsZXhSYW5nZXMgJiYgKHRy
ZWF0UmFuZ2VBc0NvbXBsZXhEdWVUb0lsbGVnaWJsZVRleHRDb2xvcnMgfHwgaGFzTm9uSW5saW5l
T3JSZXBsYWNlZEVsZW1lbnRzKHJhbmdlKSkpCiAgICAgICAgIGRhdGEub3B0aW9ucyB8PSBUZXh0
SW5kaWNhdG9yT3B0aW9uUGFpbnRBbGxDb250ZW50OwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgZWxzZSBpZiAoZGF0YS5vcHRpb25zICYgVGV4dEluZGljYXRvck9wdGlvblVzZVNlbGVj
dGlvblJlY3RGb3JTaXppbmcpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzUzZWEwNzgxY2ZiZjg1ZDAwODVmM2UzNWRiODZi
ZDk5NjBhYzg5OS4uYWZjOTg4YzMwNmViMmI4ZWZlNzc0NDdiMTFiMGQ4N2MwYjA3ZjFmOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5LTEyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVGV4dCBpbmRpY2F0b3IgZm9yIGFuIGlt
YWdlIGxpbmsgb24gdGhlIGZyb250IHBhZ2Ugb2YgYXBwbGUuY29tIGxvb2tzIHdyb25nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3MjQKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzU0NjIyODk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBsYXlvdXQgdGVzdCB0byBleGVyY2lzZSB0
aGlzIHNjZW5hcmlvLgorCisgICAgICAgICogZmFzdC90ZXh0LWluZGljYXRvci90ZXh0LWluZGlj
YXRvci1lbXB0eS1saW5rLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0
LWluZGljYXRvci90ZXh0LWluZGljYXRvci1lbXB0eS1saW5rLmh0bWw6IEFkZGVkLgorCiAyMDE5
LTA5LTExICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0OTc1My4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC1pbmRpY2F0b3IvdGV4dC1pbmRpY2F0b3ItZW1wdHktbGluay1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtaW5kaWNhdG9yL3RleHQtaW5kaWNhdG9yLWVtcHR5LWxp
bmstZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4ZjQxYzgwYzQyMzRjNjdmMGQxYTUzMTczNmY1
MTJjNTQ5MDU3MTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtaW5k
aWNhdG9yL3RleHQtaW5kaWNhdG9yLWVtcHR5LWxpbmstZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTEgQEAKK1BBU1MgMCBpcyA+PSBib3VuZGluZ1JlY3QueAorUEFTUyAwIGlzID49IGJvdW5kaW5n
UmVjdC55CitQQVNTIGJvdW5kaW5nUmVjdC53aWR0aCBpcyA+PSBpbm5lcldpZHRoCitQQVNTIGJv
dW5kaW5nUmVjdC5oZWlnaHQgaXMgPj0gaW5uZXJIZWlnaHQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorwqAKK1RvIHRlc3QgbWFudWFsbHksIGZvcmNl
IGNsaWNrIG9uIG1hY09TIG9yIGJlZ2luIGEgZHJhZyBvbiBpUGFkT1MgaGVyZS4gVGhlIHByZXZp
ZXcgaGlnaGxpZ2h0IHJlY3Qgb3IgdGFyZ2V0ZWQgZHJhZyBwcmV2aWV3IChyZXNwZWN0aXZlbHkp
IHNob3VsZCBlbmNvbXBhc3MgdGhlIGVudGlyZSB3aW5kb3csIGluc3RlYWQgb2YganVzdCBhIHRp
bnkgcGllY2Ugb2YgZW1wdHkgdGV4dCBpbiB0aGUgdXBwZXIgbGVmdCBoYW5kIGNvcm5lci4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0LWluZGljYXRvci90ZXh0LWluZGljYXRvci1lbXB0eS1saW5rLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3RleHQtaW5kaWNhdG9yL3RleHQtaW5kaWNhdG9yLWVtcHR5LWxpbmsuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42Mzk3M2Y2MjFlODg2YWU0MjUwNzIxZTc2MTRmMWYxMDgxZTEzZDA2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWluZGljYXRvci90ZXh0LWluZGljYXRv
ci1lbXB0eS1saW5rLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGlu
aXRpYWwtc2NhbGU9MSI+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgaHRtbCwgYm9keSB7CisgICAgICAgIHdp
ZHRoOiAxMDAlOworICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgIG1hcmdpbjogMDsKKyAg
ICB9CisKKyAgICAuZnVsbHNjcmVlbiB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICAgICAgdG9wOiAwOworICAgICAgICBsZWZ0OiAwOworICAgICAgICB3aWR0aDogMTAwJTsKKyAg
ICAgICAgaGVpZ2h0OiAxMDAlOworICAgIH0KKworICAgIGRpdi5mdWxsc2NyZWVuIHsKKyAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5OworICAgICAgICB0ZXh0LWFsaWduOiBjZW50
ZXI7CisgICAgICAgIHotaW5kZXg6IC0xMDA7CisgICAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAg
ICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVy
OworICAgIH0KKworICAgIGltZyB7CisgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICBoZWln
aHQ6IDEwMCU7CisgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47CisgICAgfQorCisgICAgYSB7
CisgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+CisgICAgPGEgY2xhc3M9ImZ1bGxzY3JlZW4iIGhyZWY9Imh0dHBzOi8vd3d3LmFw
cGxlLmNvbSI+Jm5ic3A7PC9hPgorICAgIDxkaXYgY2xhc3M9ImZ1bGxzY3JlZW4iIGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUbyB0
ZXN0IG1hbnVhbGx5LCBmb3JjZSBjbGljayBvbiBtYWNPUyBvciBiZWdpbiBhIGRyYWcgb24gaVBh
ZE9TIGhlcmUuIFRoZSBwcmV2aWV3IGhpZ2hsaWdodCByZWN0IG9yIHRhcmdldGVkIGRyYWcgcHJl
dmlldyAocmVzcGVjdGl2ZWx5KSBzaG91bGQgZW5jb21wYXNzIHRoZSBlbnRpcmUgd2luZG93LCBp
bnN0ZWFkIG9mIGp1c3QgYSB0aW55IHBpZWNlIG9mIGVtcHR5IHRleHQgaW4gdGhlIHVwcGVyIGxl
ZnQgaGFuZCBjb3JuZXIuIik7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBp
ZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY29u
c3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworICAgICAgICByYW5nZS5zZWxlY3RO
b2RlQ29udGVudHMoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYS5mdWxsc2NyZWVuIikpOworCisg
ICAgICAgIGNvbnN0IGluZGljYXRvciA9IGludGVybmFscy50ZXh0SW5kaWNhdG9yRm9yUmFuZ2Uo
cmFuZ2UsIHsgdXNlQm91bmRpbmdSZWN0QW5kUGFpbnRBbGxDb250ZW50Rm9yQ29tcGxleFJhbmdl
cyA6IHRydWUgfSk7CisgICAgICAgIGJvdW5kaW5nUmVjdCA9IGluZGljYXRvci50ZXh0Qm91bmRp
bmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzOworCisgICAgICAgIHNob3VsZEJlR3JlYXRlclRo
YW5PckVxdWFsKCIwIiwgImJvdW5kaW5nUmVjdC54Iik7CisgICAgICAgIHNob3VsZEJlR3JlYXRl
clRoYW5PckVxdWFsKCIwIiwgImJvdW5kaW5nUmVjdC55Iik7CisgICAgICAgIHNob3VsZEJlR3Jl
YXRlclRoYW5PckVxdWFsKCJib3VuZGluZ1JlY3Qud2lkdGgiLCAiaW5uZXJXaWR0aCIpOworICAg
ICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgiYm91bmRpbmdSZWN0LmhlaWdodCIsICJp
bm5lckhlaWdodCIpOworICAgIH0KKworICAgIHJ1blRlc3QoKTsKKzwvc2NyaXB0PgorPC9odG1s
Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>