<?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>180621</bug_id>
          
          <creation_ts>2017-12-08 23:50:53 -0800</creation_ts>
          <short_desc>Modernize WebsiteDataStoreParameters and SandboxExtension::Handle decoding</short_desc>
          <delta_ts>2017-12-12 17:20:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1379955</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-12-08 23:50:53 -0800</bug_when>
    <thetext>Modernize WebsiteDataStoreParameters and SandboxExtension::Handle decoding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379956</commentid>
    <comment_count>1</comment_count>
      <attachid>328908</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-12-08 23:51:13 -0800</bug_when>
    <thetext>Created attachment 328908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380220</commentid>
    <comment_count>2</comment_count>
      <attachid>328981</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-12-11 09:10:00 -0800</bug_when>
    <thetext>Created attachment 328981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380489</commentid>
    <comment_count>3</comment_count>
      <attachid>329062</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-12-11 17:36:36 -0800</bug_when>
    <thetext>Created attachment 329062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380966</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-12-12 17:18:35 -0800</bug_when>
    <thetext>http://trac.webkit.org/r225826</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380970</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-12 17:20:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/36009971&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328908</attachid>
            <date>2017-12-08 23:51:13 -0800</date>
            <delta_ts>2017-12-11 09:09:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180621-20171208235112.patch</filename>
            <type>text/plain</type>
            <size>21035</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjU3MjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE3LTEyLTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXplIFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIGFuZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZGVj
b2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MDYyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9TYW5kYm94RXh0
ZW5zaW9uLmg6CisgICAgICAgIChXZWJLaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFy
ZWQvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NhbmRi
b3hFeHRlbnNpb25NYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246Okhh
bmRsZTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
QXJyYXk6OkhhbmRsZUFycmF5KToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlQXJyYXk6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZUFycmF5OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0
ZW5zaW9uOjpTYW5kYm94RXh0ZW5zaW9uKToKKwogMjAxNy0xMi0wOCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2VydmljZSBXb3JrZXIgc2hvdWxkIHVzZSBh
IGNvcnJlY3QgdXNlciBhZ2VudApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAJKHJldmlzaW9uIDIyNTY3OSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQs
MTIgKzEyNCwyMiBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jYWNo
ZVN0b3JhZ2VQZXJPcmlnaW5RdW90YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpKQorICAgIAorICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBj
YWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBjYWNo
ZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFjYWNoZVN0b3JhZ2VE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXN1
bHQuY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqY2FjaGVT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmRpc2tDYWNoZURpcmVjdG9yeSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5kaXNrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpKQorICAgIAorICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiBkaXNrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBkaXNr
Q2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFkaXNrQ2FjaGVEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXN1bHQuZGlz
a0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqZGlza0NhY2hlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNo
b3VsZEVuYWJsZU5ldHdvcmtDYWNoZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zaG91bGRFbmFibGVOZXR3b3JrQ2FjaGVFZmZpY2FjeUxv
Z2dpbmcpKQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDIyNTY3
OSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsMTAgKzEzNCwxMSBAQCBib29sIE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvCiAgICAgfQogCiAgICAgaWYgKHJlc3Vs
dC5yZXF1ZXN0LnVybCgpLmlzTG9jYWxGaWxlKCkpIHsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIHJlc291cmNlU2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKLSAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXNvdXJjZVNhbmRib3hFeHRlbnNpb25IYW5kbGUpKQorICAgICAgICBz
dGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gcmVzb3VyY2VTYW5kYm94RXh0
ZW5zaW9uSGFuZGxlOworICAgICAgICBkZWNvZGVyID4+IHJlc291cmNlU2FuZGJveEV4dGVuc2lv
bkhhbmRsZTsKKyAgICAgICAgaWYgKCFyZXNvdXJjZVNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJlc3VsdC5yZXNvdXJjZVNhbmRib3hF
eHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUocmVzb3VyY2VTYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKTsKKyAgICAgICAgcmVzdWx0LnJlc291cmNlU2FuZGJveEV4dGVuc2lvbiA9IFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKCpyZXNvdXJjZVNhbmRib3hFeHRlbnNpb25I
YW5kbGUpKTsKICAgICB9CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuY29u
dGVudFNuaWZmaW5nUG9saWN5KSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJh
bWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1l
dGVycy5jcHAJKHJldmlzaW9uIDIyNTY3OSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQ
YXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsOCArNzIsMTEgQEAgYm9vbCBMb2Fk
UGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlcgogICAgICAgICBkYXRhLnJlcXVlc3Quc2V0
SFRUUEJvZHkoV1RGTW92ZShmb3JtRGF0YSkpOwogICAgIH0KIAotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoZGF0YS5zYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSkKKyAgICBzdGQ6Om9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNv
ZGVyID4+IHNhbmRib3hFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZGF0YS5zYW5kYm94RXh0ZW5zaW9u
SGFuZGxlID0gV1RGTW92ZSgqc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGRhdGEuZGF0YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgJKHJldmlzaW9uIDIyNTY3OSkKKysr
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLSNpZm5kZWYgU2FuZGJveEV4dGVuc2lvbl9oCi0jZGVmaW5lIFNhbmRib3hFeHRlbnNpb25f
aAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNTUsMTMgKzU0LDE1IEBAIHB1YmxpYzoKICAgICAgICAgSGFu
ZGxlKCk7CiAjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKICAgICAgICAgSGFuZGxlKEhh
bmRsZSYmKTsKKyAgICAgICAgSGFuZGxlJiBvcGVyYXRvcj0oSGFuZGxlJiYpOwogI2Vsc2UKICAg
ICAgICAgSGFuZGxlKEhhbmRsZSYmKSA9IGRlZmF1bHQ7CisgICAgICAgIEhhbmRsZSYgb3BlcmF0
b3I9KEhhbmRsZSYmKSA9IGRlZmF1bHQ7CiAjZW5kaWYKICAgICAgICAgfkhhbmRsZSgpOwogCiAg
ICAgICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgSGFuZGxlJik7CisgICAgICAgIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPEhhbmRsZT4gZGVjb2RlKElQQzo6RGVjb2RlciYpOwogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgZnJpZW5kIGNsYXNzIFNhbmRib3hFeHRlbnNpb247CkBAIC04Niw3ICs4Nyw3IEBA
IHB1YmxpYzoKICAgICBwcml2YXRlOgogI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCiAg
ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxIYW5kbGVbXT4gbV9kYXRhOwotICAgICAgICBzaXplX3Qg
bV9zaXplOworICAgICAgICBzaXplX3QgbV9zaXplIHsgMCB9OwogI2Vsc2UKICAgICAgICAgSGFu
ZGxlIG1fZW1wdHlIYW5kbGU7CiAjZW5kaWYKQEAgLTExMSw3ICsxMTIsNyBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgICAgICAgCiAjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKICAg
ICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxTYW5kYm94RXh0ZW5zaW9uSW1wbD4gbV9zYW5kYm94
RXh0ZW5zaW9uOwotICAgIHNpemVfdCBtX3VzZUNvdW50OworICAgIHNpemVfdCBtX3VzZUNvdW50
IHsgMCB9OwogI2VuZGlmCiB9OwogCkBAIC0xMTksNyArMTIwLDcgQEAgcHJpdmF0ZToKIGlubGlu
ZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OkhhbmRsZSgpIHsgfQogaW5saW5lIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZTo6fkhhbmRsZSgpIHsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlOjplbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3QgeyB9Ci1pbmxpbmUgYm9v
bCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImLCBIYW5kbGUm
KSB7IHJldHVybiB0cnVlOyB9CitpbmxpbmUgc3RkOjpvcHRpb25hbDxIYW5kbGU+IGRlY29kZShJ
UEM6OkRlY29kZXImKSB7IHJldHVybiB7eyB9fTsgfQogaW5saW5lIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZUFycmF5OjpIYW5kbGVBcnJheSgpIHsgfQogaW5saW5lIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZUFycmF5Ojp+SGFuZGxlQXJyYXkoKSB7IH0KIGlubGluZSB2b2lkIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZUFycmF5OjphbGxvY2F0ZShzaXplX3QpIHsgfQpAQCAtMTQ5LDYgKzE1MCwz
IEBAIFN0cmluZyByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3IKICNlbmRpZgogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotCi0jZW5kaWYgLy8gU2FuZGJveEV4dGVuc2lvbl9oCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjI1Njc5KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw4
ICsxNTEsMTMgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAogewog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5pbmplY3RlZEJ1bmRsZVBhdGgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmluamVjdGVkQnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRsZSkpCisgICAgCisgICAgc3RkOjpvcHRp
b25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGluamVjdGVkQnVuZGxlUGF0aEV4dGVuc2lv
bkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IGluamVjdGVkQnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRs
ZTsKKyAgICBpZiAoIWluamVjdGVkQnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMuaW5qZWN0ZWRCdW5kbGVQYXRoRXh0ZW5zaW9u
SGFuZGxlID0gV1RGTW92ZSgqaW5qZWN0ZWRCdW5kbGVQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKKwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hZGRpdGlvbmFsU2FuZGJveEV4dGVu
c2lvbkhhbmRsZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShwYXJhbWV0ZXJzLmluaXRpYWxpemF0aW9uVXNlckRhdGEpKQpAQCAtMTYxLDMxICsxNjYs
NjQgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFwcGxpY2F0
aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUpKQorICAgIAorICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlPiBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
OworICAgIGRlY29kZXIgPj4gYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZTsKKyAgICBpZiAoIWFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCphcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy53
ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMud2ViU1FMRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpKQorCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+
IHdlYlNRTERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGRlY29kZXIgPj4g
d2ViU1FMRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCF3ZWJTUUxE
YXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHBhcmFtZXRlcnMud2ViU1FMRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBX
VEZNb3ZlKCp3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWVkaWFDYWNoZURpcmVjdG9yeSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWVk
aWFDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgCisgICAgc3RkOjpvcHRpb25h
bDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG1lZGlhQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGU7CisgICAgZGVjb2RlciA+PiBtZWRpYUNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
OworICAgIGlmICghbWVkaWFDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMubWVkaWFDYWNoZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSA9IFdURk1vdmUoKm1lZGlhQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwor
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmphdmFTY3JpcHRDb25maWd1cmF0
aW9uRGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSkpCisgICAgCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGU+IGphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAg
IGRlY29kZXIgPj4gamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGU7CisgICAgaWYgKCFqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMuamF2YVNjcmlwdENv
bmZpZ3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpqYXZhU2NyaXB0
Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKICNpZiBQTEFURk9STShN
QUMpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0
b3JhZ2VJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAjaWYgUExB
VEZPUk0oSU9TKQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jb29raWVTdG9y
YWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKKyAgICAKKyAgICBzdGQ6Om9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZTsKKyAgICBkZWNvZGVyID4+IGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGU7CisgICAgaWYgKCFjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNv
bnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgcGFyYW1ldGVycy5j
b29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqY29va2llU3Rv
cmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4gY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlOworICAgIGRlY29kZXIgPj4gY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlOworICAgIGlmICghY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgcGFyYW1l
dGVycy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpj
b250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCisgICAgc3RkOjpvcHRp
b25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IGNvbnRhaW5lclRlbXBvcmFyeURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIWNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMu
Y29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqY29u
dGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwogI2VuZGlmCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE5MywxMSArMjMxLDIxIEBAIGJvb2wgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy53ZWJLaXRMb2dnaW5nQ2hhbm5lbHMpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
Lm1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgCisgICAgc3Rk
OjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG1lZGlhS2V5U3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IG1lZGlhS2V5U3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIW1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMubWVk
aWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbWVkaWFLZXlT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmF1ZGlvQ2FwdHVyZUV4dGVu
c2lvbkhhbmRsZSkpCisKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZT4gYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlOworICAgIGRlY29kZXIgPj4gYXVkaW9DYXB0
dXJlRXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVycy5hdWRpb0NhcHR1cmVFeHRl
bnNpb25IYW5kbGUgPSBXVEZNb3ZlKCphdWRpb0NhcHR1cmVFeHRlbnNpb25IYW5kbGUpOworCiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRpb0luVUlQ
cm9jZXNzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCkBAIC0yNjAsOCArMzA4LDEz
IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51aVByb2Nlc3NC
dW5kbGVSZXNvdXJjZVBhdGgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lv
bkhhbmRsZSkpCisgICAgCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGU+IHVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNv
ZGVyID4+IHVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lvbkhhbmRsZTsKKyAgICBp
ZiAoIXVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRo
RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqdWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoRXh0
ZW5zaW9uSGFuZGxlKTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91
bGRFbmFibGVKSVQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUZUTEpJVCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwCShyZXZpc2lv
biAyMjU2NzkpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDM2ICs0Niw0NCBAQCB2b2lkIFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzOjplbmNvZGUoCiAgICAgZW5jb2RlciA8PCBjYWNoZVN0b3JhZ2VE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiB9CiAKLWJvb2wgV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQorc3RkOjpvcHRpb25hbDxXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycz4gV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRl
Y29kZXIpCiB7CiAgICAgc3RkOjpvcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1l
dGVycz4gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzOwogICAgIGRlY29kZXIgPj4gbmV0d29ya1Nl
c3Npb25QYXJhbWV0ZXJzOwogICAgIGlmICghbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRl
cnMgPSBXVEZNb3ZlKCpuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMpOworICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVpUHJv
Y2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5z
aW9uSGFuZGxlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPHVpbnQ4X3Q+PiB1aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKKyAgICBkZWNv
ZGVyID4+IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOworICAgIGlmICghdWlQcm9j
ZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29va2llU3Rv
cmFnZVBhdGhFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBjb29raWVTdG9yYWdlUGF0
aEV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIWNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFu
ZGxlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8V2ViQ29yZTo6Q29va2llPj4gcGVuZGluZ0Nvb2tpZXM7CiAgICAgZGVjb2RlciA+PiBw
ZW5kaW5nQ29va2llczsKICAgICBpZiAoIXBlbmRpbmdDb29raWVzKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgcGFyYW1ldGVycy5wZW5kaW5nQ29va2llcyA9IFdURk1vdmUoKnBlbmRpbmdD
b29raWVzKTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jYWNoZVN0b3Jh
Z2VEaXJlY3RvcnkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMuY2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGEpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY2FjaGVT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIHRydWU7CisgICAgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IGNhY2hlU3RvcmFnZURpcmVjdG9yeTsKKyAgICBkZWNvZGVyID4+
IGNhY2hlU3RvcmFnZURpcmVjdG9yeTsKKyAgICBpZiAoIWNhY2hlU3RvcmFnZURpcmVjdG9yeSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IGNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhOworICAgIGRlY29kZXIgPj4gY2FjaGVTdG9y
YWdlUGVyT3JpZ2luUXVvdGE7CisgICAgaWYgKCFjYWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90YSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlPiBjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7
CisgICAgZGVjb2RlciA+PiBjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Cisg
ICAgaWYgKCFjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgCisgICAgcmV0dXJuIHt7IFdURk1vdmUoKnVpUHJvY2Vz
c0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyKSwgV1RGTW92ZSgqY29va2llU3RvcmFnZVBhdGhFeHRl
bnNpb25IYW5kbGUpLCBXVEZNb3ZlKCpwZW5kaW5nQ29va2llcyksIFdURk1vdmUoKmNhY2hlU3Rv
cmFnZURpcmVjdG9yeSksIFdURk1vdmUoKmNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhKSwgV1RG
TW92ZSgqY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwgV1RGTW92ZSgqbmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzKX19OwogfQogCiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6bGVnYWN5UHJpdmF0ZVNlc3Npb25QYXJhbWV0
ZXJzKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjI1Njc5KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQv
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTEgKzQy
LDEyIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzIHsKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycygpID0gZGVmYXVsdDsKICAgICBX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmKSA9
IGRlZmF1bHQ7CisgICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmIG9wZXJhdG9yPShXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmKSA9IGRlZmF1bHQ7CiAgICAgfldlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzKCk7CiAgICAgc3RhdGljIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIGxl
Z2FjeVByaXZhdGVTZXNzaW9uUGFyYW1ldGVycygpOwogICAgIAogICAgIHZvaWQgZW5jb2RlKElQ
Qzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXIm
LCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzPiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7CiAKICAg
ICBWZWN0b3I8dWludDhfdD4gdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7CiAgICAg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxl
OwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvU3Rv
cmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDIyNTY3
OSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MiwxNCArNTIsMjIgQEAgYm9vbCBT
dG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZAogI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmluZGV4ZWREYXRhYmFzZURp
cmVjdG9yeSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpKQorCisgICAg
c3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGluZGV4ZWREYXRhYmFzZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IGluZGV4ZWREYXRhYmFzZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIWluZGV4ZWREYXRhYmFzZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJlc3VsdC5pbmRl
eGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCppbmRleGVkRGF0
YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EaXJlY3RvcnkpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSkpCisgICAgCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGU+IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGU7CisgICAgZGVjb2RlciA+PiBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOworICAgIGlmICghc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJlc3VsdC5zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgq
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAjZW5k
aWYKIAogICAgIHJldHVybiB0cnVlOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1Nh
bmRib3hFeHRlbnNpb25NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0JKHJldmlzaW9uIDIyNTY3OSkKKysrIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTEsNiArMTExLDcgQEAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpIYW5kbGUoKQogfQog
CiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OkhhbmRsZShIYW5kbGUmJikgPSBkZWZhdWx0Owor
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6Om9wZXJh
dG9yPShIYW5kbGUmJikgPSBkZWZhdWx0OwogCiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6On5I
YW5kbGUoKQogewpAQCAtMTM1LDIzICsxMzYsMjEgQEAgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU6OmVuY29kZShJUAogICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IDA7CiB9CiAKLWJvb2wg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBI
YW5kbGUmIHJlc3VsdCkKK2F1dG8gU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpkZWNvZGUoSVBD
OjpEZWNvZGVyJiBkZWNvZGVyKSAtPiBzdGQ6Om9wdGlvbmFsPEhhbmRsZT4KIHsKLSAgICBBU1NF
UlQoIXJlc3VsdC5tX3NhbmRib3hFeHRlbnNpb24pOwotCiAgICAgSVBDOjpEYXRhUmVmZXJlbmNl
IGRhdGFSZWZlcmVuY2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhUmVmZXJlbmNlKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAg
ICAgaWYgKGRhdGFSZWZlcmVuY2UuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgcmV0dXJuIHt7IH19OwogCi0gICAgcmVzdWx0Lm1fc2FuZGJveEV4dGVuc2lvbiA9IHN0
ZDo6bWFrZV91bmlxdWU8U2FuZGJveEV4dGVuc2lvbkltcGw+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgY2hhcio+KGRhdGFSZWZlcmVuY2UuZGF0YSgpKSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOwot
ICAgIHJldHVybiB0cnVlOworICAgIEhhbmRsZSBoYW5kbGU7CisgICAgaGFuZGxlLm1fc2FuZGJv
eEV4dGVuc2lvbiA9IHN0ZDo6bWFrZV91bmlxdWU8U2FuZGJveEV4dGVuc2lvbkltcGw+KHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGFSZWZlcmVuY2UuZGF0YSgpKSwgZGF0YVJlZmVy
ZW5jZS5zaXplKCkpOworICAgIHJldHVybiBXVEZNb3ZlKGhhbmRsZSk7CiB9CiAKIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZUFycmF5OjpIYW5kbGVBcnJheSgpCi0gICAgOiBtX3NpemUoMCkKIHsK
IH0KIApAQCAtMTkyLDcgKzE5MSw2IEBAIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJy
YXk6OmVuY28KICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihzaXplKCkpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zaXplOyArK2kpCiAgICAgICAgIGVuY29kZXIg
PDwgbV9kYXRhW2ldOwotICAgIAogfQogCiBib29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFy
cmF5OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGVBcnJheSYgaGFuZGxlcykKQEAgLTIwMiw4ICsyMDAsMTEgQEAgYm9vbCBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGVBcnJheTo6ZGVjbwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaGFuZGxl
cy5hbGxvY2F0ZShzaXplKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKykg
ewotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhbmRsZXNbaV0pKQorICAgICAgICBzdGQ6
Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gaGFuZGxlOworICAgICAgICBkZWNv
ZGVyID4+IGhhbmRsZTsKKyAgICAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGhhbmRsZXNbaV0gPSBXVEZNb3ZlKCpoYW5kbGUpOwogICAgIH0KICAg
ICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTM2Miw3ICszNjMsNiBAQCBib29sIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZUZvckdlCiAKIFNhbmRib3hFeHRlbnNpb246OlNhbmRib3hFeHRlbnNp
b24oY29uc3QgSGFuZGxlJiBoYW5kbGUpCiAgICAgOiBtX3NhbmRib3hFeHRlbnNpb24oV1RGTW92
ZShoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKSkKLSAgICAsIG1fdXNlQ291bnQoMCkKIHsKIH0K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328981</attachid>
            <date>2017-12-11 09:10:00 -0800</date>
            <delta_ts>2017-12-11 17:36:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180621-20171211091000.patch</filename>
            <type>text/plain</type>
            <size>22444</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjU3MjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE3LTEyLTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXplIFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIGFuZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZGVj
b2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MDYyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9TYW5kYm94RXh0
ZW5zaW9uLmg6CisgICAgICAgIChXZWJLaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFy
ZWQvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NhbmRi
b3hFeHRlbnNpb25NYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246Okhh
bmRsZTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
QXJyYXk6OkhhbmRsZUFycmF5KToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlQXJyYXk6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZUFycmF5OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0
ZW5zaW9uOjpTYW5kYm94RXh0ZW5zaW9uKToKKwogMjAxNy0xMi0wOCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2VydmljZSBXb3JrZXIgc2hvdWxkIHVzZSBh
IGNvcnJlY3QgdXNlciBhZ2VudApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAJKHJldmlzaW9uIDIyNTY3OSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQs
MTIgKzEyNCwyMiBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jYWNo
ZVN0b3JhZ2VQZXJPcmlnaW5RdW90YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpKQorICAgIAorICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBj
YWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBjYWNo
ZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFjYWNoZVN0b3JhZ2VE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXN1
bHQuY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqY2FjaGVT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmRpc2tDYWNoZURpcmVjdG9yeSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5kaXNrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpKQorICAgIAorICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiBkaXNrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBkaXNr
Q2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFkaXNrQ2FjaGVEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXN1bHQuZGlz
a0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqZGlza0NhY2hlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNo
b3VsZEVuYWJsZU5ldHdvcmtDYWNoZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zaG91bGRFbmFibGVOZXR3b3JrQ2FjaGVFZmZpY2FjeUxv
Z2dpbmcpKQpAQCAtMTQzLDEyICsxNTMsMjMgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZAogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICNpZiBQTEFURk9S
TShJT1MpCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29va2llU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGU+IGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVj
b2RlciA+PiBjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICgh
Y29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvbnRhaW5lckNhY2hlc0RpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgcmVzdWx0LmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlKTsKKworICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBj
b250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBj
b250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFjb250YWlu
ZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5wYXJlbnRCdW5kbGVEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpKQorICAgIHJlc3VsdC5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUgPSBXVEZNb3ZlKCpjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOworCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGNvbnRh
aW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IGNvbnRh
aW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIWNvbnRhaW5lckNh
Y2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJlc3VsdC5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KCpjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogI2VuZGlmCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2hvdWxkU3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhh
bmRsZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmNwcAkocmV2aXNpb24gMjI1Njc5KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEz
NCwxMCArMTM0LDExIEBAIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY28K
ICAgICB9CiAKICAgICBpZiAocmVzdWx0LnJlcXVlc3QudXJsKCkuaXNMb2NhbEZpbGUoKSkgewot
ICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9u
SGFuZGxlOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc291cmNlU2FuZGJveEV4dGVu
c2lvbkhhbmRsZSkpCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlPiByZXNvdXJjZVNhbmRib3hFeHRlbnNpb25IYW5kbGU7CisgICAgICAgIGRlY29kZXIgPj4g
cmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9uSGFuZGxlOworICAgICAgICBpZiAoIXJlc291cmNlU2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
cmVzdWx0LnJlc291cmNlU2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZShyZXNvdXJjZVNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworICAgICAgICByZXN1bHQucmVzb3Vy
Y2VTYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoKnJl
c291cmNlU2FuZGJveEV4dGVuc2lvbkhhbmRsZSkpOwogICAgIH0KIAogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGVFbnVtKHJlc3VsdC5jb250ZW50U25pZmZpbmdQb2xpY3kpKQpJbmRleDogU291cmNl
L1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjI1Njc5KQorKysgU291
cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
Miw4ICs3MiwxMSBAQCBib29sIExvYWRQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyCiAg
ICAgICAgIGRhdGEucmVxdWVzdC5zZXRIVFRQQm9keShXVEZNb3ZlKGZvcm1EYXRhKSk7CiAgICAg
fQogCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhLnNhbmRib3hFeHRlbnNpb25IYW5kbGUp
KQorICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBzYW5kYm94RXh0
ZW5zaW9uSGFuZGxlOworICAgIGRlY29kZXIgPj4gc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKKyAg
ICBpZiAoIXNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBkYXRhLnNhbmRib3hFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKTsKIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGF0YS5kYXRhKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24u
aAkocmV2aXNpb24gMjI1Njc5KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVu
c2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBTYW5kYm94RXh0ZW5zaW9uX2gKLSNk
ZWZpbmUgU2FuZGJveEV4dGVuc2lvbl9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC01NSwxMyArNTQsMTUg
QEAgcHVibGljOgogICAgICAgICBIYW5kbGUoKTsKICNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJ
T05TKQogICAgICAgICBIYW5kbGUoSGFuZGxlJiYpOworICAgICAgICBIYW5kbGUmIG9wZXJhdG9y
PShIYW5kbGUmJik7CiAjZWxzZQogICAgICAgICBIYW5kbGUoSGFuZGxlJiYpID0gZGVmYXVsdDsK
KyAgICAgICAgSGFuZGxlJiBvcGVyYXRvcj0oSGFuZGxlJiYpID0gZGVmYXVsdDsKICNlbmRpZgog
ICAgICAgICB+SGFuZGxlKCk7CiAKICAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikg
Y29uc3Q7Ci0gICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBIYW5kbGUm
KTsKKyAgICAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SGFuZGxlPiBkZWNvZGUoSVBDOjpEZWNv
ZGVyJik7CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgU2FuZGJveEV4dGVu
c2lvbjsKQEAgLTg2LDcgKzg3LDcgQEAgcHVibGljOgogICAgIHByaXZhdGU6CiAjaWYgRU5BQkxF
KFNBTkRCT1hfRVhURU5TSU9OUykKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEhhbmRsZVtdPiBt
X2RhdGE7Ci0gICAgICAgIHNpemVfdCBtX3NpemU7CisgICAgICAgIHNpemVfdCBtX3NpemUgeyAw
IH07CiAjZWxzZQogICAgICAgICBIYW5kbGUgbV9lbXB0eUhhbmRsZTsKICNlbmRpZgpAQCAtMTEx
LDcgKzExMiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAKICNpZiBFTkFCTEUo
U0FOREJPWF9FWFRFTlNJT05TKQogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFNhbmRib3hF
eHRlbnNpb25JbXBsPiBtX3NhbmRib3hFeHRlbnNpb247Ci0gICAgc2l6ZV90IG1fdXNlQ291bnQ7
CisgICAgc2l6ZV90IG1fdXNlQ291bnQgeyAwIH07CiAjZW5kaWYKIH07CiAKQEAgLTExOSw3ICsx
MjAsNyBAQCBwcml2YXRlOgogaW5saW5lIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6SGFuZGxl
KCkgeyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjp+SGFuZGxlKCkgeyB9CiBp
bmxpbmUgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmVuY29kZShJUEM6OkVuY29kZXIm
KSBjb25zdCB7IH0KLWlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYsIEhhbmRsZSYpIHsgcmV0dXJuIHRydWU7IH0KK2lubGluZSBzdGQ6Om9w
dGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gZGVjb2RlKElQQzo6RGVjb2RlciYpIHsg
cmV0dXJuIHt7IH19OyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6Okhh
bmRsZUFycmF5KCkgeyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6On5I
YW5kbGVBcnJheSgpIHsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJy
YXk6OmFsbG9jYXRlKHNpemVfdCkgeyB9CkBAIC0xNDksNiArMTUwLDMgQEAgU3RyaW5nIHJlc29s
dmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcgogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAotCi0KLSNlbmRpZiAvLyBTYW5kYm94RXh0ZW5zaW9uX2gKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShy
ZXZpc2lvbiAyMjU2NzkpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUxLDggKzE1MSwxMyBAQCBib29s
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiB7CiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLmluamVjdGVkQnVuZGxlUGF0aCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaW5qZWN0ZWRCdW5kbGVQ
YXRoRXh0ZW5zaW9uSGFuZGxlKSkKKyAgICAKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZT4gaW5qZWN0ZWRCdW5kbGVQYXRoRXh0ZW5zaW9uSGFuZGxlOworICAgIGRl
Y29kZXIgPj4gaW5qZWN0ZWRCdW5kbGVQYXRoRXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghaW5q
ZWN0ZWRCdW5kbGVQYXRoRXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcGFyYW1ldGVycy5pbmplY3RlZEJ1bmRsZVBhdGhFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KCppbmplY3RlZEJ1bmRsZVBhdGhFeHRlbnNpb25IYW5kbGUpOworCiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLmFkZGl0aW9uYWxTYW5kYm94RXh0ZW5zaW9uSGFuZGxlcykpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMu
aW5pdGlhbGl6YXRpb25Vc2VyRGF0YSkpCkBAIC0xNjEsMzEgKzE2Niw2NCBAQCBib29sIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNoZUZsYXRGaWxl
U3ViZGlyZWN0b3J5TmFtZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSkpCisgICAgCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+
IGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+
PiBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghYXBw
bGljYXRpb25DYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIHBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSA9IFdURk1vdmUoKmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUp
OworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLndlYlNRTERhdGFiYXNlRGly
ZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisKKyAg
ICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gd2ViU1FMRGF0YWJhc2VE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiB3ZWJTUUxEYXRhYmFzZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIXdlYlNRTERhdGFiYXNlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVycy53
ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKndlYlNRTERh
dGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKSkKKyAgICAKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZT4gbWVkaWFDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNv
ZGVyID4+IG1lZGlhQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFtZWRp
YUNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92
ZSgqbWVkaWFDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMuamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKKyAgICAK
KyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gamF2YVNjcmlwdENv
bmZpZ3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBqYXZh
U2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIWph
dmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVycy5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmphdmFTY3JpcHRDb25maWd1cmF0aW9uRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICNpZiBQTEFURk9STShJT1MpCi0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpKQorICAgIAorICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlPiBjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGRlY29k
ZXIgPj4gY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIWNv
b2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY29udGFpbmVyQ2FjaGVzRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKKyAgICBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKTsKKworICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlPiBjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2Rl
ciA+PiBjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFj
b250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY29udGFpbmVyVGVtcG9y
YXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKKyAgICBwYXJhbWV0ZXJzLmNvbnRhaW5lckNh
Y2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmNvbnRhaW5lckNhY2hlc0Rp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZT4gY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
OworICAgIGRlY29kZXIgPj4gY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlOworICAgIGlmICghY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVycy5jb250YWluZXJUZW1wb3Jh
cnlEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpjb250YWluZXJUZW1wb3JhcnlE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCiAjZW5kaWYKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMubWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMTkzLDExICsyMzEsMjEgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShwYXJhbWV0ZXJzLndlYktpdExvZ2dpbmdDaGFubmVscykpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWVkaWFLZXlTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKKyAgICAKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4gbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlOworICAgIGRlY29kZXIgPj4gbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlOworICAgIGlmICghbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVycy5tZWRpYUtleVN0b3JhZ2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCptZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGUpOworCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlKSkKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBhdWRpb0NhcHR1cmVF
eHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBhdWRpb0NhcHR1cmVFeHRlbnNpb25IYW5k
bGU7CisgICAgaWYgKCFhdWRpb0NhcHR1cmVFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLmF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZSA9IFdU
Rk1vdmUoKmF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZSk7CisKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKQEAgLTI2MCw4ICszMDgsMTMgQEAgYm9vbCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0
aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMudWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlKSkKKyAgICAK
KyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gdWlQcm9jZXNzQnVu
ZGxlUmVzb3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlOworICAgIGRlY29kZXIgPj4gdWlQcm9jZXNz
QnVuZGxlUmVzb3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghdWlQcm9jZXNzQnVu
ZGxlUmVzb3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVSZXNvdXJjZVBhdGhFeHRlbnNpb25IYW5kbGUg
PSBXVEZNb3ZlKCp1aVByb2Nlc3NCdW5kbGVSZXNvdXJjZVBhdGhFeHRlbnNpb25IYW5kbGUpOwor
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUpJVCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMu
c2hvdWxkRW5hYmxlRlRMSklUKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDIyNTY3OSkKKysrIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDYsMzYgKzQ2LDQ0IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnM6OmVuY29kZSgKICAgICBlbmNvZGVyIDw8IGNhY2hlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZTsKIH0KIAotYm9vbCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKElQ
Qzo6RGVjb2RlciYgZGVjb2RlciwgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCitzdGQ6Om9wdGlvbmFsPFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzPiBXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBz
dGQ6Om9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBuZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnM7CiAgICAgZGVjb2RlciA+PiBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnM7
CiAgICAgaWYgKCFuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyA9IFdURk1vdmUoKm5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycyk7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFn
ZUlkZW50aWZpZXIpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMuY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGUpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IHVp
UHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gdWlQcm9jZXNz
Q29va2llU3RvcmFnZUlkZW50aWZpZXI7CisgICAgaWYgKCF1aVByb2Nlc3NDb29raWVTdG9yYWdl
SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0
aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBjb29raWVTdG9yYWdlUGF0aEV4dGVuc2lv
bkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IGNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxl
OworICAgIGlmICghY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+PiBwZW5kaW5nQ29va2llczsKICAgICBkZWNvZGVyID4+IHBlbmRpbmdDb29raWVzOwog
ICAgIGlmICghcGVuZGluZ0Nvb2tpZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBwYXJh
bWV0ZXJzLnBlbmRpbmdDb29raWVzID0gV1RGTW92ZSgqcGVuZGluZ0Nvb2tpZXMpOwotCi0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNhY2hlU3RvcmFnZURpcmVjdG9yeSkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5jYWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90YSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jYWNoZVN0b3JhZ2VEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gY2FjaGVTdG9yYWdlRGlyZWN0b3J5OworICAgIGRlY29kZXIgPj4gY2FjaGVTdG9yYWdlRGly
ZWN0b3J5OworICAgIGlmICghY2FjaGVTdG9yYWdlRGlyZWN0b3J5KQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gY2FjaGVTdG9yYWdl
UGVyT3JpZ2luUXVvdGE7CisgICAgZGVjb2RlciA+PiBjYWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90
YTsKKyAgICBpZiAoIWNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGU+IGNhY2hlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+
IGNhY2hlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIWNhY2hlU3Rv
cmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICAKKyAgICByZXR1cm4ge3sgV1RGTW92ZSgqdWlQcm9jZXNzQ29va2llU3RvcmFnZUlk
ZW50aWZpZXIpLCBXVEZNb3ZlKCpjb29raWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZSksIFdU
Rk1vdmUoKnBlbmRpbmdDb29raWVzKSwgV1RGTW92ZSgqY2FjaGVTdG9yYWdlRGlyZWN0b3J5KSwg
V1RGTW92ZSgqY2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGEpLCBXVEZNb3ZlKCpjYWNoZVN0b3Jh
Z2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpLCBXVEZNb3ZlKCpuZXR3b3JrU2Vzc2lvblBhcmFt
ZXRlcnMpfX07CiB9CiAKIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzOjpsZWdhY3lQcml2YXRlU2Vzc2lvblBhcmFtZXRlcnMoKQpJbmRleDogU291
cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oCShy
ZXZpc2lvbiAyMjU2NzkpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MiwxMSArNDIsMTIgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgewogICAgIFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzKCkgPSBkZWZhdWx0OwogICAgIFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYpID0gZGVmYXVsdDsKKyAgICBX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYgb3BlcmF0b3I9KFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzJiYpID0gZGVmYXVsdDsKICAgICB+V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoKTsK
ICAgICBzdGF0aWMgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgbGVnYWN5UHJpdmF0ZVNlc3Np
b25QYXJhbWV0ZXJzKCk7CiAgICAgCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29u
c3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzJik7CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnM+IGRlY29kZShJUEM6OkRlY29kZXImKTsKIAogICAgIFZlY3Rvcjx1aW50OF90
PiB1aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGU7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TdG9yYWdlL1N0b3JhZ2VQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjI1Njc5KQorKysgU291cmNlL1dl
YktpdC9TaGFyZWQvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUyLDE0ICs1MiwyMiBAQCBib29sIFN0b3JhZ2VQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5KSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmluZGV4ZWRE
YXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisKKyAgICBzdGQ6Om9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlOworICAgIGRlY29kZXIgPj4gaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlOworICAgIGlmICghaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0LmluZGV4ZWREYXRhYmFzZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkK
KyAgICAKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gc2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVy
ID4+IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Cisg
ICAgaWYgKCFzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0LnNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpzZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICNlbmRpZgogCiAgICAgcmV0dXJu
IHRydWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1h
Yy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2FuZGJveEV4dGVu
c2lvbk1hYy5tbQkocmV2aXNpb24gMjI1Njc5KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L1NhbmRib3hFeHRlbnNpb25NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTExMSw2ICsxMTEsNyBA
QCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OkhhbmRsZSgpCiB9CiAKIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZTo6SGFuZGxlKEhhbmRsZSYmKSA9IGRlZmF1bHQ7CitTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6b3BlcmF0b3I9KEhhbmRsZSYmKSA9
IGRlZmF1bHQ7CiAKIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6fkhhbmRsZSgpCiB7CkBAIC0x
MzUsMjMgKzEzNiwyMSBAQCB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZW5jb2RlKElQ
CiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gMDsKIH0KIAotYm9vbCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIEhhbmRsZSYgcmVzdWx0KQor
YXV0byBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIpIC0+IHN0ZDo6b3B0aW9uYWw8SGFuZGxlPgogewotICAgIEFTU0VSVCghcmVzdWx0Lm1fc2Fu
ZGJveEV4dGVuc2lvbik7Ci0KICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZTsK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGFSZWZlcmVuY2UpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBpZiAoZGF0YVJlZmVy
ZW5jZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4ge3sg
fX07CiAKLSAgICByZXN1bHQubV9zYW5kYm94RXh0ZW5zaW9uID0gc3RkOjptYWtlX3VuaXF1ZTxT
YW5kYm94RXh0ZW5zaW9uSW1wbD4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YVJl
ZmVyZW5jZS5kYXRhKCkpLCBkYXRhUmVmZXJlbmNlLnNpemUoKSk7Ci0gICAgcmV0dXJuIHRydWU7
CisgICAgSGFuZGxlIGhhbmRsZTsKKyAgICBoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gc3Rk
OjptYWtlX3VuaXF1ZTxTYW5kYm94RXh0ZW5zaW9uSW1wbD4ocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oZGF0YVJlZmVyZW5jZS5kYXRhKCkpLCBkYXRhUmVmZXJlbmNlLnNpemUoKSk7Cisg
ICAgcmV0dXJuIFdURk1vdmUoaGFuZGxlKTsKIH0KIAogU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
QXJyYXk6OkhhbmRsZUFycmF5KCkKLSAgICA6IG1fc2l6ZSgwKQogewogfQogCkBAIC0xOTIsNyAr
MTkxLDYgQEAgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6ZW5jbwogICAgIGVu
Y29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHNpemUoKSk7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX3NpemU7ICsraSkKICAgICAgICAgZW5jb2RlciA8PCBtX2RhdGFbaV07Ci0g
ICAgCiB9CiAKIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiBoYW5kbGVz
KQpAQCAtMjAyLDggKzIwMCwxMSBAQCBib29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5
OjpkZWNvCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBoYW5kbGVzLmFsbG9jYXRlKHNpemUp
OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoaGFuZGxlc1tpXSkpCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlPiBoYW5kbGU7CisgICAgICAgIGRlY29kZXIgPj4gaGFuZGxlOwor
ICAgICAgICBpZiAoIWhhbmRsZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
aGFuZGxlc1tpXSA9IFdURk1vdmUoKmhhbmRsZSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwog
fQpAQCAtMzYyLDcgKzM2Myw2IEBAIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yR2UKIAogU2FuZGJveEV4dGVuc2lvbjo6U2FuZGJveEV4dGVuc2lvbihjb25zdCBIYW5kbGUm
IGhhbmRsZSkKICAgICA6IG1fc2FuZGJveEV4dGVuc2lvbihXVEZNb3ZlKGhhbmRsZS5tX3NhbmRi
b3hFeHRlbnNpb24pKQotICAgICwgbV91c2VDb3VudCgwKQogewogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329062</attachid>
            <date>2017-12-11 17:36:36 -0800</date>
            <delta_ts>2017-12-12 14:41:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180621-20171211173635.patch</filename>
            <type>text/plain</type>
            <size>22472</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjU3NjUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE3LTEyLTExICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXplIFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIGFuZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZGVj
b2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MDYyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9TYW5kYm94RXh0
ZW5zaW9uLmg6CisgICAgICAgIChXZWJLaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFy
ZWQvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NhbmRi
b3hFeHRlbnNpb25NYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246Okhh
bmRsZTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
QXJyYXk6OkhhbmRsZUFycmF5KToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlQXJyYXk6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZUFycmF5OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0
ZW5zaW9uOjpTYW5kYm94RXh0ZW5zaW9uKToKKwogMjAxNy0xMi0xMSAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBhIFdLUGFnZUdyb3Vw
UmVmIHNldHRlciBpbiBXS1dlYlZpZXdDb25maWd1cmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjI1NzQyKQorKysgU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyNCwxMiArMTI0LDIyIEBAIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0LmNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNhY2hlU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGU+IGNhY2hlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAg
ICBkZWNvZGVyID4+IGNhY2hlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBp
ZiAoIWNhY2hlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJlc3VsdC5jYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUg
PSBXVEZNb3ZlKCpjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZGlza0NhY2hlRGlyZWN0b3J5KSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmRpc2tDYWNoZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGU+IGRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAg
ICBkZWNvZGVyID4+IGRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAo
IWRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIHJlc3VsdC5kaXNrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KCpkaXNrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuc2hvdWxkRW5hYmxlTmV0d29ya0NhY2hlKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNob3VsZEVuYWJsZU5ldHdv
cmtDYWNoZUVmZmljYWN5TG9nZ2luZykpCkBAIC0xNDMsMTIgKzE1MywyMyBAQCBib29sIE5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNl
bmRpZgogI2lmIFBMQVRGT1JNKElPUykKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5j
b29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKKyAgICBzdGQ6Om9wdGlvbmFs
PFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGU7CisgICAgaWYgKCFjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29u
dGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKKyAgICByZXN1bHQuY29va2ll
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmNvb2tpZVN0b3JhZ2VE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGU+IGNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsK
KyAgICBkZWNvZGVyID4+IGNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsK
KyAgICBpZiAoIWNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnBhcmVudEJ1
bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgcmVzdWx0LmNvbnRhaW5lckNhY2hl
c0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmNvbnRhaW5lckNhY2hlc0RpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZT4gcGFyZW50QnVuZGxlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGRl
Y29kZXIgPj4gcGFyZW50QnVuZGxlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICgh
cGFyZW50QnVuZGxlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgcmVzdWx0LnBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdU
Rk1vdmUoKnBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zaG91bGRTdXBwcmVzc01lbW9yeVByZXNzdXJl
SGFuZGxlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuY3BwCShyZXZpc2lvbiAyMjU3NDIpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTM0LDEwICsxMzQsMTEgQEAgYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVj
bwogICAgIH0KIAogICAgIGlmIChyZXN1bHQucmVxdWVzdC51cmwoKS5pc0xvY2FsRmlsZSgpKSB7
Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSByZXNvdXJjZVNhbmRib3hFeHRlbnNp
b25IYW5kbGU7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzb3VyY2VTYW5kYm94RXh0
ZW5zaW9uSGFuZGxlKSkKKyAgICAgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU+IHJlc291cmNlU2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKKyAgICAgICAgZGVjb2RlciA+
PiByZXNvdXJjZVNhbmRib3hFeHRlbnNpb25IYW5kbGU7CisgICAgICAgIGlmICghcmVzb3VyY2VT
YW5kYm94RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICByZXN1bHQucmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlKHJlc291cmNlU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CisgICAgICAgIHJlc3VsdC5yZXNv
dXJjZVNhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZSgq
cmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSk7CiAgICAgfQogCiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUVudW0ocmVzdWx0LmNvbnRlbnRTbmlmZmluZ1BvbGljeSkpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyMjU3NDIpCisrKyBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcyLDggKzcyLDExIEBAIGJvb2wgTG9hZFBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXIK
ICAgICAgICAgZGF0YS5yZXF1ZXN0LnNldEhUVFBCb2R5KFdURk1vdmUoZm9ybURhdGEpKTsKICAg
ICB9CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEuc2FuZGJveEV4dGVuc2lvbkhhbmRs
ZSkpCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHNhbmRib3hF
eHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlOwor
ICAgIGlmICghc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGRhdGEuc2FuZGJveEV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKnNhbmRib3hFeHRlbnNp
b25IYW5kbGUpOwogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhLmRhdGEpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lv
bi5oCShyZXZpc2lvbiAyMjU3NDIpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0
ZW5zaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFNhbmRib3hFeHRlbnNpb25faAot
I2RlZmluZSBTYW5kYm94RXh0ZW5zaW9uX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTU1LDEzICs1NCwx
NSBAQCBwdWJsaWM6CiAgICAgICAgIEhhbmRsZSgpOwogI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVO
U0lPTlMpCiAgICAgICAgIEhhbmRsZShIYW5kbGUmJik7CisgICAgICAgIEhhbmRsZSYgb3BlcmF0
b3I9KEhhbmRsZSYmKTsKICNlbHNlCiAgICAgICAgIEhhbmRsZShIYW5kbGUmJikgPSBkZWZhdWx0
OworICAgICAgICBIYW5kbGUmIG9wZXJhdG9yPShIYW5kbGUmJikgPSBkZWZhdWx0OwogI2VuZGlm
CiAgICAgICAgIH5IYW5kbGUoKTsKIAogICAgICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXIm
KSBjb25zdDsKLSAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIEhhbmRs
ZSYpOworICAgICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxIYW5kbGU+IGRlY29kZShJUEM6OkRl
Y29kZXImKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBTYW5kYm94RXh0
ZW5zaW9uOwpAQCAtODYsNyArODcsNyBAQCBwdWJsaWM6CiAgICAgcHJpdmF0ZToKICNpZiBFTkFC
TEUoU0FOREJPWF9FWFRFTlNJT05TKQogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFuZGxlW10+
IG1fZGF0YTsKLSAgICAgICAgc2l6ZV90IG1fc2l6ZTsKKyAgICAgICAgc2l6ZV90IG1fc2l6ZSB7
IDAgfTsKICNlbHNlCiAgICAgICAgIEhhbmRsZSBtX2VtcHR5SGFuZGxlOwogI2VuZGlmCkBAIC0x
MTEsNyArMTEyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgIAogI2lmIEVOQUJM
RShTQU5EQk9YX0VYVEVOU0lPTlMpCiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8U2FuZGJv
eEV4dGVuc2lvbkltcGw+IG1fc2FuZGJveEV4dGVuc2lvbjsKLSAgICBzaXplX3QgbV91c2VDb3Vu
dDsKKyAgICBzaXplX3QgbV91c2VDb3VudCB7IDAgfTsKICNlbmRpZgogfTsKIApAQCAtMTE5LDcg
KzEyMCw3IEBAIHByaXZhdGU6CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpIYW5k
bGUoKSB7IH0KIGlubGluZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6On5IYW5kbGUoKSB7IH0K
IGlubGluZSB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYpIGNvbnN0IHsgfQotaW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiwgSGFuZGxlJikgeyByZXR1cm4gdHJ1ZTsgfQoraW5saW5lIHN0ZDo6
b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGU6OmRlY29kZShJUEM6OkRlY29kZXImKSB7IHJldHVybiB7eyB9fTsgfQogaW5saW5lIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpIYW5kbGVBcnJheSgpIHsgfQogaW5saW5lIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5Ojp+SGFuZGxlQXJyYXkoKSB7IH0KIGlubGluZSB2b2lk
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjphbGxvY2F0ZShzaXplX3QpIHsgfQpAQCAt
MTQ5LDYgKzE1MCwzIEBAIFN0cmluZyByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3IK
ICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotCi0jZW5kaWYgLy8gU2FuZGJveEV4
dGVuc2lvbl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjI1NzQyKQorKysgU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE1MSw4ICsxNTEsMTMgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZAogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5pbmplY3RlZEJ1
bmRsZVBhdGgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLmluamVjdGVkQnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRsZSkpCisgICAgCisg
ICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGluamVjdGVkQnVuZGxl
UGF0aEV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IGluamVjdGVkQnVuZGxlUGF0aEV4
dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIWluamVjdGVkQnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRs
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMuaW5qZWN0ZWRCdW5kbGVQ
YXRoRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqaW5qZWN0ZWRCdW5kbGVQYXRoRXh0ZW5zaW9u
SGFuZGxlKTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hZGRpdGlvbmFs
U2FuZGJveEV4dGVuc2lvbkhhbmRsZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmluaXRpYWxpemF0aW9uVXNlckRhdGEpKQpAQCAt
MTYxLDMxICsxNjYsNjQgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0
ZXJzLmFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFwcGxpY2F0
aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpKQorICAgIAorICAgIHN0ZDo6b3B0aW9u
YWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOworICAgIGRlY29kZXIgPj4gYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIWFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0
aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCphcHBsaWNhdGlvbkNh
Y2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMud2ViU1FMRGF0YWJhc2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUpKQorCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGU+IHdlYlNRTERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAg
IGRlY29kZXIgPj4gd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAg
aWYgKCF3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMud2ViU1FMRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUgPSBXVEZNb3ZlKCp3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSk7CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWVkaWFDYWNoZURpcmVj
dG9yeSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMubWVkaWFDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgCisgICAg
c3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG1lZGlhQ2FjaGVEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBtZWRpYUNhY2hlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOworICAgIGlmICghbWVkaWFDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMubWVkaWFDYWNoZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKm1lZGlhQ2FjaGVEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpOworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmphdmFTY3Jp
cHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGU+IGphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlOworICAgIGRlY29kZXIgPj4gamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMu
amF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KCpqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVpUHJv
Y2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2Vu
ZGlmCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5jb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKKyAgICAKKyAgICBzdGQ6
Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29va2llU3RvcmFnZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLmNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAg
cGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92
ZSgqY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBzdGQ6Om9w
dGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlOworICAgIGRlY29kZXIgPj4gY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLmNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkp
CisgICAgcGFyYW1ldGVycy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUg
PSBXVEZNb3ZlKCpjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCisg
ICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGNvbnRhaW5lclRlbXBv
cmFyeURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IGNvbnRhaW5lclRl
bXBvcmFyeURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIWNvbnRhaW5lclRlbXBv
cmFyeURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHBhcmFtZXRlcnMuY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0g
V1RGTW92ZSgqY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwog
I2VuZGlmCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm1lZGlhS2V5U3RvcmFn
ZURpcmVjdG9yeSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE5MywxMSArMjMxLDIxIEBA
IGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy53ZWJLaXRMb2dnaW5n
Q2hhbm5lbHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLm1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisg
ICAgCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG1lZGlhS2V5
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IG1lZGlhS2V5
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIW1lZGlhS2V5U3RvcmFn
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBh
cmFtZXRlcnMubWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92
ZSgqbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmF1ZGlv
Q2FwdHVyZUV4dGVuc2lvbkhhbmRsZSkpCisKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZT4gYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlOworICAgIGRlY29kZXIg
Pj4gYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghYXVkaW9DYXB0dXJlRXh0
ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVycy5hdWRp
b0NhcHR1cmVFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCphdWRpb0NhcHR1cmVFeHRlbnNpb25I
YW5kbGUpOworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZENhcHR1
cmVBdWRpb0luVUlQcm9jZXNzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCkBAIC0y
NjAsOCArMzA4LDEzIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy51aVByb2Nlc3NCdW5kbGVSZXNvdXJjZVBhdGgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZVJlc291cmNl
UGF0aEV4dGVuc2lvbkhhbmRsZSkpCisgICAgCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGU+IHVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lvbkhhbmRs
ZTsKKyAgICBkZWNvZGVyID4+IHVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lvbkhh
bmRsZTsKKyAgICBpZiAoIXVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lvbkhhbmRs
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxl
UmVzb3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqdWlQcm9jZXNzQnVuZGxlUmVz
b3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy5zaG91bGRFbmFibGVKSVQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUZUTEpJVCkpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMu
Y3BwCShyZXZpc2lvbiAyMjU3NDIpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDM2ICs0Niw0NCBAQCB2
b2lkIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjplbmNvZGUoCiAgICAgZW5jb2RlciA8PCBj
YWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiB9CiAKLWJvb2wgV2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorc3RkOjpvcHRpb25hbDxXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycz4gV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgc3RkOjpvcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycz4gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzOwogICAgIGRlY29kZXIg
Pj4gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzOwogICAgIGlmICghbmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMgPSBXVEZNb3ZlKCpuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMpOworICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJh
bWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNvb2tpZVN0b3Jh
Z2VQYXRoRXh0ZW5zaW9uSGFuZGxlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiB1aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmll
cjsKKyAgICBkZWNvZGVyID4+IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOworICAg
IGlmICghdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZT4gY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBjb29r
aWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIWNvb2tpZVN0b3JhZ2VQYXRo
RXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29va2llPj4gcGVuZGluZ0Nvb2tpZXM7CiAgICAg
ZGVjb2RlciA+PiBwZW5kaW5nQ29va2llczsKICAgICBpZiAoIXBlbmRpbmdDb29raWVzKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcGFyYW1ldGVycy5wZW5kaW5nQ29va2llcyA9IFdURk1v
dmUoKnBlbmRpbmdDb29raWVzKTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGEp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIHRy
dWU7CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGNhY2hlU3RvcmFnZURpcmVjdG9yeTsKKyAg
ICBkZWNvZGVyID4+IGNhY2hlU3RvcmFnZURpcmVjdG9yeTsKKyAgICBpZiAoIWNhY2hlU3RvcmFn
ZURpcmVjdG9yeSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0
aW9uYWw8dWludDY0X3Q+IGNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhOworICAgIGRlY29kZXIg
Pj4gY2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGE7CisgICAgaWYgKCFjYWNoZVN0b3JhZ2VQZXJP
cmlnaW5RdW90YSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0
aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGU7CisgICAgaWYgKCFjYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgCisgICAgcmV0dXJuIHt7IFdURk1v
dmUoKnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyKSwgV1RGTW92ZSgqY29va2llU3Rv
cmFnZVBhdGhFeHRlbnNpb25IYW5kbGUpLCBXVEZNb3ZlKCpwZW5kaW5nQ29va2llcyksIFdURk1v
dmUoKmNhY2hlU3RvcmFnZURpcmVjdG9yeSksIFdURk1vdmUoKmNhY2hlU3RvcmFnZVBlck9yaWdp
blF1b3RhKSwgV1RGTW92ZSgqY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwg
V1RGTW92ZSgqbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKX19OwogfQogCiBXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6bGVnYWN5UHJpdmF0ZVNl
c3Npb25QYXJhbWV0ZXJzKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjI1NzQyKQorKysgU291cmNlL1dl
YktpdC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpA
QCAtNDIsMTEgKzQyLDEyIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogc3RydWN0IFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzIHsKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycygpID0gZGVm
YXVsdDsKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVycyYmKSA9IGRlZmF1bHQ7CisgICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmIG9w
ZXJhdG9yPShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmKSA9IGRlZmF1bHQ7CiAgICAgfldl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKCk7CiAgICAgc3RhdGljIFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzIGxlZ2FjeVByaXZhdGVTZXNzaW9uUGFyYW1ldGVycygpOwogICAgIAogICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJ
UEM6OkRlY29kZXImLCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYpOworICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzPiBkZWNvZGUoSVBDOjpEZWNv
ZGVyJik7CiAKICAgICBWZWN0b3I8dWludDhfdD4gdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50
aWZpZXI7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGNvb2tpZVN0b3JhZ2VQYXRoRXh0
ZW5zaW9uSGFuZGxlOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvU3RvcmFnZS9TdG9yYWdl
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9TaGFyZWQvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJl
dmlzaW9uIDIyNTc0MikKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MiwxNCArNTIs
MjIgQEAgYm9vbCBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZAogI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmluZGV4
ZWREYXRhYmFzZURpcmVjdG9yeSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpKQorCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGluZGV4
ZWREYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IGluZGV4
ZWREYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIWluZGV4ZWREYXRh
YmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJlc3VsdC5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KCppbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogI2VuZGlmCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgCisgICAgc3RkOjpvcHRpb25hbDxTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU+IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghc2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJlc3VsdC5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
ID0gV1RGTW92ZSgqc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSk7CiAjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwpJbmRleDogU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0JKHJldmlzaW9uIDIyNTc0MikK
KysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTEsNiArMTExLDcgQEAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpI
YW5kbGUoKQogfQogCiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OkhhbmRsZShIYW5kbGUmJikg
PSBkZWZhdWx0OworU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU6Om9wZXJhdG9yPShIYW5kbGUmJikgPSBkZWZhdWx0OwogCiBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGU6On5IYW5kbGUoKQogewpAQCAtMTM1LDIzICsxMzYsMjEgQEAgdm9pZCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGU6OmVuY29kZShJUAogICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IDA7
CiB9CiAKLWJvb2wgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpkZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyLCBIYW5kbGUmIHJlc3VsdCkKK2F1dG8gU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSAtPiBzdGQ6Om9wdGlvbmFsPEhhbmRsZT4K
IHsKLSAgICBBU1NFUlQoIXJlc3VsdC5tX3NhbmRib3hFeHRlbnNpb24pOwotCiAgICAgSVBDOjpE
YXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRh
UmVmZXJlbmNlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCiAgICAgaWYgKGRhdGFSZWZlcmVuY2UuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHt7IH19OwogCi0gICAgcmVzdWx0Lm1fc2FuZGJveEV4
dGVuc2lvbiA9IHN0ZDo6bWFrZV91bmlxdWU8U2FuZGJveEV4dGVuc2lvbkltcGw+KHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGFSZWZlcmVuY2UuZGF0YSgpKSwgZGF0YVJlZmVyZW5j
ZS5zaXplKCkpOwotICAgIHJldHVybiB0cnVlOworICAgIEhhbmRsZSBoYW5kbGU7CisgICAgaGFu
ZGxlLm1fc2FuZGJveEV4dGVuc2lvbiA9IHN0ZDo6bWFrZV91bmlxdWU8U2FuZGJveEV4dGVuc2lv
bkltcGw+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGFSZWZlcmVuY2UuZGF0YSgp
KSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOworICAgIHJldHVybiBXVEZNb3ZlKGhhbmRsZSk7CiB9
CiAKIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpIYW5kbGVBcnJheSgpCi0gICAgOiBt
X3NpemUoMCkKIHsKIH0KIApAQCAtMTkyLDcgKzE5MSw2IEBAIHZvaWQgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlQXJyYXk6OmVuY28KICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90
PihzaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zaXplOyArK2kpCiAgICAg
ICAgIGVuY29kZXIgPDwgbV9kYXRhW2ldOwotICAgIAogfQogCiBib29sIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZUFycmF5OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGVBcnJheSYgaGFuZGxlcykKQEAgLTIwMiw4ICsyMDAsMTEgQEAgYm9vbCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6ZGVjbwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgaGFuZGxlcy5hbGxvY2F0ZShzaXplKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHNpemU7IGkrKykgewotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhbmRsZXNbaV0pKQor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gaGFuZGxlOwor
ICAgICAgICBkZWNvZGVyID4+IGhhbmRsZTsKKyAgICAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGhhbmRsZXNbaV0gPSBXVEZNb3ZlKCpoYW5kbGUp
OwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTM2Miw3ICszNjMsNiBAQCBib29sIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlCiAKIFNhbmRib3hFeHRlbnNpb246OlNh
bmRib3hFeHRlbnNpb24oY29uc3QgSGFuZGxlJiBoYW5kbGUpCiAgICAgOiBtX3NhbmRib3hFeHRl
bnNpb24oV1RGTW92ZShoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKSkKLSAgICAsIG1fdXNlQ291
bnQoMCkKIHsKIH0KIAo=
</data>
<flag name="review"
          id="348170"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
      

    </bug>

</bugzilla>