<?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>162653</bug_id>
          
          <creation_ts>2016-09-27 18:23:29 -0700</creation_ts>
          <short_desc>Inline critical functions in URLParser</short_desc>
          <delta_ts>2016-09-27 18:26:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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></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>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1234208</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-27 18:23:29 -0700</bug_when>
    <thetext>Inline critical functions in URLParser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234209</commentid>
    <comment_count>1</comment_count>
      <attachid>290044</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-27 18:24:57 -0700</bug_when>
    <thetext>Created attachment 290044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234210</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-27 18:26:34 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/206485</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290044</attachid>
            <date>2016-09-27 18:24:57 -0700</date>
            <delta_ts>2016-09-27 18:26:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162653-20160927182158.patch</filename>
            <type>text/plain</type>
            <size>18729</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjQ4NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBACisyMDE2LTA5LTI3ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW5saW5lIGNy
aXRpY2FsIGZ1bmN0aW9ucyBpbiBVUkxQYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjY1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZ2l2ZXMgbWUgYWJvdXQgYSAxNSUgc3BlZWQgaW1w
cm92ZW1lbnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkxQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29kZVBvaW50SXRlcmF0b3I6OkNvZGVQb2ludEl0ZXJhdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvZGVQb2ludEl0ZXJhdG9yOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvZGVQb2ludEl0ZXJhdG9yOjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdlYkNvcmU6OkNv
ZGVQb2ludEl0ZXJhdG9yOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6Q29kZVBvaW50
SXRlcmF0b3I6OmF0RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvZGVQb2ludEl0ZXJhdG9yOjpj
b2RlVW5pdHNTaW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpDb2RlUG9pbnRJdGVyYXRvcjxMQ2hh
cj46Om9wZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNvZGVQb2ludEl0ZXJhdG9yPFVDaGFy
Pjo6b3BlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kQ29kZVBvaW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OmlzQzBDb250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQzBDb250cm9s
T3JTcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjppc1RhYk9yTmV3bGluZSk6CisgICAgICAgIChX
ZWJDb3JlOjppc0luU2ltcGxlRW5jb2RlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6OmlzSW5EZWZh
dWx0RW5jb2RlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6OmlzSW5Vc2VySW5mb0VuY29kZVNldCk6
CisgICAgICAgIChXZWJDb3JlOjppc0ludmFsaWREb21haW5DaGFyYWN0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6aXNQZXJjZW50T3JOb25BU0NJSSk6CisgICAgICAgIChXZWJDb3JlOjppc1NsYXNo
UXVlc3Rpb25Pckhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZFNjaGVtZUNoYXJhY3Rl
cik6CisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJzZXI6OmFkdmFuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6VVJMUGFyc2VyOjppc1dpbmRvd3NEcml2ZUxldHRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpVUkxQYXJzZXI6OmFwcGVuZFRvQVNDSUlCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6cGVy
Y2VudEVuY29kZUJ5dGUpOgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2VyOjp1dGY4UGVyY2Vu
dEVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJzZXI6OnV0ZjhRdWVyeUVuY29kZSk6
CisgICAgICAgIChXZWJDb3JlOjppc0RlZmF1bHRQb3J0KToKKyAgICAgICAgKFdlYkNvcmU6Omlz
U3BlY2lhbFNjaGVtZSk6CisgICAgICAgIChXZWJDb3JlOjppc1BlcmNlbnRFbmNvZGVkRG90KToK
KyAgICAgICAgKFdlYkNvcmU6OmlzU2luZ2xlRG90UGF0aFNlZ21lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6aXNEb3VibGVEb3RQYXRoU2VnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1l
U2luZ2xlRG90UGF0aFNlZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZURvdWJsZURv
dFBhdGhTZWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlVSTFBhcnNlcjo6cG9wUGF0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpVUkxQYXJzZXI6OnBhcnNlZERhdGFWaWV3KToKKyAgICAgICAgKFdl
YkNvcmU6OlVSTFBhcnNlcjo6Y3VycmVudFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Onpl
cm9TZXF1ZW5jZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpmaW5kTG9uZ2VzdFplcm9TZXF1
ZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpwb3cyNTYpOgorICAgICAgICAoV2ViQ29yZTo6cGVy
Y2VudERlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250YWluc09ubHlBU0NJSSk6CisgICAg
ICAgIChXZWJDb3JlOjpkb21haW5Ub0FTQ0lJKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0ludmFs
aWREb21haW5DaGFyYWN0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybVVSTERlY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemVVUkxFbmNvZGVkRm9ybSk6CisKIDIwMTYtMDktMjcg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChy
MjA0NTUyKTogWWVscCBjYXJvdXNlbCBhbmltYXRpb24gaXMgbm90IHNtb290aC4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmNwcAkocmV2aXNpb24gMjA2NDgwKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYs
NDkgKzM2LDQ5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJh
Y3RlclR5cGU+CiBjbGFzcyBDb2RlUG9pbnRJdGVyYXRvciB7CiBwdWJsaWM6Ci0gICAgQ29kZVBv
aW50SXRlcmF0b3IoKSB7IH0KLSAgICBDb2RlUG9pbnRJdGVyYXRvcihjb25zdCBDaGFyYWN0ZXJU
eXBlKiBiZWdpbiwgY29uc3QgQ2hhcmFjdGVyVHlwZSogZW5kKQorICAgIEFMV0FZU19JTkxJTkUg
Q29kZVBvaW50SXRlcmF0b3IoKSB7IH0KKyAgICBBTFdBWVNfSU5MSU5FIENvZGVQb2ludEl0ZXJh
dG9yKGNvbnN0IENoYXJhY3RlclR5cGUqIGJlZ2luLCBjb25zdCBDaGFyYWN0ZXJUeXBlKiBlbmQp
CiAgICAgICAgIDogbV9iZWdpbihiZWdpbikKICAgICAgICAgLCBtX2VuZChlbmQpCiAgICAgewog
ICAgIH0KICAgICAKLSAgICBDb2RlUG9pbnRJdGVyYXRvcihjb25zdCBDb2RlUG9pbnRJdGVyYXRv
ciYgYmVnaW4sIGNvbnN0IENvZGVQb2ludEl0ZXJhdG9yJiBlbmQpCisgICAgQUxXQVlTX0lOTElO
RSBDb2RlUG9pbnRJdGVyYXRvcihjb25zdCBDb2RlUG9pbnRJdGVyYXRvciYgYmVnaW4sIGNvbnN0
IENvZGVQb2ludEl0ZXJhdG9yJiBlbmQpCiAgICAgICAgIDogQ29kZVBvaW50SXRlcmF0b3IoYmVn
aW4ubV9iZWdpbiwgZW5kLm1fYmVnaW4pCiAgICAgewogICAgICAgICBBU1NFUlQoZW5kLm1fYmVn
aW4gPj0gYmVnaW4ubV9iZWdpbik7CiAgICAgfQogICAgIAotICAgIFVDaGFyMzIgb3BlcmF0b3Iq
KCkgY29uc3Q7Ci0gICAgQ29kZVBvaW50SXRlcmF0b3ImIG9wZXJhdG9yKysoKTsKKyAgICBBTFdB
WVNfSU5MSU5FIFVDaGFyMzIgb3BlcmF0b3IqKCkgY29uc3Q7CisgICAgQUxXQVlTX0lOTElORSBD
b2RlUG9pbnRJdGVyYXRvciYgb3BlcmF0b3IrKygpOwogCi0gICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IENvZGVQb2ludEl0ZXJhdG9yJiBvdGhlcikgY29uc3QKKyAgICBBTFdBWVNfSU5MSU5FIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBDb2RlUG9pbnRJdGVyYXRvciYgb3RoZXIpIGNvbnN0CiAgICAg
ewogICAgICAgICByZXR1cm4gbV9iZWdpbiA9PSBvdGhlci5tX2JlZ2luCiAgICAgICAgICAgICAm
JiBtX2VuZCA9PSBvdGhlci5tX2VuZDsKICAgICB9Ci0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0
IENvZGVQb2ludEl0ZXJhdG9yJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhl
cik7IH0KKyAgICBBTFdBWVNfSU5MSU5FIGJvb2wgb3BlcmF0b3IhPShjb25zdCBDb2RlUG9pbnRJ
dGVyYXRvciYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CiAgICAg
Ci0gICAgQ29kZVBvaW50SXRlcmF0b3ImIG9wZXJhdG9yPShjb25zdCBDb2RlUG9pbnRJdGVyYXRv
ciYgb3RoZXIpCisgICAgQUxXQVlTX0lOTElORSBDb2RlUG9pbnRJdGVyYXRvciYgb3BlcmF0b3I9
KGNvbnN0IENvZGVQb2ludEl0ZXJhdG9yJiBvdGhlcikKICAgICB7CiAgICAgICAgIG1fYmVnaW4g
PSBvdGhlci5tX2JlZ2luOwogICAgICAgICBtX2VuZCA9IG90aGVyLm1fZW5kOwogICAgICAgICBy
ZXR1cm4gKnRoaXM7CiAgICAgfQogCi0gICAgYm9vbCBhdEVuZCgpIGNvbnN0CisgICAgQUxXQVlT
X0lOTElORSBib29sIGF0RW5kKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2JlZ2lu
IDw9IG1fZW5kKTsKICAgICAgICAgcmV0dXJuIG1fYmVnaW4gPj0gbV9lbmQ7CiAgICAgfQogICAg
IAotICAgIHNpemVfdCBjb2RlVW5pdHNTaW5jZShjb25zdCBDaGFyYWN0ZXJUeXBlKiByZWZlcmVu
Y2UpIGNvbnN0CisgICAgQUxXQVlTX0lOTElORSBzaXplX3QgY29kZVVuaXRzU2luY2UoY29uc3Qg
Q2hhcmFjdGVyVHlwZSogcmVmZXJlbmNlKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1f
YmVnaW4gPj0gcmVmZXJlbmNlKTsKICAgICAgICAgcmV0dXJuIG1fYmVnaW4gLSByZWZlcmVuY2U7
CiAgICAgfQogCi0gICAgc2l6ZV90IGNvZGVVbml0c1NpbmNlKGNvbnN0IENvZGVQb2ludEl0ZXJh
dG9yJiBvdGhlcikgY29uc3QKKyAgICBBTFdBWVNfSU5MSU5FIHNpemVfdCBjb2RlVW5pdHNTaW5j
ZShjb25zdCBDb2RlUG9pbnRJdGVyYXRvciYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICBy
ZXR1cm4gY29kZVVuaXRzU2luY2Uob3RoZXIubV9iZWdpbik7CiAgICAgfQpAQCAtODksMTQgKzg5
LDE0IEBAIHByaXZhdGU6CiB9OwogCiB0ZW1wbGF0ZTw+Ci1VQ2hhcjMyIENvZGVQb2ludEl0ZXJh
dG9yPExDaGFyPjo6b3BlcmF0b3IqKCkgY29uc3QKK0FMV0FZU19JTkxJTkUgVUNoYXIzMiBDb2Rl
UG9pbnRJdGVyYXRvcjxMQ2hhcj46Om9wZXJhdG9yKigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFh
dEVuZCgpKTsKICAgICByZXR1cm4gKm1fYmVnaW47CiB9CiAKIHRlbXBsYXRlPD4KLWF1dG8gQ29k
ZVBvaW50SXRlcmF0b3I8TENoYXI+OjpvcGVyYXRvcisrKCkgLT4gQ29kZVBvaW50SXRlcmF0b3Im
CitBTFdBWVNfSU5MSU5FIGF1dG8gQ29kZVBvaW50SXRlcmF0b3I8TENoYXI+OjpvcGVyYXRvcisr
KCkgLT4gQ29kZVBvaW50SXRlcmF0b3ImCiB7CiAgICAgQVNTRVJUKCFhdEVuZCgpKTsKICAgICBt
X2JlZ2luKys7CkBAIC0xMDQsNyArMTA0LDcgQEAgYXV0byBDb2RlUG9pbnRJdGVyYXRvcjxMQ2hh
cj46Om9wZXJhdG9yKwogfQogCiB0ZW1wbGF0ZTw+Ci1VQ2hhcjMyIENvZGVQb2ludEl0ZXJhdG9y
PFVDaGFyPjo6b3BlcmF0b3IqKCkgY29uc3QKK0FMV0FZU19JTkxJTkUgVUNoYXIzMiBDb2RlUG9p
bnRJdGVyYXRvcjxVQ2hhcj46Om9wZXJhdG9yKigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFhdEVu
ZCgpKTsKICAgICBVQ2hhcjMyIGM7CkBAIC0xMTMsNyArMTEzLDcgQEAgVUNoYXIzMiBDb2RlUG9p
bnRJdGVyYXRvcjxVQ2hhcj46Om9wZXJhdAogfQogCiB0ZW1wbGF0ZTw+Ci1hdXRvIENvZGVQb2lu
dEl0ZXJhdG9yPFVDaGFyPjo6b3BlcmF0b3IrKygpIC0+IENvZGVQb2ludEl0ZXJhdG9yJgorQUxX
QVlTX0lOTElORSBhdXRvIENvZGVQb2ludEl0ZXJhdG9yPFVDaGFyPjo6b3BlcmF0b3IrKygpIC0+
IENvZGVQb2ludEl0ZXJhdG9yJgogewogICAgIEFTU0VSVCghYXRFbmQoKSk7CiAgICAgdW5zaWdu
ZWQgaSA9IDA7CkBAIC0xMjMsNyArMTIzLDcgQEAgYXV0byBDb2RlUG9pbnRJdGVyYXRvcjxVQ2hh
cj46Om9wZXJhdG9yKwogICAgIHJldHVybiAqdGhpczsKIH0KICAgICAKLXN0YXRpYyB2b2lkIGFw
cGVuZENvZGVQb2ludChWZWN0b3I8VUNoYXI+JiBkZXN0aW5hdGlvbiwgVUNoYXIzMiBjb2RlUG9p
bnQpCitBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIGFwcGVuZENvZGVQb2ludChWZWN0b3I8VUNo
YXI+JiBkZXN0aW5hdGlvbiwgVUNoYXIzMiBjb2RlUG9pbnQpCiB7CiAgICAgaWYgKFVfSVNfQk1Q
KGNvZGVQb2ludCkpIHsKICAgICAgICAgZGVzdGluYXRpb24uYXBwZW5kKHN0YXRpY19jYXN0PFVD
aGFyPihjb2RlUG9pbnQpKTsKQEAgLTQwMiwyMCArNDAyLDIwIEBAIHN0YXRpYyBjb25zdCB1aW50
OF90IGNoYXJhY3RlckNsYXNzVGFibGUKICAgICBRdWVyeVBlcmNlbnQsIC8vIDB4RkYKIH07CiAK
LXRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBzdGF0aWMgYm9vbCBpc0Mw
Q29udHJvbChDaGFyYWN0ZXJUeXBlIGNoYXJhY3RlcikgeyByZXR1cm4gY2hhcmFjdGVyIDw9IDB4
MUY7IH0KLXRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBzdGF0aWMgYm9v
bCBpc0MwQ29udHJvbE9yU3BhY2UoQ2hhcmFjdGVyVHlwZSBjaGFyYWN0ZXIpIHsgcmV0dXJuIGNo
YXJhY3RlciA8PSAweDIwOyB9Ci10ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBpbmxp
bmUgc3RhdGljIGJvb2wgaXNUYWJPck5ld2xpbmUoQ2hhcmFjdGVyVHlwZSBjaGFyYWN0ZXIpIHsg
cmV0dXJuIGNoYXJhY3RlciA8PSAweEQgJiYgY2hhcmFjdGVyID49IDB4OSAmJiBjaGFyYWN0ZXIg
IT0gMHhCICYmIGNoYXJhY3RlciAhPSAweEM7IH0KLXRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3Rl
clR5cGU+IGlubGluZSBzdGF0aWMgYm9vbCBpc0luU2ltcGxlRW5jb2RlU2V0KENoYXJhY3RlclR5
cGUgY2hhcmFjdGVyKSB7IHJldHVybiBjaGFyYWN0ZXIgPiAweDdFIHx8IGlzQzBDb250cm9sKGNo
YXJhY3Rlcik7IH0KLXRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBzdGF0
aWMgYm9vbCBpc0luRGVmYXVsdEVuY29kZVNldChDaGFyYWN0ZXJUeXBlIGNoYXJhY3RlcikgeyBy
ZXR1cm4gY2hhcmFjdGVyID4gMHg3RSB8fCBjaGFyYWN0ZXJDbGFzc1RhYmxlW2NoYXJhY3Rlcl0g
JiBEZWZhdWx0OyB9Ci10ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUgc3Rh
dGljIGJvb2wgaXNJblVzZXJJbmZvRW5jb2RlU2V0KENoYXJhY3RlclR5cGUgY2hhcmFjdGVyKSB7
IHJldHVybiBjaGFyYWN0ZXIgPiAweDdFIHx8IGNoYXJhY3RlckNsYXNzVGFibGVbY2hhcmFjdGVy
XSAmIFVzZXJJbmZvOyB9Ci10ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBpbmxpbmUg
c3RhdGljIGJvb2wgaXNJbnZhbGlkRG9tYWluQ2hhcmFjdGVyKENoYXJhY3RlclR5cGUgY2hhcmFj
dGVyKSB7IHJldHVybiBjaGFyYWN0ZXIgPD0gJ10nICYmIGNoYXJhY3RlckNsYXNzVGFibGVbY2hh
cmFjdGVyXSAmIEludmFsaWREb21haW47IH0KLXRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5
cGU+IGlubGluZSBzdGF0aWMgYm9vbCBpc1BlcmNlbnRPck5vbkFTQ0lJKENoYXJhY3RlclR5cGUg
Y2hhcmFjdGVyKSB7IHJldHVybiAhaXNBU0NJSShjaGFyYWN0ZXIpIHx8IGNoYXJhY3RlciA9PSAn
JSc7IH0KLXRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBzdGF0aWMgYm9v
bCBpc1NsYXNoUXVlc3Rpb25Pckhhc2goQ2hhcmFjdGVyVHlwZSBjaGFyYWN0ZXIpIHsgcmV0dXJu
IGNoYXJhY3RlciA8PSAnXFwnICYmIGNoYXJhY3RlckNsYXNzVGFibGVbY2hhcmFjdGVyXSAmIFNs
YXNoUXVlc3Rpb25Pckhhc2g7IH0KLXRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlu
bGluZSBzdGF0aWMgYm9vbCBpc1ZhbGlkU2NoZW1lQ2hhcmFjdGVyKENoYXJhY3RlclR5cGUgY2hh
cmFjdGVyKSB7IHJldHVybiBjaGFyYWN0ZXIgPD0gJ3onICYmIGNoYXJhY3RlckNsYXNzVGFibGVb
Y2hhcmFjdGVyXSAmIFNjaGVtZTsgfQordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4g
QUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBpc0MwQ29udHJvbChDaGFyYWN0ZXJUeXBlIGNoYXJh
Y3RlcikgeyByZXR1cm4gY2hhcmFjdGVyIDw9IDB4MUY7IH0KK3RlbXBsYXRlPHR5cGVuYW1lIENo
YXJhY3RlclR5cGU+IEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaXNDMENvbnRyb2xPclNwYWNl
KENoYXJhY3RlclR5cGUgY2hhcmFjdGVyKSB7IHJldHVybiBjaGFyYWN0ZXIgPD0gMHgyMDsgfQor
dGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gQUxXQVlTX0lOTElORSBzdGF0aWMgYm9v
bCBpc1RhYk9yTmV3bGluZShDaGFyYWN0ZXJUeXBlIGNoYXJhY3RlcikgeyByZXR1cm4gY2hhcmFj
dGVyIDw9IDB4RCAmJiBjaGFyYWN0ZXIgPj0gMHg5ICYmIGNoYXJhY3RlciAhPSAweEIgJiYgY2hh
cmFjdGVyICE9IDB4QzsgfQordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gQUxXQVlT
X0lOTElORSBzdGF0aWMgYm9vbCBpc0luU2ltcGxlRW5jb2RlU2V0KENoYXJhY3RlclR5cGUgY2hh
cmFjdGVyKSB7IHJldHVybiBjaGFyYWN0ZXIgPiAweDdFIHx8IGlzQzBDb250cm9sKGNoYXJhY3Rl
cik7IH0KK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IEFMV0FZU19JTkxJTkUgc3Rh
dGljIGJvb2wgaXNJbkRlZmF1bHRFbmNvZGVTZXQoQ2hhcmFjdGVyVHlwZSBjaGFyYWN0ZXIpIHsg
cmV0dXJuIGNoYXJhY3RlciA+IDB4N0UgfHwgY2hhcmFjdGVyQ2xhc3NUYWJsZVtjaGFyYWN0ZXJd
ICYgRGVmYXVsdDsgfQordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gQUxXQVlTX0lO
TElORSBzdGF0aWMgYm9vbCBpc0luVXNlckluZm9FbmNvZGVTZXQoQ2hhcmFjdGVyVHlwZSBjaGFy
YWN0ZXIpIHsgcmV0dXJuIGNoYXJhY3RlciA+IDB4N0UgfHwgY2hhcmFjdGVyQ2xhc3NUYWJsZVtj
aGFyYWN0ZXJdICYgVXNlckluZm87IH0KK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+
IEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaXNJbnZhbGlkRG9tYWluQ2hhcmFjdGVyKENoYXJh
Y3RlclR5cGUgY2hhcmFjdGVyKSB7IHJldHVybiBjaGFyYWN0ZXIgPD0gJ10nICYmIGNoYXJhY3Rl
ckNsYXNzVGFibGVbY2hhcmFjdGVyXSAmIEludmFsaWREb21haW47IH0KK3RlbXBsYXRlPHR5cGVu
YW1lIENoYXJhY3RlclR5cGU+IEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaXNQZXJjZW50T3JO
b25BU0NJSShDaGFyYWN0ZXJUeXBlIGNoYXJhY3RlcikgeyByZXR1cm4gIWlzQVNDSUkoY2hhcmFj
dGVyKSB8fCBjaGFyYWN0ZXIgPT0gJyUnOyB9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJU
eXBlPiBBTFdBWVNfSU5MSU5FIHN0YXRpYyBib29sIGlzU2xhc2hRdWVzdGlvbk9ySGFzaChDaGFy
YWN0ZXJUeXBlIGNoYXJhY3RlcikgeyByZXR1cm4gY2hhcmFjdGVyIDw9ICdcXCcgJiYgY2hhcmFj
dGVyQ2xhc3NUYWJsZVtjaGFyYWN0ZXJdICYgU2xhc2hRdWVzdGlvbk9ySGFzaDsgfQordGVtcGxh
dGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBpc1Zh
bGlkU2NoZW1lQ2hhcmFjdGVyKENoYXJhY3RlclR5cGUgY2hhcmFjdGVyKSB7IHJldHVybiBjaGFy
YWN0ZXIgPD0gJ3onICYmIGNoYXJhY3RlckNsYXNzVGFibGVbY2hhcmFjdGVyXSAmIFNjaGVtZTsg
fQogc3RhdGljIGJvb2wgc2hvdWxkUGVyY2VudEVuY29kZVF1ZXJ5Qnl0ZSh1aW50OF90IGJ5dGUp
IHsgcmV0dXJuIGNoYXJhY3RlckNsYXNzVGFibGVbYnl0ZV0gJiBRdWVyeVBlcmNlbnQ7IH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KLXZvaWQgVVJMUGFyc2VyOjphZHZhbmNl
KENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+JiBpdGVyYXRvciwgY29uc3QgQ29kZVBv
aW50SXRlcmF0b3I8Q2hhcmFjdGVyVHlwZT4mIGl0ZXJhdG9yRm9yU3ludGF4VmlvbGF0aW9uUG9z
aXRpb24pCitBTFdBWVNfSU5MSU5FIHZvaWQgVVJMUGFyc2VyOjphZHZhbmNlKENvZGVQb2ludEl0
ZXJhdG9yPENoYXJhY3RlclR5cGU+JiBpdGVyYXRvciwgY29uc3QgQ29kZVBvaW50SXRlcmF0b3I8
Q2hhcmFjdGVyVHlwZT4mIGl0ZXJhdG9yRm9yU3ludGF4VmlvbGF0aW9uUG9zaXRpb24pCiB7CiAg
ICAgKytpdGVyYXRvcjsKICAgICB3aGlsZSAoVU5MSUtFTFkoIWl0ZXJhdG9yLmF0RW5kKCkgJiYg
aXNUYWJPck5ld2xpbmUoKml0ZXJhdG9yKSkpIHsKQEAgLTQyNSw3ICs0MjUsNyBAQCB2b2lkIFVS
TFBhcnNlcjo6YWR2YW5jZShDb2RlUG9pbnRJdGVyYXRvCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IENoYXJhY3RlclR5cGU+Ci1ib29sIFVSTFBhcnNlcjo6aXNXaW5kb3dzRHJpdmVMZXR0ZXIoQ29k
ZVBvaW50SXRlcmF0b3I8Q2hhcmFjdGVyVHlwZT4gaXRlcmF0b3IpCitBTFdBWVNfSU5MSU5FIGJv
b2wgVVJMUGFyc2VyOjppc1dpbmRvd3NEcml2ZUxldHRlcihDb2RlUG9pbnRJdGVyYXRvcjxDaGFy
YWN0ZXJUeXBlPiBpdGVyYXRvcikKIHsKICAgICBpZiAoaXRlcmF0b3IuYXRFbmQoKSB8fCAhaXNB
U0NJSUFscGhhKCppdGVyYXRvcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQ0MSw3ICs0
NDEsNyBAQCBib29sIFVSTFBhcnNlcjo6aXNXaW5kb3dzRHJpdmVMZXR0ZXIoQ29kCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi12b2lkIFVSTFBhcnNlcjo6YXBwZW5kVG9BU0NJSUJ1ZmZlcihVQ2hh
cjMyIGNvZGVQb2ludCkKK0FMV0FZU19JTkxJTkUgdm9pZCBVUkxQYXJzZXI6OmFwcGVuZFRvQVND
SUlCdWZmZXIoVUNoYXIzMiBjb2RlUG9pbnQpCiB7CiAgICAgQVNTRVJUKG1fdW5pY29kZUZyYWdt
ZW50QnVmZmVyLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKGlzQVNDSUkoY29kZVBvaW50KSk7CkBA
IC00NDksNyArNDQ5LDcgQEAgdm9pZCBVUkxQYXJzZXI6OmFwcGVuZFRvQVNDSUlCdWZmZXIoVUNo
YQogICAgICAgICBtX2FzY2lpQnVmZmVyLmFwcGVuZChjb2RlUG9pbnQpOwogfQogCi12b2lkIFVS
TFBhcnNlcjo6YXBwZW5kVG9BU0NJSUJ1ZmZlcihjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCBzaXpl
X3QgbGVuZ3RoKQorQUxXQVlTX0lOTElORSB2b2lkIFVSTFBhcnNlcjo6YXBwZW5kVG9BU0NJSUJ1
ZmZlcihjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbGVuZ3RoKQogewogICAgIEFTU0VS
VChtX3VuaWNvZGVGcmFnbWVudEJ1ZmZlci5pc0VtcHR5KCkpOwogICAgIGlmIChVTkxJS0VMWSht
X2RpZFNlZVN5bnRheFZpb2xhdGlvbikpCkBAIC00ODQsNyArNDg0LDcgQEAgYm9vbCBVUkxQYXJz
ZXI6OnNob3VsZENvcHlGaWxlVVJMKENvZGVQbwogICAgIHJldHVybiAhaXNTbGFzaFF1ZXN0aW9u
T3JIYXNoKCppdGVyYXRvcik7CiB9CiAKLWlubGluZSBzdGF0aWMgdm9pZCBwZXJjZW50RW5jb2Rl
Qnl0ZSh1aW50OF90IGJ5dGUsIFZlY3RvcjxMQ2hhcj4mIGJ1ZmZlcikKK3N0YXRpYyB2b2lkIHBl
cmNlbnRFbmNvZGVCeXRlKHVpbnQ4X3QgYnl0ZSwgVmVjdG9yPExDaGFyPiYgYnVmZmVyKQogewog
ICAgIGJ1ZmZlci5hcHBlbmQoJyUnKTsKICAgICBidWZmZXIuYXBwZW5kKHVwcGVyTmliYmxlVG9B
U0NJSUhleERpZ2l0KGJ5dGUpKTsKQEAgLTUwMiw3ICs1MDIsNyBAQCBjb25zdCBjaGFyIHJlcGxh
Y2VtZW50Q2hhcmFjdGVyVVRGOFBlcmNlCiBjb25zdCBzaXplX3QgcmVwbGFjZW1lbnRDaGFyYWN0
ZXJVVEY4UGVyY2VudEVuY29kZWRMZW5ndGggPSBzaXplb2YocmVwbGFjZW1lbnRDaGFyYWN0ZXJV
VEY4UGVyY2VudEVuY29kZWQpIC0gMTsKIAogdGVtcGxhdGU8Ym9vbCgqaXNJbkNvZGVTZXQpKFVD
aGFyMzIpLCB0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgotdm9pZCBVUkxQYXJzZXI6OnV0ZjhQZXJj
ZW50RW5jb2RlKGNvbnN0IENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+JiBpdGVyYXRv
cikKK0FMV0FZU19JTkxJTkUgdm9pZCBVUkxQYXJzZXI6OnV0ZjhQZXJjZW50RW5jb2RlKGNvbnN0
IENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+JiBpdGVyYXRvcikKIHsKICAgICBBU1NF
UlQoIWl0ZXJhdG9yLmF0RW5kKCkpOwogICAgIFVDaGFyMzIgY29kZVBvaW50ID0gKml0ZXJhdG9y
OwpAQCAtNTMwLDcgKzUzMCw3IEBAIHZvaWQgVVJMUGFyc2VyOjp1dGY4UGVyY2VudEVuY29kZShj
b25zdCAKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KLXZvaWQgVVJMUGFy
c2VyOjp1dGY4UXVlcnlFbmNvZGUoY29uc3QgQ29kZVBvaW50SXRlcmF0b3I8Q2hhcmFjdGVyVHlw
ZT4mIGl0ZXJhdG9yKQorQUxXQVlTX0lOTElORSB2b2lkIFVSTFBhcnNlcjo6dXRmOFF1ZXJ5RW5j
b2RlKGNvbnN0IENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+JiBpdGVyYXRvcikKIHsK
ICAgICBBU1NFUlQoIWl0ZXJhdG9yLmF0RW5kKCkpOwogICAgIFVDaGFyMzIgY29kZVBvaW50ID0g
Kml0ZXJhdG9yOwpAQCAtNTc3LDcgKzU3Nyw3IEBAIHZvaWQgVVJMUGFyc2VyOjplbmNvZGVRdWVy
eShjb25zdCBWZWN0b3IKICAgICB9CiB9CiAKLWlubGluZSBzdGF0aWMgYm9vbCBpc0RlZmF1bHRQ
b3J0KFN0cmluZ1ZpZXcgc2NoZW1lLCB1aW50MTZfdCBwb3J0KQorQUxXQVlTX0lOTElORSBzdGF0
aWMgYm9vbCBpc0RlZmF1bHRQb3J0KFN0cmluZ1ZpZXcgc2NoZW1lLCB1aW50MTZfdCBwb3J0KQog
ewogICAgIHN0YXRpYyBjb25zdCB1aW50MTZfdCBmdHBQb3J0ID0gMjE7CiAgICAgc3RhdGljIGNv
bnN0IHVpbnQxNl90IGdvcGhlclBvcnQgPSA3MDsKQEAgLTYzNyw3ICs2MzcsNyBAQCBpbmxpbmUg
c3RhdGljIGJvb2wgaXNEZWZhdWx0UG9ydChTdHJpbmdWCiAgICAgfQogfQogCi1pbmxpbmUgc3Rh
dGljIGJvb2wgaXNTcGVjaWFsU2NoZW1lKFN0cmluZ1ZpZXcgc2NoZW1lKQorQUxXQVlTX0lOTElO
RSBzdGF0aWMgYm9vbCBpc1NwZWNpYWxTY2hlbWUoU3RyaW5nVmlldyBzY2hlbWUpCiB7CiAgICAg
YXV0byBsZW5ndGggPSBzY2hlbWUubGVuZ3RoKCk7CiAgICAgaWYgKCFsZW5ndGgpCkBAIC04MTgs
NyArODE4LDcgQEAgdm9pZCBVUkxQYXJzZXI6OmNvcHlVUkxQYXJ0c1VudGlsKGNvbnN0IAogc3Rh
dGljIGNvbnN0IGNoYXIqIGRvdEFTQ0lJQ29kZSA9ICIyZSI7CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IENoYXJhY3RlclR5cGU+Ci1pbmxpbmUgc3RhdGljIGJvb2wgaXNQZXJjZW50RW5jb2RlZERvdChD
b2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPiBjKQorQUxXQVlTX0lOTElORSBzdGF0aWMg
Ym9vbCBpc1BlcmNlbnRFbmNvZGVkRG90KENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+
IGMpCiB7CiAgICAgaWYgKGMuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODM2
LDcgKzgzNiw3IEBAIGlubGluZSBzdGF0aWMgYm9vbCBpc1BlcmNlbnRFbmNvZGVkRG90KEMKIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KLWlubGluZSBzdGF0aWMgYm9vbCBp
c1NpbmdsZURvdFBhdGhTZWdtZW50KENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+IGMp
CitBTFdBWVNfSU5MSU5FIHN0YXRpYyBib29sIGlzU2luZ2xlRG90UGF0aFNlZ21lbnQoQ29kZVBv
aW50SXRlcmF0b3I8Q2hhcmFjdGVyVHlwZT4gYykKIHsKICAgICBpZiAoYy5hdEVuZCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC04NjAsNyArODYwLDcgQEAgaW5saW5lIHN0YXRpYyBib29s
IGlzU2luZ2xlRG90UGF0aFNlZ21lbgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJU
eXBlPgotaW5saW5lIHN0YXRpYyBib29sIGlzRG91YmxlRG90UGF0aFNlZ21lbnQoQ29kZVBvaW50
SXRlcmF0b3I8Q2hhcmFjdGVyVHlwZT4gYykKK0FMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaXNE
b3VibGVEb3RQYXRoU2VnbWVudChDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPiBjKQog
ewogICAgIGlmIChjLmF0RW5kKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTg4NCw3ICs4
ODQsNyBAQCBpbmxpbmUgc3RhdGljIGJvb2wgaXNEb3VibGVEb3RQYXRoU2VnbWVuCiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Ci1pbmxpbmUgc3RhdGljIHZvaWQgY29uc3Vt
ZVNpbmdsZURvdFBhdGhTZWdtZW50KENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+JiBj
KQorc3RhdGljIHZvaWQgY29uc3VtZVNpbmdsZURvdFBhdGhTZWdtZW50KENvZGVQb2ludEl0ZXJh
dG9yPENoYXJhY3RlclR5cGU+JiBjKQogewogICAgIEFTU0VSVChpc1NpbmdsZURvdFBhdGhTZWdt
ZW50KGMpKTsKICAgICBpZiAoKmMgPT0gJy4nKSB7CkBAIC05MTIsNyArOTEyLDcgQEAgaW5saW5l
IHN0YXRpYyB2b2lkIGNvbnN1bWVTaW5nbGVEb3RQYXRoUwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDaGFyYWN0ZXJUeXBlPgotaW5saW5lIHN0YXRpYyB2b2lkIGNvbnN1bWVEb3VibGVEb3RQYXRo
U2VnbWVudChDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPiYgYykKK3N0YXRpYyB2b2lk
IGNvbnN1bWVEb3VibGVEb3RQYXRoU2VnbWVudChDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJU
eXBlPiYgYykKIHsKICAgICBBU1NFUlQoaXNEb3VibGVEb3RQYXRoU2VnbWVudChjKSk7CiAgICAg
aWYgKCpjID09ICcuJykKQEAgLTkzMCw2ICs5MzAsNyBAQCBpbmxpbmUgc3RhdGljIHZvaWQgY29u
c3VtZURvdWJsZURvdFBhdGhTCiAKIHZvaWQgVVJMUGFyc2VyOjpwb3BQYXRoKCkKIHsKKyAgICBB
U1NFUlQobV9kaWRTZWVTeW50YXhWaW9sYXRpb24pOwogICAgIGlmIChtX3VybC5tX3BhdGhBZnRl
ckxhc3RTbGFzaCA+IG1fdXJsLm1fcG9ydEVuZCArIDEpIHsKICAgICAgICAgbV91cmwubV9wYXRo
QWZ0ZXJMYXN0U2xhc2gtLTsKICAgICAgICAgaWYgKG1fYXNjaWlCdWZmZXJbbV91cmwubV9wYXRo
QWZ0ZXJMYXN0U2xhc2hdID09ICcvJykKQEAgLTk5MCw3ICs5OTEsNyBAQCB2b2lkIFVSTFBhcnNl
cjo6ZmFpbHVyZSgpCiAgICAgbV91cmwubV9zdHJpbmcgPSBtX2lucHV0U3RyaW5nOwogfQogCi1T
dHJpbmdWaWV3IFVSTFBhcnNlcjo6cGFyc2VkRGF0YVZpZXcoc2l6ZV90IHN0YXJ0LCBzaXplX3Qg
bGVuZ3RoKQorQUxXQVlTX0lOTElORSBTdHJpbmdWaWV3IFVSTFBhcnNlcjo6cGFyc2VkRGF0YVZp
ZXcoc2l6ZV90IHN0YXJ0LCBzaXplX3QgbGVuZ3RoKQogewogICAgIGlmIChVTkxJS0VMWShtX2Rp
ZFNlZVN5bnRheFZpb2xhdGlvbikpIHsKICAgICAgICAgQVNTRVJUKHN0YXJ0ICsgbGVuZ3RoIDw9
IG1fYXNjaWlCdWZmZXIuc2l6ZSgpKTsKQEAgLTEwMDEsNyArMTAwMiw3IEBAIFN0cmluZ1ZpZXcg
VVJMUGFyc2VyOjpwYXJzZWREYXRhVmlldyhzaXoKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQ2hh
cmFjdGVyVHlwZT4KLXNpemVfdCBVUkxQYXJzZXI6OmN1cnJlbnRQb3NpdGlvbihjb25zdCBDb2Rl
UG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPiYgaXRlcmF0b3IpCitBTFdBWVNfSU5MSU5FIHNp
emVfdCBVUkxQYXJzZXI6OmN1cnJlbnRQb3NpdGlvbihjb25zdCBDb2RlUG9pbnRJdGVyYXRvcjxD
aGFyYWN0ZXJUeXBlPiYgaXRlcmF0b3IpCiB7CiAgICAgaWYgKFVOTElLRUxZKG1fZGlkU2VlU3lu
dGF4VmlvbGF0aW9uKSkgewogICAgICAgICBBU1NFUlQobV91bmljb2RlRnJhZ21lbnRCdWZmZXIu
aXNFbXB0eSgpKTsKQEAgLTE4OTAsNyArMTg5MSw3IEBAIHZvaWQgVVJMUGFyc2VyOjpzZXJpYWxp
emVJUHY0KElQdjRBZGRyZXMKICAgICBhcHBlbmROdW1iZXJUb0FTQ0lJQnVmZmVyPHVpbnQ4X3Q+
KGFkZHJlc3MpOwogfQogICAgIAotaW5saW5lIHN0YXRpYyBzaXplX3QgemVyb1NlcXVlbmNlTGVu
Z3RoKGNvbnN0IHN0ZDo6YXJyYXk8dWludDE2X3QsIDg+JiBhZGRyZXNzLCBzaXplX3QgYmVnaW4p
CitzdGF0aWMgc2l6ZV90IHplcm9TZXF1ZW5jZUxlbmd0aChjb25zdCBzdGQ6OmFycmF5PHVpbnQx
Nl90LCA4PiYgYWRkcmVzcywgc2l6ZV90IGJlZ2luKQogewogICAgIHNpemVfdCBlbmQgPSBiZWdp
bjsKICAgICBmb3IgKDsgZW5kIDwgODsgZW5kKyspIHsKQEAgLTE5MDAsNyArMTkwMSw3IEBAIGlu
bGluZSBzdGF0aWMgc2l6ZV90IHplcm9TZXF1ZW5jZUxlbmd0aCgKICAgICByZXR1cm4gZW5kIC0g
YmVnaW47CiB9CiAKLWlubGluZSBzdGF0aWMgT3B0aW9uYWw8c2l6ZV90PiBmaW5kTG9uZ2VzdFpl
cm9TZXF1ZW5jZShjb25zdCBzdGQ6OmFycmF5PHVpbnQxNl90LCA4PiYgYWRkcmVzcykKK3N0YXRp
YyBPcHRpb25hbDxzaXplX3Q+IGZpbmRMb25nZXN0WmVyb1NlcXVlbmNlKGNvbnN0IHN0ZDo6YXJy
YXk8dWludDE2X3QsIDg+JiBhZGRyZXNzKQogewogICAgIE9wdGlvbmFsPHNpemVfdD4gbG9uZ2Vz
dDsKICAgICBzaXplX3QgbG9uZ2VzdExlbmd0aCA9IDA7CkBAIC0yMDIyLDcgKzIwMjMsNyBAQCBP
cHRpb25hbDx1aW50MzJfdD4gVVJMUGFyc2VyOjpwYXJzZUlQdjROCiAgICAgcmV0dXJuIHZhbHVl
OwogfQogCi1pbmxpbmUgc3RhdGljIHVpbnQ2NF90IHBvdzI1NihzaXplX3QgZXhwb25lbnQpCitB
TFdBWVNfSU5MSU5FIHN0YXRpYyB1aW50NjRfdCBwb3cyNTYoc2l6ZV90IGV4cG9uZW50KQogewog
ICAgIFJFTEVBU0VfQVNTRVJUKGV4cG9uZW50IDw9IDQpOwogICAgIHVpbnQ2NF90IHZhbHVlc1s1
XSA9IHsxLCAyNTYsIDI1NiAqIDI1NiwgMjU2ICogMjU2ICogMjU2LCAyNTZ1bGwgKiAyNTYgKiAy
NTYgKiAyNTYgfTsKQEAgLTIxNzcsNyArMjE3OCw3IEBAIE9wdGlvbmFsPFVSTFBhcnNlcjo6SVB2
NkFkZHJlc3M+IFVSTFBhcnMKIAogY29uc3Qgc2l6ZV90IGRlZmF1bHRJbmxpbmVCdWZmZXJTaXpl
ID0gMjA0ODsKIAotaW5saW5lIHN0YXRpYyBWZWN0b3I8TENoYXIsIGRlZmF1bHRJbmxpbmVCdWZm
ZXJTaXplPiBwZXJjZW50RGVjb2RlKGNvbnN0IExDaGFyKiBpbnB1dCwgc2l6ZV90IGxlbmd0aCkK
K3N0YXRpYyBWZWN0b3I8TENoYXIsIGRlZmF1bHRJbmxpbmVCdWZmZXJTaXplPiBwZXJjZW50RGVj
b2RlKGNvbnN0IExDaGFyKiBpbnB1dCwgc2l6ZV90IGxlbmd0aCkKIHsKICAgICBWZWN0b3I8TENo
YXIsIGRlZmF1bHRJbmxpbmVCdWZmZXJTaXplPiBvdXRwdXQ7CiAgICAgb3V0cHV0LnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkobGVuZ3RoKTsKQEAgLTIxOTgsMTQgKzIxOTksMTQgQEAgaW5saW5lIHN0
YXRpYyBWZWN0b3I8TENoYXIsIGRlZmF1bHRJbmxpbgogICAgIHJldHVybiBvdXRwdXQ7CiB9CiAK
LWlubGluZSBzdGF0aWMgYm9vbCBjb250YWluc09ubHlBU0NJSShjb25zdCBTdHJpbmcmIHN0cmlu
ZykKK0FMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgY29udGFpbnNPbmx5QVNDSUkoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCiB7CiAgICAgaWYgKHN0cmluZy5pczhCaXQoKSkKICAgICAgICAgcmV0dXJu
IGNoYXJhY3RlcnNBcmVBbGxBU0NJSShzdHJpbmcuY2hhcmFjdGVyczgoKSwgc3RyaW5nLmxlbmd0
aCgpKTsKICAgICByZXR1cm4gY2hhcmFjdGVyc0FyZUFsbEFTQ0lJKHN0cmluZy5jaGFyYWN0ZXJz
MTYoKSwgc3RyaW5nLmxlbmd0aCgpKTsKIH0KIAotaW5saW5lIHN0YXRpYyBPcHRpb25hbDxWZWN0
b3I8TENoYXIsIGRlZmF1bHRJbmxpbmVCdWZmZXJTaXplPj4gZG9tYWluVG9BU0NJSShjb25zdCBT
dHJpbmcmIGRvbWFpbikKK3N0YXRpYyBPcHRpb25hbDxWZWN0b3I8TENoYXIsIGRlZmF1bHRJbmxp
bmVCdWZmZXJTaXplPj4gZG9tYWluVG9BU0NJSShjb25zdCBTdHJpbmcmIGRvbWFpbikKIHsKICAg
ICBWZWN0b3I8TENoYXIsIGRlZmF1bHRJbmxpbmVCdWZmZXJTaXplPiBhc2NpaTsKICAgICBpZiAo
Y29udGFpbnNPbmx5QVNDSUkoZG9tYWluKSkgewpAQCAtMjI1MSw3ICsyMjUyLDcgQEAgaW5saW5l
IHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8TENoYXIsIGRlZgogICAgIHJldHVybiBOdWxsb3B0Owog
fQogCi1pbmxpbmUgc3RhdGljIGJvb2wgaGFzSW52YWxpZERvbWFpbkNoYXJhY3Rlcihjb25zdCBW
ZWN0b3I8TENoYXIsIGRlZmF1bHRJbmxpbmVCdWZmZXJTaXplPiYgYXNjaWlEb21haW4pCitzdGF0
aWMgYm9vbCBoYXNJbnZhbGlkRG9tYWluQ2hhcmFjdGVyKGNvbnN0IFZlY3RvcjxMQ2hhciwgZGVm
YXVsdElubGluZUJ1ZmZlclNpemU+JiBhc2NpaURvbWFpbikKIHsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGFzY2lpRG9tYWluLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlmIChpc0ludmFs
aWREb21haW5DaGFyYWN0ZXIoYXNjaWlEb21haW5baV0pKQpAQCAtMjM5OSw3ICsyNDAwLDcgQEAg
Ym9vbCBVUkxQYXJzZXI6OnBhcnNlSG9zdEFuZFBvcnQoQ29kZVBvaQogICAgIHJldHVybiB0cnVl
OwogfQogCi1pbmxpbmUgc3RhdGljIE9wdGlvbmFsPFN0cmluZz4gZm9ybVVSTERlY29kZShTdHJp
bmdWaWV3IGlucHV0KQorc3RhdGljIE9wdGlvbmFsPFN0cmluZz4gZm9ybVVSTERlY29kZShTdHJp
bmdWaWV3IGlucHV0KQogewogICAgIGF1dG8gdXRmOCA9IGlucHV0LnV0ZjgoU3RyaWN0Q29udmVy
c2lvbik7CiAgICAgaWYgKHV0ZjguaXNOdWxsKCkpCkBAIC0yNDI4LDcgKzI0MjksNyBAQCBhdXRv
IFVSTFBhcnNlcjo6cGFyc2VVUkxFbmNvZGVkRm9ybShTdHJpCiAgICAgcmV0dXJuIG91dHB1dDsK
IH0KIAotaW5saW5lIHN0YXRpYyB2b2lkIHNlcmlhbGl6ZVVSTEVuY29kZWRGb3JtKGNvbnN0IFN0
cmluZyYgaW5wdXQsIFZlY3RvcjxMQ2hhcj4mIG91dHB1dCkKK3N0YXRpYyB2b2lkIHNlcmlhbGl6
ZVVSTEVuY29kZWRGb3JtKGNvbnN0IFN0cmluZyYgaW5wdXQsIFZlY3RvcjxMQ2hhcj4mIG91dHB1
dCkKIHsKICAgICBhdXRvIHV0ZjggPSBpbnB1dC51dGY4KFN0cmljdENvbnZlcnNpb24pOwogICAg
IGNvbnN0IGNoYXIqIGRhdGEgPSB1dGY4LmRhdGEoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>