<?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>201944</bug_id>
          
          <creation_ts>2019-09-18 14:36:22 -0700</creation_ts>
          <short_desc>[LFC] FormattingContext::Geometry/MarginCollapse/Quirk classes should not need to access non-const Display::Box</short_desc>
          <delta_ts>2019-09-18 16:33:16 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1572093</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-09-18 14:36:22 -0700</bug_when>
    <thetext>Make them cost correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572094</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-18 14:38:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/55493279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572095</commentid>
    <comment_count>2</comment_count>
      <attachid>379075</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-18 14:46:07 -0700</bug_when>
    <thetext>Created attachment 379075
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572115</commentid>
    <comment_count>3</comment_count>
      <attachid>379078</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-18 15:07:11 -0700</bug_when>
    <thetext>Created attachment 379078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572144</commentid>
    <comment_count>4</comment_count>
      <attachid>379078</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-18 16:33:15 -0700</bug_when>
    <thetext>Comment on attachment 379078
Patch

Clearing flags on attachment: 379078

Committed r250064: &lt;https://trac.webkit.org/changeset/250064&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572145</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-18 16:33:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379075</attachid>
            <date>2019-09-18 14:46:07 -0700</date>
            <delta_ts>2019-09-18 15:07:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201944-20190918144607.patch</filename>
            <type>text/plain</type>
            <size>20311</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTUyNmVmNmM4MjIxZGVk
ZDQ4MGJhNTJiNmMwMjhiYjU5YjcwNDQyOC4uNjA4MzJlOTdlODQ2Y2ZkMTY0N2Q1NzFjOGI4NmRj
ZWI5YTQ3ZjBhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTA5LTE4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5L01hcmdpbkNvbGxhcHNlL1F1aXJrIGNsYXNzZXMgc2hvdWxkIG5vdCBu
ZWVkIHRvIGFjY2VzcyBub24tY29uc3QgRGlzcGxheTo6Qm94CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE5NDQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU1NDkzMjc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaW1wcm92ZXMgY29uc3QgY29ycmVjdG5lc3Mgc28gdGhhdCB0aGUg
R2VvbWV0cnkvTWFyZ2luQ29sbGFwc2UvUXVpcmsgb2JqZWN0cyBjb3VsZCBub3QgYWNjZXNzIG5v
bi1jb25zdCBEaXNwbGF5OjpCb3hlcyAodG8gbXV0YXRlIHRoZSBkaXNwbGF5IHRyZWUpLgorICAg
ICAgICAoVGhlIE1hcmdpbkNvbGxhcHNlOjpVcGRhdGUqIGZ1bmN0aW9ucyBhcmUgYWJvdXQgdXBk
YXRpbmcgdGhlIG1hcmdpbiB2YWx1ZXMgb24gcHJldmlvdXNseSBwcm9jZXNzZWQgYm94ZXMgc28g
c3RyaWN0bHkgc3BlYWtpbmcgdGhleSBhcmUgbm90IG1hcmdpbiBjb2xsYXBzaW5nIHJlbGF0ZWQs
IGJ1dCB0aGV5IHNvbWV3aGF0IGJlbG9uZyB0byB0aGUgTWFyZ2luQ29sbGFwc2UgY2xhc3MgLXNp
bmNlIHRoZXkgZGVhbCB3aXRoIG1hcmdpbnMuKQorCisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0
Ojpmb3JtYXR0aW5nU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3Jt
YXR0aW5nQ29udGV4dDo6Zm9ybWF0dGluZ1N0YXRlKToKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0
dGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ1N0YXRl
OjpkaXNwbGF5Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ1N0YXRl
OjpkaXNwbGF5Qm94IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGlu
Z1N0YXRlLmg6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbik6CisgICAgICAgICogbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRp
bmdTdGF0ZSk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNv
bGxhcHNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6TWFyZ2luQ29sbGFwc2U6OnVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFy
Z2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cG9z
aXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwb3NpdGl2ZU5lZ2F0
aXZlTWFyZ2luQWZ0ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6dXBkYXRlUG9zaXRpdmVOZWdhdGl2ZU1h
cmdpblZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjp1cGRhdGVNYXJnaW5BZnRlckZvclByZXZpb3VzU2libGlu
ZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
TWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5D
b2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb2xsZWN0
SW5saW5lQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRp
bmdDb250ZXh0Ojpjb2xsZWN0SW5saW5lQ29udGVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRp
bmdTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRp
bmdDb250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91dC90YWJsZWZvcm1h
dHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpmb3JtYXR0aW5nU3Rh
dGUpOgorCiAyMDE5LTA5LTE4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ10gSW50cm9kdWNlIFVzZWRWZXJ0aWNhbFZhbHVlczo6Q29uc3RyYWludHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggZTZkYmY5ZDc2ODk5
NGE4ODI2NTA4NzFjNTc2MWQ2YWIxMWRkMTk0OS4uOGQyNWIxNDM5MTc1YmMxZmYyNGY1Y2Q0ODdi
ZDdlN2EwYjVmMzUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0
LmgKQEAgLTgyLDcgKzgyLDggQEAgcHJvdGVjdGVkOgogICAgIHVzaW5nIExheW91dFF1ZXVlID0g
VmVjdG9yPGNvbnN0IEJveCo+OwogCiAgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29u
c3Q7Ci0gICAgRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX2Zvcm1hdHRpbmdTdGF0ZTsgfQorICAgIGNvbnN0IEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0
dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXR0aW5nU3RhdGU7IH0KKyAgICBGb3Jt
YXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIHsgcmV0dXJuIG1fZm9ybWF0dGluZ1N0YXRl
OyB9CiAKICAgICB2b2lkIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGNvbnN0IEJveCYsIE9wdGlv
bmFsPFVzZWRIb3Jpem9udGFsVmFsdWVzPiA9IFdURjo6bnVsbG9wdCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAKaW5kZXggOWIxZGM0MWRhOTRhOGE0MzMwY2Q0
YTNmOWExODgyOGQ3MDJhZmNlMS4uODQ5NTRkZWMyOGZiZTk3MmQ4MmJkZWY4YmY5YjUyNmZkNWE3
ZmE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAKQEAgLTQ3
LDcgKzQ3LDcgQEAgRm9ybWF0dGluZ1N0YXRlOjp+Rm9ybWF0dGluZ1N0YXRlKCkKIHsKIH0KIAot
RGlzcGxheTo6Qm94JiBGb3JtYXR0aW5nU3RhdGU6OmRpc3BsYXlCb3goY29uc3QgQm94JiBsYXlv
dXRCb3gpIGNvbnN0CitEaXNwbGF5OjpCb3gmIEZvcm1hdHRpbmdTdGF0ZTo6ZGlzcGxheUJveChj
b25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICAvLyBTaG91bGQgbmV2ZXIgbmVlZCB0byBtdXRh
dGUgYSBkaXNwbGF5IGJveCBvdXRzaWRlIG9mIHRoZSBmb3JtYXR0aW5nIGNvbnRleHQuCiAgICAg
QVNTRVJUKCZsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGxheW91dEJv
eC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSkgPT0gdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Rm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggNTQxYmVkODAzYjhlNGVmNGE0NGQ5N2IzODIyNDVlYTNh
MWY1YjY5My4uYmFkZGMxMGQ3MTRkOGE5ZWYyMjFkYjQ5NmI2NWNjMDkxNTBkN2Q5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJs
aWM6CiAKICAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2xh
eW91dFN0YXRlOyB9CiAKLSAgICBEaXNwbGF5OjpCb3gmIGRpc3BsYXlCb3goY29uc3QgQm94JiBs
YXlvdXRCb3gpIGNvbnN0OyAKKyAgICBEaXNwbGF5OjpCb3gmIGRpc3BsYXlCb3goY29uc3QgQm94
JiBsYXlvdXRCb3gpOwogICAgIC8vIFNpbmNlIHdlIGxheW91dCB0aGUgb3V0LW9mLWZsb3cgYm94
ZXMgYXQgdGhlIGVuZCBvZiB0aGUgZm9ybWF0dGluZyBjb250ZXh0IGxheW91dCwgaXQncyBva2F5
IHRvIHN0b3JlIHRoZW0gaW4gdGhlIGZvcm1hdHRpbmcgc3RhdGUgLWFzIG9wcG9zZWQgdG8gdGhl
IGNvbnRhaW5pbmcgYmxvY2sgbGV2ZWwuCiAgICAgdXNpbmcgT3V0T2ZGbG93Qm94TGlzdCA9IFZl
Y3RvcjxXZWFrUHRyPGNvbnN0IEJveD4+OwogICAgIHZvaWQgYWRkT3V0T2ZGbG93Qm94KGNvbnN0
IEJveCYgb3V0T2ZGbG93Qm94KSB7IG1fb3V0T2ZGbG93Qm94ZXMuYXBwZW5kKG1ha2VXZWFrUHRy
KG91dE9mRmxvd0JveCkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxv
Y2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCBl
Mjc3YTAzNDU4NGM2YmM5MzlmMTdmNTllZGIyZmY4OGY4ZmQxNjljLi4zOTg4NWVjNzA5ZmVhYTQ2
ZWNmMDk0ZDk1ZjlhM2U1MWQwMzk3MjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5j
cHAKQEAgLTQ0OCw5ICs0NDgsMTAgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94KQogICAgIGRpc3BsYXlCb3gu
c2V0Q29udGVudEJveEhlaWdodChoZWlnaHRBbmRNYXJnaW4uaGVpZ2h0KTsKICAgICBkaXNwbGF5
Qm94LnNldFZlcnRpY2FsTWFyZ2luKHZlcnRpY2FsTWFyZ2luKTsKIAotICAgIG1hcmdpbkNvbGxh
cHNlKCkudXBkYXRlUG9zaXRpdmVOZWdhdGl2ZU1hcmdpblZhbHVlcyhsYXlvdXRCb3gpOworICAg
IGF1dG8gbWFyZ2luQ29sbGFwc2UgPSB0aGlzLT5tYXJnaW5Db2xsYXBzZSgpOworICAgIE1hcmdp
bkNvbGxhcHNlOjp1cGRhdGVQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luVmFsdWVzKCp0aGlzLCBtYXJn
aW5Db2xsYXBzZSwgbGF5b3V0Qm94KTsKICAgICAvLyBBZGp1c3QgdGhlIHByZXZpb3VzIHNpYmxp
bmcncyBtYXJnaW4gYm90dG9tIG5vdyB0aGF0IHRoaXMgYm94J3MgdmVydGljYWwgbWFyZ2luIGlz
IGNvbXB1dGVkLgotICAgIG1hcmdpbkNvbGxhcHNlKCkudXBkYXRlTWFyZ2luQWZ0ZXJGb3JQcmV2
aW91c1NpYmxpbmcobGF5b3V0Qm94KTsKKyAgICBNYXJnaW5Db2xsYXBzZTo6dXBkYXRlTWFyZ2lu
QWZ0ZXJGb3JQcmV2aW91c1NpYmxpbmcoKnRoaXMsIG1hcmdpbkNvbGxhcHNlLCBsYXlvdXRCb3gp
OwogfQogCiBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCAzZTE4MTQ4NWE1MzU5NTY5ZjQ2NGUxZmJi
NWI5N2JkYTM4ODMzMWM0Li4yOWI2YTZjZjg4NzA0MmVmOWE1OWRjNGYzNTFhODAwMDY0NjYyZjA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtMTA0LDggKzEwNCw4IEBAIHByaXZh
dGU6CiAKICAgICAgICAgRXN0aW1hdGVkTWFyZ2luQmVmb3JlIGVzdGltYXRlZE1hcmdpbkJlZm9y
ZShjb25zdCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7CiAg
ICAgICAgIExheW91dFVuaXQgbWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaChj
b25zdCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7Ci0gICAg
ICAgIHZvaWQgdXBkYXRlTWFyZ2luQWZ0ZXJGb3JQcmV2aW91c1NpYmxpbmcoY29uc3QgQm94Jikg
Y29uc3Q7Ci0gICAgICAgIHZvaWQgdXBkYXRlUG9zaXRpdmVOZWdhdGl2ZU1hcmdpblZhbHVlcyhj
b25zdCBCb3gmKTsKKyAgICAgICAgc3RhdGljIHZvaWQgdXBkYXRlTWFyZ2luQWZ0ZXJGb3JQcmV2
aW91c1NpYmxpbmcoQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYsIGNvbnN0IE1hcmdpbkNvbGxhcHNl
JiwgY29uc3QgQm94Jik7CisgICAgICAgIHN0YXRpYyB2b2lkIHVwZGF0ZVBvc2l0aXZlTmVnYXRp
dmVNYXJnaW5WYWx1ZXMoQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYsIGNvbnN0IE1hcmdpbkNvbGxh
cHNlJiwgY29uc3QgQm94Jik7CiAKICAgICAgICAgYm9vbCBtYXJnaW5CZWZvcmVDb2xsYXBzZXNX
aXRoUGFyZW50TWFyZ2luQmVmb3JlKGNvbnN0IEJveCYpIGNvbnN0OwogICAgICAgICBib29sIG1h
cmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhGaXJzdEluRmxvd0NoaWxkTWFyZ2luQmVmb3JlKGNvbnN0
IEJveCYpIGNvbnN0OwpAQCAtMTI1LDkgKzEyNSw5IEBAIHByaXZhdGU6CiAgICAgICAgIE1hcmdp
bkNvbGxhcHNlKGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmKTsKIAogICAgICAgICBlbnVt
IGNsYXNzIE1hcmdpblR5cGUgeyBCZWZvcmUsIEFmdGVyIH07Ci0gICAgICAgIFBvc2l0aXZlQW5k
TmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFsdWVzIHBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29u
c3QgQm94JiwgTWFyZ2luVHlwZSk7Ci0gICAgICAgIFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNh
bE1hcmdpbjo6VmFsdWVzIHBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUoY29uc3QgQm94Jiwg
VXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOwotICAgICAgICBQb3NpdGl2
ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2lu
QWZ0ZXIoY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMp
OworICAgICAgICBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBwb3Np
dGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYsIE1hcmdpblR5cGUpIGNvbnN0OworICAgICAg
ICBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBwb3NpdGl2ZU5lZ2F0
aXZlTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFw
c2VkVmFsdWVzKSBjb25zdDsKKyAgICAgICAgUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFy
Z2luOjpWYWx1ZXMgcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKGNvbnN0IEJveCYsIFVzZWRW
ZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdDsKICAgICAgICAgYm9vbCBo
YXNDbGVhcmFuY2UoY29uc3QgQm94JikgY29uc3Q7CiAKICAgICAgICAgTGF5b3V0U3RhdGUmIGxh
eW91dFN0YXRlKCkgeyByZXR1cm4gbV9ibG9ja0Zvcm1hdHRpbmdDb250ZXh0LmxheW91dFN0YXRl
KCk7IH0KQEAgLTE2NSw3ICsxNjUsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFzUHJlY29tcHV0
ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JikgY29uc3Q7CiAjZW5kaWYKIAotICAgIEJsb2NrRm9y
bWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxC
bG9ja0Zvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSgp
KTsgfQorICAgIGNvbnN0IEJsb2NrRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBj
b25zdCB7IHJldHVybiBkb3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0Nv
bnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSgpKTsgfQorICAgIEJsb2NrRm9ybWF0dGluZ1N0YXRlJiBm
b3JtYXR0aW5nU3RhdGUoKSB7IHJldHVybiBkb3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4o
Rm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSgpKTsgfQogCiBwcml2YXRlOgogICAg
IEhhc2hNYXA8Y29uc3QgQm94KiwgRXN0aW1hdGVkTWFyZ2luQmVmb3JlPiBtX2VzdGltYXRlZE1h
cmdpbkJlZm9yZUxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAppbmRleCBlZDliMjI1NzQ5
YzViZjUwZDNmZjI3YWU1NzUwZDc4MmIxYjlhYjA0Li4wZDk1ZjhkNGU5YWRiYWZhYmNjNTJmMDYw
YjJmOTI2YzczMTlkODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKQEAgLTQ2NCw3ICs0
NjQsNyBAQCBzdGF0aWMgT3B0aW9uYWw8TGF5b3V0VW5pdD4gbWFyZ2luVmFsdWUoUG9zaXRpdmVB
bmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZQogICAgIHJldHVybiAqbWFyZ2luVmFsdWVz
LnBvc2l0aXZlICsgKm1hcmdpblZhbHVlcy5uZWdhdGl2ZTsKIH0KIAotdm9pZCBCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6dXBkYXRlTWFyZ2luQWZ0ZXJGb3JQcmV2aW91
c1NpYmxpbmcoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0Cit2b2lkIEJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjp1cGRhdGVNYXJnaW5BZnRlckZvclByZXZpb3VzU2li
bGluZyhCbG9ja0Zvcm1hdHRpbmdDb250ZXh0JiBibG9ja0Zvcm1hdHRpbmdDb250ZXh0LCBjb25z
dCBNYXJnaW5Db2xsYXBzZSYgbWFyZ2luQ29sbGFwc2UsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQog
ewogICAgIC8vIDEuIEdldCB0aGUgbWFyZ2luIGJlZm9yZSB2YWx1ZSBmcm9tIHRoZSBuZXh0IGlu
LWZsb3cgc2libGluZy4gVGhpcyBpcyB0aGUgc2FtZSBhcyB0aGlzIGJveCdzIG1hcmdpbiBhZnRl
ciB2YWx1ZSBub3cgc2luY2UgdGhleSBhcmUgY29sbGFwc2VkLgogICAgIC8vIDIuIFVwZGF0ZSB0
aGUgY29sbGFwc2VkIG1hcmdpbiBhZnRlciB2YWx1ZSBhcyB3ZWxsIGFzIHRoZSBwb3NpdGl2ZS9u
ZWdhdGl2ZSBjYWNoZS4KQEAgLTQ3MywxNyArNDczLDE3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OnVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJs
aW5nCiAgICAgLy8gNS4gSW4gY2FzZSBvZiBjb2xsYXBzZWQgdGhyb3VnaCBtYXJnaW5zIGNoZWNr
IGlmIHRoZSBiZWZvcmUgbWFyZ2luIGNvbGxhcGVzIHdpdGggdGhlIHByZXZpb3VzIGluZmxvdyBz
aWJsaW5nJ3MgYWZ0ZXIgbWFyZ2luLgogICAgIC8vIDYuIElmIHNvLCBqdW1wIHRvICMyLgogICAg
IC8vIDcuIE5vIG5lZWQgdG8gcHJvcGFnYXRlIHRvIHBhcmVudCBiZWNhdXNlIGl0cyBtYXJnaW4g
aXMgbm90IGNvbXB1dGVkIHlldCAoZXN0aW1hdGVkIGF0IG1vc3QpLgotICAgIGF1dG8mIGxheW91
dFN0YXRlID0gdGhpcy0+bGF5b3V0U3RhdGUoKTsKICAgICBhdXRvKiBjdXJyZW50Qm94ID0gJmxh
eW91dEJveDsKLSAgICB3aGlsZSAobWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFByZXZpb3VzU2li
bGluZ01hcmdpbkFmdGVyKCpjdXJyZW50Qm94KSkgeworICAgIGF1dG8mIGJsb2NrRm9ybWF0dGlu
Z1N0YXRlID0gYmxvY2tGb3JtYXR0aW5nQ29udGV4dC5mb3JtYXR0aW5nU3RhdGUoKTsKKyAgICB3
aGlsZSAobWFyZ2luQ29sbGFwc2UubWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFByZXZpb3VzU2li
bGluZ01hcmdpbkFmdGVyKCpjdXJyZW50Qm94KSkgewogICAgICAgICBhdXRvJiBwcmV2aW91c1Np
YmxpbmcgPSAqY3VycmVudEJveC0+cHJldmlvdXNJbkZsb3dTaWJsaW5nKCk7Ci0gICAgICAgIGF1
dG8mIHByZXZpb3VzU2libGluZ0Rpc3BsYXlCb3ggPSBmb3JtYXR0aW5nQ29udGV4dCgpLmZvcm1h
dHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gocHJldmlvdXNTaWJsaW5nKTsKKyAgICAgICAgYXV0byYg
cHJldmlvdXNTaWJsaW5nRGlzcGxheUJveCA9IGJsb2NrRm9ybWF0dGluZ1N0YXRlLmRpc3BsYXlC
b3gocHJldmlvdXNTaWJsaW5nKTsKICAgICAgICAgYXV0byBwcmV2aW91c1NpYmxpbmdWZXJ0aWNh
bE1hcmdpbiA9IHByZXZpb3VzU2libGluZ0Rpc3BsYXlCb3gudmVydGljYWxNYXJnaW4oKTsKIAog
ICAgICAgICBhdXRvIGNvbGxhcHNlZFZlcnRpY2FsTWFyZ2luQmVmb3JlID0gcHJldmlvdXNTaWJs
aW5nVmVydGljYWxNYXJnaW4uY29sbGFwc2VkVmFsdWVzKCkuYmVmb3JlOwotICAgICAgICBhdXRv
IGNvbGxhcHNlZFZlcnRpY2FsTWFyZ2luQWZ0ZXIgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21l
dHJ5Rm9yQm94KCpjdXJyZW50Qm94KS52ZXJ0aWNhbE1hcmdpbigpLmJlZm9yZSgpOworICAgICAg
ICBhdXRvIGNvbGxhcHNlZFZlcnRpY2FsTWFyZ2luQWZ0ZXIgPSBibG9ja0Zvcm1hdHRpbmdDb250
ZXh0Lmdlb21ldHJ5Rm9yQm94KCpjdXJyZW50Qm94KS52ZXJ0aWNhbE1hcmdpbigpLmJlZm9yZSgp
OwogCi0gICAgICAgIGF1dG8gbWFyZ2luc0NvbGxhcHNlVGhyb3VnaCA9IHRoaXMtPm1hcmdpbnND
b2xsYXBzZVRocm91Z2gocHJldmlvdXNTaWJsaW5nKTsKKyAgICAgICAgYXV0byBtYXJnaW5zQ29s
bGFwc2VUaHJvdWdoID0gbWFyZ2luQ29sbGFwc2UubWFyZ2luc0NvbGxhcHNlVGhyb3VnaChwcmV2
aW91c1NpYmxpbmcpOwogICAgICAgICBpZiAobWFyZ2luc0NvbGxhcHNlVGhyb3VnaCkKICAgICAg
ICAgICAgIGNvbGxhcHNlZFZlcnRpY2FsTWFyZ2luQmVmb3JlID0gY29sbGFwc2VkVmVydGljYWxN
YXJnaW5BZnRlcjsKIApAQCAtNDkyLDcgKzQ5Miw2IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6TWFyZ2luQ29sbGFwc2U6OnVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5n
CiAgICAgICAgIHByZXZpb3VzU2libGluZ0Rpc3BsYXlCb3guc2V0VmVydGljYWxNYXJnaW4ocHJl
dmlvdXNTaWJsaW5nVmVydGljYWxNYXJnaW4pOwogCiAgICAgICAgIC8vIFVwZGF0ZSBwb3NpdGl2
ZS9uZWdhdGl2ZSBjYWNoZS4KLSAgICAgICAgYXV0byYgYmxvY2tGb3JtYXR0aW5nU3RhdGUgPSBk
b3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4obGF5b3V0U3RhdGUuZm9ybWF0dGluZ1N0YXRl
Rm9yQm94KHByZXZpb3VzU2libGluZykpOwogICAgICAgICBhdXRvIHByZXZpb3VzU2libGluZ1Bv
c2l0aXZlTmVnYXRpdmVNYXJnaW4gPSBibG9ja0Zvcm1hdHRpbmdTdGF0ZS5wb3NpdGl2ZUFuZE5l
Z2F0aXZlVmVydGljYWxNYXJnaW4ocHJldmlvdXNTaWJsaW5nKTsKICAgICAgICAgYXV0byBwb3Np
dGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlID0gYmxvY2tGb3JtYXR0aW5nU3RhdGUucG9zaXRpdmVB
bmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luKCpjdXJyZW50Qm94KS5iZWZvcmU7CiAKQEAgLTUxMCw3
ICs1MDksNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjp1
cGRhdGVNYXJnaW5BZnRlckZvclByZXZpb3VzU2libGluZwogICAgIH0KIH0KIAotUG9zaXRpdmVB
bmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
TWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29uc3QgQm94JiBsYXlvdXRC
b3gsIE1hcmdpblR5cGUgbWFyZ2luVHlwZSkKK1Bvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1h
cmdpbjo6VmFsdWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwb3Np
dGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBNYXJnaW5UeXBlIG1hcmdp
blR5cGUpIGNvbnN0CiB7CiAgICAgYXV0byYgbGF5b3V0U3RhdGUgPSB0aGlzLT5sYXlvdXRTdGF0
ZSgpOwogICAgIGF1dG8mIGJsb2NrRm9ybWF0dGluZ1N0YXRlID0gZG93bmNhc3Q8QmxvY2tGb3Jt
YXR0aW5nU3RhdGU+KGxheW91dFN0YXRlLmZvcm1hdHRpbmdTdGF0ZUZvckJveChsYXlvdXRCb3gp
KTsKQEAgLTUyOCw3ICs1MjcsNyBAQCBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46
OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZQogICAgIHJldHVy
biBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIobGF5b3V0Qm94LCBub25Db2xsYXBzZWRNYXJn
aW4pOwogfQogCi1Qb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdp
bkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xs
YXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKQorUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRp
Y2FsTWFyZ2luOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6
OnBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRW
ZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIG5vbkNvbGxhcHNlZFZhbHVlcykgY29u
c3QKIHsKICAgICBhdXRvIGZpcnN0Q2hpbGRDb2xsYXBzZWRNYXJnaW5CZWZvcmUgPSBbJl0oKSAt
PiBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyB7CiAgICAgICAgIGlm
ICghbWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aEZpcnN0SW5GbG93Q2hpbGRNYXJnaW5CZWZvcmUo
bGF5b3V0Qm94KSkKQEAgLTU1OCw3ICs1NTcsNyBAQCBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGlj
YWxNYXJnaW46OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZQog
ICAgIHJldHVybiBjb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4oY29sbGFwc2VkTWFy
Z2luQmVmb3JlLCBub25Db2xsYXBzZWRCZWZvcmUpOwogfQogCi1Qb3NpdGl2ZUFuZE5lZ2F0aXZl
VmVydGljYWxNYXJnaW46OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xs
YXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBV
c2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyBub25Db2xsYXBzZWRWYWx1ZXMp
CitQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKGNv
bnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVl
cyBub25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0CiB7CiAgICAgYXV0byBsYXN0Q2hpbGRDb2xsYXBz
ZWRNYXJnaW5BZnRlciA9IFsmXSgpIC0+IFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdp
bjo6VmFsdWVzIHsKICAgICAgICAgaWYgKCFtYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhMYXN0SW5G
bG93Q2hpbGRNYXJnaW5BZnRlcihsYXlvdXRCb3gpKQpAQCAtNjAzLDIwICs2MDIsMTkgQEAgTGF5
b3V0VW5pdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVm
b3JlSWdub3JpbmdDb2xsYXBzaW4KICAgICByZXR1cm4gbWFyZ2luVmFsdWUocG9zaXRpdmVOZWdh
dGl2ZU1hcmdpbkJlZm9yZShsYXlvdXRCb3gsIG5vbkNvbGxhcHNlZFZhbHVlcykpLnZhbHVlT3Io
bm9uQ29sbGFwc2VkVmFsdWVzLmJlZm9yZSk7CiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6TWFyZ2luQ29sbGFwc2U6OnVwZGF0ZVBvc2l0aXZlTmVnYXRpdmVNYXJnaW5WYWx1ZXMo
Y29uc3QgQm94JiBsYXlvdXRCb3gpCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdp
bkNvbGxhcHNlOjp1cGRhdGVQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luVmFsdWVzKEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQmIGJsb2NrRm9ybWF0dGluZ0NvbnRleHQsIGNvbnN0IE1hcmdpbkNvbGxhcHNl
JiBtYXJnaW5Db2xsYXBzZSwgY29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgQVNTRVJUKGxh
eW91dEJveC5pc0Jsb2NrTGV2ZWxCb3goKSk7Ci0gICAgYXV0byBub25Db2xsYXBzZWRWYWx1ZXMg
PSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGxheW91dEJveCkudmVydGljYWxN
YXJnaW4oKS5ub25Db2xsYXBzZWRWYWx1ZXMoKTsKKyAgICBhdXRvIG5vbkNvbGxhcHNlZFZhbHVl
cyA9IGJsb2NrRm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KS52ZXJ0
aWNhbE1hcmdpbigpLm5vbkNvbGxhcHNlZFZhbHVlcygpOwogCi0gICAgYXV0byBwb3NpdGl2ZU5l
Z2F0aXZlTWFyZ2luQmVmb3JlID0gdGhpcy0+cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShs
YXlvdXRCb3gsIG5vbkNvbGxhcHNlZFZhbHVlcyk7Ci0gICAgYXV0byBwb3NpdGl2ZU5lZ2F0aXZl
TWFyZ2luQWZ0ZXIgPSB0aGlzLT5wb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIobGF5b3V0Qm94
LCBub25Db2xsYXBzZWRWYWx1ZXMpOworICAgIGF1dG8gcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJl
Zm9yZSA9IG1hcmdpbkNvbGxhcHNlLnBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUobGF5b3V0
Qm94LCBub25Db2xsYXBzZWRWYWx1ZXMpOworICAgIGF1dG8gcG9zaXRpdmVOZWdhdGl2ZU1hcmdp
bkFmdGVyID0gbWFyZ2luQ29sbGFwc2UucG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKGxheW91
dEJveCwgbm9uQ29sbGFwc2VkVmFsdWVzKTsKIAotICAgIGlmIChtYXJnaW5zQ29sbGFwc2VUaHJv
dWdoKGxheW91dEJveCkpIHsKKyAgICBpZiAobWFyZ2luQ29sbGFwc2UubWFyZ2luc0NvbGxhcHNl
VGhyb3VnaChsYXlvdXRCb3gpKSB7CiAgICAgICAgIHBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZv
cmUgPSBjb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4ocG9zaXRpdmVOZWdhdGl2ZU1h
cmdpbkJlZm9yZSwgcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKTsKICAgICAgICAgcG9zaXRp
dmVOZWdhdGl2ZU1hcmdpbkFmdGVyID0gcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZTsKICAg
ICB9Ci0gICAgYXV0byYgYmxvY2tGb3JtYXR0aW5nU3RhdGUgPSBkb3duY2FzdDxCbG9ja0Zvcm1h
dHRpbmdTdGF0ZT4obGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JCb3gobGF5b3V0Qm94
KSk7Ci0gICAgYmxvY2tGb3JtYXR0aW5nU3RhdGUuc2V0UG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRp
Y2FsTWFyZ2luKGxheW91dEJveCwgeyBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlLCBwb3Np
dGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIgfSk7CisgICAgYmxvY2tGb3JtYXR0aW5nQ29udGV4dC5m
b3JtYXR0aW5nU3RhdGUoKS5zZXRQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4obGF5
b3V0Qm94LCB7IHBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUsIHBvc2l0aXZlTmVnYXRpdmVN
YXJnaW5BZnRlciB9KTsKIH0KIAogVXNlZFZlcnRpY2FsTWFyZ2luOjpDb2xsYXBzZWRWYWx1ZXMg
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OmNvbGxhcHNlZFZlcnRpY2Fs
VmFsdWVzKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxh
cHNlZFZhbHVlcyBub25Db2xsYXBzZWRWYWx1ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5jcHAKaW5kZXggNDE1Y2U4N2NiZmE3YzA3YTc2NjJlYjIyMzk0ODAyMzg0ZjE2MjgyZi4u
OTAzNjEzNzU3NjMyODJmMjAxY2Y3Mjc4MjBmN2YwYzZkMTg2YjZlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjU4LDcgKzI1OCw3IEBAIHZvaWQgSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZEhlaWdodEZvclJlcGxhY2VkSW5saW5lQm94
KGNvbnN0IEJvCiAgICAgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gpOwogfQogCi12
b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb2xsZWN0SW5saW5lQ29udGVudCgpIGNvbnN0
Cit2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb2xsZWN0SW5saW5lQ29udGVudCgpCiB7
CiAgICAgLy8gVHJhdmVyc2UgdGhlIHRyZWUgYW5kIGNyZWF0ZSBpbmxpbmUgaXRlbXMgb3V0IG9m
IGNvbnRhaW5lcnMgYW5kIGxlYWYgbm9kZXMuIFRoaXMgZXNzZW50aWFsbHkgdHVybnMgdGhlIHRy
ZWUgaW5saW5lIHN0cnVjdHVyZSBpbnRvIGEgZmxhdCBvbmUuCiAgICAgLy8gPHNwYW4+dGV4dDxz
cGFuPjwvc3Bhbj48aW1nPjwvc3Bhbj4gLT4gW0NvbnRhaW5lclN0YXJ0XVtJbmxpbmVCb3hdW0Nv
bnRhaW5lclN0YXJ0XVtDb250YWluZXJFbmRdW0lubGluZUJveF1bQ29udGFpbmVyRW5kXQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggYjRiY2UxYTMyYWU1ZmM0OTg0OTVhMjgw
MjJjMmRjMmRmNzJlYjViZi4uYzU5ZmExNjJlOTc4YzUzMWNiMjE1MzJjNDhlZDdjOWFlZTFhNWQ2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0xMDYsOSArMTA2LDEwIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYpOwog
ICAgIHZvaWQgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYsIFVzZWRIb3Jpem9udGFs
VmFsdWVzKTsKIAotICAgIHZvaWQgY29sbGVjdElubGluZUNvbnRlbnQoKSBjb25zdDsKKyAgICB2
b2lkIGNvbGxlY3RJbmxpbmVDb250ZW50KCk7CiAKLSAgICBJbmxpbmVGb3JtYXR0aW5nU3RhdGUm
IGZvcm1hdHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PElubGluZUZvcm1hdHRp
bmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSgpKTsgfQorICAgIGNv
bnN0IElubGluZUZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1
cm4gZG93bmNhc3Q8SW5saW5lRm9ybWF0dGluZ1N0YXRlPihGb3JtYXR0aW5nQ29udGV4dDo6Zm9y
bWF0dGluZ1N0YXRlKCkpOyB9CisgICAgSW5saW5lRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5n
U3RhdGUoKSB7IHJldHVybiBkb3duY2FzdDxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KEZvcm1hdHRp
bmdDb250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUoKSk7IH0KICAgICAvLyBGSVhNRTogQ29tZSB1cCB3
aXRoIGEgc3RydWN0dXJlIHRoYXQgcmVxdWlyZXMgbm8gZnJpZW5kaW5nLgogICAgIGZyaWVuZCBj
bGFzcyBMaW5lOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZv
cm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggZWE4ZDNlNTll
YzFhZWI0YTY0MTE4OTdiYjA0NmQwMTNlZGUwOGYwMC4uM2I2OGYxZjNiYzZlYTYxYzViN2NhZWVk
ZWQ1MWZkMGViZTdhOWFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxl
Zm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTcwLDcg
KzcwLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaW5pdGlhbGl6ZURpc3BsYXlCb3hUb0JsYW5r
KERpc3BsYXk6OkJveCYpIGNvbnN0OwogCi0gICAgVGFibGVGb3JtYXR0aW5nU3RhdGUmIGZvcm1h
dHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PFRhYmxlRm9ybWF0dGluZ1N0YXRl
PihGb3JtYXR0aW5nQ29udGV4dDo6Zm9ybWF0dGluZ1N0YXRlKCkpOyB9CisgICAgY29uc3QgVGFi
bGVGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGRvd25j
YXN0PFRhYmxlRm9ybWF0dGluZ1N0YXRlPihGb3JtYXR0aW5nQ29udGV4dDo6Zm9ybWF0dGluZ1N0
YXRlKCkpOyB9CisgICAgVGFibGVGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIHsg
cmV0dXJuIGRvd25jYXN0PFRhYmxlRm9ybWF0dGluZ1N0YXRlPihGb3JtYXR0aW5nQ29udGV4dDo6
Zm9ybWF0dGluZ1N0YXRlKCkpOyB9CiB9OwogCiBpbmxpbmUgVGFibGVGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnk6Okdlb21ldHJ5KGNvbnN0IFRhYmxlRm9ybWF0dGluZ0NvbnRleHQmIHRhYmxl
Rm9ybWF0dGluZ0NvbnRleHQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379078</attachid>
            <date>2019-09-18 15:07:11 -0700</date>
            <delta_ts>2019-09-18 16:33:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201944-20190918150710.patch</filename>
            <type>text/plain</type>
            <size>20311</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZhZGEzZDUzNDlkMDIy
NmQxNjFlM2Q2YWRmMjM5MDU2ZTY3YTY5Yy4uNmM5NDYyYzAwMDI1MjcwZTQ3ZDViNzQyMjkzZmE0
NmE2ZWQ5YzcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTA5LTE4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5L01hcmdpbkNvbGxhcHNlL1F1aXJrIGNsYXNzZXMgc2hvdWxkIG5vdCBu
ZWVkIHRvIGFjY2VzcyBub24tY29uc3QgRGlzcGxheTo6Qm94CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE5NDQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU1NDkzMjc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaW1wcm92ZXMgY29uc3QgY29ycmVjdG5lc3Mgc28gdGhhdCB0aGUg
R2VvbWV0cnkvTWFyZ2luQ29sbGFwc2UvUXVpcmsgb2JqZWN0cyBjb3VsZCBub3QgYWNjZXNzIG5v
bi1jb25zdCBEaXNwbGF5OjpCb3hlcyAodG8gbXV0YXRlIHRoZSBkaXNwbGF5IHRyZWUpLgorICAg
ICAgICAoVGhlIE1hcmdpbkNvbGxhcHNlOjpVcGRhdGUqIGZ1bmN0aW9ucyBhcmUgYWJvdXQgdXBk
YXRpbmcgdGhlIG1hcmdpbiB2YWx1ZXMgb24gcHJldmlvdXNseSBwcm9jZXNzZWQgYm94ZXMgc28g
c3RyaWN0bHkgc3BlYWtpbmcgdGhleSBhcmUgbm90IG1hcmdpbiBjb2xsYXBzaW5nIHJlbGF0ZWQs
IGJ1dCB0aGV5IHNvbWV3aGF0IGJlbG9uZyB0byB0aGUgTWFyZ2luQ29sbGFwc2UgY2xhc3MgLXNp
bmNlIHRoZXkgZGVhbCB3aXRoIG1hcmdpbnMuKQorCisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0
Ojpmb3JtYXR0aW5nU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3Jt
YXR0aW5nQ29udGV4dDo6Zm9ybWF0dGluZ1N0YXRlKToKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0
dGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ1N0YXRl
OjpkaXNwbGF5Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ1N0YXRl
OjpkaXNwbGF5Qm94IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGlu
Z1N0YXRlLmg6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbik6CisgICAgICAgICogbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRp
bmdTdGF0ZSk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNv
bGxhcHNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6TWFyZ2luQ29sbGFwc2U6OnVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFy
Z2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cG9z
aXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwb3NpdGl2ZU5lZ2F0
aXZlTWFyZ2luQWZ0ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6dXBkYXRlUG9zaXRpdmVOZWdhdGl2ZU1h
cmdpblZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjp1cGRhdGVNYXJnaW5BZnRlckZvclByZXZpb3VzU2libGlu
ZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
TWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5D
b2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb2xsZWN0
SW5saW5lQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRp
bmdDb250ZXh0Ojpjb2xsZWN0SW5saW5lQ29udGVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRp
bmdTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRp
bmdDb250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91dC90YWJsZWZvcm1h
dHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpmb3JtYXR0aW5nU3Rh
dGUpOgorCiAyMDE5LTA5LTE4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ10gSW50cm9kdWNlIFVzZWRWZXJ0aWNhbFZhbHVlczo6Q29uc3RyYWludHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggZTZkYmY5ZDc2ODk5
NGE4ODI2NTA4NzFjNTc2MWQ2YWIxMWRkMTk0OS4uOGQyNWIxNDM5MTc1YmMxZmYyNGY1Y2Q0ODdi
ZDdlN2EwYjVmMzUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0
LmgKQEAgLTgyLDcgKzgyLDggQEAgcHJvdGVjdGVkOgogICAgIHVzaW5nIExheW91dFF1ZXVlID0g
VmVjdG9yPGNvbnN0IEJveCo+OwogCiAgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29u
c3Q7Ci0gICAgRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX2Zvcm1hdHRpbmdTdGF0ZTsgfQorICAgIGNvbnN0IEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0
dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXR0aW5nU3RhdGU7IH0KKyAgICBGb3Jt
YXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIHsgcmV0dXJuIG1fZm9ybWF0dGluZ1N0YXRl
OyB9CiAKICAgICB2b2lkIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGNvbnN0IEJveCYsIE9wdGlv
bmFsPFVzZWRIb3Jpem9udGFsVmFsdWVzPiA9IFdURjo6bnVsbG9wdCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAKaW5kZXggOWIxZGM0MWRhOTRhOGE0MzMwY2Q0
YTNmOWExODgyOGQ3MDJhZmNlMS4uODQ5NTRkZWMyOGZiZTk3MmQ4MmJkZWY4YmY5YjUyNmZkNWE3
ZmE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAKQEAgLTQ3
LDcgKzQ3LDcgQEAgRm9ybWF0dGluZ1N0YXRlOjp+Rm9ybWF0dGluZ1N0YXRlKCkKIHsKIH0KIAot
RGlzcGxheTo6Qm94JiBGb3JtYXR0aW5nU3RhdGU6OmRpc3BsYXlCb3goY29uc3QgQm94JiBsYXlv
dXRCb3gpIGNvbnN0CitEaXNwbGF5OjpCb3gmIEZvcm1hdHRpbmdTdGF0ZTo6ZGlzcGxheUJveChj
b25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICAvLyBTaG91bGQgbmV2ZXIgbmVlZCB0byBtdXRh
dGUgYSBkaXNwbGF5IGJveCBvdXRzaWRlIG9mIHRoZSBmb3JtYXR0aW5nIGNvbnRleHQuCiAgICAg
QVNTRVJUKCZsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGxheW91dEJv
eC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSkgPT0gdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Rm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggNTQxYmVkODAzYjhlNGVmNGE0NGQ5N2IzODIyNDVlYTNh
MWY1YjY5My4uYmFkZGMxMGQ3MTRkOGE5ZWYyMjFkYjQ5NmI2NWNjMDkxNTBkN2Q5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJs
aWM6CiAKICAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2xh
eW91dFN0YXRlOyB9CiAKLSAgICBEaXNwbGF5OjpCb3gmIGRpc3BsYXlCb3goY29uc3QgQm94JiBs
YXlvdXRCb3gpIGNvbnN0OyAKKyAgICBEaXNwbGF5OjpCb3gmIGRpc3BsYXlCb3goY29uc3QgQm94
JiBsYXlvdXRCb3gpOwogICAgIC8vIFNpbmNlIHdlIGxheW91dCB0aGUgb3V0LW9mLWZsb3cgYm94
ZXMgYXQgdGhlIGVuZCBvZiB0aGUgZm9ybWF0dGluZyBjb250ZXh0IGxheW91dCwgaXQncyBva2F5
IHRvIHN0b3JlIHRoZW0gaW4gdGhlIGZvcm1hdHRpbmcgc3RhdGUgLWFzIG9wcG9zZWQgdG8gdGhl
IGNvbnRhaW5pbmcgYmxvY2sgbGV2ZWwuCiAgICAgdXNpbmcgT3V0T2ZGbG93Qm94TGlzdCA9IFZl
Y3RvcjxXZWFrUHRyPGNvbnN0IEJveD4+OwogICAgIHZvaWQgYWRkT3V0T2ZGbG93Qm94KGNvbnN0
IEJveCYgb3V0T2ZGbG93Qm94KSB7IG1fb3V0T2ZGbG93Qm94ZXMuYXBwZW5kKG1ha2VXZWFrUHRy
KG91dE9mRmxvd0JveCkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxv
Y2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCBl
Mjc3YTAzNDU4NGM2YmM5MzlmMTdmNTllZGIyZmY4OGY4ZmQxNjljLi4zOTg4NWVjNzA5ZmVhYTQ2
ZWNmMDk0ZDk1ZjlhM2U1MWQwMzk3MjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5j
cHAKQEAgLTQ0OCw5ICs0NDgsMTAgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94KQogICAgIGRpc3BsYXlCb3gu
c2V0Q29udGVudEJveEhlaWdodChoZWlnaHRBbmRNYXJnaW4uaGVpZ2h0KTsKICAgICBkaXNwbGF5
Qm94LnNldFZlcnRpY2FsTWFyZ2luKHZlcnRpY2FsTWFyZ2luKTsKIAotICAgIG1hcmdpbkNvbGxh
cHNlKCkudXBkYXRlUG9zaXRpdmVOZWdhdGl2ZU1hcmdpblZhbHVlcyhsYXlvdXRCb3gpOworICAg
IGF1dG8gbWFyZ2luQ29sbGFwc2UgPSB0aGlzLT5tYXJnaW5Db2xsYXBzZSgpOworICAgIE1hcmdp
bkNvbGxhcHNlOjp1cGRhdGVQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luVmFsdWVzKCp0aGlzLCBtYXJn
aW5Db2xsYXBzZSwgbGF5b3V0Qm94KTsKICAgICAvLyBBZGp1c3QgdGhlIHByZXZpb3VzIHNpYmxp
bmcncyBtYXJnaW4gYm90dG9tIG5vdyB0aGF0IHRoaXMgYm94J3MgdmVydGljYWwgbWFyZ2luIGlz
IGNvbXB1dGVkLgotICAgIG1hcmdpbkNvbGxhcHNlKCkudXBkYXRlTWFyZ2luQWZ0ZXJGb3JQcmV2
aW91c1NpYmxpbmcobGF5b3V0Qm94KTsKKyAgICBNYXJnaW5Db2xsYXBzZTo6dXBkYXRlTWFyZ2lu
QWZ0ZXJGb3JQcmV2aW91c1NpYmxpbmcoKnRoaXMsIG1hcmdpbkNvbGxhcHNlLCBsYXlvdXRCb3gp
OwogfQogCiBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCAzZTE4MTQ4NWE1MzU5NTY5ZjQ2NGUxZmJi
NWI5N2JkYTM4ODMzMWM0Li4yOWI2YTZjZjg4NzA0MmVmOWE1OWRjNGYzNTFhODAwMDY0NjYyZjA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtMTA0LDggKzEwNCw4IEBAIHByaXZh
dGU6CiAKICAgICAgICAgRXN0aW1hdGVkTWFyZ2luQmVmb3JlIGVzdGltYXRlZE1hcmdpbkJlZm9y
ZShjb25zdCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7CiAg
ICAgICAgIExheW91dFVuaXQgbWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaChj
b25zdCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7Ci0gICAg
ICAgIHZvaWQgdXBkYXRlTWFyZ2luQWZ0ZXJGb3JQcmV2aW91c1NpYmxpbmcoY29uc3QgQm94Jikg
Y29uc3Q7Ci0gICAgICAgIHZvaWQgdXBkYXRlUG9zaXRpdmVOZWdhdGl2ZU1hcmdpblZhbHVlcyhj
b25zdCBCb3gmKTsKKyAgICAgICAgc3RhdGljIHZvaWQgdXBkYXRlTWFyZ2luQWZ0ZXJGb3JQcmV2
aW91c1NpYmxpbmcoQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYsIGNvbnN0IE1hcmdpbkNvbGxhcHNl
JiwgY29uc3QgQm94Jik7CisgICAgICAgIHN0YXRpYyB2b2lkIHVwZGF0ZVBvc2l0aXZlTmVnYXRp
dmVNYXJnaW5WYWx1ZXMoQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYsIGNvbnN0IE1hcmdpbkNvbGxh
cHNlJiwgY29uc3QgQm94Jik7CiAKICAgICAgICAgYm9vbCBtYXJnaW5CZWZvcmVDb2xsYXBzZXNX
aXRoUGFyZW50TWFyZ2luQmVmb3JlKGNvbnN0IEJveCYpIGNvbnN0OwogICAgICAgICBib29sIG1h
cmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhGaXJzdEluRmxvd0NoaWxkTWFyZ2luQmVmb3JlKGNvbnN0
IEJveCYpIGNvbnN0OwpAQCAtMTI1LDkgKzEyNSw5IEBAIHByaXZhdGU6CiAgICAgICAgIE1hcmdp
bkNvbGxhcHNlKGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmKTsKIAogICAgICAgICBlbnVt
IGNsYXNzIE1hcmdpblR5cGUgeyBCZWZvcmUsIEFmdGVyIH07Ci0gICAgICAgIFBvc2l0aXZlQW5k
TmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFsdWVzIHBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29u
c3QgQm94JiwgTWFyZ2luVHlwZSk7Ci0gICAgICAgIFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNh
bE1hcmdpbjo6VmFsdWVzIHBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUoY29uc3QgQm94Jiwg
VXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOwotICAgICAgICBQb3NpdGl2
ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2lu
QWZ0ZXIoY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMp
OworICAgICAgICBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBwb3Np
dGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYsIE1hcmdpblR5cGUpIGNvbnN0OworICAgICAg
ICBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBwb3NpdGl2ZU5lZ2F0
aXZlTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFw
c2VkVmFsdWVzKSBjb25zdDsKKyAgICAgICAgUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFy
Z2luOjpWYWx1ZXMgcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKGNvbnN0IEJveCYsIFVzZWRW
ZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdDsKICAgICAgICAgYm9vbCBo
YXNDbGVhcmFuY2UoY29uc3QgQm94JikgY29uc3Q7CiAKICAgICAgICAgTGF5b3V0U3RhdGUmIGxh
eW91dFN0YXRlKCkgeyByZXR1cm4gbV9ibG9ja0Zvcm1hdHRpbmdDb250ZXh0LmxheW91dFN0YXRl
KCk7IH0KQEAgLTE2NSw3ICsxNjUsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFzUHJlY29tcHV0
ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JikgY29uc3Q7CiAjZW5kaWYKIAotICAgIEJsb2NrRm9y
bWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxC
bG9ja0Zvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSgp
KTsgfQorICAgIGNvbnN0IEJsb2NrRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBj
b25zdCB7IHJldHVybiBkb3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0Nv
bnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSgpKTsgfQorICAgIEJsb2NrRm9ybWF0dGluZ1N0YXRlJiBm
b3JtYXR0aW5nU3RhdGUoKSB7IHJldHVybiBkb3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4o
Rm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSgpKTsgfQogCiBwcml2YXRlOgogICAg
IEhhc2hNYXA8Y29uc3QgQm94KiwgRXN0aW1hdGVkTWFyZ2luQmVmb3JlPiBtX2VzdGltYXRlZE1h
cmdpbkJlZm9yZUxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAppbmRleCBlZDliMjI1NzQ5
YzViZjUwZDNmZjI3YWU1NzUwZDc4MmIxYjlhYjA0Li4wZDk1ZjhkNGU5YWRiYWZhYmNjNTJmMDYw
YjJmOTI2YzczMTlkODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKQEAgLTQ2NCw3ICs0
NjQsNyBAQCBzdGF0aWMgT3B0aW9uYWw8TGF5b3V0VW5pdD4gbWFyZ2luVmFsdWUoUG9zaXRpdmVB
bmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZQogICAgIHJldHVybiAqbWFyZ2luVmFsdWVz
LnBvc2l0aXZlICsgKm1hcmdpblZhbHVlcy5uZWdhdGl2ZTsKIH0KIAotdm9pZCBCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6dXBkYXRlTWFyZ2luQWZ0ZXJGb3JQcmV2aW91
c1NpYmxpbmcoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0Cit2b2lkIEJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjp1cGRhdGVNYXJnaW5BZnRlckZvclByZXZpb3VzU2li
bGluZyhCbG9ja0Zvcm1hdHRpbmdDb250ZXh0JiBibG9ja0Zvcm1hdHRpbmdDb250ZXh0LCBjb25z
dCBNYXJnaW5Db2xsYXBzZSYgbWFyZ2luQ29sbGFwc2UsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQog
ewogICAgIC8vIDEuIEdldCB0aGUgbWFyZ2luIGJlZm9yZSB2YWx1ZSBmcm9tIHRoZSBuZXh0IGlu
LWZsb3cgc2libGluZy4gVGhpcyBpcyB0aGUgc2FtZSBhcyB0aGlzIGJveCdzIG1hcmdpbiBhZnRl
ciB2YWx1ZSBub3cgc2luY2UgdGhleSBhcmUgY29sbGFwc2VkLgogICAgIC8vIDIuIFVwZGF0ZSB0
aGUgY29sbGFwc2VkIG1hcmdpbiBhZnRlciB2YWx1ZSBhcyB3ZWxsIGFzIHRoZSBwb3NpdGl2ZS9u
ZWdhdGl2ZSBjYWNoZS4KQEAgLTQ3MywxNyArNDczLDE3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OnVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJs
aW5nCiAgICAgLy8gNS4gSW4gY2FzZSBvZiBjb2xsYXBzZWQgdGhyb3VnaCBtYXJnaW5zIGNoZWNr
IGlmIHRoZSBiZWZvcmUgbWFyZ2luIGNvbGxhcGVzIHdpdGggdGhlIHByZXZpb3VzIGluZmxvdyBz
aWJsaW5nJ3MgYWZ0ZXIgbWFyZ2luLgogICAgIC8vIDYuIElmIHNvLCBqdW1wIHRvICMyLgogICAg
IC8vIDcuIE5vIG5lZWQgdG8gcHJvcGFnYXRlIHRvIHBhcmVudCBiZWNhdXNlIGl0cyBtYXJnaW4g
aXMgbm90IGNvbXB1dGVkIHlldCAoZXN0aW1hdGVkIGF0IG1vc3QpLgotICAgIGF1dG8mIGxheW91
dFN0YXRlID0gdGhpcy0+bGF5b3V0U3RhdGUoKTsKICAgICBhdXRvKiBjdXJyZW50Qm94ID0gJmxh
eW91dEJveDsKLSAgICB3aGlsZSAobWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFByZXZpb3VzU2li
bGluZ01hcmdpbkFmdGVyKCpjdXJyZW50Qm94KSkgeworICAgIGF1dG8mIGJsb2NrRm9ybWF0dGlu
Z1N0YXRlID0gYmxvY2tGb3JtYXR0aW5nQ29udGV4dC5mb3JtYXR0aW5nU3RhdGUoKTsKKyAgICB3
aGlsZSAobWFyZ2luQ29sbGFwc2UubWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFByZXZpb3VzU2li
bGluZ01hcmdpbkFmdGVyKCpjdXJyZW50Qm94KSkgewogICAgICAgICBhdXRvJiBwcmV2aW91c1Np
YmxpbmcgPSAqY3VycmVudEJveC0+cHJldmlvdXNJbkZsb3dTaWJsaW5nKCk7Ci0gICAgICAgIGF1
dG8mIHByZXZpb3VzU2libGluZ0Rpc3BsYXlCb3ggPSBmb3JtYXR0aW5nQ29udGV4dCgpLmZvcm1h
dHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gocHJldmlvdXNTaWJsaW5nKTsKKyAgICAgICAgYXV0byYg
cHJldmlvdXNTaWJsaW5nRGlzcGxheUJveCA9IGJsb2NrRm9ybWF0dGluZ1N0YXRlLmRpc3BsYXlC
b3gocHJldmlvdXNTaWJsaW5nKTsKICAgICAgICAgYXV0byBwcmV2aW91c1NpYmxpbmdWZXJ0aWNh
bE1hcmdpbiA9IHByZXZpb3VzU2libGluZ0Rpc3BsYXlCb3gudmVydGljYWxNYXJnaW4oKTsKIAog
ICAgICAgICBhdXRvIGNvbGxhcHNlZFZlcnRpY2FsTWFyZ2luQmVmb3JlID0gcHJldmlvdXNTaWJs
aW5nVmVydGljYWxNYXJnaW4uY29sbGFwc2VkVmFsdWVzKCkuYmVmb3JlOwotICAgICAgICBhdXRv
IGNvbGxhcHNlZFZlcnRpY2FsTWFyZ2luQWZ0ZXIgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21l
dHJ5Rm9yQm94KCpjdXJyZW50Qm94KS52ZXJ0aWNhbE1hcmdpbigpLmJlZm9yZSgpOworICAgICAg
ICBhdXRvIGNvbGxhcHNlZFZlcnRpY2FsTWFyZ2luQWZ0ZXIgPSBibG9ja0Zvcm1hdHRpbmdDb250
ZXh0Lmdlb21ldHJ5Rm9yQm94KCpjdXJyZW50Qm94KS52ZXJ0aWNhbE1hcmdpbigpLmJlZm9yZSgp
OwogCi0gICAgICAgIGF1dG8gbWFyZ2luc0NvbGxhcHNlVGhyb3VnaCA9IHRoaXMtPm1hcmdpbnND
b2xsYXBzZVRocm91Z2gocHJldmlvdXNTaWJsaW5nKTsKKyAgICAgICAgYXV0byBtYXJnaW5zQ29s
bGFwc2VUaHJvdWdoID0gbWFyZ2luQ29sbGFwc2UubWFyZ2luc0NvbGxhcHNlVGhyb3VnaChwcmV2
aW91c1NpYmxpbmcpOwogICAgICAgICBpZiAobWFyZ2luc0NvbGxhcHNlVGhyb3VnaCkKICAgICAg
ICAgICAgIGNvbGxhcHNlZFZlcnRpY2FsTWFyZ2luQmVmb3JlID0gY29sbGFwc2VkVmVydGljYWxN
YXJnaW5BZnRlcjsKIApAQCAtNDkyLDcgKzQ5Miw2IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6TWFyZ2luQ29sbGFwc2U6OnVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5n
CiAgICAgICAgIHByZXZpb3VzU2libGluZ0Rpc3BsYXlCb3guc2V0VmVydGljYWxNYXJnaW4ocHJl
dmlvdXNTaWJsaW5nVmVydGljYWxNYXJnaW4pOwogCiAgICAgICAgIC8vIFVwZGF0ZSBwb3NpdGl2
ZS9uZWdhdGl2ZSBjYWNoZS4KLSAgICAgICAgYXV0byYgYmxvY2tGb3JtYXR0aW5nU3RhdGUgPSBk
b3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4obGF5b3V0U3RhdGUuZm9ybWF0dGluZ1N0YXRl
Rm9yQm94KHByZXZpb3VzU2libGluZykpOwogICAgICAgICBhdXRvIHByZXZpb3VzU2libGluZ1Bv
c2l0aXZlTmVnYXRpdmVNYXJnaW4gPSBibG9ja0Zvcm1hdHRpbmdTdGF0ZS5wb3NpdGl2ZUFuZE5l
Z2F0aXZlVmVydGljYWxNYXJnaW4ocHJldmlvdXNTaWJsaW5nKTsKICAgICAgICAgYXV0byBwb3Np
dGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlID0gYmxvY2tGb3JtYXR0aW5nU3RhdGUucG9zaXRpdmVB
bmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luKCpjdXJyZW50Qm94KS5iZWZvcmU7CiAKQEAgLTUxMCw3
ICs1MDksNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjp1
cGRhdGVNYXJnaW5BZnRlckZvclByZXZpb3VzU2libGluZwogICAgIH0KIH0KIAotUG9zaXRpdmVB
bmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
TWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29uc3QgQm94JiBsYXlvdXRC
b3gsIE1hcmdpblR5cGUgbWFyZ2luVHlwZSkKK1Bvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1h
cmdpbjo6VmFsdWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwb3Np
dGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBNYXJnaW5UeXBlIG1hcmdp
blR5cGUpIGNvbnN0CiB7CiAgICAgYXV0byYgbGF5b3V0U3RhdGUgPSB0aGlzLT5sYXlvdXRTdGF0
ZSgpOwogICAgIGF1dG8mIGJsb2NrRm9ybWF0dGluZ1N0YXRlID0gZG93bmNhc3Q8QmxvY2tGb3Jt
YXR0aW5nU3RhdGU+KGxheW91dFN0YXRlLmZvcm1hdHRpbmdTdGF0ZUZvckJveChsYXlvdXRCb3gp
KTsKQEAgLTUyOCw3ICs1MjcsNyBAQCBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46
OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZQogICAgIHJldHVy
biBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIobGF5b3V0Qm94LCBub25Db2xsYXBzZWRNYXJn
aW4pOwogfQogCi1Qb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdp
bkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xs
YXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKQorUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRp
Y2FsTWFyZ2luOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6
OnBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRW
ZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIG5vbkNvbGxhcHNlZFZhbHVlcykgY29u
c3QKIHsKICAgICBhdXRvIGZpcnN0Q2hpbGRDb2xsYXBzZWRNYXJnaW5CZWZvcmUgPSBbJl0oKSAt
PiBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyB7CiAgICAgICAgIGlm
ICghbWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aEZpcnN0SW5GbG93Q2hpbGRNYXJnaW5CZWZvcmUo
bGF5b3V0Qm94KSkKQEAgLTU1OCw3ICs1NTcsNyBAQCBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGlj
YWxNYXJnaW46OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZQog
ICAgIHJldHVybiBjb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4oY29sbGFwc2VkTWFy
Z2luQmVmb3JlLCBub25Db2xsYXBzZWRCZWZvcmUpOwogfQogCi1Qb3NpdGl2ZUFuZE5lZ2F0aXZl
VmVydGljYWxNYXJnaW46OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xs
YXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBV
c2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyBub25Db2xsYXBzZWRWYWx1ZXMp
CitQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKGNv
bnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVl
cyBub25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0CiB7CiAgICAgYXV0byBsYXN0Q2hpbGRDb2xsYXBz
ZWRNYXJnaW5BZnRlciA9IFsmXSgpIC0+IFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdp
bjo6VmFsdWVzIHsKICAgICAgICAgaWYgKCFtYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhMYXN0SW5G
bG93Q2hpbGRNYXJnaW5BZnRlcihsYXlvdXRCb3gpKQpAQCAtNjAzLDIwICs2MDIsMTkgQEAgTGF5
b3V0VW5pdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVm
b3JlSWdub3JpbmdDb2xsYXBzaW4KICAgICByZXR1cm4gbWFyZ2luVmFsdWUocG9zaXRpdmVOZWdh
dGl2ZU1hcmdpbkJlZm9yZShsYXlvdXRCb3gsIG5vbkNvbGxhcHNlZFZhbHVlcykpLnZhbHVlT3Io
bm9uQ29sbGFwc2VkVmFsdWVzLmJlZm9yZSk7CiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6TWFyZ2luQ29sbGFwc2U6OnVwZGF0ZVBvc2l0aXZlTmVnYXRpdmVNYXJnaW5WYWx1ZXMo
Y29uc3QgQm94JiBsYXlvdXRCb3gpCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdp
bkNvbGxhcHNlOjp1cGRhdGVQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luVmFsdWVzKEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQmIGJsb2NrRm9ybWF0dGluZ0NvbnRleHQsIGNvbnN0IE1hcmdpbkNvbGxhcHNl
JiBtYXJnaW5Db2xsYXBzZSwgY29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgQVNTRVJUKGxh
eW91dEJveC5pc0Jsb2NrTGV2ZWxCb3goKSk7Ci0gICAgYXV0byBub25Db2xsYXBzZWRWYWx1ZXMg
PSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGxheW91dEJveCkudmVydGljYWxN
YXJnaW4oKS5ub25Db2xsYXBzZWRWYWx1ZXMoKTsKKyAgICBhdXRvIG5vbkNvbGxhcHNlZFZhbHVl
cyA9IGJsb2NrRm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KS52ZXJ0
aWNhbE1hcmdpbigpLm5vbkNvbGxhcHNlZFZhbHVlcygpOwogCi0gICAgYXV0byBwb3NpdGl2ZU5l
Z2F0aXZlTWFyZ2luQmVmb3JlID0gdGhpcy0+cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShs
YXlvdXRCb3gsIG5vbkNvbGxhcHNlZFZhbHVlcyk7Ci0gICAgYXV0byBwb3NpdGl2ZU5lZ2F0aXZl
TWFyZ2luQWZ0ZXIgPSB0aGlzLT5wb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIobGF5b3V0Qm94
LCBub25Db2xsYXBzZWRWYWx1ZXMpOworICAgIGF1dG8gcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJl
Zm9yZSA9IG1hcmdpbkNvbGxhcHNlLnBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUobGF5b3V0
Qm94LCBub25Db2xsYXBzZWRWYWx1ZXMpOworICAgIGF1dG8gcG9zaXRpdmVOZWdhdGl2ZU1hcmdp
bkFmdGVyID0gbWFyZ2luQ29sbGFwc2UucG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKGxheW91
dEJveCwgbm9uQ29sbGFwc2VkVmFsdWVzKTsKIAotICAgIGlmIChtYXJnaW5zQ29sbGFwc2VUaHJv
dWdoKGxheW91dEJveCkpIHsKKyAgICBpZiAobWFyZ2luQ29sbGFwc2UubWFyZ2luc0NvbGxhcHNl
VGhyb3VnaChsYXlvdXRCb3gpKSB7CiAgICAgICAgIHBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZv
cmUgPSBjb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4ocG9zaXRpdmVOZWdhdGl2ZU1h
cmdpbkJlZm9yZSwgcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKTsKICAgICAgICAgcG9zaXRp
dmVOZWdhdGl2ZU1hcmdpbkFmdGVyID0gcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZTsKICAg
ICB9Ci0gICAgYXV0byYgYmxvY2tGb3JtYXR0aW5nU3RhdGUgPSBkb3duY2FzdDxCbG9ja0Zvcm1h
dHRpbmdTdGF0ZT4obGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JCb3gobGF5b3V0Qm94
KSk7Ci0gICAgYmxvY2tGb3JtYXR0aW5nU3RhdGUuc2V0UG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRp
Y2FsTWFyZ2luKGxheW91dEJveCwgeyBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlLCBwb3Np
dGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIgfSk7CisgICAgYmxvY2tGb3JtYXR0aW5nQ29udGV4dC5m
b3JtYXR0aW5nU3RhdGUoKS5zZXRQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4obGF5
b3V0Qm94LCB7IHBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUsIHBvc2l0aXZlTmVnYXRpdmVN
YXJnaW5BZnRlciB9KTsKIH0KIAogVXNlZFZlcnRpY2FsTWFyZ2luOjpDb2xsYXBzZWRWYWx1ZXMg
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OmNvbGxhcHNlZFZlcnRpY2Fs
VmFsdWVzKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxh
cHNlZFZhbHVlcyBub25Db2xsYXBzZWRWYWx1ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5jcHAKaW5kZXggNDE1Y2U4N2NiZmE3YzA3YTc2NjJlYjIyMzk0ODAyMzg0ZjE2MjgyZi4u
OTAzNjEzNzU3NjMyODJmMjAxY2Y3Mjc4MjBmN2YwYzZkMTg2YjZlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjU4LDcgKzI1OCw3IEBAIHZvaWQgSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZEhlaWdodEZvclJlcGxhY2VkSW5saW5lQm94
KGNvbnN0IEJvCiAgICAgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gpOwogfQogCi12
b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb2xsZWN0SW5saW5lQ29udGVudCgpIGNvbnN0
Cit2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb2xsZWN0SW5saW5lQ29udGVudCgpCiB7
CiAgICAgLy8gVHJhdmVyc2UgdGhlIHRyZWUgYW5kIGNyZWF0ZSBpbmxpbmUgaXRlbXMgb3V0IG9m
IGNvbnRhaW5lcnMgYW5kIGxlYWYgbm9kZXMuIFRoaXMgZXNzZW50aWFsbHkgdHVybnMgdGhlIHRy
ZWUgaW5saW5lIHN0cnVjdHVyZSBpbnRvIGEgZmxhdCBvbmUuCiAgICAgLy8gPHNwYW4+dGV4dDxz
cGFuPjwvc3Bhbj48aW1nPjwvc3Bhbj4gLT4gW0NvbnRhaW5lclN0YXJ0XVtJbmxpbmVCb3hdW0Nv
bnRhaW5lclN0YXJ0XVtDb250YWluZXJFbmRdW0lubGluZUJveF1bQ29udGFpbmVyRW5kXQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggYjRiY2UxYTMyYWU1ZmM0OTg0OTVhMjgw
MjJjMmRjMmRmNzJlYjViZi4uYzU5ZmExNjJlOTc4YzUzMWNiMjE1MzJjNDhlZDdjOWFlZTFhNWQ2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0xMDYsOSArMTA2LDEwIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYpOwog
ICAgIHZvaWQgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYsIFVzZWRIb3Jpem9udGFs
VmFsdWVzKTsKIAotICAgIHZvaWQgY29sbGVjdElubGluZUNvbnRlbnQoKSBjb25zdDsKKyAgICB2
b2lkIGNvbGxlY3RJbmxpbmVDb250ZW50KCk7CiAKLSAgICBJbmxpbmVGb3JtYXR0aW5nU3RhdGUm
IGZvcm1hdHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PElubGluZUZvcm1hdHRp
bmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSgpKTsgfQorICAgIGNv
bnN0IElubGluZUZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1
cm4gZG93bmNhc3Q8SW5saW5lRm9ybWF0dGluZ1N0YXRlPihGb3JtYXR0aW5nQ29udGV4dDo6Zm9y
bWF0dGluZ1N0YXRlKCkpOyB9CisgICAgSW5saW5lRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5n
U3RhdGUoKSB7IHJldHVybiBkb3duY2FzdDxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KEZvcm1hdHRp
bmdDb250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUoKSk7IH0KICAgICAvLyBGSVhNRTogQ29tZSB1cCB3
aXRoIGEgc3RydWN0dXJlIHRoYXQgcmVxdWlyZXMgbm8gZnJpZW5kaW5nLgogICAgIGZyaWVuZCBj
bGFzcyBMaW5lOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZv
cm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggZWE4ZDNlNTll
YzFhZWI0YTY0MTE4OTdiYjA0NmQwMTNlZGUwOGYwMC4uM2I2OGYxZjNiYzZlYTYxYzViN2NhZWVk
ZWQ1MWZkMGViZTdhOWFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxl
Zm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTcwLDcg
KzcwLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaW5pdGlhbGl6ZURpc3BsYXlCb3hUb0JsYW5r
KERpc3BsYXk6OkJveCYpIGNvbnN0OwogCi0gICAgVGFibGVGb3JtYXR0aW5nU3RhdGUmIGZvcm1h
dHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PFRhYmxlRm9ybWF0dGluZ1N0YXRl
PihGb3JtYXR0aW5nQ29udGV4dDo6Zm9ybWF0dGluZ1N0YXRlKCkpOyB9CisgICAgY29uc3QgVGFi
bGVGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGRvd25j
YXN0PFRhYmxlRm9ybWF0dGluZ1N0YXRlPihGb3JtYXR0aW5nQ29udGV4dDo6Zm9ybWF0dGluZ1N0
YXRlKCkpOyB9CisgICAgVGFibGVGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIHsg
cmV0dXJuIGRvd25jYXN0PFRhYmxlRm9ybWF0dGluZ1N0YXRlPihGb3JtYXR0aW5nQ29udGV4dDo6
Zm9ybWF0dGluZ1N0YXRlKCkpOyB9CiB9OwogCiBpbmxpbmUgVGFibGVGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnk6Okdlb21ldHJ5KGNvbnN0IFRhYmxlRm9ybWF0dGluZ0NvbnRleHQmIHRhYmxl
Rm9ybWF0dGluZ0NvbnRleHQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>