<?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>189414</bug_id>
          
          <creation_ts>2018-09-07 10:15:14 -0700</creation_ts>
          <short_desc>[LFC] Replace &quot;computed&quot; value with &quot;used&quot; value to match spec language</short_desc>
          <delta_ts>2018-09-07 10:51:26 -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>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>1457525</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-09-07 10:15:14 -0700</bug_when>
    <thetext>https://www.w3.org/TR/CSS22/cascade.html#usedValue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457539</commentid>
    <comment_count>1</comment_count>
      <attachid>349158</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-09-07 10:47:44 -0700</bug_when>
    <thetext>Created attachment 349158
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457541</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-09-07 10:50:42 -0700</bug_when>
    <thetext>Committed r235787: &lt;https://trac.webkit.org/changeset/235787&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457543</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-07 10:51:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/44229521&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349158</attachid>
            <date>2018-09-07 10:47:44 -0700</date>
            <delta_ts>2018-09-07 10:48:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189414-20180907104742.patch</filename>
            <type>text/plain</type>
            <size>39657</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhjNmFiN2I4ZTU4ODA1
ZTQyMjNmZTZjNGUwMDlkZGI5NTMyODA3ZS4uMWQwMTY5M2IwOGYyNTcyNWU4N2EwNGJhMDJiYjlm
ZjNkMWNlMzM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE4LTA5LTA3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gUmVwbGFjZSAiY29t
cHV0ZWQiIHZhbHVlIHdpdGggInVzZWQiIHZhbHVlIHRvIG1hdGNoIHNwZWMgbGFuZ3VhZ2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTQxNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbGF5b3V0L0Zv
cm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGlu
Z0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9mRmxv
d1ZlcnRpY2FsR2VvbWV0cnkgY29uc3QpOgorICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6Om91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd0hvcml6b250YWxHZW9t
ZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9t
ZXRyeTo6ZmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nV2lkdGhBbmRNYXJnaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Omlu
bGluZVJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbmxpbmVSZXBsYWNlZFdpZHRoQW5kTWFyZ2lu
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
Ojpjb21wbGljYXRlZENhc2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91
dE9mRmxvd1JlcGxhY2VkSG9yaXpvbnRhbEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBsYWNlZFZl
cnRpY2FsR2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd05vblJlcGxhY2VkSG9yaXpvbnRhbEdlb21ldHJ5KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpm
bG9hdGluZ1JlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ1JlcGxhY2VkV2lkdGhBbmRN
YXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OmZsb2F0aW5nTm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbik6CisgICAgICAgICogbGF5
b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd05vblJlcGxhY2VkVmVy
dGljYWxHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250
ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2VvbWV0cnkpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91
dE9mRmxvd1JlcGxhY2VkVmVydGljYWxHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93UmVwbGFjZWRIb3Jpem9u
dGFsR2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnk6OmNvbXBsaWNhdGVkQ2FzZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nTm9uUmVwbGFjZWRXaWR0aEFu
ZE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZEhlaWdodEFuZE1hcmdpbik6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNl
ZFdpZHRoQW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dIb3Jp
em9udGFsR2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nSGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ1dpZHRoQW5k
TWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjppbmxpbmVSZXBsYWNlZEhlaWdodEFuZE1hcmdpbik6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5saW5lUmVwbGFjZWRXaWR0
aEFuZE1hcmdpbik6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdp
biBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5OjppbkZsb3dIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93V2lkdGhB
bmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5G
bG93Tm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dSZXBsYWNlZFdpZHRoQW5k
TWFyZ2luKToKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHRHZW9tZXRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZEhlaWdodEFuZE1hcmdp
bik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd1JlcGxh
Y2VkV2lkdGhBbmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93SGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxv
d1dpZHRoQW5kTWFyZ2luKToKKwogMjAxOC0wOS0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBTaGFkb3dSb290IHNob3VsZCBoYXZlIGl0cyBvd24gbm9kZSBm
bGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA4
NmQ5NzI4ODE1Y2Q0NDJlZGM5NDJjYWNlNGY5NmZhY2RjMTI4YTM5Li43NjgzNWYxNTI0MTIzMDgw
MzVjNGE2MDE2NDYyYmVlMTQ5MjgxOGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nQ29udGV4dC5jcHAKQEAgLTUzLDggKzUzLDggQEAgRm9ybWF0dGluZ0NvbnRleHQ6On5G
b3JtYXR0aW5nQ29udGV4dCgpCiAKIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRP
ZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29u
c3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CiB7Ci0gICAgYXV0byBjb21wdXRlID0gWyZdKHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gcHJlY29tcHV0ZWRXaWR0aCkgewotICAgICAgICByZXR1cm4g
R2VvbWV0cnk6Om91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShsYXlvdXRDb250ZXh0LCAqdGhp
cywgbGF5b3V0Qm94LCBwcmVjb21wdXRlZFdpZHRoKTsKKyAgICBhdXRvIGNvbXB1dGUgPSBbJl0o
c3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgpIHsKKyAgICAgICAgcmV0dXJuIEdl
b21ldHJ5OjpvdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkobGF5b3V0Q29udGV4dCwgKnRoaXMs
IGxheW91dEJveCwgdXNlZFdpZHRoKTsKICAgICB9OwogCiAgICAgYXV0byBob3Jpem9udGFsR2Vv
bWV0cnkgPSBjb21wdXRlKHsgfSk7CkBAIC04MSw4ICs4MSw4IEBAIHZvaWQgRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoTGF5b3V0Q29udGV4dCYg
bGF5b3V0CiAKIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNh
bEdlb21ldHJ5KGNvbnN0IExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYg
bGF5b3V0Qm94KSBjb25zdAogewotICAgIGF1dG8gY29tcHV0ZSA9IFsmXShzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IHByZWNvbXB1dGVkSGVpZ2h0KSB7Ci0gICAgICAgIHJldHVybiBHZW9tZXRy
eTo6b3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIHBy
ZWNvbXB1dGVkSGVpZ2h0KTsKKyAgICBhdXRvIGNvbXB1dGUgPSBbJl0oc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiB1c2VkSGVpZ2h0KSB7CisgICAgICAgIHJldHVybiBHZW9tZXRyeTo6b3V0T2ZG
bG93VmVydGljYWxHZW9tZXRyeShsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIHVzZWRIZWlnaHQp
OwogICAgIH07CiAKICAgICBhdXRvIHZlcnRpY2FsR2VvbWV0cnkgPSBjb21wdXRlKHsgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDM3NGYxN2NiZjIw
OTk0NDQyNzk0MmZiODIyOWE2OThkZDhiM2U2ZDIuLjEzOGVmNGJlOGYzYzZjZDhiNzIzMDllNTkz
YjZjZmFhNDI4MTA1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0
aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4
dC5oCkBAIC04MiwxNyArODIsMTcgQEAgcHJvdGVjdGVkOgogICAgIC8vIFRoaXMgY2xhc3MgaW1w
bGVtZW50cyBnZW5lcmljIHBvc2l0aW9uaW5nIGFuZCBzaXppbmcuCiAgICAgY2xhc3MgR2VvbWV0
cnkgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFZlcnRpY2FsR2VvbWV0cnkgb3V0T2ZG
bG93VmVydGljYWxHZW9tZXRyeShjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jiwgc3Rk
OjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZEhlaWdodCA9IHsgfSk7Ci0gICAgICAg
IHN0YXRpYyBIb3Jpem9udGFsR2VvbWV0cnkgb3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KExh
eW91dENvbnRleHQmLCBjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gcHJlY29tcHV0ZWRXaWR0aCA9IHsgfSk7CisgICAgICAgIHN0
YXRpYyBWZXJ0aWNhbEdlb21ldHJ5IG91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkoY29uc3QgTGF5
b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZEhl
aWdodCA9IHsgfSk7CisgICAgICAgIHN0YXRpYyBIb3Jpem9udGFsR2VvbWV0cnkgb3V0T2ZGbG93
SG9yaXpvbnRhbEdlb21ldHJ5KExheW91dENvbnRleHQmLCBjb25zdCBGb3JtYXR0aW5nQ29udGV4
dCYsIGNvbnN0IEJveCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdpZHRoID0geyB9
KTsKIAotICAgICAgICBzdGF0aWMgSGVpZ2h0QW5kTWFyZ2luIGZsb2F0aW5nSGVpZ2h0QW5kTWFy
Z2luKGNvbnN0IExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IHByZWNvbXB1dGVkSGVpZ2h0ID0geyB9KTsKLSAgICAgICAgc3RhdGljIFdpZHRoQW5k
TWFyZ2luIGZsb2F0aW5nV2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEZvcm1h
dHRpbmdDb250ZXh0JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVj
b21wdXRlZFdpZHRoID0geyB9KTsKKyAgICAgICAgc3RhdGljIEhlaWdodEFuZE1hcmdpbiBmbG9h
dGluZ0hlaWdodEFuZE1hcmdpbihjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jiwgc3Rk
OjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkSGVpZ2h0ID0geyB9KTsKKyAgICAgICAgc3RhdGlj
IFdpZHRoQW5kTWFyZ2luIGZsb2F0aW5nV2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNv
bnN0IEZvcm1hdHRpbmdDb250ZXh0JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRV
bml0PiB1c2VkV2lkdGggPSB7IH0pOwogCi0gICAgICAgIHN0YXRpYyBIZWlnaHRBbmRNYXJnaW4g
aW5saW5lUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4oY29uc3QgTGF5b3V0Q29udGV4dCYsIGNvbnN0
IEJveCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gcHJlY29tcHV0ZWRIZWlnaHQgPSB7IH0p
OwotICAgICAgICBzdGF0aWMgV2lkdGhBbmRNYXJnaW4gaW5saW5lUmVwbGFjZWRXaWR0aEFuZE1h
cmdpbihjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBwcmVjb21wdXRlZFdpZHRoID0geyB9LCAKKyAgICAgICAgc3RhdGljIEhlaWdodEFu
ZE1hcmdpbiBpbmxpbmVSZXBsYWNlZEhlaWdodEFuZE1hcmdpbihjb25zdCBMYXlvdXRDb250ZXh0
JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkSGVpZ2h0ID0geyB9
KTsKKyAgICAgICAgc3RhdGljIFdpZHRoQW5kTWFyZ2luIGlubGluZVJlcGxhY2VkV2lkdGhBbmRN
YXJnaW4oY29uc3QgTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gdXNlZFdpZHRoID0geyB9LCAKICAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gcHJlY29tcHV0ZWRNYXJnaW5MZWZ0ID0geyB9LCBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IHByZWNvbXB1dGVkTWFyZ2luUmlnaHQgPSB7IH0pOwogCi0gICAgICAgIHN0YXRpYyBI
ZWlnaHRBbmRNYXJnaW4gY29tcGxpY2F0ZWRDYXNlcyhjb25zdCBMYXlvdXRDb250ZXh0JiwgY29u
c3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZEhlaWdodCA9IHsg
fSk7CisgICAgICAgIHN0YXRpYyBIZWlnaHRBbmRNYXJnaW4gY29tcGxpY2F0ZWRDYXNlcyhjb25z
dCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1
c2VkSGVpZ2h0ID0geyB9KTsKIAogICAgICAgICBzdGF0aWMgRWRnZXMgY29tcHV0ZWRCb3JkZXIo
Y29uc3QgTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYpOwogICAgICAgICBzdGF0aWMgc3RkOjpv
cHRpb25hbDxFZGdlcz4gY29tcHV0ZWRQYWRkaW5nKGNvbnN0IExheW91dENvbnRleHQmLCBjb25z
dCBCb3gmKTsKQEAgLTEwNywxNiArMTA3LDE2IEBAIHByb3RlY3RlZDoKICAgICAgICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gY29tcHV0ZWRNYXhIZWlnaHQoY29uc3QgTGF5b3V0
Q29udGV4dCYsIGNvbnN0IEJveCYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgc3RhdGljIFZl
cnRpY2FsR2VvbWV0cnkgb3V0T2ZGbG93UmVwbGFjZWRWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IExh
eW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNv
bXB1dGVkSGVpZ2h0ID0geyB9KTsKLSAgICAgICAgc3RhdGljIEhvcml6b250YWxHZW9tZXRyeSBv
dXRPZkZsb3dSZXBsYWNlZEhvcml6b250YWxHZW9tZXRyeShjb25zdCBMYXlvdXRDb250ZXh0Jiwg
Y29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZFdpZHRoID0g
eyB9KTsKKyAgICAgICAgc3RhdGljIFZlcnRpY2FsR2VvbWV0cnkgb3V0T2ZGbG93UmVwbGFjZWRW
ZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IHVzZWRIZWlnaHQgPSB7IH0pOworICAgICAgICBzdGF0aWMgSG9y
aXpvbnRhbEdlb21ldHJ5IG91dE9mRmxvd1JlcGxhY2VkSG9yaXpvbnRhbEdlb21ldHJ5KGNvbnN0
IExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVz
ZWRXaWR0aCA9IHsgfSk7CiAKLSAgICAgICAgc3RhdGljIFZlcnRpY2FsR2VvbWV0cnkgb3V0T2ZG
bG93Tm9uUmVwbGFjZWRWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IExheW91dENvbnRleHQmLCBjb25z
dCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkSGVpZ2h0ID0geyB9
KTsKLSAgICAgICAgc3RhdGljIEhvcml6b250YWxHZW9tZXRyeSBvdXRPZkZsb3dOb25SZXBsYWNl
ZEhvcml6b250YWxHZW9tZXRyeShMYXlvdXRDb250ZXh0JiwgY29uc3QgRm9ybWF0dGluZ0NvbnRl
eHQmLCBjb25zdCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkV2lk
dGggPSB7IH0pOworICAgICAgICBzdGF0aWMgVmVydGljYWxHZW9tZXRyeSBvdXRPZkZsb3dOb25S
ZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkoY29uc3QgTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYs
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZEhlaWdodCA9IHsgfSk7CisgICAgICAgIHN0
YXRpYyBIb3Jpem9udGFsR2VvbWV0cnkgb3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2Vv
bWV0cnkoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0JiwgY29uc3QgQm94
Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGggPSB7IH0pOwogCi0gICAgICAg
IHN0YXRpYyBIZWlnaHRBbmRNYXJnaW4gZmxvYXRpbmdSZXBsYWNlZEhlaWdodEFuZE1hcmdpbihj
b25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBwcmVjb21wdXRlZEhlaWdodCA9IHsgfSk7Ci0gICAgICAgIHN0YXRpYyBXaWR0aEFuZE1hcmdp
biBmbG9hdGluZ1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QgTGF5b3V0Q29udGV4dCYsIGNv
bnN0IEJveCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gcHJlY29tcHV0ZWRXaWR0aCA9IHsg
fSk7CisgICAgICAgIHN0YXRpYyBIZWlnaHRBbmRNYXJnaW4gZmxvYXRpbmdSZXBsYWNlZEhlaWdo
dEFuZE1hcmdpbihjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25h
bDxMYXlvdXRVbml0PiB1c2VkSGVpZ2h0ID0geyB9KTsKKyAgICAgICAgc3RhdGljIFdpZHRoQW5k
TWFyZ2luIGZsb2F0aW5nUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihjb25zdCBMYXlvdXRDb250ZXh0
JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGggPSB7IH0p
OwogCi0gICAgICAgIHN0YXRpYyBXaWR0aEFuZE1hcmdpbiBmbG9hdGluZ05vblJlcGxhY2VkV2lk
dGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0JiwgY29u
c3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZFdpZHRoID0geyB9
KTsKKyAgICAgICAgc3RhdGljIFdpZHRoQW5kTWFyZ2luIGZsb2F0aW5nTm9uUmVwbGFjZWRXaWR0
aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiwgY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmLCBjb25z
dCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRXaWR0aCA9IHsgfSk7CiAKICAg
ICAgICAgc3RhdGljIExheW91dFVuaXQgc2hyaW5rVG9GaXRXaWR0aChMYXlvdXRDb250ZXh0Jiwg
Y29uc3QgRm9ybWF0dGluZ0NvbnRleHQmLCBjb25zdCBCb3gmKTsKICAgICB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCmluZGV4
IGRjODM2ZmE5OGUzZGNhOGU3OWRmYjE3ZjlkODc0YTM3NjIwMjg2ZWUuLjQ1MDkwZjg4Mzg5ODRm
MmYxZGY5NzdlN2RjNjQ1YWU4ZTQyOTQ0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTIxNCw3ICsyMTQsNyBAQCBM
YXlvdXRVbml0IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6c2hyaW5rVG9GaXRXaWR0aChM
YXlvdXRDb250ZXh0JiBsYXlvdXRDbwogICAgIHJldHVybiBzdGQ6Om1pbihzdGQ6Om1heChpbnN0
cmluc2ljV2lkdGhDb25zdHJhaW50cy5taW5pbXVtLCBhdmFpbGFibGVXaWR0aCksIGluc3RyaW5z
aWNXaWR0aENvbnN0cmFpbnRzLm1heGltdW0pOwogfQogCi1WZXJ0aWNhbEdlb21ldHJ5IEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93Tm9uUmVwbGFjZWRWZXJ0aWNhbEdlb21l
dHJ5KGNvbnN0IExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkSGVpZ2h0KQorVmVydGlj
YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd05vblJlcGxh
Y2VkVmVydGljYWxHZW9tZXRyeShjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBj
b25zdCBCb3gmIGxheW91dEJveCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkSGVpZ2h0
KQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgIWxh
eW91dEJveC5yZXBsYWNlZCgpKTsKIApAQCAtMjUwLDcgKzI1MCw3IEBAIFZlcnRpY2FsR2VvbWV0
cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBsYWNlZFZlcnRp
Y2FsR2VvbWV0CiAKICAgICBhdXRvIHRvcCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUu
bG9naWNhbFRvcCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7CiAgICAgYXV0byBib3R0b20gPSBj
b21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLmxvZ2ljYWxCb3R0b20oKSwgY29udGFpbmluZ0Js
b2NrV2lkdGgpOwotICAgIGF1dG8gaGVpZ2h0ID0gY29tcHV0ZWRWYWx1ZUlmTm90QXV0byhwcmVj
b21wdXRlZEhlaWdodCA/IExlbmd0aCB7IHByZWNvbXB1dGVkSGVpZ2h0LnZhbHVlKCksIEZpeGVk
IH0gOiBzdHlsZS5sb2dpY2FsSGVpZ2h0KCksIGNvbnRhaW5pbmdCbG9ja0hlaWdodCk7CisgICAg
YXV0byBoZWlnaHQgPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHVzZWRIZWlnaHQgPyBMZW5ndGgg
eyB1c2VkSGVpZ2h0LnZhbHVlKCksIEZpeGVkIH0gOiBzdHlsZS5sb2dpY2FsSGVpZ2h0KCksIGNv
bnRhaW5pbmdCbG9ja0hlaWdodCk7CiAgICAgYXV0byBtYXJnaW5Ub3AgPSBjb21wdXRlZFZhbHVl
SWZOb3RBdXRvKHN0eWxlLm1hcmdpblRvcCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7CiAgICAg
YXV0byBtYXJnaW5Cb3R0b20gPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdpbkJv
dHRvbSgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7CiAgICAgYXV0byBwYWRkaW5nVG9wID0gZGlz
cGxheUJveC5wYWRkaW5nVG9wKCkudmFsdWVfb3IoMCk7CkBAIC0zMzAsNyArMzMwLDcgQEAgVmVy
dGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd05vblJl
cGxhY2VkVmVydGljYWxHZW9tZXQKICAgICByZXR1cm4geyAqdG9wLCAqYm90dG9tLCB7ICpoZWln
aHQsIHsgKm1hcmdpblRvcCwgKm1hcmdpbkJvdHRvbSB9LCB7IH0gfSB9OwogfQogCi1Ib3Jpem9u
dGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBs
YWNlZEhvcml6b250YWxHZW9tZXRyeShMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25z
dCBGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkV2lkdGgpCitIb3Jpem9u
dGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBs
YWNlZEhvcml6b250YWxHZW9tZXRyeShMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25z
dCBGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRXaWR0aCkKIHsKICAgICBBU1NFUlQo
bGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmICFsYXlvdXRCb3gucmVwbGFjZWQo
KSk7CiAgICAgCkBAIC0zNjgsNyArMzY4LDcgQEAgSG9yaXpvbnRhbEdlb21ldHJ5IEZvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2UKICAg
ICAKICAgICBhdXRvIGxlZnQgPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLmxvZ2ljYWxM
ZWZ0KCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKICAgICBhdXRvIHJpZ2h0ID0gY29tcHV0ZWRW
YWx1ZUlmTm90QXV0byhzdHlsZS5sb2dpY2FsUmlnaHQoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgp
OwotICAgIGF1dG8gd2lkdGggPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHByZWNvbXB1dGVkV2lk
dGggPyBMZW5ndGggeyBwcmVjb21wdXRlZFdpZHRoLnZhbHVlKCksIEZpeGVkIH0gOiBzdHlsZS5s
b2dpY2FsV2lkdGgoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOworICAgIGF1dG8gd2lkdGggPSBj
b21wdXRlZFZhbHVlSWZOb3RBdXRvKHVzZWRXaWR0aCA/IExlbmd0aCB7IHVzZWRXaWR0aC52YWx1
ZSgpLCBGaXhlZCB9IDogc3R5bGUubG9naWNhbFdpZHRoKCksIGNvbnRhaW5pbmdCbG9ja1dpZHRo
KTsKICAgICBhdXRvIG1hcmdpbkxlZnQgPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLm1h
cmdpbkxlZnQoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwogICAgIGF1dG8gbWFyZ2luUmlnaHQg
PSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdpblJpZ2h0KCksIGNvbnRhaW5pbmdC
bG9ja1dpZHRoKTsKICAgICBhdXRvIG5vbkNvbXB1dGVkTWFyZ2luTGVmdCA9IG1hcmdpbkxlZnQu
dmFsdWVfb3IoMCk7CkBAIC00NzYsNyArNDc2LDcgQEAgSG9yaXpvbnRhbEdlb21ldHJ5IEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2UK
ICAgICByZXR1cm4geyAqbGVmdCwgKnJpZ2h0LCB7ICp3aWR0aCwgeyAqbWFyZ2luTGVmdCwgKm1h
cmdpblJpZ2h0IH0sIHsgbm9uQ29tcHV0ZWRNYXJnaW5MZWZ0LCBub25Db21wdXRlZE1hcmdpblJp
Z2h0IH0gfSB9OwogfQogCi1WZXJ0aWNhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9t
ZXRyeTo6b3V0T2ZGbG93UmVwbGFjZWRWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IExheW91dENvbnRl
eHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IHByZWNvbXB1dGVkSGVpZ2h0KQorVmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1JlcGxhY2VkVmVydGljYWxHZW9tZXRyeShjb25z
dCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgc3Rk
OjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkSGVpZ2h0KQogewogICAgIEFTU0VSVChsYXlvdXRC
b3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgbGF5b3V0Qm94LnJlcGxhY2VkKCkpOwogCkBA
IC00OTgsNyArNDk4LDcgQEAgVmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6Om91dE9mRmxvd1JlcGxhY2VkVmVydGljYWxHZW9tZXRyeSgKIAogICAgIGF1dG8gdG9w
ID0gY29tcHV0ZWRWYWx1ZUlmTm90QXV0byhzdHlsZS5sb2dpY2FsVG9wKCksIGNvbnRhaW5pbmdC
bG9ja1dpZHRoKTsKICAgICBhdXRvIGJvdHRvbSA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5
bGUubG9naWNhbEJvdHRvbSgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7Ci0gICAgYXV0byBoZWln
aHQgPSBpbmxpbmVSZXBsYWNlZEhlaWdodEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRC
b3gsIHByZWNvbXB1dGVkSGVpZ2h0KS5oZWlnaHQ7CisgICAgYXV0byBoZWlnaHQgPSBpbmxpbmVS
ZXBsYWNlZEhlaWdodEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIHVzZWRIZWln
aHQpLmhlaWdodDsKICAgICBhdXRvIG1hcmdpblRvcCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8o
c3R5bGUubWFyZ2luVG9wKCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKICAgICBhdXRvIG1hcmdp
bkJvdHRvbSA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubWFyZ2luQm90dG9tKCksIGNv
bnRhaW5pbmdCbG9ja1dpZHRoKTsKICAgICBhdXRvIHBhZGRpbmdUb3AgPSBkaXNwbGF5Qm94LnBh
ZGRpbmdUb3AoKS52YWx1ZV9vcigwKTsKQEAgLTU0NSw3ICs1NDUsNyBAQCBWZXJ0aWNhbEdlb21l
dHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93UmVwbGFjZWRWZXJ0aWNh
bEdlb21ldHJ5KAogICAgIHJldHVybiB7ICp0b3AsICpib3R0b20sIHsgaGVpZ2h0LCB7ICptYXJn
aW5Ub3AsICptYXJnaW5Cb3R0b20gfSwgeyB9IH0gfTsKIH0KIAotSG9yaXpvbnRhbEdlb21ldHJ5
IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93UmVwbGFjZWRIb3Jpem9udGFs
R2VvbWV0cnkoY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBs
YXlvdXRCb3gsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gcHJlY29tcHV0ZWRXaWR0aCkKK0hv
cml6b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1Jl
cGxhY2VkSG9yaXpvbnRhbEdlb21ldHJ5KGNvbnN0IExheW91dENvbnRleHQmIGxheW91dENvbnRl
eHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRX
aWR0aCkKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYm
IGxheW91dEJveC5yZXBsYWNlZCgpKTsKIApAQCAtNTc1LDcgKzU3NSw3IEBAIEhvcml6b250YWxH
ZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1JlcGxhY2VkSG9y
aXpvbnRhbEdlb21lCiAgICAgYXV0byBtYXJnaW5SaWdodCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1
dG8oc3R5bGUubWFyZ2luUmlnaHQoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwogICAgIGF1dG8g
bm9uQ29tcHV0ZWRNYXJnaW5MZWZ0ID0gbWFyZ2luTGVmdC52YWx1ZV9vcigwKTsKICAgICBhdXRv
IG5vbkNvbXB1dGVkTWFyZ2luUmlnaHQgPSBtYXJnaW5SaWdodC52YWx1ZV9vcigwKTsKLSAgICBh
dXRvIHdpZHRoID0gaW5saW5lUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBs
YXlvdXRCb3gsIHByZWNvbXB1dGVkV2lkdGgpLndpZHRoOworICAgIGF1dG8gd2lkdGggPSBpbmxp
bmVSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKGxheW91dENvbnRleHQsIGxheW91dEJveCwgdXNlZFdp
ZHRoKS53aWR0aDsKICAgICBhdXRvIHBhZGRpbmdMZWZ0ID0gZGlzcGxheUJveC5wYWRkaW5nTGVm
dCgpLnZhbHVlX29yKDApOwogICAgIGF1dG8gcGFkZGluZ1JpZ2h0ID0gZGlzcGxheUJveC5wYWRk
aW5nUmlnaHQoKS52YWx1ZV9vcigwKTsKICAgICBhdXRvIGJvcmRlckxlZnQgPSBkaXNwbGF5Qm94
LmJvcmRlckxlZnQoKTsKQEAgLTY0Myw3ICs2NDMsNyBAQCBIb3Jpem9udGFsR2VvbWV0cnkgRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZEhvcml6b250YWxHZW9t
ZQogICAgIHJldHVybiB7ICpsZWZ0LCAqcmlnaHQsIHsgd2lkdGgsIHsgKm1hcmdpbkxlZnQsICpt
YXJnaW5SaWdodCB9LCB7IG5vbkNvbXB1dGVkTWFyZ2luTGVmdCwgbm9uQ29tcHV0ZWRNYXJnaW5S
aWdodCB9IH0gfTsKIH0KIAotSGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9t
ZXRyeTo6Y29tcGxpY2F0ZWRDYXNlcyhjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0
LCBjb25zdCBCb3gmIGxheW91dEJveCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21w
dXRlZEhlaWdodCkKK0hlaWdodEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
OmNvbXBsaWNhdGVkQ2FzZXMoY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29u
c3QgQm94JiBsYXlvdXRCb3gsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZEhlaWdodCkK
IHsKICAgICBBU1NFUlQoIWxheW91dEJveC5yZXBsYWNlZCgpKTsKICAgICAvLyBUT0RPOiBVc2Ug
Y29tcGxpY2F0ZWQtY2FzZSBmb3IgZG9jdW1lbnQgcmVuZGVyZXIgZm9yIG5vdyAoc2VlIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dIZWlnaHRBbmRNYXJnaW4pLgpAQCAt
NjYzLDcgKzY2Myw3IEBAIEhlaWdodEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnk6OmNvbXBsaWNhdGVkQ2FzZXMoY29uc3QgTGF5b3V0Q29udGV4CiAgICAgYXV0byYgY29udGFp
bmluZ0Jsb2NrRGlzcGxheUJveCA9IGxheW91dENvbnRleHQuZGlzcGxheUJveEZvckxheW91dEJv
eChjb250YWluaW5nQmxvY2spOwogICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGggPSBjb250
YWluaW5nQmxvY2tEaXNwbGF5Qm94LmNvbnRlbnRCb3hXaWR0aCgpOwogCi0gICAgYXV0byBoZWln
aHQgPSBmaXhlZFZhbHVlKHByZWNvbXB1dGVkSGVpZ2h0ID8gTGVuZ3RoIHsgcHJlY29tcHV0ZWRI
ZWlnaHQudmFsdWUoKSwgRml4ZWQgfSA6IHN0eWxlLmxvZ2ljYWxIZWlnaHQoKSk7CisgICAgYXV0
byBoZWlnaHQgPSBmaXhlZFZhbHVlKHVzZWRIZWlnaHQgPyBMZW5ndGggeyB1c2VkSGVpZ2h0LnZh
bHVlKCksIEZpeGVkIH0gOiBzdHlsZS5sb2dpY2FsSGVpZ2h0KCkpOwogICAgIGF1dG8gbWFyZ2lu
VG9wID0gY29tcHV0ZWRWYWx1ZUlmTm90QXV0byhzdHlsZS5tYXJnaW5Ub3AoKSwgY29udGFpbmlu
Z0Jsb2NrV2lkdGgpOwogICAgIGF1dG8gbWFyZ2luQm90dG9tID0gY29tcHV0ZWRWYWx1ZUlmTm90
QXV0byhzdHlsZS5tYXJnaW5Cb3R0b20oKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwogCkBAIC02
ODYsNyArNjg2LDcgQEAgSGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6Y29tcGxpY2F0ZWRDYXNlcyhjb25zdCBMYXlvdXRDb250ZXgKICAgICByZXR1cm4gSGVpZ2h0
QW5kTWFyZ2luIHsgKmhlaWdodCwgeyAqbWFyZ2luVG9wLCAqbWFyZ2luQm90dG9tIH0sIHsgfSB9
OwogfQogCi1XaWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0
aW5nTm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0
LCBjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQsIGNvbnN0IEJveCYg
bGF5b3V0Qm94LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkV2lkdGgpCitX
aWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nTm9uUmVw
bGFjZWRXaWR0aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBG
b3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRXaWR0aCkKIHsKICAgICBBU1NFUlQobGF5
b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgJiYgIWxheW91dEJveC5yZXBsYWNlZCgpKTsK
IApAQCAtNzAxLDcgKzcwMSw3IEBAIFdpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6ZmxvYXRpbmdOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExhCiAgICAgLy8gIzEK
ICAgICBhdXRvIG1hcmdpbiA9IGNvbXB1dGVkTm9uQ29sbGFwc2VkSG9yaXpvbnRhbE1hcmdpblZh
bHVlKGxheW91dENvbnRleHQsIGxheW91dEJveCk7CiAgICAgLy8gIzIKLSAgICBhdXRvIHdpZHRo
ID0gY29tcHV0ZWRWYWx1ZUlmTm90QXV0byhwcmVjb21wdXRlZFdpZHRoID8gTGVuZ3RoIHsgcHJl
Y29tcHV0ZWRXaWR0aC52YWx1ZSgpLCBGaXhlZCB9IDogbGF5b3V0Qm94LnN0eWxlKCkubG9naWNh
bFdpZHRoKCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKKyAgICBhdXRvIHdpZHRoID0gY29tcHV0
ZWRWYWx1ZUlmTm90QXV0byh1c2VkV2lkdGggPyBMZW5ndGggeyB1c2VkV2lkdGgudmFsdWUoKSwg
Rml4ZWQgfSA6IGxheW91dEJveC5zdHlsZSgpLmxvZ2ljYWxXaWR0aCgpLCBjb250YWluaW5nQmxv
Y2tXaWR0aCk7CiAgICAgaWYgKCF3aWR0aCkKICAgICAgICAgd2lkdGggPSBzaHJpbmtUb0ZpdFdp
ZHRoKGxheW91dENvbnRleHQsIGZvcm1hdHRpbmdDb250ZXh0LCBsYXlvdXRCb3gpOwogCkBAIC03
MDksMTcgKzcwOSwxNyBAQCBXaWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnk6OmZsb2F0aW5nTm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihMYQogICAgIHJldHVybiBXaWR0
aEFuZE1hcmdpbiB7ICp3aWR0aCwgbWFyZ2luLCBtYXJnaW4gfTsKIH0KIAotSGVpZ2h0QW5kTWFy
Z2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZEhlaWdodEFu
ZE1hcmdpbihjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxh
eW91dEJveCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZEhlaWdodCkKK0hl
aWdodEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nUmVwbGFj
ZWRIZWlnaHRBbmRNYXJnaW4oY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29u
c3QgQm94JiBsYXlvdXRCb3gsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZEhlaWdodCkK
IHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgJiYgbGF5b3V0
Qm94LnJlcGxhY2VkKCkpOwogCiAgICAgLy8gMTAuNi4yIElubGluZSByZXBsYWNlZCBlbGVtZW50
cywgYmxvY2stbGV2ZWwgcmVwbGFjZWQgZWxlbWVudHMgaW4gbm9ybWFsIGZsb3csICdpbmxpbmUt
YmxvY2snCiAgICAgLy8gcmVwbGFjZWQgZWxlbWVudHMgaW4gbm9ybWFsIGZsb3cgYW5kIGZsb2F0
aW5nIHJlcGxhY2VkIGVsZW1lbnRzCiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250
ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIltIZWlnaHRdW01hcmdpbl0gLT4gZmxvYXRpbmcgcmVwbGFj
ZWQgLT4gcmVkaXJlY3RlZCB0byBpbmxpbmUgcmVwbGFjZWQiKTsKLSAgICByZXR1cm4gaW5saW5l
UmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBwcmVjb21w
dXRlZEhlaWdodCk7CisgICAgcmV0dXJuIGlubGluZVJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKGxh
eW91dENvbnRleHQsIGxheW91dEJveCwgdXNlZEhlaWdodCk7CiB9CiAKLVdpZHRoQW5kTWFyZ2lu
IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZFdpZHRoQW5kTWFy
Z2luKGNvbnN0IExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkV2lkdGgpCitXaWR0aEFu
ZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nUmVwbGFjZWRXaWR0
aEFuZE1hcmdpbihjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gm
IGxheW91dEJveCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgpCiB7CiAgICAg
QVNTRVJUKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpICYmIGxheW91dEJveC5yZXBs
YWNlZCgpKTsKIApAQCAtNzMwLDQ2ICs3MzAsNDYgQEAgV2lkdGhBbmRNYXJnaW4gRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QK
ICAgICBhdXRvIG1hcmdpbiA9IGNvbXB1dGVkTm9uQ29sbGFwc2VkSG9yaXpvbnRhbE1hcmdpblZh
bHVlKGxheW91dENvbnRleHQsIGxheW91dEJveCk7CiAKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9y
bWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiW0hlaWdodF1bTWFyZ2luXSAtPiBmbG9h
dGluZyByZXBsYWNlZCAtPiByZWRpcmVjdGVkIHRvIGlubGluZSByZXBsYWNlZCIpOwotICAgIHJl
dHVybiBpbmxpbmVSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKGxheW91dENvbnRleHQsIGxheW91dEJv
eCwgcHJlY29tcHV0ZWRXaWR0aCwgbWFyZ2luLmxlZnQsIG1hcmdpbi5yaWdodCk7CisgICAgcmV0
dXJuIGlubGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94
LCB1c2VkV2lkdGgsIG1hcmdpbi5sZWZ0LCBtYXJnaW4ucmlnaHQpOwogfQogCi1WZXJ0aWNhbEdl
b21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93VmVydGljYWxHZW9t
ZXRyeShjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91
dEJveCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZEhlaWdodCkKK1ZlcnRp
Y2FsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dWZXJ0aWNh
bEdlb21ldHJ5KGNvbnN0IExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYg
bGF5b3V0Qm94LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRIZWlnaHQpCiB7CiAgICAg
QVNTRVJUKGxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSk7CiAKICAgICBpZiAoIWxh
eW91dEJveC5yZXBsYWNlZCgpKQotICAgICAgICByZXR1cm4gb3V0T2ZGbG93Tm9uUmVwbGFjZWRW
ZXJ0aWNhbEdlb21ldHJ5KGxheW91dENvbnRleHQsIGxheW91dEJveCwgcHJlY29tcHV0ZWRIZWln
aHQpOwotICAgIHJldHVybiBvdXRPZkZsb3dSZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkobGF5b3V0
Q29udGV4dCwgbGF5b3V0Qm94LCBwcmVjb21wdXRlZEhlaWdodCk7CisgICAgICAgIHJldHVybiBv
dXRPZkZsb3dOb25SZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkobGF5b3V0Q29udGV4dCwgbGF5b3V0
Qm94LCB1c2VkSGVpZ2h0KTsKKyAgICByZXR1cm4gb3V0T2ZGbG93UmVwbGFjZWRWZXJ0aWNhbEdl
b21ldHJ5KGxheW91dENvbnRleHQsIGxheW91dEJveCwgdXNlZEhlaWdodCk7CiB9CiAKLUhvcml6
b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd0hvcml6
b250YWxHZW9tZXRyeShMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBGb3JtYXR0
aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBzdGQ6
Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkV2lkdGgpCitIb3Jpem9udGFsR2VvbWV0
cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0
cnkoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgRm9ybWF0dGluZ0NvbnRleHQm
IGZvcm1hdHRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiB1c2VkV2lkdGgpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc091dE9mRmxv
d1Bvc2l0aW9uZWQoKSk7CiAKICAgICBpZiAoIWxheW91dEJveC5yZXBsYWNlZCgpKQotICAgICAg
ICByZXR1cm4gb3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2VvbWV0cnkobGF5b3V0Q29u
dGV4dCwgZm9ybWF0dGluZ0NvbnRleHQsIGxheW91dEJveCwgcHJlY29tcHV0ZWRXaWR0aCk7Ci0g
ICAgcmV0dXJuIG91dE9mRmxvd1JlcGxhY2VkSG9yaXpvbnRhbEdlb21ldHJ5KGxheW91dENvbnRl
eHQsIGxheW91dEJveCwgcHJlY29tcHV0ZWRXaWR0aCk7CisgICAgICAgIHJldHVybiBvdXRPZkZs
b3dOb25SZXBsYWNlZEhvcml6b250YWxHZW9tZXRyeShsYXlvdXRDb250ZXh0LCBmb3JtYXR0aW5n
Q29udGV4dCwgbGF5b3V0Qm94LCB1c2VkV2lkdGgpOworICAgIHJldHVybiBvdXRPZkZsb3dSZXBs
YWNlZEhvcml6b250YWxHZW9tZXRyeShsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIHVzZWRXaWR0
aCk7CiB9CiAKLUhlaWdodEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZs
b2F0aW5nSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IExheW91dENvbnRleHQmIGxheW91dENvbnRleHQs
IGNvbnN0IEJveCYgbGF5b3V0Qm94LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1
dGVkSGVpZ2h0KQorSGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
ZmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4oY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4
dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZEhl
aWdodCkKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpOwog
CiAgICAgaWYgKCFsYXlvdXRCb3gucmVwbGFjZWQoKSkKLSAgICAgICAgcmV0dXJuIGNvbXBsaWNh
dGVkQ2FzZXMobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBwcmVjb21wdXRlZEhlaWdodCk7Ci0g
ICAgcmV0dXJuIGZsb2F0aW5nUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwg
bGF5b3V0Qm94LCBwcmVjb21wdXRlZEhlaWdodCk7CisgICAgICAgIHJldHVybiBjb21wbGljYXRl
ZENhc2VzKGxheW91dENvbnRleHQsIGxheW91dEJveCwgdXNlZEhlaWdodCk7CisgICAgcmV0dXJu
IGZsb2F0aW5nUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94
LCB1c2VkSGVpZ2h0KTsKIH0KIAotV2lkdGhBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjpmbG9hdGluZ1dpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91dENvbnRl
eHQsIGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCwgY29uc3QgQm94
JiBsYXlvdXRCb3gsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gcHJlY29tcHV0ZWRXaWR0aCkK
K1dpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdXaWR0
aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBGb3JtYXR0aW5n
Q29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IHVzZWRXaWR0aCkKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94Lmlz
RmxvYXRpbmdQb3NpdGlvbmVkKCkpOwogCiAgICAgaWYgKCFsYXlvdXRCb3gucmVwbGFjZWQoKSkK
LSAgICAgICAgcmV0dXJuIGZsb2F0aW5nTm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihsYXlvdXRD
b250ZXh0LCBmb3JtYXR0aW5nQ29udGV4dCwgbGF5b3V0Qm94LCBwcmVjb21wdXRlZFdpZHRoKTsK
LSAgICByZXR1cm4gZmxvYXRpbmdSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKGxheW91dENvbnRleHQs
IGxheW91dEJveCwgcHJlY29tcHV0ZWRXaWR0aCk7CisgICAgICAgIHJldHVybiBmbG9hdGluZ05v
blJlcGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgZm9ybWF0dGluZ0NvbnRleHQs
IGxheW91dEJveCwgdXNlZFdpZHRoKTsKKyAgICByZXR1cm4gZmxvYXRpbmdSZXBsYWNlZFdpZHRo
QW5kTWFyZ2luKGxheW91dENvbnRleHQsIGxheW91dEJveCwgdXNlZFdpZHRoKTsKIH0KIAotSGVp
Z2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5saW5lUmVwbGFjZWRI
ZWlnaHRBbmRNYXJnaW4oY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3Qg
Qm94JiBsYXlvdXRCb3gsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gcHJlY29tcHV0ZWRIZWln
aHQpCitIZWlnaHRBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbmxpbmVS
ZXBsYWNlZEhlaWdodEFuZE1hcmdpbihjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0
LCBjb25zdCBCb3gmIGxheW91dEJveCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkSGVp
Z2h0KQogewogICAgIEFTU0VSVCgobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8
IGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpIHx8IGxheW91dEJveC5pc0luRmxvdygp
KSAmJiBsYXlvdXRCb3gucmVwbGFjZWQoKSk7CiAKQEAgLTc4OSw4ICs3ODksOCBAQCBIZWlnaHRB
bmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbmxpbmVSZXBsYWNlZEhlaWdo
dEFuZE1hcmdpbihjb25zdAogICAgIGF1dG8mIHN0eWxlID0gbGF5b3V0Qm94LnN0eWxlKCk7CiAg
ICAgYXV0byByZXBsYWNlZCA9IGxheW91dEJveC5yZXBsYWNlZCgpOwogCi0gICAgYXV0byBoZWln
aHQgPSBmaXhlZFZhbHVlKHByZWNvbXB1dGVkSGVpZ2h0ID8gTGVuZ3RoIHsgcHJlY29tcHV0ZWRI
ZWlnaHQudmFsdWUoKSwgRml4ZWQgfSA6IHN0eWxlLmxvZ2ljYWxIZWlnaHQoKSk7Ci0gICAgYXV0
byBoZWlnaHRJc0F1dG8gPSAhcHJlY29tcHV0ZWRIZWlnaHQgJiYgc3R5bGUubG9naWNhbEhlaWdo
dCgpLmlzQXV0bygpOworICAgIGF1dG8gaGVpZ2h0ID0gZml4ZWRWYWx1ZSh1c2VkSGVpZ2h0ID8g
TGVuZ3RoIHsgdXNlZEhlaWdodC52YWx1ZSgpLCBGaXhlZCB9IDogc3R5bGUubG9naWNhbEhlaWdo
dCgpKTsKKyAgICBhdXRvIGhlaWdodElzQXV0byA9ICF1c2VkSGVpZ2h0ICYmIHN0eWxlLmxvZ2lj
YWxIZWlnaHQoKS5pc0F1dG8oKTsKICAgICBhdXRvIHdpZHRoSXNBdXRvID0gc3R5bGUubG9naWNh
bFdpZHRoKCkuaXNBdXRvKCk7CiAKICAgICBpZiAoIWhlaWdodCAmJiAhaGVpZ2h0SXNBdXRvKQpA
QCAtODE4LDcgKzgxOCw3IEBAIEhlaWdodEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OmlubGluZVJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKGNvbnN0CiB9CiAKIFdpZHRoQW5k
TWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5saW5lUmVwbGFjZWRXaWR0aEFu
ZE1hcmdpbihjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxh
eW91dEJveCwKLSAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkV2lkdGgs
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gcHJlY29tcHV0ZWRNYXJnaW5MZWZ0LCBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkTWFyZ2luUmlnaHQpCisgICAgc3RkOjpvcHRp
b25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gcHJl
Y29tcHV0ZWRNYXJnaW5MZWZ0LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVk
TWFyZ2luUmlnaHQpCiB7CiAgICAgQVNTRVJUKChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlv
bmVkKCkgfHwgbGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgfHwgbGF5b3V0Qm94Lmlz
SW5GbG93KCkpICYmIGxheW91dEJveC5yZXBsYWNlZCgpKTsKIApAQCAtODY2LDcgKzg2Niw3IEBA
IFdpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5saW5lUmVwbGFj
ZWRXaWR0aEFuZE1hcmdpbihjb25zdCBMCiAgICAgYXV0byBtYXJnaW5SaWdodCA9IGNvbXB1dGVN
YXJnaW5SaWdodCgpOwogICAgIGF1dG8gbm9uQ29tcHV0ZWRNYXJnaW5MZWZ0ID0gY29tcHV0ZWRW
YWx1ZUlmTm90QXV0byhzdHlsZS5tYXJnaW5MZWZ0KCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKS52
YWx1ZV9vcigwKTsKICAgICBhdXRvIG5vbkNvbXB1dGVkTWFyZ2luUmlnaHQgPSBjb21wdXRlZFZh
bHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdpblJpZ2h0KCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKS52
YWx1ZV9vcigwKTsKLSAgICBhdXRvIHdpZHRoID0gY29tcHV0ZWRWYWx1ZUlmTm90QXV0byhwcmVj
b21wdXRlZFdpZHRoID8gTGVuZ3RoIHsgcHJlY29tcHV0ZWRXaWR0aC52YWx1ZSgpLCBGaXhlZCB9
IDogc3R5bGUubG9naWNhbFdpZHRoKCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKKyAgICBhdXRv
IHdpZHRoID0gY29tcHV0ZWRWYWx1ZUlmTm90QXV0byh1c2VkV2lkdGggPyBMZW5ndGggeyB1c2Vk
V2lkdGgudmFsdWUoKSwgRml4ZWQgfSA6IHN0eWxlLmxvZ2ljYWxXaWR0aCgpLCBjb250YWluaW5n
QmxvY2tXaWR0aCk7CiAKICAgICBhdXRvIGhlaWdodElzQXV0byA9IHN0eWxlLmxvZ2ljYWxIZWln
aHQoKS5pc0F1dG8oKTsKICAgICBhdXRvIGhlaWdodCA9IGZpeGVkVmFsdWUoc3R5bGUubG9naWNh
bEhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGFjOWQyMTUz
MmM4ZjllYjU0Zjc2MmM0MWE1ODZhOTgwZWRhNDJiNTEuLmE0ZGU5YWQzZDkwZDUyMTEyMDRjOTNj
ZDgwNGVjYWEwZTI0Y2NiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9j
a2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAt
MjQyLDEzICsyNDIsMTMgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSW5G
bG93UG9zaXRpb25lZFBvc2l0aW9uKGNvbnN0IExheW91dENvbnRleHQKIAogdm9pZCBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5
b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CiB7Ci0gICAgYXV0byBjb21w
dXRlID0gWyZdKHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gcHJlY29tcHV0ZWRXaWR0aCkgLT4g
V2lkdGhBbmRNYXJnaW4geworICAgIGF1dG8gY29tcHV0ZSA9IFsmXShzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IHVzZWRXaWR0aCkgLT4gV2lkdGhBbmRNYXJnaW4gewogCiAgICAgICAgIGlmIChs
YXlvdXRCb3guaXNJbkZsb3coKSkKLSAgICAgICAgICAgIHJldHVybiBHZW9tZXRyeTo6aW5GbG93
V2lkdGhBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBwcmVjb21wdXRlZFdpZHRo
KTsKKyAgICAgICAgICAgIHJldHVybiBHZW9tZXRyeTo6aW5GbG93V2lkdGhBbmRNYXJnaW4obGF5
b3V0Q29udGV4dCwgbGF5b3V0Qm94LCB1c2VkV2lkdGgpOwogCiAgICAgICAgIGlmIChsYXlvdXRC
b3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBHZW9tZXRyeTo6
ZmxvYXRpbmdXaWR0aEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCAqdGhpcywgbGF5b3V0Qm94LCBw
cmVjb21wdXRlZFdpZHRoKTsKKyAgICAgICAgICAgIHJldHVybiBHZW9tZXRyeTo6ZmxvYXRpbmdX
aWR0aEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCAqdGhpcywgbGF5b3V0Qm94LCB1c2VkV2lkdGgp
OwogCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4geyB9OwpA
QCAtMjc4LDEzICsyNzgsMTMgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
V2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwKIAogdm9pZCBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IExheW91dENv
bnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAogewotICAg
IGF1dG8gY29tcHV0ZSA9IFsmXShzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVk
SGVpZ2h0KSAtPiBIZWlnaHRBbmRNYXJnaW4geworICAgIGF1dG8gY29tcHV0ZSA9IFsmXShzdGQ6
Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRIZWlnaHQpIC0+IEhlaWdodEFuZE1hcmdpbiB7CiAK
ICAgICAgICAgaWYgKGxheW91dEJveC5pc0luRmxvdygpKQotICAgICAgICAgICAgcmV0dXJuIEdl
b21ldHJ5OjppbkZsb3dIZWlnaHRBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBw
cmVjb21wdXRlZEhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gR2VvbWV0cnk6OmluRmxvd0hl
aWdodEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIHVzZWRIZWlnaHQpOwogCiAg
ICAgICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgICAg
IHJldHVybiBHZW9tZXRyeTo6ZmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwg
bGF5b3V0Qm94LCBwcmVjb21wdXRlZEhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gR2VvbWV0
cnk6OmZsb2F0aW5nSGVpZ2h0QW5kTWFyZ2luKGxheW91dENvbnRleHQsIGxheW91dEJveCwgdXNl
ZEhlaWdodCk7CiAKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDc0YTJlZGE2ZjMyMmMyMmRh
OTVjY2YyMDg0MjZjN2M5NTQ2MmI5YjMuLmFmY2FkYjI4Yjc1ZGEzMzA3NGVkMWJkMWI3NDQ4OTZh
NzdlMjVjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC02OSw4ICs2OSw4IEBA
IHByaXZhdGU6CiAgICAgLy8gVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHBvc2l0aW9uaW5nIGFuZCBz
aXppbmcgZm9yIGJveGVzIHBhcnRpY2lwYXRpbmcgaW4gYSBibG9jayBmb3JtYXR0aW5nIGNvbnRl
eHQuCiAgICAgY2xhc3MgR2VvbWV0cnkgOiBwdWJsaWMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBIZWlnaHRBbmRNYXJnaW4gaW5GbG93
SGVpZ2h0QW5kTWFyZ2luKGNvbnN0IExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkSGVpZ2h0ID0geyB9KTsKLSAgICAgICAgc3Rh
dGljIFdpZHRoQW5kTWFyZ2luIGluRmxvd1dpZHRoQW5kTWFyZ2luKGNvbnN0IExheW91dENvbnRl
eHQmLCBjb25zdCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkV2lk
dGggPSB7IH0pOworICAgICAgICBzdGF0aWMgSGVpZ2h0QW5kTWFyZ2luIGluRmxvd0hlaWdodEFu
ZE1hcmdpbihjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiB1c2VkSGVpZ2h0ID0geyB9KTsKKyAgICAgICAgc3RhdGljIFdpZHRoQW5kTWFy
Z2luIGluRmxvd1dpZHRoQW5kTWFyZ2luKGNvbnN0IExheW91dENvbnRleHQmLCBjb25zdCBCb3gm
LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRXaWR0aCA9IHsgfSk7CiAKICAgICAgICAg
c3RhdGljIFBvc2l0aW9uIHN0YXRpY1Bvc2l0aW9uKGNvbnN0IExheW91dENvbnRleHQmLCBjb25z
dCBCb3gmKTsKICAgICAgICAgc3RhdGljIFBvc2l0aW9uIGluRmxvd1Bvc2l0aW9uZWRQb3NpdGlv
bihjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CkBAIC0xMDEsOSArMTAxLDkgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIHN0YXRpYyBMYXlvdXRVbml0IG5vbkNvbGxhcHNlZE1hcmdp
blRvcChjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAgICAgICAgIH07CiAKLSAg
ICAgICAgc3RhdGljIEhlaWdodEFuZE1hcmdpbiBpbkZsb3dOb25SZXBsYWNlZEhlaWdodEFuZE1h
cmdpbihjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBwcmVjb21wdXRlZEhlaWdodCA9IHsgfSk7Ci0gICAgICAgIHN0YXRpYyBXaWR0aEFu
ZE1hcmdpbiBpbkZsb3dOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKGNvbnN0IExheW91dENvbnRl
eHQmLCBjb25zdCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkV2lk
dGggPSB7IH0pOwotICAgICAgICBzdGF0aWMgV2lkdGhBbmRNYXJnaW4gaW5GbG93UmVwbGFjZWRX
aWR0aEFuZE1hcmdpbihjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRp
b25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZFdpZHRoID0geyB9KTsKKyAgICAgICAgc3RhdGlj
IEhlaWdodEFuZE1hcmdpbiBpbkZsb3dOb25SZXBsYWNlZEhlaWdodEFuZE1hcmdpbihjb25zdCBM
YXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB1c2Vk
SGVpZ2h0ID0geyB9KTsKKyAgICAgICAgc3RhdGljIFdpZHRoQW5kTWFyZ2luIGluRmxvd05vblJl
cGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QgTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIHN0
ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdpZHRoID0geyB9KTsKKyAgICAgICAgc3RhdGlj
IFdpZHRoQW5kTWFyZ2luIGluRmxvd1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QgTGF5b3V0
Q29udGV4dCYsIGNvbnN0IEJveCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdpZHRo
ID0geyB9KTsKICAgICAgICAgc3RhdGljIFBvc2l0aW9uIHN0YXRpY1Bvc2l0aW9uRm9yT3V0T2ZG
bG93UG9zaXRpb25lZChjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAgICAgfTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Js
b2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKaW5kZXgg
YTA4MWZkYTBkODgzNDVhYmYyYzI3YTJhYzcwZGY0NWY0NzhkM2E1Mi4uODNmOWI5N2JhNTZmYTUx
MzMxYjBiY2ZiZWJiMzRkNzYyOWQ5ZjU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5n
Q29udGV4dEdlb21ldHJ5LmNwcApAQCAtNzcsNyArNzcsNyBAQCBzdGF0aWMgV2lkdGhBbmRNYXJn
aW4gc3RyZXRjaFdpZHRoVG9Jbml0aWFsQ29udGFpbmluZ0Jsb2NrKFdpZHRoQW5kTWFyZ2luIHdp
ZHRoQQogICAgIHJldHVybiB3aWR0aEFuZE1hcmdpbjsKIH0KIAotSGVpZ2h0QW5kTWFyZ2luIEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZEhlaWdodEFu
ZE1hcmdpbihjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxh
eW91dEJveCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZEhlaWdodCkKK0hl
aWdodEFuZE1hcmdpbiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93Tm9u
UmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4oY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4
dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZEhl
aWdodCkKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzSW5GbG93KCkgJiYgIWxheW91dEJveC5y
ZXBsYWNlZCgpKTsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzT3ZlcmZsb3dWaXNpYmxlKCkpOwpA
QCAtMTA2LDcgKzEwNiw3IEBAIEhlaWdodEFuZE1hcmdpbiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVwbGFjZWRIZWlnaHRBbmRNYXJnCiAgICAgICAgIFZlcnRp
Y2FsRWRnZXMgY29sbGFwc2VkTWFyZ2luID0geyBNYXJnaW5Db2xsYXBzZTo6bWFyZ2luVG9wKGxh
eW91dENvbnRleHQsIGxheW91dEJveCksIE1hcmdpbkNvbGxhcHNlOjptYXJnaW5Cb3R0b20obGF5
b3V0Q29udGV4dCwgbGF5b3V0Qm94KSB9OwogICAgICAgICBhdXRvIGJvcmRlckFuZFBhZGRpbmdU
b3AgPSBkaXNwbGF5Qm94LmJvcmRlclRvcCgpICsgZGlzcGxheUJveC5wYWRkaW5nVG9wKCkudmFs
dWVfb3IoMCk7CiAgICAgICAgIAotICAgICAgICBhdXRvIGhlaWdodCA9IHByZWNvbXB1dGVkSGVp
Z2h0ID8gTGVuZ3RoIHsgcHJlY29tcHV0ZWRIZWlnaHQudmFsdWUoKSwgRml4ZWQgfSA6IHN0eWxl
LmxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgYXV0byBoZWlnaHQgPSB1c2VkSGVpZ2h0ID8gTGVu
Z3RoIHsgdXNlZEhlaWdodC52YWx1ZSgpLCBGaXhlZCB9IDogc3R5bGUubG9naWNhbEhlaWdodCgp
OwogICAgICAgICBpZiAoIWhlaWdodC5pc0F1dG8oKSkgewogICAgICAgICAgICAgaWYgKGhlaWdo
dC5pc0ZpeGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaGVpZ2h0LnZhbHVlKCksIG5v
bkNvbGxhcHNlZE1hcmdpbiwgY29sbGFwc2VkTWFyZ2luIH07CkBAIC0xNTEsNyArMTUxLDcgQEAg
SGVpZ2h0QW5kTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dO
b25SZXBsYWNlZEhlaWdodEFuZE1hcmcKICAgICByZXR1cm4gaGVpZ2h0QW5kTWFyZ2luOwogfQog
Ci1XaWR0aEFuZE1hcmdpbiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93
Tm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250
ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVj
b21wdXRlZFdpZHRoKQorV2lkdGhBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OmluRmxvd05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QgTGF5b3V0Q29udGV4
dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gdXNlZFdpZHRoKQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNJbkZsb3coKSAm
JiAhbGF5b3V0Qm94LnJlcGxhY2VkKCkpOwogCkBAIC0xODMsNyArMTgzLDcgQEAgV2lkdGhBbmRN
YXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd05vblJlcGxhY2Vk
V2lkdGhBbmRNYXJnaW4KICAgICAgICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0aCA9IGxheW91
dENvbnRleHQuZGlzcGxheUJveEZvckxheW91dEJveCgqY29udGFpbmluZ0Jsb2NrKS5jb250ZW50
Qm94V2lkdGgoKTsKICAgICAgICAgYXV0byYgZGlzcGxheUJveCA9IGxheW91dENvbnRleHQuZGlz
cGxheUJveEZvckxheW91dEJveChsYXlvdXRCb3gpOwogCi0gICAgICAgIGF1dG8gd2lkdGggPSBj
b21wdXRlZFZhbHVlSWZOb3RBdXRvKHByZWNvbXB1dGVkV2lkdGggPyBMZW5ndGggeyBwcmVjb21w
dXRlZFdpZHRoLnZhbHVlKCksIEZpeGVkIH0gOiBzdHlsZS5sb2dpY2FsV2lkdGgoKSwgY29udGFp
bmluZ0Jsb2NrV2lkdGgpOworICAgICAgICBhdXRvIHdpZHRoID0gY29tcHV0ZWRWYWx1ZUlmTm90
QXV0byh1c2VkV2lkdGggPyBMZW5ndGggeyB1c2VkV2lkdGgudmFsdWUoKSwgRml4ZWQgfSA6IHN0
eWxlLmxvZ2ljYWxXaWR0aCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7CiAgICAgICAgIGF1dG8g
bWFyZ2luTGVmdCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubWFyZ2luTGVmdCgpLCBj
b250YWluaW5nQmxvY2tXaWR0aCk7CiAgICAgICAgIGF1dG8gbWFyZ2luUmlnaHQgPSBjb21wdXRl
ZFZhbHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdpblJpZ2h0KCksIGNvbnRhaW5pbmdCbG9ja1dpZHRo
KTsKICAgICAgICAgYXV0byBub25Db21wdXRlZE1hcmdpbkxlZnQgPSBtYXJnaW5MZWZ0LnZhbHVl
X29yKDApOwpAQCAtMjUxLDcgKzI1MSw3IEBAIFdpZHRoQW5kTWFyZ2luIEJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luCiAgICAg
cmV0dXJuIHdpZHRoQW5kTWFyZ2luOwogfQogCi1XaWR0aEFuZE1hcmdpbiBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93UmVwbGFjZWRXaWR0aEFuZE1hcmdpbihjb25zdCBM
YXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZFdpZHRoKQorV2lkdGhBbmRNYXJnaW4gQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd1JlcGxhY2VkV2lkdGhBbmRNYXJn
aW4oY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRC
b3gsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdpZHRoKQogewogICAgIEFTU0VSVChs
YXlvdXRCb3guaXNJbkZsb3coKSAmJiBsYXlvdXRCb3gucmVwbGFjZWQoKSk7CiAKQEAgLTI2MSw3
ICsyNjEsNyBAQCBXaWR0aEFuZE1hcmdpbiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6aW5GbG93UmVwbGFjZWRXaWR0aEFuZE1hcmdpbihjbwogICAgIC8vIDIuIFRoZW4gdGhlIHJ1
bGVzIGZvciBub24tcmVwbGFjZWQgYmxvY2stbGV2ZWwgZWxlbWVudHMgYXJlIGFwcGxpZWQgdG8g
ZGV0ZXJtaW5lIHRoZSBtYXJnaW5zLgogCiAgICAgLy8gIzEKLSAgICBhdXRvIHdpZHRoID0gaW5s
aW5lUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIHByZWNv
bXB1dGVkV2lkdGgpLndpZHRoOworICAgIGF1dG8gd2lkdGggPSBpbmxpbmVSZXBsYWNlZFdpZHRo
QW5kTWFyZ2luKGxheW91dENvbnRleHQsIGxheW91dEJveCwgdXNlZFdpZHRoKS53aWR0aDsKICAg
ICAvLyAjMgogICAgIGF1dG8gbm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbiA9IGluRmxvd05vblJl
cGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCB3aWR0aCk7CiAK
QEAgLTM2NywyMyArMzY3LDIzIEBAIFBvc2l0aW9uIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjppbkZsb3dQb3NpdGlvbmVkUG9zaXRpb24oY29uc3QgTGF5b3V0CiAgICAgcmV0dXJu
IHsgbmV3TGVmdFBvc2l0aW9uLCBuZXdUb3BQb3NpdGlvbiB9OwogfQogCi1IZWlnaHRBbmRNYXJn
aW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd0hlaWdodEFuZE1hcmdp
bihjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJv
eCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZEhlaWdodCkKK0hlaWdodEFu
ZE1hcmdpbiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93SGVpZ2h0QW5k
TWFyZ2luKGNvbnN0IExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5
b3V0Qm94LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRIZWlnaHQpCiB7CiAgICAgQVNT
RVJUKGxheW91dEJveC5pc0luRmxvdygpKTsKIAogICAgIC8vIDEwLjYuMiBJbmxpbmUgcmVwbGFj
ZWQgZWxlbWVudHMsIGJsb2NrLWxldmVsIHJlcGxhY2VkIGVsZW1lbnRzIGluIG5vcm1hbCBmbG93
LCAnaW5saW5lLWJsb2NrJwogICAgIC8vIHJlcGxhY2VkIGVsZW1lbnRzIGluIG5vcm1hbCBmbG93
IGFuZCBmbG9hdGluZyByZXBsYWNlZCBlbGVtZW50cwogICAgIGlmIChsYXlvdXRCb3gucmVwbGFj
ZWQoKSkKLSAgICAgICAgcmV0dXJuIGlubGluZVJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKGxheW91
dENvbnRleHQsIGxheW91dEJveCwgcHJlY29tcHV0ZWRIZWlnaHQpOworICAgICAgICByZXR1cm4g
aW5saW5lUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCB1
c2VkSGVpZ2h0KTsKIAogICAgIEhlaWdodEFuZE1hcmdpbiBoZWlnaHRBbmRNYXJnaW47CiAgICAg
Ly8gVE9ETzogRmlndXJlIG91dCB0aGUgY2FzZSBmb3IgdGhlIGRvY3VtZW50IGVsZW1lbnQuIExl
dCdzIGp1c3QgY29tcGxpY2F0ZWQtY2FzZSBpdCBmb3Igbm93LgogICAgIGlmIChsYXlvdXRCb3gu
aXNPdmVyZmxvd1Zpc2libGUoKSAmJiAhbGF5b3V0Qm94LmlzRG9jdW1lbnRCb3goKSkKLSAgICAg
ICAgaGVpZ2h0QW5kTWFyZ2luID0gaW5GbG93Tm9uUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4obGF5
b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBwcmVjb21wdXRlZEhlaWdodCk7CisgICAgICAgIGhlaWdo
dEFuZE1hcmdpbiA9IGluRmxvd05vblJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKGxheW91dENvbnRl
eHQsIGxheW91dEJveCwgdXNlZEhlaWdodCk7CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIDEwLjYu
NiBDb21wbGljYXRlZCBjYXNlcwogICAgICAgICAvLyBCbG9jay1sZXZlbCwgbm9uLXJlcGxhY2Vk
IGVsZW1lbnRzIGluIG5vcm1hbCBmbG93IHdoZW4gJ292ZXJmbG93JyBkb2VzIG5vdCBjb21wdXRl
IHRvICd2aXNpYmxlJyAoZXhjZXB0IGlmIHRoZSAnb3ZlcmZsb3cnIHByb3BlcnR5J3MgdmFsdWUg
aGFzIGJlZW4gcHJvcGFnYXRlZCB0byB0aGUgdmlld3BvcnQpLgotICAgICAgICBoZWlnaHRBbmRN
YXJnaW4gPSBjb21wbGljYXRlZENhc2VzKGxheW91dENvbnRleHQsIGxheW91dEJveCwgcHJlY29t
cHV0ZWRIZWlnaHQpOworICAgICAgICBoZWlnaHRBbmRNYXJnaW4gPSBjb21wbGljYXRlZENhc2Vz
KGxheW91dENvbnRleHQsIGxheW91dEJveCwgdXNlZEhlaWdodCk7CiAgICAgfQogCiAgICAgaWYg
KCFpc1N0cmV0Y2hlZFRvSW5pdGlhbENvbnRhaW5pbmdCbG9jayhsYXlvdXRDb250ZXh0LCBsYXlv
dXRCb3gpKQpAQCAtMzk2LDEzICszOTYsMTMgQEAgSGVpZ2h0QW5kTWFyZ2luIEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dIZWlnaHRBbmRNYXJnaW4oY29uc3QgTGEKICAg
ICByZXR1cm4gaGVpZ2h0QW5kTWFyZ2luOwogfQogCi1XaWR0aEFuZE1hcmdpbiBCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93V2lkdGhBbmRNYXJnaW4oY29uc3QgTGF5b3V0
Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gcHJlY29tcHV0ZWRXaWR0aCkKK1dpZHRoQW5kTWFyZ2luIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dXaWR0aEFuZE1hcmdpbihjb25zdCBMYXlv
dXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgc3RkOjpvcHRp
b25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0lu
RmxvdygpKTsKIAogICAgIGlmICghbGF5b3V0Qm94LnJlcGxhY2VkKCkpCi0gICAgICAgIHJldHVy
biBpbkZsb3dOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKGxheW91dENvbnRleHQsIGxheW91dEJv
eCwgcHJlY29tcHV0ZWRXaWR0aCk7Ci0gICAgcmV0dXJuIGluRmxvd1JlcGxhY2VkV2lkdGhBbmRN
YXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBwcmVjb21wdXRlZFdpZHRoKTsKKyAgICAg
ICAgcmV0dXJuIGluRmxvd05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwg
bGF5b3V0Qm94LCB1c2VkV2lkdGgpOworICAgIHJldHVybiBpbkZsb3dSZXBsYWNlZFdpZHRoQW5k
TWFyZ2luKGxheW91dENvbnRleHQsIGxheW91dEJveCwgdXNlZFdpZHRoKTsKIH0KIAogYm9vbCBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5zdHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHNOZWVkQ2hpbGRyZW5XaWR0aChjb25zdCBCb3gmIGxheW91dEJveCkK
</data>
<flag name="review"
          id="366743"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>