<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>261062</bug_id>
          
          <creation_ts>2010-12-23 11:43:19 +0000</creation_ts>
          <short_desc>JJ: Mark episodes to keep</short_desc>
          <delta_ts>2012-09-25 23:13:45 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>amarok</product>
          <component>Podcast</component>
          <version>2.4-GIT</version>
          <rep_platform>Unlisted Binaries</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>wishlist</bug_severity>
          <target_milestone>2.4.0</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Bart Cerneels">bart.cerneels</reporter>
          <assigned_to name="Amarok Bugs">amarok-bugs-null</assigned_to>
          <cc>bart.cerneels</cc>
    
    <cc>x8lucas8x</cc>
          
          <cf_commitlink>http://commits.kde.org/amarok/42b37312a71bf5f23f61b8af6820cda9d7bbb4fa</cf_commitlink>
          <cf_versionfixedin>2.7</cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1063258</commentid>
    <comment_count>0</comment_count>
    <who name="Bart Cerneels">bart.cerneels</who>
    <bug_when>2010-12-23 11:43:19 +0000</bug_when>
    <thetext>Version:           2.4-GIT
OS:                Linux

Currently downloaded files are not kept when the episode is no longer shown in the Podcast section. This behavior can not be configured but is tied to the purge settings of each channel.

It&apos;s possible to add a &quot;keep downloaded file&quot; checkbox to episodes to prevent the deletion from happening. We should perhaps also show these &quot;kept&quot; episodes in the list regardless of the purgecount. So even if a channel has purgecount 5 and 3 episodes marked to keep it will show 5 + maximum 3 older kept episodes.

Reproducible: Always</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103177</commentid>
    <comment_count>1</comment_count>
      <attachid>58502</attachid>
    <who name="Lucas Lira Gomes">x8lucas8x</who>
    <bug_when>2011-04-01 17:00:35 +0000</bug_when>
    <thetext>Created attachment 58502
Now downloaded episodes are kept in HD, if &quot;keep episode&quot; checkbox is checked.  These &quot;kept&quot; episodes are shown in the list regardless of the purgecount, even if they  are not downloaded.

This is the diff between older source code and the source code with my changes.

I tried to fix the bug mentioned here. This is my first time so it may not be
perfect :( I am looking forward for the reviews and I&apos;ll try to fix any
problems.
Thank you.

The diff is here too:

https://git.reviewboard.kde.org/r/100998/</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58502</attachid>
            <date>2011-04-01 17:00:35 +0000</date>
            <delta_ts>2011-04-01 17:00:35 +0000</delta_ts>
            <desc>Now downloaded episodes are kept in HD, if &quot;keep episode&quot; checkbox is checked.  These &quot;kept&quot; episodes are shown in the list regardless of the purgecount, even if they  are not downloaded.</desc>
            <filename>amarok.diff</filename>
            <type>text/plain</type>
            <size>33684</size>
            <attacher name="Lucas Lira Gomes">x8lucas8x</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL3NyYy9icm93c2Vycy9wbGF5bGlzdGJyb3dzZXIvUG9kY2FzdE1vZGVsLmNw
cCBiL3NyYy9icm93c2Vycy9wbGF5bGlzdGJyb3dzZXIvUG9kY2FzdE1vZGVsLmNwcAppbmRleCA0
YWFkNTE4Li44MDA1ZjlhIDEwMDY0NAotLS0gYS9zcmMvYnJvd3NlcnMvcGxheWxpc3Ricm93c2Vy
L1BvZGNhc3RNb2RlbC5jcHAKKysrIGIvc3JjL2Jyb3dzZXJzL3BsYXlsaXN0YnJvd3Nlci9Qb2Rj
YXN0TW9kZWwuY3BwCkBAIC02NCw2ICs2NCw3IEBAIFBsYXlsaXN0QnJvd3Nlck5TOjpQb2RjYXN0
TW9kZWw6OmRlc3Ryb3koKQogUGxheWxpc3RCcm93c2VyTlM6OlBvZGNhc3RNb2RlbDo6UG9kY2Fz
dE1vZGVsKCkKICAgICA6IFBsYXlsaXN0QnJvd3Nlck1vZGVsKCBQbGF5bGlzdE1hbmFnZXI6OlBv
ZGNhc3RDaGFubmVsICkKICAsIG1fc2V0TmV3QWN0aW9uKCAwICkKKyAsIG1fc2V0S2VlcEFjdGlv
biggMCApCiB7CiAgICAgc19pbnN0YW5jZSA9IHRoaXM7CiAgICAgbV9zZXROZXdBY3Rpb24gPSBu
ZXcgUUFjdGlvbiggS0ljb24oICJyYXRpbmciICksCkBAIC03NCw2ICs3NSwxNSBAQCBQbGF5bGlz
dEJyb3dzZXJOUzo6UG9kY2FzdE1vZGVsOjpQb2RjYXN0TW9kZWwoKQogICAgIG1fc2V0TmV3QWN0
aW9uLT5zZXRQcm9wZXJ0eSggInBvcHVwZHJvcHBlcl9zdmdfaWQiLCAibmV3IiApOwogICAgIG1f
c2V0TmV3QWN0aW9uLT5zZXRDaGVja2FibGUoIHRydWUgKTsKICAgICBjb25uZWN0KCBtX3NldE5l
d0FjdGlvbiwgU0lHTkFMKCB0cmlnZ2VyZWQoIGJvb2wgKSApLCBTTE9UKCBzbG90U2V0TmV3KCBi
b29sICkgKSApOworCisgICAgbV9zZXRLZWVwQWN0aW9uID0gbmV3IFFBY3Rpb24oIEtJY29uKCAi
cG9kY2FzdC1hbWFyb2siICksCisgICAgICAgICAgICAgICAgICAgIGkxOG5jKCAidG9nZ2xlIHRo
ZSBcImtlZXBcIiBwb2RjYXN0IGVwaXNvZGUgc3RhdHVzIG9mIHRoaXMgcG9kY2FzdCBlcGlzb2Rl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICImS2VlcCBwb2RjYXN0IGVwaXNvZGUiICks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICk7CisgICAgbV9zZXRLZWVwQWN0aW9uLT5zZXRQcm9wZXJ0eSggInBv
cHVwZHJvcHBlcl9zdmdfaWQiLCAia2VlcGVwaXNvZGUiICk7CisgICAgbV9zZXRLZWVwQWN0aW9u
LT5zZXRDaGVja2FibGUoIHRydWUgKTsKKyAgICBjb25uZWN0KCBtX3NldEtlZXBBY3Rpb24sIFNJ
R05BTCggdHJpZ2dlcmVkKCBib29sICkgKSwgU0xPVCggc2xvdFNldEtlZXAoIGJvb2wgKSApICk7
CiB9CiAKIFBsYXlsaXN0QnJvd3Nlck5TOjpQb2RjYXN0TW9kZWw6On5Qb2RjYXN0TW9kZWwoKQpA
QCAtMzk0LDkgKzQwNCwxMCBAQCBQbGF5bGlzdEJyb3dzZXJOUzo6UG9kY2FzdE1vZGVsOjphY3Rp
b25zRm9yKCBjb25zdCBRTW9kZWxJbmRleCAmaWR4ICkgY29uc3QKIHsKICAgICBRQWN0aW9uTGlz
dCBhY3Rpb25zID0gUGxheWxpc3RCcm93c2VyTW9kZWw6OmFjdGlvbnNGb3IoIGlkeCApOwogCi0g
ICAgLyogYnkgZGVmYXVsdCBhIGxpc3Qgb2YgcG9kY2FzdCBlcGlzb2RlcyBjYW4gb25seSBiZSBj
aGFuZ2VkIHRvIGlzTmV3ID0gZmFsc2UsIGV4Y2VwdAorICAgIC8qIGJ5IGRlZmF1bHQgYSBsaXN0
IG9mIHBvZGNhc3QgZXBpc29kZXMgY2FuIG9ubHkgYmUgY2hhbmdlZCB0byBpc05ldyA9IGZhbHNl
IG9yIGlzS2VlcCA9IGZhbHNlLCBleGNlcHQKICAgICAgICB3aGVuIGFsbCBzZWxlY3RlZCBlcGlz
b2RlcyBhcmUgdGhlIHNhbWUgc3RhdGUgKi8KICAgICBtX3NldE5ld0FjdGlvbi0+c2V0Q2hlY2tl
ZCggZmFsc2UgKTsKKyAgICBtX3NldEtlZXBBY3Rpb24tPnNldENoZWNrZWQoIGZhbHNlICk7CiAg
ICAgUG9kY2FzdHM6OlBvZGNhc3RFcGlzb2RlTGlzdCBlcGlzb2RlcyA9IG1fc2V0TmV3QWN0aW9u
LT5kYXRhKCkudmFsdWU8UG9kY2FzdHM6OlBvZGNhc3RFcGlzb2RlTGlzdD4oKTsKICAgICBpZigg
SVNfVFJBQ0soaWR4KSApCiAgICAgICAgIGVwaXNvZGVzIDw8IGVwaXNvZGVGb3JJbmRleCggaWR4
ICk7CkBAIC00MDcsMTAgKzQxOCwxNCBAQCBQbGF5bGlzdEJyb3dzZXJOUzo6UG9kY2FzdE1vZGVs
OjphY3Rpb25zRm9yKCBjb25zdCBRTW9kZWxJbmRleCAmaWR4ICkgY29uc3QKICAgICB7CiAgICAg
ICAgIGlmKCBlcGlzb2RlLT5pc05ldygpICkKICAgICAgICAgICAgIG1fc2V0TmV3QWN0aW9uLT5z
ZXRDaGVja2VkKCB0cnVlICk7CisgICAgICAgIGlmKCBlcGlzb2RlLT5pc0tlZXAoKSApCisgICAg
ICAgICAgICBtX3NldEtlZXBBY3Rpb24tPnNldENoZWNrZWQoIHRydWUgKTsKICAgICB9CiAgICAg
bV9zZXROZXdBY3Rpb24tPnNldERhdGEoIFFWYXJpYW50Ojpmcm9tVmFsdWUoIGVwaXNvZGVzICkg
KTsKKyAgICBtX3NldEtlZXBBY3Rpb24tPnNldERhdGEoIFFWYXJpYW50Ojpmcm9tVmFsdWUoIGVw
aXNvZGVzICkgKTsKIAogICAgIGFjdGlvbnMgPDwgbV9zZXROZXdBY3Rpb247CisgICAgYWN0aW9u
cyA8PCBtX3NldEtlZXBBY3Rpb247CiAKICAgICByZXR1cm4gYWN0aW9uczsKIH0KQEAgLTQzMiw2
ICs0NDcsMjMgQEAgUGxheWxpc3RCcm93c2VyTlM6OlBvZGNhc3RNb2RlbDo6c2xvdFNldE5ldygg
Ym9vbCBuZXdTdGF0ZSApCiAgICAgfQogfQogCit2b2lkCitQbGF5bGlzdEJyb3dzZXJOUzo6UG9k
Y2FzdE1vZGVsOjpzbG90U2V0S2VlcCggYm9vbCBrZWVwU3RhdGUgKQoreworICAgIFFfVU5VU0VE
KCBrZWVwU3RhdGUgKTsKKyAgICBRQWN0aW9uICphY3Rpb24gPSBxb2JqZWN0X2Nhc3Q8UUFjdGlv
biAqPiggUU9iamVjdDo6c2VuZGVyKCkgKTsKKyAgICBpZiggYWN0aW9uID09IDAgKQorICAgICAg
ICByZXR1cm47CisKKyAgICBQb2RjYXN0czo6UG9kY2FzdEVwaXNvZGVMaXN0IGVwaXNvZGVzID0g
YWN0aW9uLT5kYXRhKCkudmFsdWU8UG9kY2FzdHM6OlBvZGNhc3RFcGlzb2RlTGlzdD4oKTsKKwor
ICAgIGZvcmVhY2goIFBvZGNhc3RzOjpQb2RjYXN0RXBpc29kZVB0ciBlcGlzb2RlLCBlcGlzb2Rl
cyApCisgICAgeworICAgICAgICBpZiggIWVwaXNvZGUuaXNOdWxsKCkgKQorICAgICAgICAgICAg
ZXBpc29kZS0+c2V0S2VlcCggYWN0aW9uLT5pc0NoZWNrZWQoKSApOworICAgIH0KK30KKwogaW50
CiBQbGF5bGlzdEJyb3dzZXJOUzo6UG9kY2FzdE1vZGVsOjpwb2RjYXN0SXRlbVR5cGUoIGNvbnN0
IFFNb2RlbEluZGV4ICZpZHggKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvc3JjL2Jyb3dzZXJzL3Bs
YXlsaXN0YnJvd3Nlci9Qb2RjYXN0TW9kZWwuaCBiL3NyYy9icm93c2Vycy9wbGF5bGlzdGJyb3dz
ZXIvUG9kY2FzdE1vZGVsLmgKaW5kZXggY2UxYTg2Zi4uNTQxODdmZiAxMDA2NDQKLS0tIGEvc3Jj
L2Jyb3dzZXJzL3BsYXlsaXN0YnJvd3Nlci9Qb2RjYXN0TW9kZWwuaAorKysgYi9zcmMvYnJvd3Nl
cnMvcGxheWxpc3Ricm93c2VyL1BvZGNhc3RNb2RlbC5oCkBAIC04Miw2ICs4Miw4IEBAIGNsYXNz
IFBvZGNhc3RNb2RlbCA6IHB1YmxpYyBQbGF5bGlzdEJyb3dzZXJNb2RlbAogICAgIHByaXZhdGUg
c2xvdHM6CiAgICAgICAgIHZvaWQgc2xvdFNldE5ldyggYm9vbCBuZXdTdGF0ZSApOwogCisgICAg
ICAgIHZvaWQgc2xvdFNldEtlZXAoIGJvb2wga2VlcFN0YXRlICk7CisKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIHZpcnR1YWwgUUFjdGlvbkxpc3QgYWN0aW9uc0ZvciggY29uc3QgUU1vZGVsSW5k
ZXggJmlkeCApIGNvbnN0OwogCkBAIC05OCw2ICsxMDAsNyBAQCBjbGFzcyBQb2RjYXN0TW9kZWwg
OiBwdWJsaWMgUGxheWxpc3RCcm93c2VyTW9kZWwKICAgICAgICAgUV9ESVNBQkxFX0NPUFkoIFBv
ZGNhc3RNb2RlbCApCiAKICAgICAgICAgUUFjdGlvbiAqbV9zZXROZXdBY3Rpb247CisgICAgICAg
IFFBY3Rpb24gKm1fc2V0S2VlcEFjdGlvbjsKIAogICAgICAgICAvKiogQSBjb252ZW5pZW5jZSBm
dW5jdGlvbiB0byBjb252ZXJ0IGEgUG9kY2FzdEVwaXNvZGVMaXN0IGludG8gYSBUcmFja0xpc3Qu
CiAgICAgICAgICoqLwpkaWZmIC0tZ2l0IGEvc3JjL2NvcmUtaW1wbC9wb2RjYXN0cy9zcWwvU3Fs
UG9kY2FzdE1ldGEuY3BwIGIvc3JjL2NvcmUtaW1wbC9wb2RjYXN0cy9zcWwvU3FsUG9kY2FzdE1l
dGEuY3BwCmluZGV4IDc3NzgyNWUuLmM3Y2I4MWUgMTAwNjQ0Ci0tLSBhL3NyYy9jb3JlLWltcGwv
cG9kY2FzdHMvc3FsL1NxbFBvZGNhc3RNZXRhLmNwcAorKysgYi9zcmMvY29yZS1pbXBsL3BvZGNh
c3RzL3NxbC9TcWxQb2RjYXN0TWV0YS5jcHAKQEAgLTM0LDYyICszNCw2MiBAQCB1c2luZyBuYW1l
c3BhY2UgUG9kY2FzdHM7CiAKIGNsYXNzIFRpbWVjb2RlV3JpdGVDYXBhYmlsaXR5UG9kY2FzdElt
cGwgOiBwdWJsaWMgQ2FwYWJpbGl0aWVzOjpUaW1lY29kZVdyaXRlQ2FwYWJpbGl0eQogewotICAg
IHB1YmxpYzoKLSAgICAgICAgVGltZWNvZGVXcml0ZUNhcGFiaWxpdHlQb2RjYXN0SW1wbCggUG9k
Y2FzdHM6OlBvZGNhc3RFcGlzb2RlICplcGlzb2RlICkKLSAgICAgICAgICAgIDogQ2FwYWJpbGl0
aWVzOjpUaW1lY29kZVdyaXRlQ2FwYWJpbGl0eSgpCi0gICAgICAgICAgICAsIG1fZXBpc29kZSgg
ZXBpc29kZSApCi0gICAgICAgIHt9CitwdWJsaWM6CisgICAgVGltZWNvZGVXcml0ZUNhcGFiaWxp
dHlQb2RjYXN0SW1wbCggUG9kY2FzdHM6OlBvZGNhc3RFcGlzb2RlICplcGlzb2RlICkKKyAgICAg
ICAgOiBDYXBhYmlsaXRpZXM6OlRpbWVjb2RlV3JpdGVDYXBhYmlsaXR5KCkKKyAgICAgICAgLCBt
X2VwaXNvZGUoIGVwaXNvZGUgKQorICAgIHt9CiAKLSAgICB2aXJ0dWFsIGJvb2wgd3JpdGVUaW1l
Y29kZSAoIHFpbnQ2NCBtaWxpc2Vjb25kcyApCisgICAgdmlydHVhbCBib29sIHdyaXRlVGltZWNv
ZGUoIHFpbnQ2NCBtaWxpc2Vjb25kcyApCiAgICAgewogICAgICAgICBERUJVR19CTE9DSwogICAg
ICAgICByZXR1cm4gQ2FwYWJpbGl0aWVzOjpUaW1lY29kZVdyaXRlQ2FwYWJpbGl0eTo6d3JpdGVU
aW1lY29kZSggbWlsaXNlY29uZHMsCiAgICAgICAgICAgICAgICAgTWV0YTo6VHJhY2tQdHI6OmR5
bmFtaWNDYXN0KCBtX2VwaXNvZGUgKSApOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCB3cml0
ZUF1dG9UaW1lY29kZSAoIHFpbnQ2NCBtaWxpc2Vjb25kcyApCisgICAgdmlydHVhbCBib29sIHdy
aXRlQXV0b1RpbWVjb2RlKCBxaW50NjQgbWlsaXNlY29uZHMgKQogICAgIHsKICAgICAgICAgREVC
VUdfQkxPQ0sKICAgICAgICAgcmV0dXJuIENhcGFiaWxpdGllczo6VGltZWNvZGVXcml0ZUNhcGFi
aWxpdHk6OndyaXRlQXV0b1RpbWVjb2RlKCBtaWxpc2Vjb25kcywKICAgICAgICAgICAgICAgICBN
ZXRhOjpUcmFja1B0cjo6ZHluYW1pY0Nhc3QoIG1fZXBpc29kZSApICk7CiAgICAgfQogCi0gICAg
cHJpdmF0ZToKLSAgICAgICAgUG9kY2FzdHM6OlBvZGNhc3RFcGlzb2RlUHRyIG1fZXBpc29kZTsK
K3ByaXZhdGU6CisgICAgUG9kY2FzdHM6OlBvZGNhc3RFcGlzb2RlUHRyIG1fZXBpc29kZTsKIH07
CiAKIGNsYXNzIFRpbWVjb2RlTG9hZENhcGFiaWxpdHlQb2RjYXN0SW1wbCA6IHB1YmxpYyBDYXBh
YmlsaXRpZXM6OlRpbWVjb2RlTG9hZENhcGFiaWxpdHkKIHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IFRpbWVjb2RlTG9hZENhcGFiaWxpdHlQb2RjYXN0SW1wbCggUG9kY2FzdHM6OlBvZGNhc3RFcGlz
b2RlICplcGlzb2RlICkKK3B1YmxpYzoKKyAgICBUaW1lY29kZUxvYWRDYXBhYmlsaXR5UG9kY2Fz
dEltcGwoIFBvZGNhc3RzOjpQb2RjYXN0RXBpc29kZSAqZXBpc29kZSApCiAgICAgICAgIDogQ2Fw
YWJpbGl0aWVzOjpUaW1lY29kZUxvYWRDYXBhYmlsaXR5KCkKICAgICAgICAgLCBtX2VwaXNvZGUo
IGVwaXNvZGUgKQotICAgICAgICB7Ci0gICAgICAgICAgICBERUJVR19CTE9DSwotICAgICAgICAg
ICAgZGVidWcoKSA8PCAiZXBpc29kZTogIiA8PCBtX2VwaXNvZGUtPm5hbWUoKTsKLSAgICAgICAg
fQorICAgIHsKKyAgICAgICAgREVCVUdfQkxPQ0sKKyAgICAgICAgZGVidWcoKSA8PCAiZXBpc29k
ZTogIiA8PCBtX2VwaXNvZGUtPm5hbWUoKTsKKyAgICB9CiAKLSAgICAgICAgdmlydHVhbCBib29s
IGhhc1RpbWVjb2RlcygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICggbG9hZFRpbWVjb2Rl
cygpLnNpemUoKSA+IDAgKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9CisgICAgdmlydHVhbCBib29sIGhhc1RpbWVjb2Rl
cygpCisgICAgeworICAgICAgICBpZiggbG9hZFRpbWVjb2RlcygpLnNpemUoKSA+IDAgKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKLSAg
ICAgICAgdmlydHVhbCBCb29rbWFya0xpc3QgbG9hZFRpbWVjb2RlcygpCisgICAgdmlydHVhbCBC
b29rbWFya0xpc3QgbG9hZFRpbWVjb2RlcygpCisgICAgeworICAgICAgICBERUJVR19CTE9DSwor
ICAgICAgICBpZiggbV9lcGlzb2RlICYmIG1fZXBpc29kZS0+cGxheWFibGVVcmwoKS5pc1ZhbGlk
KCkgKQogICAgICAgICB7Ci0gICAgICAgICAgICBERUJVR19CTE9DSwotICAgICAgICAgICAgaWYg
KCBtX2VwaXNvZGUgJiYgbV9lcGlzb2RlLT5wbGF5YWJsZVVybCgpLmlzVmFsaWQoKSApCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgQm9va21hcmtMaXN0IGxpc3QgPSBQbGF5VXJsUnVu
bmVyOjpib29rbWFya3NGcm9tVXJsKCBtX2VwaXNvZGUtPnBsYXlhYmxlVXJsKCkgKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gbGlzdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICByZXR1cm4gQm9va21hcmtMaXN0KCk7CisgICAgICAgICAgICBCb29r
bWFya0xpc3QgbGlzdCA9IFBsYXlVcmxSdW5uZXI6OmJvb2ttYXJrc0Zyb21VcmwoIG1fZXBpc29k
ZS0+cGxheWFibGVVcmwoKSApOworICAgICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgICAgIH0K
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIEJvb2ttYXJrTGlzdCgpOworICAgIH0K
IAotICAgIHByaXZhdGU6Ci0gICAgICAgIFBvZGNhc3RzOjpQb2RjYXN0RXBpc29kZVB0ciBtX2Vw
aXNvZGU7Citwcml2YXRlOgorICAgIFBvZGNhc3RzOjpQb2RjYXN0RXBpc29kZVB0ciBtX2VwaXNv
ZGU7CiB9OwogCiBNZXRhOjpUcmFja0xpc3QKQEAgLTk3LDcgKzk3LDcgQEAgU3FsUG9kY2FzdEVw
aXNvZGU6OnRvVHJhY2tMaXN0KCBQb2RjYXN0czo6U3FsUG9kY2FzdEVwaXNvZGVMaXN0IGVwaXNv
ZGVzICkKIHsKICAgICBNZXRhOjpUcmFja0xpc3QgdHJhY2tzOwogICAgIGZvcmVhY2goIFNxbFBv
ZGNhc3RFcGlzb2RlUHRyIHNxbEVwaXNvZGUsIGVwaXNvZGVzICkKLSAgICAgICAgdHJhY2tzIDw8
IE1ldGE6OlRyYWNrUHRyOjpkeW5hbWljQ2FzdCggc3FsRXBpc29kZSApOworICAgIHRyYWNrcyA8
PCBNZXRhOjpUcmFja1B0cjo6ZHluYW1pY0Nhc3QoIHNxbEVwaXNvZGUgKTsKIAogICAgIHJldHVy
biB0cmFja3M7CiB9CkBAIC0xMDcsNyArMTA3LDcgQEAgU3FsUG9kY2FzdEVwaXNvZGU6OnRvUG9k
Y2FzdEVwaXNvZGVMaXN0KCBTcWxQb2RjYXN0RXBpc29kZUxpc3QgZXBpc29kZXMgKQogewogICAg
IFBvZGNhc3RzOjpQb2RjYXN0RXBpc29kZUxpc3Qgc3FsRXBpc29kZXM7CiAgICAgZm9yZWFjaCgg
U3FsUG9kY2FzdEVwaXNvZGVQdHIgc3FsRXBpc29kZSwgZXBpc29kZXMgKQotICAgICAgICBzcWxF
cGlzb2RlcyA8PCBQb2RjYXN0czo6UG9kY2FzdEVwaXNvZGVQdHI6OmR5bmFtaWNDYXN0KCBzcWxF
cGlzb2RlICk7CisgICAgc3FsRXBpc29kZXMgPDwgUG9kY2FzdHM6OlBvZGNhc3RFcGlzb2RlUHRy
OjpkeW5hbWljQ2FzdCggc3FsRXBpc29kZSApOwogCiAgICAgcmV0dXJuIHNxbEVwaXNvZGVzOwog
fQpAQCAtMTE5LDIxICsxMTksMjIgQEAgU3FsUG9kY2FzdEVwaXNvZGU6OlNxbFBvZGNhc3RFcGlz
b2RlKCBjb25zdCBRU3RyaW5nTGlzdCAmcmVzdWx0LCBTcWxQb2RjYXN0Q2hhbm4KIHsKICAgICBT
cWxTdG9yYWdlICpzcWxTdG9yYWdlID0gQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCktPnNx
bFN0b3JhZ2UoKTsKICAgICBRU3RyaW5nTGlzdDo6Q29uc3RJdGVyYXRvciBpdGVyID0gcmVzdWx0
LmNvbnN0QmVnaW4oKTsKLSAgICBtX2RiSWQgPSAoKihpdGVyKyspKS50b0ludCgpOwotICAgIG1f
dXJsID0gS1VybCggKihpdGVyKyspICk7Ci0gICAgaW50IGNoYW5uZWxJZCA9ICgqKGl0ZXIrKykp
LnRvSW50KCk7CisgICAgbV9kYklkID0gKCAqKCBpdGVyKysgKSApLnRvSW50KCk7CisgICAgbV91
cmwgPSBLVXJsKCAqKCBpdGVyKysgKSApOworICAgIGludCBjaGFubmVsSWQgPSAoICooIGl0ZXIr
KyApICkudG9JbnQoKTsKICAgICBRX1VOVVNFRCggY2hhbm5lbElkICk7Ci0gICAgbV9sb2NhbFVy
bCA9IEtVcmwoICooaXRlcisrKSApOwotICAgIG1fZ3VpZCA9ICooaXRlcisrKTsKLSAgICBtX3Rp
dGxlID0gKihpdGVyKyspOwotICAgIG1fc3VidGl0bGUgPSAqKGl0ZXIrKyk7Ci0gICAgbV9zZXF1
ZW5jZU51bWJlciA9ICgqKGl0ZXIrKykpLnRvSW50KCk7Ci0gICAgbV9kZXNjcmlwdGlvbiA9ICoo
aXRlcisrKTsKLSAgICBtX21pbWVUeXBlID0gKihpdGVyKyspOwotICAgIG1fcHViRGF0ZSA9IFFE
YXRlVGltZTo6ZnJvbVN0cmluZyggKihpdGVyKyspLCBRdDo6SVNPRGF0ZSApOwotICAgIG1fZHVy
YXRpb24gPSAoKihpdGVyKyspKS50b0ludCgpOwotICAgIG1fZmlsZVNpemUgPSAoKihpdGVyKysp
KS50b0ludCgpOwotICAgIG1faXNOZXcgPSBzcWxTdG9yYWdlLT5ib29sVHJ1ZSgpID09ICgqKGl0
ZXIrKykpOworICAgIG1fbG9jYWxVcmwgPSBLVXJsKCAqKCBpdGVyKysgKSApOworICAgIG1fZ3Vp
ZCA9ICooIGl0ZXIrKyApOworICAgIG1fdGl0bGUgPSAqKCBpdGVyKysgKTsKKyAgICBtX3N1YnRp
dGxlID0gKiggaXRlcisrICk7CisgICAgbV9zZXF1ZW5jZU51bWJlciA9ICggKiggaXRlcisrICkg
KS50b0ludCgpOworICAgIG1fZGVzY3JpcHRpb24gPSAqKCBpdGVyKysgKTsKKyAgICBtX21pbWVU
eXBlID0gKiggaXRlcisrICk7CisgICAgbV9wdWJEYXRlID0gUURhdGVUaW1lOjpmcm9tU3RyaW5n
KCAqKCBpdGVyKysgKSwgUXQ6OklTT0RhdGUgKTsKKyAgICBtX2R1cmF0aW9uID0gKCAqKCBpdGVy
KysgKSApLnRvSW50KCk7CisgICAgbV9maWxlU2l6ZSA9ICggKiggaXRlcisrICkgKS50b0ludCgp
OworICAgIG1faXNOZXcgPSBzcWxTdG9yYWdlLT5ib29sVHJ1ZSgpID09ICggKiggaXRlcisrICkg
KTsKKyAgICBtX2lzS2VlcCA9IHNxbFN0b3JhZ2UtPmJvb2xUcnVlKCkgPT0gKCAqKCBpdGVyKysg
KSApOwogCiAgICAgUV9BU1NFUlRfWCggaXRlciA9PSByZXN1bHQuY29uc3RFbmQoKSwgIlNxbFBv
ZGNhc3RFcGlzb2RlKCBQb2RjYXN0Q29sbGVjdGlvbiosIFFTdHJpbmdMaXN0ICkiLCAibnVtYmVy
IG9mIGV4cGVjdGVkIGZpZWxkcyBkaWQgbm90IG1hdGNoIG51bWJlciBvZiBhY3R1YWwgZmllbGRz
IiApOwogCkBAIC0xNjMsNyArMTY0LDcgQEAgU3FsUG9kY2FzdEVwaXNvZGU6OlNxbFBvZGNhc3RF
cGlzb2RlKCBQb2RjYXN0czo6UG9kY2FzdEVwaXNvZGVQdHIgZXBpc29kZSApCiAgICAgbV9zdWJ0
aXRsZSA9IGVwaXNvZGUtPnN1YnRpdGxlKCk7CiAgICAgbV9zdW1tYXJ5ID0gZXBpc29kZS0+c3Vt
bWFyeSgpOwogICAgIG1fYXV0aG9yID0gZXBpc29kZS0+YXV0aG9yKCk7Ci0gICAgCisKICAgICAv
LyBQb2RjYXN0RXBpc29kZQogICAgIG1fZ3VpZCA9IGVwaXNvZGUtPmd1aWQoKTsKICAgICBtX3Vy
bCA9IEtVcmwoIGVwaXNvZGUtPnVpZFVybCgpICk7CkBAIC0xNzQsNiArMTc1LDcgQEAgU3FsUG9k
Y2FzdEVwaXNvZGU6OlNxbFBvZGNhc3RFcGlzb2RlKCBQb2RjYXN0czo6UG9kY2FzdEVwaXNvZGVQ
dHIgZXBpc29kZSApCiAgICAgbV9maWxlU2l6ZSA9IGVwaXNvZGUtPmZpbGVzaXplKCk7CiAgICAg
bV9zZXF1ZW5jZU51bWJlciA9IGVwaXNvZGUtPnNlcXVlbmNlTnVtYmVyKCk7CiAgICAgbV9pc05l
dyA9IGVwaXNvZGUtPmlzTmV3KCk7CisgICAgbV9pc0tlZXAgPSBlcGlzb2RlLT5pc0tlZXAoKTsK
IAogICAgIC8vIFRoZSBhbGJ1bSwgYXJ0aXN0LCBjb21wb3NlciwgZ2VucmUgYW5kIHllYXIgZmll
bGRzCiAgICAgLy8gY29udGFpbiBwcm94eSBvYmplY3RzIHdpdGggaW50ZXJuYWwgcmVmZXJlbmNl
cyB0byB0aGlzLgpAQCAtMjAxLDYgKzIwMywxMyBAQCBTcWxQb2RjYXN0RXBpc29kZTo6c2V0TmV3
KCBib29sIGlzTmV3ICkKIH0KIAogdm9pZAorU3FsUG9kY2FzdEVwaXNvZGU6OnNldEtlZXAoIGJv
b2wgaXNLZWVwICkKK3sKKyAgICBtX2lzS2VlcCA9IGlzS2VlcDsKKyAgICB1cGRhdGVJbkRiKCk7
Cit9CisKK3ZvaWQKIFNxbFBvZGNhc3RFcGlzb2RlOjpzZXRMb2NhbFVybCggY29uc3QgS1VybCAm
dXJsICkKIHsKICAgICBtX2xvY2FsVXJsID0gdXJsOwpAQCAtMjM1LDE4ICsyNDQsMTggQEAgU3Fs
UG9kY2FzdEVwaXNvZGU6Omhhc0NhcGFiaWxpdHlJbnRlcmZhY2UoIENhcGFiaWxpdGllczo6Q2Fw
YWJpbGl0eTo6VHlwZSB0eXBlICkKIHsKICAgICBzd2l0Y2goIHR5cGUgKQogICAgIHsKLSAgICAg
ICAgY2FzZSBDYXBhYmlsaXRpZXM6OkNhcGFiaWxpdHk6OkFjdGlvbnM6Ci0gICAgICAgIGNhc2Ug
Q2FwYWJpbGl0aWVzOjpDYXBhYmlsaXR5OjpXcml0ZVRpbWVjb2RlOgotICAgICAgICBjYXNlIENh
cGFiaWxpdGllczo6Q2FwYWJpbGl0eTo6TG9hZFRpbWVjb2RlOgotICAgICAgICAgICAgLy9vbmx5
IGRvd25sb2FkZWQgZXBpc29kZXMgY2FuIGJlIHBvc2l0aW9uIG1hcmtlZAotLy8gICAgICAgICAg
ICByZXR1cm4gIWxvY2FsVXJsKCkuaXNFbXB0eSgpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgICAgICAvL1RPRE86IGRvd25sb2FkZWQgZXBpc29kZXMgY2FuIGJlIGVkaXRlZAot
ICAgICAgICBjYXNlIENhcGFiaWxpdGllczo6Q2FwYWJpbGl0eTo6RWRpdGFibGU6Ci0gICAgICAg
ICAgICByZXR1cm4gaXNFZGl0YWJsZSgpOwotCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBDYXBhYmlsaXRpZXM6OkNhcGFiaWxpdHk6OkFjdGlv
bnM6CisgICAgY2FzZSBDYXBhYmlsaXRpZXM6OkNhcGFiaWxpdHk6OldyaXRlVGltZWNvZGU6Cisg
ICAgY2FzZSBDYXBhYmlsaXRpZXM6OkNhcGFiaWxpdHk6OkxvYWRUaW1lY29kZToKKyAgICAgICAg
Ly9vbmx5IGRvd25sb2FkZWQgZXBpc29kZXMgY2FuIGJlIHBvc2l0aW9uIG1hcmtlZAorICAgICAg
ICAvLyAgICAgICAgICAgIHJldHVybiAhbG9jYWxVcmwoKS5pc0VtcHR5KCk7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICAvL1RPRE86IGRvd25sb2FkZWQgZXBpc29kZXMgY2FuIGJlIGVk
aXRlZAorICAgIGNhc2UgQ2FwYWJpbGl0aWVzOjpDYXBhYmlsaXR5OjpFZGl0YWJsZToKKyAgICAg
ICAgcmV0dXJuIGlzRWRpdGFibGUoKTsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiB9CiAKQEAgLTI1NSwzMSArMjY0LDMxIEBAIFNxbFBvZGNhc3RFcGlzb2Rl
OjpjcmVhdGVDYXBhYmlsaXR5SW50ZXJmYWNlKCBDYXBhYmlsaXRpZXM6OkNhcGFiaWxpdHk6OlR5
cGUgdHlwCiB7CiAgICAgc3dpdGNoKCB0eXBlICkKICAgICB7Ci0gICAgICAgIGNhc2UgQ2FwYWJp
bGl0aWVzOjpDYXBhYmlsaXR5OjpBY3Rpb25zOgotICAgICAgICB7Ci0gICAgICAgICAgICBRTGlz
dDwgUUFjdGlvbiAqID4gYWN0aW9uczsKLSAgICAgICAgICAgIGFjdGlvbnMgPDwgbmV3IEJvb2tt
YXJrQ3VycmVudFRyYWNrUG9zaXRpb25BY3Rpb24oIDAgKTsKLSAgICAgICAgICAgIHJldHVybiBu
ZXcgQ2FwYWJpbGl0aWVzOjpBY3Rpb25zQ2FwYWJpbGl0eSggYWN0aW9ucyApOwotICAgICAgICB9
Ci0gICAgICAgIGNhc2UgQ2FwYWJpbGl0aWVzOjpDYXBhYmlsaXR5OjpXcml0ZVRpbWVjb2RlOgot
ICAgICAgICAgICAgcmV0dXJuIG5ldyBUaW1lY29kZVdyaXRlQ2FwYWJpbGl0eVBvZGNhc3RJbXBs
KCB0aGlzICk7Ci0gICAgICAgIGNhc2UgQ2FwYWJpbGl0aWVzOjpDYXBhYmlsaXR5OjpMb2FkVGlt
ZWNvZGU6Ci0gICAgICAgICAgICByZXR1cm4gbmV3IFRpbWVjb2RlTG9hZENhcGFiaWxpdHlQb2Rj
YXN0SW1wbCggdGhpcyApOwotICAgICAgICBjYXNlIENhcGFiaWxpdGllczo6Q2FwYWJpbGl0eTo6
RWRpdGFibGU6Ci0gICAgICAgICAgICBpZiggIW1fbG9jYWxGaWxlLmlzTnVsbCgpICkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gbV9sb2NhbEZpbGUtPmNyZWF0ZUNhcGFiaWxpdHlJbnRlcmZhY2Uo
IHR5cGUgKTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiAwOworICAgIGNh
c2UgQ2FwYWJpbGl0aWVzOjpDYXBhYmlsaXR5OjpBY3Rpb25zOgorICAgIHsKKyAgICAgICAgUUxp
c3Q8IFFBY3Rpb24gKiA+IGFjdGlvbnM7CisgICAgICAgIGFjdGlvbnMgPDwgbmV3IEJvb2ttYXJr
Q3VycmVudFRyYWNrUG9zaXRpb25BY3Rpb24oIDAgKTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYXBh
YmlsaXRpZXM6OkFjdGlvbnNDYXBhYmlsaXR5KCBhY3Rpb25zICk7CisgICAgfQorICAgIGNhc2Ug
Q2FwYWJpbGl0aWVzOjpDYXBhYmlsaXR5OjpXcml0ZVRpbWVjb2RlOgorICAgICAgICByZXR1cm4g
bmV3IFRpbWVjb2RlV3JpdGVDYXBhYmlsaXR5UG9kY2FzdEltcGwoIHRoaXMgKTsKKyAgICBjYXNl
IENhcGFiaWxpdGllczo6Q2FwYWJpbGl0eTo6TG9hZFRpbWVjb2RlOgorICAgICAgICByZXR1cm4g
bmV3IFRpbWVjb2RlTG9hZENhcGFiaWxpdHlQb2RjYXN0SW1wbCggdGhpcyApOworICAgIGNhc2Ug
Q2FwYWJpbGl0aWVzOjpDYXBhYmlsaXR5OjpFZGl0YWJsZToKKyAgICAgICAgaWYoICFtX2xvY2Fs
RmlsZS5pc051bGwoKSApCisgICAgICAgICAgICByZXR1cm4gbV9sb2NhbEZpbGUtPmNyZWF0ZUNh
cGFiaWxpdHlJbnRlcmZhY2UoIHR5cGUgKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4g
MDsKICAgICB9CiB9CiAKIGJvb2wKIFNxbFBvZGNhc3RFcGlzb2RlOjppc0VkaXRhYmxlKCkgY29u
c3QKIHsKLSAgICAgaWYoIG1fbG9jYWxGaWxlLmlzTnVsbCgpICkKLSAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiggbV9sb2NhbEZpbGUuaXNOdWxsKCkgKQorICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAgcmV0dXJuIG1fbG9jYWxGaWxlLT5pc0VkaXRhYmxlKCk7CisgICAgcmV0dXJu
IG1fbG9jYWxGaWxlLT5pc0VkaXRhYmxlKCk7CiB9CiAKIHZvaWQKQEAgLTM5MiwzOCArNDAxLDQw
IEBAIFNxbFBvZGNhc3RFcGlzb2RlOjp1cGRhdGVJbkRiKCkKIAogICAgIFFTdHJpbmcgYm9vbFRy
dWUgPSBzcWxTdG9yYWdlLT5ib29sVHJ1ZSgpOwogICAgIFFTdHJpbmcgYm9vbEZhbHNlID0gc3Fs
U3RvcmFnZS0+Ym9vbEZhbHNlKCk7Ci0gICAgI2RlZmluZSBlc2NhcGUoeCkgc3FsU3RvcmFnZS0+
ZXNjYXBlKHgpCisjZGVmaW5lIGVzY2FwZSh4KSBzcWxTdG9yYWdlLT5lc2NhcGUoeCkKICAgICBR
U3RyaW5nIGNvbW1hbmQ7CiAgICAgUVRleHRTdHJlYW0gc3RyZWFtKCAmY29tbWFuZCApOwogICAg
IGlmKCBtX2RiSWQgKQogICAgIHsKICAgICAgICAgc3RyZWFtIDw8ICJVUERBVEUgcG9kY2FzdGVw
aXNvZGVzICI7CiAgICAgICAgIHN0cmVhbSA8PCAiU0VUIHVybD0nIjsKLSAgICAgICAgc3RyZWFt
IDw8IGVzY2FwZShtX3VybC51cmwoKSk7CisgICAgICAgIHN0cmVhbSA8PCBlc2NhcGUoIG1fdXJs
LnVybCgpICk7CiAgICAgICAgIHN0cmVhbSA8PCAiJywgY2hhbm5lbD0iOwogICAgICAgICBzdHJl
YW0gPDwgbV9jaGFubmVsLT5kYklkKCk7CiAgICAgICAgIHN0cmVhbSA8PCAiLCBsb2NhbHVybD0n
IjsKLSAgICAgICAgc3RyZWFtIDw8IGVzY2FwZShtX2xvY2FsVXJsLnVybCgpKTsKKyAgICAgICAg
c3RyZWFtIDw8IGVzY2FwZSggbV9sb2NhbFVybC51cmwoKSApOwogICAgICAgICBzdHJlYW0gPDwg
IicsIGd1aWQ9JyI7Ci0gICAgICAgIHN0cmVhbSA8PCBlc2NhcGUobV9ndWlkKTsKKyAgICAgICAg
c3RyZWFtIDw8IGVzY2FwZSggbV9ndWlkICk7CiAgICAgICAgIHN0cmVhbSA8PCAiJywgdGl0bGU9
JyI7Ci0gICAgICAgIHN0cmVhbSA8PCBlc2NhcGUobV90aXRsZSk7CisgICAgICAgIHN0cmVhbSA8
PCBlc2NhcGUoIG1fdGl0bGUgKTsKICAgICAgICAgc3RyZWFtIDw8ICInLCBzdWJ0aXRsZT0nIjsK
LSAgICAgICAgc3RyZWFtIDw8IGVzY2FwZShtX3N1YnRpdGxlKTsKKyAgICAgICAgc3RyZWFtIDw8
IGVzY2FwZSggbV9zdWJ0aXRsZSApOwogICAgICAgICBzdHJlYW0gPDwgIicsIHNlcXVlbmNlbnVt
YmVyPSI7CiAgICAgICAgIHN0cmVhbSA8PCBtX3NlcXVlbmNlTnVtYmVyOwogICAgICAgICBzdHJl
YW0gPDwgIiwgZGVzY3JpcHRpb249JyI7Ci0gICAgICAgIHN0cmVhbSA8PCBlc2NhcGUobV9kZXNj
cmlwdGlvbik7CisgICAgICAgIHN0cmVhbSA8PCBlc2NhcGUoIG1fZGVzY3JpcHRpb24gKTsKICAg
ICAgICAgc3RyZWFtIDw8ICInLCBtaW1ldHlwZT0nIjsKLSAgICAgICAgc3RyZWFtIDw8IGVzY2Fw
ZShtX21pbWVUeXBlKTsKKyAgICAgICAgc3RyZWFtIDw8IGVzY2FwZSggbV9taW1lVHlwZSApOwog
ICAgICAgICBzdHJlYW0gPDwgIicsIHB1YmRhdGU9JyI7Ci0gICAgICAgIHN0cmVhbSA8PCBlc2Nh
cGUobV9wdWJEYXRlLnRvU3RyaW5nKFF0OjpJU09EYXRlKSk7CisgICAgICAgIHN0cmVhbSA8PCBl
c2NhcGUoIG1fcHViRGF0ZS50b1N0cmluZyggUXQ6OklTT0RhdGUgKSApOwogICAgICAgICBzdHJl
YW0gPDwgIicsIGR1cmF0aW9uPSI7CiAgICAgICAgIHN0cmVhbSA8PCBtX2R1cmF0aW9uOwogICAg
ICAgICBzdHJlYW0gPDwgIiwgZmlsZXNpemU9IjsKICAgICAgICAgc3RyZWFtIDw8IG1fZmlsZVNp
emU7CiAgICAgICAgIHN0cmVhbSA8PCAiLCBpc25ldz0iOwotICAgICAgICBzdHJlYW0gPDwgKG1f
aXNOZXcgPyBib29sVHJ1ZSA6IGJvb2xGYWxzZSk7CisgICAgICAgIHN0cmVhbSA8PCAoIG1faXNO
ZXcgPyBib29sVHJ1ZSA6IGJvb2xGYWxzZSApOworICAgICAgICBzdHJlYW0gPDwgIiwgaXNrZWVw
PSI7CisgICAgICAgIHN0cmVhbSA8PCAoIG1faXNLZWVwID8gYm9vbFRydWUgOiBib29sRmFsc2Ug
KTsKICAgICAgICAgc3RyZWFtIDw8ICIgV0hFUkUgaWQ9IjsKICAgICAgICAgc3RyZWFtIDw8IG1f
ZGJJZDsKICAgICAgICAgc3RyZWFtIDw8ICI7IjsKQEAgLTQzMywyMSArNDQ0LDIyIEBAIFNxbFBv
ZGNhc3RFcGlzb2RlOjp1cGRhdGVJbkRiKCkKICAgICB7CiAgICAgICAgIHN0cmVhbSA8PCAiSU5T
RVJUIElOVE8gcG9kY2FzdGVwaXNvZGVzICgiOwogICAgICAgICBzdHJlYW0gPDwgInVybCxjaGFu
bmVsLGxvY2FsdXJsLGd1aWQsdGl0bGUsc3VidGl0bGUsc2VxdWVuY2VudW1iZXIsZGVzY3JpcHRp
b24sIjsKLSAgICAgICAgc3RyZWFtIDw8ICJtaW1ldHlwZSxwdWJkYXRlLGR1cmF0aW9uLGZpbGVz
aXplLGlzbmV3KSAiOworICAgICAgICBzdHJlYW0gPDwgIm1pbWV0eXBlLHB1YmRhdGUsZHVyYXRp
b24sZmlsZXNpemUsaXNuZXcsaXNrZWVwKSAiOwogICAgICAgICBzdHJlYW0gPDwgIlZBTFVFUyAo
ICciOwotICAgICAgICBzdHJlYW0gPDwgZXNjYXBlKG1fdXJsLnVybCgpKSA8PCAiJywgIjsKKyAg
ICAgICAgc3RyZWFtIDw8IGVzY2FwZSggbV91cmwudXJsKCkgKSA8PCAiJywgIjsKICAgICAgICAg
c3RyZWFtIDw8IG1fY2hhbm5lbC0+ZGJJZCgpIDw8ICIsICciOwotICAgICAgICBzdHJlYW0gPDwg
ZXNjYXBlKG1fbG9jYWxVcmwudXJsKCkpIDw8ICInLCAnIjsKLSAgICAgICAgc3RyZWFtIDw8IGVz
Y2FwZShtX2d1aWQpIDw8ICInLCAnIjsKLSAgICAgICAgc3RyZWFtIDw8IGVzY2FwZShtX3RpdGxl
KSA8PCAiJywgJyI7Ci0gICAgICAgIHN0cmVhbSA8PCBlc2NhcGUobV9zdWJ0aXRsZSkgPDwgIics
ICI7CisgICAgICAgIHN0cmVhbSA8PCBlc2NhcGUoIG1fbG9jYWxVcmwudXJsKCkgKSA8PCAiJywg
JyI7CisgICAgICAgIHN0cmVhbSA8PCBlc2NhcGUoIG1fZ3VpZCApIDw8ICInLCAnIjsKKyAgICAg
ICAgc3RyZWFtIDw8IGVzY2FwZSggbV90aXRsZSApIDw8ICInLCAnIjsKKyAgICAgICAgc3RyZWFt
IDw8IGVzY2FwZSggbV9zdWJ0aXRsZSApIDw8ICInLCAiOwogICAgICAgICBzdHJlYW0gPDwgbV9z
ZXF1ZW5jZU51bWJlciA8PCAiLCAnIjsKLSAgICAgICAgc3RyZWFtIDw8IGVzY2FwZShtX2Rlc2Ny
aXB0aW9uKSA8PCAiJywgJyI7Ci0gICAgICAgIHN0cmVhbSA8PCBlc2NhcGUobV9taW1lVHlwZSkg
PDwgIicsICciOwotICAgICAgICBzdHJlYW0gPDwgZXNjYXBlKG1fcHViRGF0ZS50b1N0cmluZyhR
dDo6SVNPRGF0ZSkpIDw8ICInLCAiOworICAgICAgICBzdHJlYW0gPDwgZXNjYXBlKCBtX2Rlc2Ny
aXB0aW9uICkgPDwgIicsICciOworICAgICAgICBzdHJlYW0gPDwgZXNjYXBlKCBtX21pbWVUeXBl
ICkgPDwgIicsICciOworICAgICAgICBzdHJlYW0gPDwgZXNjYXBlKCBtX3B1YkRhdGUudG9TdHJp
bmcoIFF0OjpJU09EYXRlICkgKSA8PCAiJywgIjsKICAgICAgICAgc3RyZWFtIDw8IG1fZHVyYXRp
b24gPDwgIiwgIjsKICAgICAgICAgc3RyZWFtIDw8IG1fZmlsZVNpemUgPDwgIiwgIjsKLSAgICAg
ICAgc3RyZWFtIDw8IChtX2lzTmV3ID8gYm9vbFRydWUgOiBib29sRmFsc2UpOworICAgICAgICBz
dHJlYW0gPDwgKCBtX2lzTmV3ID8gYm9vbFRydWUgOiBib29sRmFsc2UgKSA8PCAiLCAiOworICAg
ICAgICBzdHJlYW0gPDwgKCBtX2lzS2VlcCA/IGJvb2xUcnVlIDogYm9vbEZhbHNlICk7CiAgICAg
ICAgIHN0cmVhbSA8PCAiKTsiOwogICAgICAgICBtX2RiSWQgPSBzcWxTdG9yYWdlLT5pbnNlcnQo
IGNvbW1hbmQsICJwb2RjYXN0ZXBpc29kZXMiICk7CiAgICAgfQpAQCAtNDc2LDMyICs0ODgsMzIg
QEAgU3FsUG9kY2FzdENoYW5uZWw6OmZyb21QbGF5bGlzdFB0ciggUGxheWxpc3RzOjpQbGF5bGlz
dFB0ciBwbGF5bGlzdCApCiB9CiAKIFNxbFBvZGNhc3RDaGFubmVsOjpTcWxQb2RjYXN0Q2hhbm5l
bCggU3FsUG9kY2FzdFByb3ZpZGVyICpwcm92aWRlciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZ0xpc3QgJnJlc3VsdCApCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmdMaXN0ICZyZXN1bHQg
KQogICAgIDogUG9kY2FzdHM6OlBvZGNhc3RDaGFubmVsKCkKICAgICAsIG1fZXBpc29kZXNMb2Fk
ZWQoIGZhbHNlICkKICAgICAsIG1fcHJvdmlkZXIoIHByb3ZpZGVyICkKIHsKICAgICBTcWxTdG9y
YWdlICpzcWxTdG9yYWdlID0gQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCktPnNxbFN0b3Jh
Z2UoKTsKICAgICBRU3RyaW5nTGlzdDo6Q29uc3RJdGVyYXRvciBpdGVyID0gcmVzdWx0LmNvbnN0
QmVnaW4oKTsKLSAgICBtX2RiSWQgPSAoKihpdGVyKyspKS50b0ludCgpOwotICAgIG1fdXJsID0g
S1VybCggKihpdGVyKyspICk7Ci0gICAgbV90aXRsZSA9ICooaXRlcisrKTsKLSAgICBtX3dlYkxp
bmsgPSAqKGl0ZXIrKyk7Ci0gICAgbV9pbWFnZVVybCA9ICooaXRlcisrKTsKLSAgICBtX2Rlc2Ny
aXB0aW9uID0gKihpdGVyKyspOwotICAgIG1fY29weXJpZ2h0ID0gKihpdGVyKyspOwotICAgIG1f
ZGlyZWN0b3J5ID0gS1VybCggKihpdGVyKyspICk7Ci0gICAgbV9sYWJlbHMgPSBRU3RyaW5nTGlz
dCggUVN0cmluZyggKihpdGVyKyspICkuc3BsaXQoICIsIiwgUVN0cmluZzo6U2tpcEVtcHR5UGFy
dHMgKSApOwotICAgIG1fc3Vic2NyaWJlRGF0ZSA9IFFEYXRlOjpmcm9tU3RyaW5nKCAqKGl0ZXIr
KykgKTsKLSAgICBtX2F1dG9TY2FuID0gc3FsU3RvcmFnZS0+Ym9vbFRydWUoKSA9PSAqKGl0ZXIr
Kyk7Ci0gICAgbV9mZXRjaFR5cGUgPSAoKihpdGVyKyspKS50b0ludCgpID09IERvd25sb2FkV2hl
bkF2YWlsYWJsZSA/IERvd25sb2FkV2hlbkF2YWlsYWJsZSA6IFN0cmVhbU9yRG93bmxvYWRPbkRl
bWFuZDsKLSAgICBtX3B1cmdlID0gc3FsU3RvcmFnZS0+Ym9vbFRydWUoKSA9PSAqKGl0ZXIrKyk7
Ci0gICAgbV9wdXJnZUNvdW50ID0gKCooaXRlcisrKSkudG9JbnQoKTsKLSAgICBtX3dyaXRlVGFn
cyA9IHNxbFN0b3JhZ2UtPmJvb2xUcnVlKCkgPT0gKihpdGVyKyspOworICAgIG1fZGJJZCA9ICgg
KiggaXRlcisrICkgKS50b0ludCgpOworICAgIG1fdXJsID0gS1VybCggKiggaXRlcisrICkgKTsK
KyAgICBtX3RpdGxlID0gKiggaXRlcisrICk7CisgICAgbV93ZWJMaW5rID0gKiggaXRlcisrICk7
CisgICAgbV9pbWFnZVVybCA9ICooIGl0ZXIrKyApOworICAgIG1fZGVzY3JpcHRpb24gPSAqKCBp
dGVyKysgKTsKKyAgICBtX2NvcHlyaWdodCA9ICooIGl0ZXIrKyApOworICAgIG1fZGlyZWN0b3J5
ID0gS1VybCggKiggaXRlcisrICkgKTsKKyAgICBtX2xhYmVscyA9IFFTdHJpbmdMaXN0KCBRU3Ry
aW5nKCAqKCBpdGVyKysgKSApLnNwbGl0KCAiLCIsIFFTdHJpbmc6OlNraXBFbXB0eVBhcnRzICkg
KTsKKyAgICBtX3N1YnNjcmliZURhdGUgPSBRRGF0ZTo6ZnJvbVN0cmluZyggKiggaXRlcisrICkg
KTsKKyAgICBtX2F1dG9TY2FuID0gc3FsU3RvcmFnZS0+Ym9vbFRydWUoKSA9PSAqKCBpdGVyKysg
KTsKKyAgICBtX2ZldGNoVHlwZSA9ICggKiggaXRlcisrICkgKS50b0ludCgpID09IERvd25sb2Fk
V2hlbkF2YWlsYWJsZSA/IERvd25sb2FkV2hlbkF2YWlsYWJsZSA6IFN0cmVhbU9yRG93bmxvYWRP
bkRlbWFuZDsKKyAgICBtX3B1cmdlID0gc3FsU3RvcmFnZS0+Ym9vbFRydWUoKSA9PSAqKCBpdGVy
KysgKTsKKyAgICBtX3B1cmdlQ291bnQgPSAoICooIGl0ZXIrKyApICkudG9JbnQoKTsKKyAgICBt
X3dyaXRlVGFncyA9IHNxbFN0b3JhZ2UtPmJvb2xUcnVlKCkgPT0gKiggaXRlcisrICk7CiB9CiAK
IFNxbFBvZGNhc3RDaGFubmVsOjpTcWxQb2RjYXN0Q2hhbm5lbCggUG9kY2FzdHM6OlNxbFBvZGNh
c3RQcm92aWRlciAqcHJvdmlkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBvZGNhc3RzOjpQb2RjYXN0Q2hhbm5lbFB0ciBjaGFubmVsICkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9kY2FzdHM6OlBvZGNhc3RDaGFubmVsUHRy
IGNoYW5uZWwgKQogICAgIDogUG9kY2FzdHM6OlBvZGNhc3RDaGFubmVsKCkKICAgICAsIG1fZGJJ
ZCggMCApCiAgICAgLCBtX3Byb3ZpZGVyKCBwcm92aWRlciApCkBAIC01NjUsNyArNTc3LDcgQEAg
U3FsUG9kY2FzdENoYW5uZWw6OnRyYWNrQ291bnQoKSBjb25zdAogICAgICAgICByZXR1cm4gLTE7
CiAgICAgfQogICAgIGludCB0cmFja0NvdW50ID0gcmVzdWx0cy5maXJzdCgpLnRvSW50KCk7Ci0g
ICAgcmV0dXJuIG1fcHVyZ2UgPyBxTWluKCBtX3B1cmdlQ291bnQsIHRyYWNrQ291bnQgKTogdHJh
Y2tDb3VudDsKKyAgICByZXR1cm4gbV9wdXJnZSA/IHFNaW4oIG1fcHVyZ2VDb3VudCwgdHJhY2tD
b3VudCApIDogdHJhY2tDb3VudDsKIH0KIAogdm9pZApAQCAtNTk2LDcgKzYwOCw3IEBAIFNxbFBv
ZGNhc3RDaGFubmVsOjpzZXRHcm91cHMoIGNvbnN0IFFTdHJpbmdMaXN0ICZncm91cHMgKQogS1Vy
bAogU3FsUG9kY2FzdENoYW5uZWw6OnVpZFVybCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEtVcmwo
IFFTdHJpbmcoICJhbWFyb2stc3FscG9kY2FzdHVpZDovLyUxIikuYXJnKCBtX2RiSWQgKSApOwor
ICAgIHJldHVybiBLVXJsKCBRU3RyaW5nKCAiYW1hcm9rLXNxbHBvZGNhc3R1aWQ6Ly8lMSIgKS5h
cmcoIG1fZGJJZCApICk7CiB9CiAKIFNxbFBvZGNhc3RDaGFubmVsOjp+U3FsUG9kY2FzdENoYW5u
ZWwoKQpAQCAtNjkzLDE4ICs3MDUsMjggQEAgU3FsUG9kY2FzdENoYW5uZWw6OmFkZEVwaXNvZGUo
IFBvZGNhc3RFcGlzb2RlUHRyIGVwaXNvZGUgKQogdm9pZAogU3FsUG9kY2FzdENoYW5uZWw6OmFw
cGx5UHVyZ2UoKQogewotICAgIGlmKCAhaGFzUHVyZ2UoKSApCi0gICAgICAgIHJldHVybjsKKyAg
ICAgIGlmKCBoYXNQdXJnZSgpICkKKyAgICAgIHsKIAotICAgIHdoaWxlKCBtX2VwaXNvZGVzLmNv
dW50KCkgPiBwdXJnZUNvdW50KCkgKQotICAgIHsKLSAgICAgICAgU3FsUG9kY2FzdEVwaXNvZGVQ
dHIgcmVtb3ZlZEVwaXNvZGUgPSBtX2VwaXNvZGVzLnRha2VMYXN0KCk7Ci0gICAgICAgIG1fcHJv
dmlkZXItPmRlbGV0ZURvd25sb2FkZWRFcGlzb2RlKCByZW1vdmVkRXBpc29kZSApOworICAgICAg
ICBpbnQgaSA9IDA7CisgICAgICAgIGludCBwdXJnZUluZGV4ID0gMDsKIAotICAgICAgICBub3Rp
ZnlPYnNlcnZlcnNUcmFja1JlbW92ZWQoIG1fZXBpc29kZXMuY291bnQoKSApOworICAgICAgICB3
aGlsZSggaSA8IG1fZXBpc29kZXMuY291bnQoKSApCisgICAgICAgIHsKKyAgICAgICAgICAgICAg
IFNxbFBvZGNhc3RFcGlzb2RlUHRyIHJlbW92ZWRFcGlzb2RlID0gbV9lcGlzb2Rlcy5hdCggaSAp
OworCisgICAgICAgICAgICBpZiggKCAhKCBtX2VwaXNvZGVzLmF0KCBpICktPmlzS2VlcCgpICkg
KSAmJiAoIG1fZXBpc29kZXMuY291bnQoKSA+IHB1cmdlQ291bnQoKSApICkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBtX3Byb3ZpZGVyLT5kZWxldGVEb3dubG9hZGVkRXBpc29kZSgg
cmVtb3ZlZEVwaXNvZGUgKTsKKworICAgICAgICAgICAgICAgIHB1cmdlSW5kZXgrKzsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgaSsrOworICAgICAgICB9IAogICAgIH0KIAotICAgIC8v
VE9ETzogbG9hZCBtaXNzaW5nIGVwaXNvZGVzIGluIGNhc2UgbV9lcGlzb2Rlcy5jb3VudCgpIDw9
IHB1cmdlQ291bnQoKQorICAgIGxvYWRFcGlzb2RlcyAoKTsKIH0KIAogdm9pZApAQCAtNzE0LDMy
ICs3MzYsMzIgQEAgU3FsUG9kY2FzdENoYW5uZWw6OnVwZGF0ZUluRGIoKQogCiAgICAgUVN0cmlu
ZyBib29sVHJ1ZSA9IHNxbFN0b3JhZ2UtPmJvb2xUcnVlKCk7CiAgICAgUVN0cmluZyBib29sRmFs
c2UgPSBzcWxTdG9yYWdlLT5ib29sRmFsc2UoKTsKLSAgICAjZGVmaW5lIGVzY2FwZSh4KSBzcWxT
dG9yYWdlLT5lc2NhcGUoeCkKKyNkZWZpbmUgZXNjYXBlKHgpIHNxbFN0b3JhZ2UtPmVzY2FwZSh4
KQogICAgIFFTdHJpbmcgaW5zZXJ0ID0gIklOU0VSVCBJTlRPIHBvZGNhc3RjaGFubmVscygiCi0g
ICAgInVybCx0aXRsZSx3ZWJsaW5rLGltYWdlLGRlc2NyaXB0aW9uLGNvcHlyaWdodCxkaXJlY3Rv
cnksbGFiZWxzLCIKLSAgICAic3Vic2NyaWJlZGF0ZSxhdXRvc2NhbixmZXRjaHR5cGUsaGFzcHVy
Z2UscHVyZ2Vjb3VudCx3cml0ZXRhZ3MpICIKLSAgICAiVkFMVUVTICggJyUxJywnJTInLCclMycs
JyU0JywnJTUnLCclNicsJyU3JywnJTgnLCclOScsJTEwLCUxMSwlMTIsJTEzLCUxNCApOyI7Cisg
ICAgICAgICAgICAgICAgICAgICAidXJsLHRpdGxlLHdlYmxpbmssaW1hZ2UsZGVzY3JpcHRpb24s
Y29weXJpZ2h0LGRpcmVjdG9yeSxsYWJlbHMsIgorICAgICAgICAgICAgICAgICAgICAgInN1YnNj
cmliZWRhdGUsYXV0b3NjYW4sZmV0Y2h0eXBlLGhhc3B1cmdlLHB1cmdlY291bnQsd3JpdGV0YWdz
KSAiCisgICAgICAgICAgICAgICAgICAgICAiVkFMVUVTICggJyUxJywnJTInLCclMycsJyU0Jywn
JTUnLCclNicsJyU3JywnJTgnLCclOScsJTEwLCUxMSwlMTIsJTEzLCUxNCApOyI7CiAKICAgICBR
U3RyaW5nIHVwZGF0ZSA9ICJVUERBVEUgcG9kY2FzdGNoYW5uZWxzIFNFVCB1cmw9JyUxJyx0aXRs
ZT0nJTInIgotICAgICIsd2VibGluaz0nJTMnLGltYWdlPSclNCcsZGVzY3JpcHRpb249JyU1Jyxj
b3B5cmlnaHQ9JyU2JyxkaXJlY3Rvcnk9JyU3JyIKLSAgICAiLGxhYmVscz0nJTgnLHN1YnNjcmli
ZWRhdGU9JyU5JyxhdXRvc2Nhbj0lMTAsZmV0Y2h0eXBlPSUxMSxoYXNwdXJnZT0lMTIsIgotICAg
ICJwdXJnZWNvdW50PSUxMywgd3JpdGV0YWdzPSUxNCBXSEVSRSBpZD0lMTU7IjsKKyAgICAgICAg
ICAgICAgICAgICAgICIsd2VibGluaz0nJTMnLGltYWdlPSclNCcsZGVzY3JpcHRpb249JyU1Jyxj
b3B5cmlnaHQ9JyU2JyxkaXJlY3Rvcnk9JyU3JyIKKyAgICAgICAgICAgICAgICAgICAgICIsbGFi
ZWxzPSclOCcsc3Vic2NyaWJlZGF0ZT0nJTknLGF1dG9zY2FuPSUxMCxmZXRjaHR5cGU9JTExLGhh
c3B1cmdlPSUxMiwiCisgICAgICAgICAgICAgICAgICAgICAicHVyZ2Vjb3VudD0lMTMsIHdyaXRl
dGFncz0lMTQgV0hFUkUgaWQ9JTE1OyI7CiAgICAgLy9pZiB3ZSBkb24ndCBoYXZlIGEgZGF0YWJh
c2UgSUQgeWV0IHdlIHNob3VsZCBpbnNlcnQ7CiAgICAgUVN0cmluZyBjb21tYW5kID0gbV9kYklk
ID8gdXBkYXRlIDogaW5zZXJ0OwogCi0gICAgY29tbWFuZCA9IGNvbW1hbmQuYXJnKCBlc2NhcGUo
bV91cmwudXJsKCkpICk7IC8vJTEKLSAgICBjb21tYW5kID0gY29tbWFuZC5hcmcoIGVzY2FwZSht
X3RpdGxlKSApOyAvLyUyCi0gICAgY29tbWFuZCA9IGNvbW1hbmQuYXJnKCBlc2NhcGUobV93ZWJM
aW5rLnVybCgpKSApOyAvLyUzCi0gICAgY29tbWFuZCA9IGNvbW1hbmQuYXJnKCBlc2NhcGUobV9p
bWFnZVVybC51cmwoKSkgKTsgLy9pbWFnZSAgLy8lNAotICAgIGNvbW1hbmQgPSBjb21tYW5kLmFy
ZyggZXNjYXBlKG1fZGVzY3JpcHRpb24pICk7IC8vJTUKLSAgICBjb21tYW5kID0gY29tbWFuZC5h
cmcoIGVzY2FwZShtX2NvcHlyaWdodCkgKTsgLy8lNgotICAgIGNvbW1hbmQgPSBjb21tYW5kLmFy
ZyggZXNjYXBlKG1fZGlyZWN0b3J5LnVybCgpKSApOyAvLyU3Ci0gICAgY29tbWFuZCA9IGNvbW1h
bmQuYXJnKCBlc2NhcGUobV9sYWJlbHMuam9pbiggIiwiICkpICk7IC8vJTgKLSAgICBjb21tYW5k
ID0gY29tbWFuZC5hcmcoIGVzY2FwZShtX3N1YnNjcmliZURhdGUudG9TdHJpbmcoKSkgKTsgLy8l
OQorICAgIGNvbW1hbmQgPSBjb21tYW5kLmFyZyggZXNjYXBlKCBtX3VybC51cmwoKSApICk7IC8v
JTEKKyAgICBjb21tYW5kID0gY29tbWFuZC5hcmcoIGVzY2FwZSggbV90aXRsZSApICk7IC8vJTIK
KyAgICBjb21tYW5kID0gY29tbWFuZC5hcmcoIGVzY2FwZSggbV93ZWJMaW5rLnVybCgpICkgKTsg
Ly8lMworICAgIGNvbW1hbmQgPSBjb21tYW5kLmFyZyggZXNjYXBlKCBtX2ltYWdlVXJsLnVybCgp
ICkgKTsgLy9pbWFnZSAgLy8lNAorICAgIGNvbW1hbmQgPSBjb21tYW5kLmFyZyggZXNjYXBlKCBt
X2Rlc2NyaXB0aW9uICkgKTsgLy8lNQorICAgIGNvbW1hbmQgPSBjb21tYW5kLmFyZyggZXNjYXBl
KCBtX2NvcHlyaWdodCApICk7IC8vJTYKKyAgICBjb21tYW5kID0gY29tbWFuZC5hcmcoIGVzY2Fw
ZSggbV9kaXJlY3RvcnkudXJsKCkgKSApOyAvLyU3CisgICAgY29tbWFuZCA9IGNvbW1hbmQuYXJn
KCBlc2NhcGUoIG1fbGFiZWxzLmpvaW4oICIsIiApICkgKTsgLy8lOAorICAgIGNvbW1hbmQgPSBj
b21tYW5kLmFyZyggZXNjYXBlKCBtX3N1YnNjcmliZURhdGUudG9TdHJpbmcoKSApICk7IC8vJTkK
ICAgICBjb21tYW5kID0gY29tbWFuZC5hcmcoIG1fYXV0b1NjYW4gPyBib29sVHJ1ZSA6IGJvb2xG
YWxzZSApOyAvLyUxMAotICAgIGNvbW1hbmQgPSBjb21tYW5kLmFyZyggUVN0cmluZzo6bnVtYmVy
KG1fZmV0Y2hUeXBlKSApOyAvLyUxMQorICAgIGNvbW1hbmQgPSBjb21tYW5kLmFyZyggUVN0cmlu
Zzo6bnVtYmVyKCBtX2ZldGNoVHlwZSApICk7IC8vJTExCiAgICAgY29tbWFuZCA9IGNvbW1hbmQu
YXJnKCBtX3B1cmdlID8gYm9vbFRydWUgOiBib29sRmFsc2UgKTsgLy8lMTIKLSAgICBjb21tYW5k
ID0gY29tbWFuZC5hcmcoIFFTdHJpbmc6Om51bWJlcihtX3B1cmdlQ291bnQpICk7IC8vJTEzCisg
ICAgY29tbWFuZCA9IGNvbW1hbmQuYXJnKCBRU3RyaW5nOjpudW1iZXIoIG1fcHVyZ2VDb3VudCAp
ICk7IC8vJTEzCiAgICAgY29tbWFuZCA9IGNvbW1hbmQuYXJnKCBtX3dyaXRlVGFncyA/IGJvb2xU
cnVlIDogYm9vbEZhbHNlICk7IC8vJTE0CiAKICAgICBpZiggbV9kYklkICkKQEAgLTc1NCw4ICs3
NzYsOCBAQCBTcWxQb2RjYXN0Q2hhbm5lbDo6ZGVsZXRlRnJvbURiKCkKICAgICBTcWxTdG9yYWdl
ICpzcWxTdG9yYWdlID0gQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCktPnNxbFN0b3JhZ2Uo
KTsKICAgICBmb3JlYWNoKCBTcWxQb2RjYXN0RXBpc29kZVB0ciBzcWxFcGlzb2RlLCBtX2VwaXNv
ZGVzICkKICAgICB7Ci0gICAgICAgc3FsRXBpc29kZS0+ZGVsZXRlRnJvbURiKCk7Ci0gICAgICAg
bV9lcGlzb2Rlcy5yZW1vdmVPbmUoIHNxbEVwaXNvZGUgKTsKKyAgICAgICAgc3FsRXBpc29kZS0+
ZGVsZXRlRnJvbURiKCk7CisgICAgICAgIG1fZXBpc29kZXMucmVtb3ZlT25lKCBzcWxFcGlzb2Rl
ICk7CiAgICAgfQogCiAgICAgc3FsU3RvcmFnZS0+cXVlcnkoCkBAIC03NjksMzQgKzc5MSw0NyBA
QCBTcWxQb2RjYXN0Q2hhbm5lbDo6bG9hZEVwaXNvZGVzKCkKIAogICAgIFNxbFN0b3JhZ2UgKnNx
bFN0b3JhZ2UgPSBDb2xsZWN0aW9uTWFuYWdlcjo6aW5zdGFuY2UoKS0+c3FsU3RvcmFnZSgpOwog
Ci0gICAgLy9pZiBwdXJnZSBpcyBlbmFibGVkIGlzIHRydWUgd2UgbGltaXQgdGhlIG51bWJlciBv
ZiByZXN1bHRzCiAgICAgUVN0cmluZyBjb21tYW5kOworCisgICAgaW50IHJvd0xlbmd0aCA9IDE1
OworCisgICAgLy9pZiBwdXJnZSBpcyBlbmFibGVkIGlzIHRydWUgd2UgbGltaXQgdGhlIG51bWJl
ciBvZiByZXN1bHRzLCBidXQgd2Ugc2hvdworICAgIC8vZmlsZXMgdGhlIHVzZXIgd2FudCBldmVu
IGlmIHRoZXJlIGlzIG5vIG1vcmUgZW1wdHkgc2xvdAorCiAgICAgaWYoIGhhc1B1cmdlKCkgKQog
ICAgIHsKICAgICAgICAgY29tbWFuZCA9IFFTdHJpbmcoICJTRUxFQ1QgaWQsIHVybCwgY2hhbm5l
bCwgbG9jYWx1cmwsIGd1aWQsICIKLSAgICAgICAgInRpdGxlLCBzdWJ0aXRsZSwgc2VxdWVuY2Vu
dW1iZXIsIGRlc2NyaXB0aW9uLCBtaW1ldHlwZSwgcHViZGF0ZSwgIgotICAgICAgICAiZHVyYXRp
b24sIGZpbGVzaXplLCBpc25ldyBGUk9NIHBvZGNhc3RlcGlzb2RlcyBXSEVSRSBjaGFubmVsID0g
JTEgIgotICAgICAgICAiT1JERVIgQlkgcHViZGF0ZSBERVNDIExJTUlUICIgKyBRU3RyaW5nOjpu
dW1iZXIoIHB1cmdlQ291bnQoKSApICsgJzsnICk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAidGl0bGUsIHN1YnRpdGxlLCBzZXF1ZW5jZW51bWJlciwgZGVzY3JpcHRpb24sIG1pbWV0eXBl
LCBwdWJkYXRlLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiZHVyYXRpb24sIGZpbGVz
aXplLCBpc25ldywgaXNrZWVwIEZST00gcG9kY2FzdGVwaXNvZGVzIFdIRVJFIGNoYW5uZWwgPSAl
MSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiQU5EIGlza2VlcCBJUyBGQUxTRSBMSU1J
VCAiICsgUVN0cmluZzo6bnVtYmVyKCBwdXJnZUNvdW50KCkgKSArICIgVU5JT04gIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIlNFTEVDVCBpZCwgdXJsLCBjaGFubmVsLCBsb2NhbHVybCwg
Z3VpZCwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpdGxlLCBzdWJ0aXRsZSwgc2Vx
dWVuY2VudW1iZXIsIGRlc2NyaXB0aW9uLCBtaW1ldHlwZSwgcHViZGF0ZSwgIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImR1cmF0aW9uLCBmaWxlc2l6ZSwgaXNuZXcsIGlza2VlcCBGUk9N
IHBvZGNhc3RlcGlzb2RlcyBXSEVSRSBjaGFubmVsID0gJTEgIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkFORCBpc2tlZXAgSVMgVFJVRSBPUkRFUiBCWSBwdWJkYXRlIERFU0M7IgorICAg
ICAgICAgICAgICAgICAgICAgICAgICApOwogICAgIH0KICAgICBlbHNlCiAgICAgewogICAgICAg
ICBjb21tYW5kID0gUVN0cmluZyggIlNFTEVDVCBpZCwgdXJsLCBjaGFubmVsLCBsb2NhbHVybCwg
Z3VpZCwgIgotICAgICAgICAgICAgInRpdGxlLCBzdWJ0aXRsZSwgc2VxdWVuY2VudW1iZXIsIGRl
c2NyaXB0aW9uLCBtaW1ldHlwZSwgcHViZGF0ZSwgIgotICAgICAgICAgICAgImR1cmF0aW9uLCBm
aWxlc2l6ZSwgaXNuZXcgRlJPTSBwb2RjYXN0ZXBpc29kZXMgV0hFUkUgY2hhbm5lbCA9ICUxICIK
LSAgICAgICAgICAgICJPUkRFUiBCWSBwdWJkYXRlIERFU0M7IiApOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInRpdGxlLCBzdWJ0aXRsZSwgc2VxdWVuY2VudW1iZXIsIGRlc2NyaXB0aW9u
LCBtaW1ldHlwZSwgcHViZGF0ZSwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImR1cmF0
aW9uLCBmaWxlc2l6ZSwgaXNuZXcsIGlza2VlcCBGUk9NIHBvZGNhc3RlcGlzb2RlcyBXSEVSRSBj
aGFubmVsID0gJTEgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9SREVSIEJZIHB1YmRh
dGUgREVTQzsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgfQogCisgICAgbV9l
cGlzb2Rlcy5jbGVhciAoKTsKKwogICAgIFFTdHJpbmdMaXN0IHJlc3VsdHMgPSBzcWxTdG9yYWdl
LT5xdWVyeSggY29tbWFuZC5hcmcoIG1fZGJJZCApICk7CiAKLSAgICBpbnQgcm93TGVuZ3RoID0g
MTQ7Ci0gICAgZm9yKGludCBpPTA7IGkgPCByZXN1bHRzLnNpemUoKTsgaSs9cm93TGVuZ3RoKQor
ICAgIGZvciggaW50IGkgPSAwOyBpIDwgcmVzdWx0cy5zaXplKCk7IGkgKz0gcm93TGVuZ3RoICkK
ICAgICB7CiAgICAgICAgIFFTdHJpbmdMaXN0IGVwaXNvZGVzUmVzdWx0ID0gcmVzdWx0cy5taWQo
IGksIHJvd0xlbmd0aCApOwogICAgICAgICBTcWxQb2RjYXN0RXBpc29kZVB0ciBzcWxFcGlzb2Rl
ID0gU3FsUG9kY2FzdEVwaXNvZGVQdHIoCi0gICAgICAgICAgICAgICAgbmV3IFNxbFBvZGNhc3RF
cGlzb2RlKCBlcGlzb2Rlc1Jlc3VsdCwgU3FsUG9kY2FzdENoYW5uZWxQdHIoIHRoaXMgKSApICk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFNxbFBv
ZGNhc3RFcGlzb2RlKCBlcGlzb2Rlc1Jlc3VsdCwgU3FsUG9kY2FzdENoYW5uZWxQdHIoIHRoaXMg
KSApICk7CiAgICAgICAgIG1fZXBpc29kZXMgPDwgIHNxbEVwaXNvZGU7CiAgICAgfQogCiAgICAg
bV9lcGlzb2Rlc0xvYWRlZCA9IHRydWU7CisKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2NvcmUtaW1w
bC9wb2RjYXN0cy9zcWwvU3FsUG9kY2FzdE1ldGEuaCBiL3NyYy9jb3JlLWltcGwvcG9kY2FzdHMv
c3FsL1NxbFBvZGNhc3RNZXRhLmgKaW5kZXggNWJkYTcxMy4uOGMyMzhhMyAxMDA2NDQKLS0tIGEv
c3JjL2NvcmUtaW1wbC9wb2RjYXN0cy9zcWwvU3FsUG9kY2FzdE1ldGEuaAorKysgYi9zcmMvY29y
ZS1pbXBsL3BvZGNhc3RzL3NxbC9TcWxQb2RjYXN0TWV0YS5oCkBAIC01Miw2ICs1Miw4IEBAIGNs
YXNzIFNxbFBvZGNhc3RFcGlzb2RlIDogcHVibGljIFBvZGNhc3RzOjpQb2RjYXN0RXBpc29kZQog
ICAgICAgICBQb2RjYXN0Q2hhbm5lbFB0ciBjaGFubmVsKCkgY29uc3QgeyByZXR1cm4gUG9kY2Fz
dENoYW5uZWxQdHI6OmR5bmFtaWNDYXN0KCBtX2NoYW5uZWwgKTsgfQogICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNOZXcoKSBjb25zdCB7IHJldHVybiBtX2lzTmV3OyB9CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBzZXROZXcoIGJvb2wgaXNOZXcgKTsKKyAgICAgICAgdmlydHVhbCBib29sIGlzS2VlcCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNLZWVwOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRLZWVw
KCBib29sIGlzS2VlcCApOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxVcmwoIGNvbnN0
IEtVcmwgJnVybCApOwogCiAgICAgICAgIC8vVHJhY2sgTWV0aG9kcwpkaWZmIC0tZ2l0IGEvc3Jj
L2NvcmUtaW1wbC9wb2RjYXN0cy9zcWwvU3FsUG9kY2FzdFByb3ZpZGVyLmNwcCBiL3NyYy9jb3Jl
LWltcGwvcG9kY2FzdHMvc3FsL1NxbFBvZGNhc3RQcm92aWRlci5jcHAKaW5kZXggMmQzZjFhNS4u
Y2RkN2U0MCAxMDA2NDQKLS0tIGEvc3JjL2NvcmUtaW1wbC9wb2RjYXN0cy9zcWwvU3FsUG9kY2Fz
dFByb3ZpZGVyLmNwcAorKysgYi9zcmMvY29yZS1pbXBsL3BvZGNhc3RzL3NxbC9TcWxQb2RjYXN0
UHJvdmlkZXIuY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgU3FsUG9kY2FzdFByb3ZpZGVyOjpzcWxF
cGlzb2RlRm9yU3RyaW5nKCBjb25zdCBRU3RyaW5nICZzdHJpbmcgKQogCiAgICAgUVN0cmluZyBj
b21tYW5kID0gIlNFTEVDVCBpZCwgdXJsLCBjaGFubmVsLCBsb2NhbHVybCwgZ3VpZCwgIgogICAg
ICAgICAgICAgInRpdGxlLCBzdWJ0aXRsZSwgc2VxdWVuY2VudW1iZXIsIGRlc2NyaXB0aW9uLCBt
aW1ldHlwZSwgcHViZGF0ZSwgIgotICAgICAgICAgICAgImR1cmF0aW9uLCBmaWxlc2l6ZSwgaXNu
ZXcgRlJPTSBwb2RjYXN0ZXBpc29kZXMgIgorICAgICAgICAgICAgImR1cmF0aW9uLCBmaWxlc2l6
ZSwgaXNuZXcsIGlza2VlcCBGUk9NIHBvZGNhc3RlcGlzb2RlcyAiCiAgICAgICAgICAgICAiV0hF
UkUgZ3VpZD0nJTEnIE9SIHVybD0nJTEnIE9SIGxvY2FsdXJsPSclMScgT1JERVIgQlkgaWQgREVT
QzsiOwogICAgIGNvbW1hbmQgPSBjb21tYW5kLmFyZyggc3FsU3RvcmFnZS0+ZXNjYXBlKCBzdHJp
bmcgKSApOwogICAgIFFTdHJpbmdMaXN0IGRiUmVzdWx0ID0gc3FsU3RvcmFnZS0+cXVlcnkoIGNv
bW1hbmQgKTsKQEAgLTIzMyw3ICsyMzMsNyBAQCBTcWxQb2RjYXN0UHJvdmlkZXI6OnNxbEVwaXNv
ZGVGb3JTdHJpbmcoIGNvbnN0IFFTdHJpbmcgJnN0cmluZyApCiAKICAgICAvL1RoZSBlcGlzb2Rl
IHdhcyBmb3VuZCBpbiB0aGUgZGF0YWJhc2UgYnV0IGl0J3MgY2hhbm5lbCBkaWRuJ3QgaGF2ZSBp
dCBpbiBpdCdzIGxpc3QuCiAgICAgLy9UaGF0IHByb2JhYmx5IGlzIGJlY2F1c2UgaXQncyBiZXlv
bmQgdGhlIHB1cmdlY291bnQgbGltaXQgb3IgdGhlIHRyYWNrcyB3ZXJlIG5vdCBsb2FkZWQgeWV0
LgotICAgIHJldHVybiBTcWxQb2RjYXN0RXBpc29kZVB0ciggbmV3IFNxbFBvZGNhc3RFcGlzb2Rl
KCBkYlJlc3VsdC5taWQoIDAsIDE0ICksIGNoYW5uZWwgKSApOworICAgIHJldHVybiBTcWxQb2Rj
YXN0RXBpc29kZVB0ciggbmV3IFNxbFBvZGNhc3RFcGlzb2RlKCBkYlJlc3VsdC5taWQoIDAsIDE1
ICksIGNoYW5uZWwgKSApOwogfQogCiBib29sCkBAIC03MDIsOCArNzAyLDYgQEAgU3FsUG9kY2Fz
dFByb3ZpZGVyOjpjb25maWd1cmVDaGFubmVsKCBQb2RjYXN0czo6U3FsUG9kY2FzdENoYW5uZWxQ
dHIgc3FsQ2hhbm5lbAogCiAgICAgS1VybCBvbGRVcmwgPSBzcWxDaGFubmVsLT51cmwoKTsKICAg
ICBLVXJsIG9sZFNhdmVMb2NhdGlvbiA9IHNxbENoYW5uZWwtPnNhdmVMb2NhdGlvbigpOwotICAg
IGJvb2wgb2xkSGFzUHVyZ2UgPSBzcWxDaGFubmVsLT5oYXNQdXJnZSgpOwotICAgIGludCBvbGRQ
dXJnZUNvdW50ID0gc3FsQ2hhbm5lbC0+cHVyZ2VDb3VudCgpOwogICAgIGJvb2wgb2xkQXV0b1Nj
YW4gPSBzcWxDaGFubmVsLT5hdXRvU2NhbigpOwogCiAgICAgUG9kY2FzdFNldHRpbmdzRGlhbG9n
IGRpYWxvZyggc3FsQ2hhbm5lbCwgVGhlOjptYWluV2luZG93KCkgKTsKQEAgLTcxMSwxOCArNzA5
LDggQEAgU3FsUG9kY2FzdFByb3ZpZGVyOjpjb25maWd1cmVDaGFubmVsKCBQb2RjYXN0czo6U3Fs
UG9kY2FzdENoYW5uZWxQdHIgc3FsQ2hhbm5lbAogCiAgICAgc3FsQ2hhbm5lbC0+dXBkYXRlSW5E
YigpOwogCi0gICAgaWYoICggb2xkSGFzUHVyZ2UgJiYgIXNxbENoYW5uZWwtPmhhc1B1cmdlKCkg
KQotICAgICAgICB8fCAoIG9sZFB1cmdlQ291bnQgPCBzcWxDaGFubmVsLT5wdXJnZUNvdW50KCkg
KSApCi0gICAgewotICAgICAgICAvKiBjaGFuZ2VkIGZyb20gcHVyZ2UgdG8gbm8tcHVyZ2Ugb3Ig
aW5jcmVhc2UgcHVyZ2UgY291bnQ6Ci0gICAgICAgIHdlIG5lZWQgdG8gcmVsb2FkIGFsbCBlcGlz
b2RlcyBmcm9tIHRoZSBkYXRhYmFzZS4gKi8KLSAgICAgICAgc3FsQ2hhbm5lbC0+bG9hZEVwaXNv
ZGVzKCk7Ci0gICAgICAgIGVtaXQoIHVwZGF0ZWQoKSApOwotICAgIH0KLSAgICBlbHNlCi0gICAg
ewotICAgICAgICBzcWxDaGFubmVsLT5hcHBseVB1cmdlKCk7Ci0gICAgfQorICAgIHNxbENoYW5u
ZWwtPmFwcGx5UHVyZ2UoKTsKKyAgICBlbWl0KCB1cGRhdGVkKCkgKTsKIAogICAgIGlmKCBvbGRT
YXZlTG9jYXRpb24gIT0gc3FsQ2hhbm5lbC0+c2F2ZUxvY2F0aW9uKCkgKQogICAgIHsKQEAgLTE1
MjUsNyArMTUxMyw4IEBAIFNxbFBvZGNhc3RQcm92aWRlcjo6Y3JlYXRlVGFibGVzKCkgY29uc3QK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIixwdWJkYXRlICIgICsgc3FsU3RvcmFn
ZS0+dGV4dENvbHVtblR5cGUoKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIs
ZHVyYXRpb24gSU5URUdFUiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIixmaWxl
c2l6ZSBJTlRFR0VSIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLGlzbmV3IEJP
T0wgKSBFTkdJTkUgPSBNeUlTQU07IiApICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIsaXNuZXcgQk9PTCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIixpc2tl
ZXAgQk9PTCApIEVOR0lORSA9IE15SVNBTTsiICkgKTsKIAogICAgIHNxbFN0b3JhZ2UtPnF1ZXJ5
KCAiQ1JFQVRFIEZVTExURVhUIElOREVYIHVybF9wb2RjaGFubmVsIE9OIHBvZGNhc3RjaGFubmVs
cyggdXJsICk7IiApOwogICAgIHNxbFN0b3JhZ2UtPnF1ZXJ5KCAiQ1JFQVRFIEZVTExURVhUIElO
REVYIHVybF9wb2RlcGlzb2RlIE9OIHBvZGNhc3RlcGlzb2RlcyggdXJsICk7IiApOwpAQCAtMTU4
Niw3ICsxNTc1LDggQEAgU3FsUG9kY2FzdFByb3ZpZGVyOjp1cGRhdGVEYXRhYmFzZSggaW50IGZy
b21WZXJzaW9uLCBpbnQgdG9WZXJzaW9uICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIscHViZGF0ZSAiICArIHNxbFN0b3JhZ2UtPnRleHRDb2x1bW5UeXBlKCkgKwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIixkdXJhdGlvbiBJTlRFR0VSIgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIixmaWxlc2l6ZSBJTlRFR0VSIgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIixpc25ldyBCT09MICkgRU5HSU5FID0g
TXlJU0FNOyIgKSApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIixpc25l
dyBCT09MIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIixpc2tlZXAgQk9P
TCApIEVOR0lORSA9IE15SVNBTTsiICkgKTsKIAogICAgICAgICBzcWxTdG9yYWdlLT5xdWVyeSgg
IklOU0VSVCBJTlRPIHBvZGNhc3RjaGFubmVsc190ZW1wIFNFTEVDVCAqIEZST00gcG9kY2FzdGNo
YW5uZWxzOyIgKTsKICAgICAgICAgc3FsU3RvcmFnZS0+cXVlcnkoICJJTlNFUlQgSU5UTyBwb2Rj
YXN0ZXBpc29kZXNfdGVtcCBTRUxFQ1QgKiBGUk9NIHBvZGNhc3RlcGlzb2RlczsiICk7CmRpZmYg
LS1naXQgYS9zcmMvY29yZS9wb2RjYXN0cy9Qb2RjYXN0TWV0YS5jcHAgYi9zcmMvY29yZS9wb2Rj
YXN0cy9Qb2RjYXN0TWV0YS5jcHAKaW5kZXggZmI4MmZhOC4uMTIzZWVhOCAxMDA2NDQKLS0tIGEv
c3JjL2NvcmUvcG9kY2FzdHMvUG9kY2FzdE1ldGEuY3BwCisrKyBiL3NyYy9jb3JlL3BvZGNhc3Rz
L1BvZGNhc3RNZXRhLmNwcApAQCAtNDgsNiArNDgsNyBAQCBQb2RjYXN0RXBpc29kZTo6UG9kY2Fz
dEVwaXNvZGUoIFBvZGNhc3RDaGFubmVsUHRyIGNoYW5uZWwgKQogICAgICwgbV9maWxlU2l6ZSgg
MCApCiAgICAgLCBtX3NlcXVlbmNlTnVtYmVyKCAwICkKICAgICAsIG1faXNOZXcoIHRydWUgKQor
ICAgICwgbV9pc0tlZXAoIHRydWUgKQogewogICAgIG1fYWxidW1QdHIgPSBNZXRhOjpBbGJ1bVB0
ciggbmV3IFBvZGNhc3RBbGJ1bSggdGhpcyApICk7CiAgICAgbV9hcnRpc3RQdHIgPSBNZXRhOjpB
cnRpc3RQdHIoIG5ldyBQb2RjYXN0QXJ0aXN0KCB0aGlzICkgKTsKQEAgLTY2LDYgKzY3LDcgQEAg
UG9kY2FzdEVwaXNvZGU6OlBvZGNhc3RFcGlzb2RlKCBQb2RjYXN0RXBpc29kZVB0ciBlcGlzb2Rl
LAogICAgIG1fZmlsZVNpemUgPSBlcGlzb2RlLT5maWxlc2l6ZSgpOwogICAgIG1fZ3VpZCA9IGVw
aXNvZGUtPmd1aWQoKTsKICAgICBtX2lzTmV3ID0gZXBpc29kZS0+aXNOZXcoKTsKKyAgICBtX2lz
S2VlcCA9IGVwaXNvZGUtPmlzS2VlcCgpOwogICAgIG1fa2V5d29yZHMgPSBlcGlzb2RlLT5rZXl3
b3JkcygpOwogICAgIG1fbG9jYWxVcmwgPSBlcGlzb2RlLT5sb2NhbFVybCgpOwogICAgIG1fbWlt
ZVR5cGUgPSBlcGlzb2RlLT5taW1lVHlwZSgpOwpkaWZmIC0tZ2l0IGEvc3JjL2NvcmUvcG9kY2Fz
dHMvUG9kY2FzdE1ldGEuaCBiL3NyYy9jb3JlL3BvZGNhc3RzL1BvZGNhc3RNZXRhLmgKaW5kZXgg
ZTExYjJlYi4uNWQ0YjExMSAxMDA2NDQKLS0tIGEvc3JjL2NvcmUvcG9kY2FzdHMvUG9kY2FzdE1l
dGEuaAorKysgYi9zcmMvY29yZS9wb2RjYXN0cy9Qb2RjYXN0TWV0YS5oCkBAIC0xNjMsNiArMTYz
LDcgQEAgY2xhc3MgQU1BUk9LX0NPUkVfRVhQT1JUIFBvZGNhc3RFcGlzb2RlIDogcHVibGljIFBv
ZGNhc3RNZXRhQ29tbW9uLCBwdWJsaWMgTWV0YToKICAgICAgICAgdmlydHVhbCBpbnQgZHVyYXRp
b24oKSBjb25zdCB7IHJldHVybiBtX2R1cmF0aW9uOyB9CiAgICAgICAgIHZpcnR1YWwgUVN0cmlu
ZyBndWlkKCkgY29uc3QgeyByZXR1cm4gbV9ndWlkOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBp
c05ldygpIGNvbnN0IHsgcmV0dXJuIG1faXNOZXc7IH0KKyAgICAgICAgdmlydHVhbCBib29sIGlz
S2VlcCgpIGNvbnN0IHsgcmV0dXJuIG1faXNLZWVwOyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHNldEZpbGVzaXplKCBpbnQgZmlsZVNpemUgKSB7IG1fZmlsZVNpemUgPSBmaWxlU2l6ZTsgfQog
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0TWltZVR5cGUoIGNvbnN0IFFTdHJpbmcgJm1pbWVUeXBl
ICkgeyBtX21pbWVUeXBlID0gbWltZVR5cGU7IH0KQEAgLTE3MSw2ICsxNzIsNyBAQCBjbGFzcyBB
TUFST0tfQ09SRV9FWFBPUlQgUG9kY2FzdEVwaXNvZGUgOiBwdWJsaWMgUG9kY2FzdE1ldGFDb21t
b24sIHB1YmxpYyBNZXRhOgogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0RHVyYXRpb24oIGludCBk
dXJhdGlvbiApIHsgbV9kdXJhdGlvbiA9IGR1cmF0aW9uOyB9CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRHdWlkKCBjb25zdCBRU3RyaW5nICZndWlkICkgeyBtX2d1aWQgPSBndWlkOyB9CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBzZXROZXcoIGJvb2wgaXNOZXcgKSB7IG1faXNOZXcgPSBpc05ldzsg
fQorICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0S2VlcCggYm9vbCBpc0tlZXAgKSB7IG1faXNLZWVw
ID0gaXNLZWVwOyB9CiAKICAgICAgICAgdmlydHVhbCBpbnQgc2VxdWVuY2VOdW1iZXIoKSBjb25z
dCB7IHJldHVybiBtX3NlcXVlbmNlTnVtYmVyOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRT
ZXF1ZW5jZU51bWJlciggaW50IHNlcXVlbmNlTnVtYmVyICkgeyBtX3NlcXVlbmNlTnVtYmVyID0g
c2VxdWVuY2VOdW1iZXI7IH0KQEAgLTE5MCw2ICsxOTIsNyBAQCBjbGFzcyBBTUFST0tfQ09SRV9F
WFBPUlQgUG9kY2FzdEVwaXNvZGUgOiBwdWJsaWMgUG9kY2FzdE1ldGFDb21tb24sIHB1YmxpYyBN
ZXRhOgogICAgICAgICBpbnQgbV9maWxlU2l6ZTsgLy90aGUgc2l6ZSB0YWcgZnJvbSB0aGUgZW5j
bG9zdXJlCiAgICAgICAgIGludCBtX3NlcXVlbmNlTnVtYmVyOyAvL251bWJlciBvZiB0aGUgZXBp
c29kZQogICAgICAgICBib29sIG1faXNOZXc7IC8vbGlzdGVuZWQgdG8gb3Igbm90PworICAgICAg
ICBib29sIG1faXNLZWVwOyAvL0tlZXAgZG93bmxvYWRlZCBmaWxlcyBvciBub3Q/CiAKICAgICAg
ICAgLy9kYXRhIG1lbWJlcnMKICAgICAgICAgTWV0YTo6QWxidW1QdHIgbV9hbGJ1bVB0cjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>