<?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>160957</bug_id>
          
          <creation_ts>2016-08-18 07:45:02 -0700</creation_ts>
          <short_desc>[MediaStream] cleanup MediaConstraints</short_desc>
          <delta_ts>2016-08-18 09:08:01 -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>Media</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="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1221081</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-08-18 07:45:02 -0700</bug_when>
    <thetext>Have MediaConstraints hold a constraint type enum rather than a string so the conversion only happens one time. Also make the RealtimeMediaSourceSupportedConstraints::constraintFromName and RealtimeMediaSourceSupportedConstraints::nameForConstraint methods static.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221082</commentid>
    <comment_count>1</comment_count>
      <attachid>286368</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-08-18 07:52:18 -0700</bug_when>
    <thetext>Created attachment 286368
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221084</commentid>
    <comment_count>2</comment_count>
      <attachid>286368</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2016-08-18 08:02:11 -0700</bug_when>
    <thetext>Comment on attachment 286368
Proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=286368&amp;action=review

&gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:212
&gt; +        LOG(Media, &quot;AVVideoCaptureSource::applyConstraints(%p), unable set frame rate to %f&quot;, this, frameRate.value());

Do we need this new log?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221086</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-08-18 08:06:29 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 286368 [details]
&gt; Proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=286368&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:212
&gt; &gt; +        LOG(Media, &quot;AVVideoCaptureSource::applyConstraints(%p), unable set frame rate to %f&quot;, this, frameRate.value());
&gt; 
&gt; Do we need this new log?

We don&apos;t need it, but I think it is useful because it logs an error that may otherwise be difficult to track down.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221091</commentid>
    <comment_count>4</comment_count>
      <attachid>286368</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-18 09:07:57 -0700</bug_when>
    <thetext>Comment on attachment 286368
Proposed patch.

Clearing flags on attachment: 286368

Committed r204595: &lt;http://trac.webkit.org/changeset/204595&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221092</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-18 09:08:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286368</attachid>
            <date>2016-08-18 07:52:18 -0700</date>
            <delta_ts>2016-08-18 09:07:57 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>cleanup_patch_2.txt</filename>
            <type>text/plain</type>
            <size>24966</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDU5NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE2LTA4LTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
Y2xlYW51cCBNZWRpYUNvbnN0cmFpbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjA5NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwOgorICAg
ICAgICAoQ2FwdHVyZURldmljZU1hbmFnZXI6OnNlc3Npb25TdXBwb3J0c0NvbnN0cmFpbnQpOiBV
c2UgTWVkaWFDb25zdHJhaW50Ojp0eXBlCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lZGlh
RGV2aWNlc0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplU3RyaW5nQ29u
c3RyYWludFdpdGhMaXN0KTogTWVkaWFDb25zdHJhaW50OjpjcmVhdGUgbm93IHRha2VzIHRoZSBj
b25zdHJhaW50CisgICAgICAgIHR5cGUsIG5vdCBuYW1lLgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlU3RyaW5nQ29uc3RyYWludCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQm9v
bGVhbkNvbnN0cmFpbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURvdWJsZUNv
bnN0cmFpbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUludENvbnN0cmFpbnQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRG
b3JLZXkpOiBQYXNzIGNvbnN0cmFpbnQgdHlwZS4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50OjpjcmVhdGUpOiBNZWRpYUNvbnN0cmFpbnQgY29uc3RydWN0b3Igbm93IHRha2VzIHRo
ZSBjb25zdHJhaW50LgorICAgICAgICAoV2ViQ29yZTo6SW50Q29uc3RyYWludDo6Y3JlYXRlKTog
VGFrZSB0eXBlLCBub3QgbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OkludENvbnN0cmFpbnQ6OnNl
dE1pbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG91YmxlQ29uc3RyYWludDo6Y3JlYXRl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCb29sZWFuQ29uc3RyYWludDo6Y3JlYXRlKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTdHJpbmdDb25zdHJhaW50OjpjcmVhdGUpOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmg6CisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9y
dGVkQ29uc3RyYWludHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVN1cHBvcnRlZENvbnN0cmFpbnRzOjpuYW1lRm9yQ29uc3RyYWludCk6IE1ha2Ugc3RhdGljLgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRz
Ojpjb25zdHJhaW50RnJvbU5hbWUpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaDoKKworICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2Vzc2lvblN1cHBvcnRz
Q29uc3RyYWludCk6IFVzZSBNZWRpYUNvbnN0cmFpbnQ6OnR5cGUKKworICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjphcHBseUNvbnN0cmFpbnRzKTogbmFtZUZvckNv
bnN0cmFpbnQgaXMgYSBzdGF0aWMgbWV0aG9kLiBBZGQKKyAgICAgICAgZXJyb3IgbG9nZ2luZy4K
KworICAgICAgICAqIHBsYXRmb3JtL21vY2svTWVkaWFDb25zdHJhaW50c01vY2suY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aXNTYXRpc2ZpYWJsZSk6IFVzZSBjb25zdHJhaW50IHR5cGUuCisKIDIw
MTYtMDgtMTggIFJhd2luZGVyIFNpbmdoICA8cmF3aW5kZXIuc2luZ2gtd2Via2l0QGNpc3JhLmNh
bm9uLmNvbS5hdT4KIAogICAgICAgICBbd2ViLWFuaW1hdGlvbnNdIEFkZCBBbmltYXRhYmxlLCBB
bmltYXRpb25FZmZlY3QsIEtleWZyYW1lRWZmZWN0IGFuZCBBbmltYXRpb24gaW50ZXJmYWNlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2VNYW5h
Z2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAkocmV2aXNpb24gMjA0NTU3KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE1NCw3ICsxNTQsNyBAQCBzdGF0aWMgaW5saW5lIFJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5nCiBib29sIENhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzZXNzaW9uU3VwcG9ydHND
b25zdHJhaW50KGNvbnN0IENhcHR1cmVTZXNzaW9uSW5mbyosIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50JiBjb25zdHJhaW50KQogewogICAgIGNv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29u
c3RyYWludHMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zdXBwb3J0
ZWRDb25zdHJhaW50cygpOwotICAgIE1lZGlhQ29uc3RyYWludFR5cGUgY29uc3RyYWludFR5cGUg
PSBzdXBwb3J0ZWRDb25zdHJhaW50cy5jb25zdHJhaW50RnJvbU5hbWUoY29uc3RyYWludC5uYW1l
KCkpOworICAgIE1lZGlhQ29uc3RyYWludFR5cGUgY29uc3RyYWludFR5cGUgPSBjb25zdHJhaW50
LnR5cGUoKTsKICAgICBpZiAoIXN1cHBvcnRlZENvbnN0cmFpbnRzLnN1cHBvcnRzQ29uc3RyYWlu
dChjb25zdHJhaW50VHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRpYURldmljZXNDdXN0b20uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFEZXZpY2VzQ3VzdG9tLmNwcAko
cmV2aXNpb24gMjA0NTU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRpYURl
dmljZXNDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw5ICs1OCw5IEBAIHN0YXRpYyB2
b2lkIGluaXRpYWxpemVTdHJpbmdDb25zdHJhaW50V2kKICAgICB9CiB9CiAKLXN0YXRpYyBSZWZQ
dHI8U3RyaW5nQ29uc3RyYWludD4gY3JlYXRlU3RyaW5nQ29uc3RyYWludChjb25zdCBEaWN0aW9u
YXJ5JiBtZWRpYVRyYWNrQ29uc3RyYWludFNldCwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb25zdHJh
aW50U2V0VHlwZSBjb25zdHJhaW50U2V0VHlwZSkKK3N0YXRpYyBSZWZQdHI8U3RyaW5nQ29uc3Ry
YWludD4gY3JlYXRlU3RyaW5nQ29uc3RyYWludChjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYVRyYWNr
Q29uc3RyYWludFNldCwgY29uc3QgU3RyaW5nJiBuYW1lLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5
cGUsIENvbnN0cmFpbnRTZXRUeXBlIGNvbnN0cmFpbnRTZXRUeXBlKQogewotICAgIGF1dG8gY29u
c3RyYWludCA9IFN0cmluZ0NvbnN0cmFpbnQ6OmNyZWF0ZShuYW1lKTsKKyAgICBhdXRvIGNvbnN0
cmFpbnQgPSBTdHJpbmdDb25zdHJhaW50OjpjcmVhdGUodHlwZSk7CiAKICAgICAvLyBEaWN0aW9u
YXJ5IGNvbnN0cmFpbnQgdmFsdWUuCiAgICAgRGljdGlvbmFyeSBkaWN0aW9uYXJ5VmFsdWU7CkBA
IC0xMjAsOSArMTIwLDkgQEAgc3RhdGljIFJlZlB0cjxTdHJpbmdDb25zdHJhaW50PiBjcmVhdGVT
dAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1zdGF0aWMgUmVmUHRyPEJvb2xlYW5Db25zdHJh
aW50PiBjcmVhdGVCb29sZWFuQ29uc3RyYWludChjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYVRyYWNr
Q29uc3RyYWludFNldCwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb25zdHJhaW50U2V0VHlwZSBjb25z
dHJhaW50U2V0VHlwZSkKK3N0YXRpYyBSZWZQdHI8Qm9vbGVhbkNvbnN0cmFpbnQ+IGNyZWF0ZUJv
b2xlYW5Db25zdHJhaW50KGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhVHJhY2tDb25zdHJhaW50U2V0
LCBjb25zdCBTdHJpbmcmIG5hbWUsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgQ29uc3RyYWlu
dFNldFR5cGUgY29uc3RyYWludFNldFR5cGUpCiB7Ci0gICAgYXV0byBjb25zdHJhaW50ID0gQm9v
bGVhbkNvbnN0cmFpbnQ6OmNyZWF0ZShuYW1lKTsKKyAgICBhdXRvIGNvbnN0cmFpbnQgPSBCb29s
ZWFuQ29uc3RyYWludDo6Y3JlYXRlKHR5cGUpOwogCiAgICAgLy8gRGljdGlvbmFyeSBjb25zdHJh
aW50IHZhbHVlLgogICAgIERpY3Rpb25hcnkgZGljdGlvbmFyeVZhbHVlOwpAQCAtMTU5LDkgKzE1
OSw5IEBAIHN0YXRpYyBSZWZQdHI8Qm9vbGVhbkNvbnN0cmFpbnQ+IGNyZWF0ZUIKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAotc3RhdGljIFJlZlB0cjxEb3VibGVDb25zdHJhaW50PiBjcmVhdGVE
b3VibGVDb25zdHJhaW50KGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhVHJhY2tDb25zdHJhaW50U2V0
LCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbnN0cmFpbnRTZXRUeXBlIGNvbnN0cmFpbnRTZXRUeXBl
KQorc3RhdGljIFJlZlB0cjxEb3VibGVDb25zdHJhaW50PiBjcmVhdGVEb3VibGVDb25zdHJhaW50
KGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LCBjb25zdCBTdHJpbmcm
IG5hbWUsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgQ29uc3RyYWludFNldFR5cGUgY29uc3Ry
YWludFNldFR5cGUpCiB7Ci0gICAgYXV0byBjb25zdHJhaW50ID0gRG91YmxlQ29uc3RyYWludDo6
Y3JlYXRlKG5hbWUpOworICAgIGF1dG8gY29uc3RyYWludCA9IERvdWJsZUNvbnN0cmFpbnQ6OmNy
ZWF0ZSh0eXBlKTsKIAogICAgIC8vIERpY3Rpb25hcnkgY29uc3RyYWludCB2YWx1ZS4KICAgICBE
aWN0aW9uYXJ5IGRpY3Rpb25hcnlWYWx1ZTsKQEAgLTIwNiw5ICsyMDYsOSBAQCBzdGF0aWMgUmVm
UHRyPERvdWJsZUNvbnN0cmFpbnQ+IGNyZWF0ZURvCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LXN0YXRpYyBSZWZQdHI8SW50Q29uc3RyYWludD4gY3JlYXRlSW50Q29uc3RyYWludChjb25zdCBE
aWN0aW9uYXJ5JiBtZWRpYVRyYWNrQ29uc3RyYWludFNldCwgY29uc3QgU3RyaW5nJiBuYW1lLCBD
b25zdHJhaW50U2V0VHlwZSBjb25zdHJhaW50U2V0VHlwZSkKK3N0YXRpYyBSZWZQdHI8SW50Q29u
c3RyYWludD4gY3JlYXRlSW50Q29uc3RyYWludChjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYVRyYWNr
Q29uc3RyYWludFNldCwgY29uc3QgU3RyaW5nJiBuYW1lLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5
cGUsIENvbnN0cmFpbnRTZXRUeXBlIGNvbnN0cmFpbnRTZXRUeXBlKQogewotICAgIGF1dG8gY29u
c3RyYWludCA9IEludENvbnN0cmFpbnQ6OmNyZWF0ZShuYW1lKTsKKyAgICBhdXRvIGNvbnN0cmFp
bnQgPSBJbnRDb25zdHJhaW50OjpjcmVhdGUodHlwZSk7CiAKICAgICAvLyBEaWN0aW9uYXJ5IGNv
bnN0cmFpbnQgdmFsdWUuCiAgICAgRGljdGlvbmFyeSBkaWN0aW9uYXJ5VmFsdWU7CkBAIC0yNTUs
MjUgKzI1NSwyNCBAQCBzdGF0aWMgUmVmUHRyPEludENvbnN0cmFpbnQ+IGNyZWF0ZUludENvCiAK
IHN0YXRpYyB2b2lkIHBhcnNlTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRGb3JLZXkoY29uc3QgRGlj
dGlvbmFyeSYgbWVkaWFUcmFja0NvbnN0cmFpbnRTZXQsIGNvbnN0IFN0cmluZyYgbmFtZSwgTWVk
aWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgY29uc3RyYWlu
dFNldFR5cGUsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZSkKIHsKLSAgICBh
dXRvJiBzdXBwb3J0ZWRDb25zdHJhaW50cyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLnN1cHBvcnRlZENvbnN0cmFpbnRzKCk7Ci0gICAgTWVkaWFDb25zdHJhaW50VHlw
ZSBjb25zdHJhaW50VHlwZSA9IHN1cHBvcnRlZENvbnN0cmFpbnRzLmNvbnN0cmFpbnRGcm9tTmFt
ZShuYW1lKTsKKyAgICBNZWRpYUNvbnN0cmFpbnRUeXBlIGNvbnN0cmFpbnRUeXBlID0gUmVhbHRp
bWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzOjpjb25zdHJhaW50RnJvbU5hbWUobmFt
ZSk7CiAKICAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50PiBtZWRpYUNvbnN0cmFpbnQ7CiAgICAg
aWYgKHNvdXJjZVR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pIHsKICAgICAgICAg
c3dpdGNoIChjb25zdHJhaW50VHlwZSkgewogICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5
cGU6OlNhbXBsZVJhdGU6CiAgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxl
U2l6ZToKLSAgICAgICAgICAgIG1lZGlhQ29uc3RyYWludCA9IGNyZWF0ZUludENvbnN0cmFpbnQo
bWVkaWFUcmFja0NvbnN0cmFpbnRTZXQsIG5hbWUsIGNvbnN0cmFpbnRTZXRUeXBlKTsKKyAgICAg
ICAgICAgIG1lZGlhQ29uc3RyYWludCA9IGNyZWF0ZUludENvbnN0cmFpbnQobWVkaWFUcmFja0Nv
bnN0cmFpbnRTZXQsIG5hbWUsIGNvbnN0cmFpbnRUeXBlLCBjb25zdHJhaW50U2V0VHlwZSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpWb2x1
bWU6Ci0gICAgICAgICAgICBtZWRpYUNvbnN0cmFpbnQgPSBjcmVhdGVEb3VibGVDb25zdHJhaW50
KG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJhaW50U2V0VHlwZSk7CisgICAg
ICAgICAgICBtZWRpYUNvbnN0cmFpbnQgPSBjcmVhdGVEb3VibGVDb25zdHJhaW50KG1lZGlhVHJh
Y2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJhaW50VHlwZSwgY29uc3RyYWludFNldFR5cGUp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6
RWNob0NhbmNlbGxhdGlvbjoKLSAgICAgICAgICAgIG1lZGlhQ29uc3RyYWludCA9IGNyZWF0ZUJv
b2xlYW5Db25zdHJhaW50KG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJhaW50
U2V0VHlwZSk7CisgICAgICAgICAgICBtZWRpYUNvbnN0cmFpbnQgPSBjcmVhdGVCb29sZWFuQ29u
c3RyYWludChtZWRpYVRyYWNrQ29uc3RyYWludFNldCwgbmFtZSwgY29uc3RyYWludFR5cGUsIGNv
bnN0cmFpbnRTZXRUeXBlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE1lZGlh
Q29uc3RyYWludFR5cGU6OkRldmljZUlkOgogICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5
cGU6Okdyb3VwSWQ6Ci0gICAgICAgICAgICBtZWRpYUNvbnN0cmFpbnQgPSBjcmVhdGVTdHJpbmdD
b25zdHJhaW50KG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJhaW50U2V0VHlw
ZSk7CisgICAgICAgICAgICBtZWRpYUNvbnN0cmFpbnQgPSBjcmVhdGVTdHJpbmdDb25zdHJhaW50
KG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJhaW50VHlwZSwgY29uc3RyYWlu
dFNldFR5cGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICBMT0coTWVkaWEsICJwYXJzZU1lZGlhVHJhY2tDb25zdHJhaW50U2V0Rm9yS2V5KCkgLSBp
Z25vcmluZyB1bnN1cHBvcnRlZCBjb25zdHJhaW50ICclcycgZm9yIGF1ZGlvLiIsIG5hbWUudXRm
OCgpLmRhdGEoKSk7CkBAIC0yODQsMTYgKzI4MywxNiBAQCBzdGF0aWMgdm9pZCBwYXJzZU1lZGlh
VHJhY2tDb25zdHJhaW50U2V0CiAgICAgICAgIHN3aXRjaCAoY29uc3RyYWludFR5cGUpIHsKICAg
ICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aDoKICAgICAgICAgY2FzZSBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQ6Ci0gICAgICAgICAgICBtZWRpYUNvbnN0cmFpbnQgPSBj
cmVhdGVJbnRDb25zdHJhaW50KG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJh
aW50U2V0VHlwZSk7CisgICAgICAgICAgICBtZWRpYUNvbnN0cmFpbnQgPSBjcmVhdGVJbnRDb25z
dHJhaW50KG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJhaW50VHlwZSwgY29u
c3RyYWludFNldFR5cGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWVkaWFD
b25zdHJhaW50VHlwZTo6QXNwZWN0UmF0aW86CiAgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50
VHlwZTo6RnJhbWVSYXRlOgotICAgICAgICAgICAgbWVkaWFDb25zdHJhaW50ID0gY3JlYXRlRG91
YmxlQ29uc3RyYWludChtZWRpYVRyYWNrQ29uc3RyYWludFNldCwgbmFtZSwgY29uc3RyYWludFNl
dFR5cGUpOworICAgICAgICAgICAgbWVkaWFDb25zdHJhaW50ID0gY3JlYXRlRG91YmxlQ29uc3Ry
YWludChtZWRpYVRyYWNrQ29uc3RyYWludFNldCwgbmFtZSwgY29uc3RyYWludFR5cGUsIGNvbnN0
cmFpbnRTZXRUeXBlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE1lZGlhQ29u
c3RyYWludFR5cGU6OkZhY2luZ01vZGU6CiAgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlw
ZTo6RGV2aWNlSWQ6CiAgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6R3JvdXBJZDoK
LSAgICAgICAgICAgIG1lZGlhQ29uc3RyYWludCA9IGNyZWF0ZVN0cmluZ0NvbnN0cmFpbnQobWVk
aWFUcmFja0NvbnN0cmFpbnRTZXQsIG5hbWUsIGNvbnN0cmFpbnRTZXRUeXBlKTsKKyAgICAgICAg
ICAgIG1lZGlhQ29uc3RyYWludCA9IGNyZWF0ZVN0cmluZ0NvbnN0cmFpbnQobWVkaWFUcmFja0Nv
bnN0cmFpbnRTZXQsIG5hbWUsIGNvbnN0cmFpbnRUeXBlLCBjb25zdHJhaW50U2V0VHlwZSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIExPRyhNZWRp
YSwgInBhcnNlTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRGb3JLZXkoKSAtIGlnbm9yaW5nIHVuc3Vw
cG9ydGVkIGNvbnN0cmFpbnQgJyVzJyBmb3IgdmlkZW8uIiwgbmFtZS51dGY4KCkuZGF0YSgpKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWlu
dHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhQ29uc3RyYWludHMuY3BwCShyZXZpc2lvbiAyMDQ1NTcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzksMjUgKzM5LDI0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmUHRyPE1lZGlh
Q29uc3RyYWludD4gTWVkaWFDb25zdHJhaW50OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lKQog
ewotICAgIGF1dG8mIHN1cHBvcnRlZENvbnN0cmFpbnRzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkuc3VwcG9ydGVkQ29uc3RyYWludHMoKTsKLSAgICBNZWRpYUNvbnN0
cmFpbnRUeXBlIGNvbnN0cmFpbnRUeXBlID0gc3VwcG9ydGVkQ29uc3RyYWludHMuY29uc3RyYWlu
dEZyb21OYW1lKG5hbWUpOworICAgIE1lZGlhQ29uc3RyYWludFR5cGUgY29uc3RyYWludFR5cGUg
PSBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHM6OmNvbnN0cmFpbnRGcm9t
TmFtZShuYW1lKTsKIAogICAgIHN3aXRjaCAoY29uc3RyYWludFR5cGUpIHsKICAgICBjYXNlIE1l
ZGlhQ29uc3RyYWludFR5cGU6OldpZHRoOgogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6
SGVpZ2h0OgogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlUmF0ZToKICAgICBj
YXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVNpemU6Ci0gICAgICAgIHJldHVybiBJbnRD
b25zdHJhaW50OjpjcmVhdGUobmFtZSk7CisgICAgICAgIHJldHVybiBJbnRDb25zdHJhaW50Ojpj
cmVhdGUoY29uc3RyYWludFR5cGUpOwogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6QXNw
ZWN0UmF0aW86CiAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGU6CiAgICAg
Y2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpWb2x1bWU6Ci0gICAgICAgIHJldHVybiBEb3VibGVD
b25zdHJhaW50OjpjcmVhdGUobmFtZSk7CisgICAgICAgIHJldHVybiBEb3VibGVDb25zdHJhaW50
OjpjcmVhdGUoY29uc3RyYWludFR5cGUpOwogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6
RWNob0NhbmNlbGxhdGlvbjoKLSAgICAgICAgcmV0dXJuIEJvb2xlYW5Db25zdHJhaW50OjpjcmVh
dGUobmFtZSk7CisgICAgICAgIHJldHVybiBCb29sZWFuQ29uc3RyYWludDo6Y3JlYXRlKGNvbnN0
cmFpbnRUeXBlKTsKICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkZhY2luZ01vZGU6CiAg
ICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZDoKICAgICBjYXNlIE1lZGlhQ29u
c3RyYWludFR5cGU6Okdyb3VwSWQ6Ci0gICAgICAgIHJldHVybiBTdHJpbmdDb25zdHJhaW50Ojpj
cmVhdGUobmFtZSk7CisgICAgICAgIHJldHVybiBTdHJpbmdDb25zdHJhaW50OjpjcmVhdGUoY29u
c3RyYWludFR5cGUpOwogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6VW5rbm93bjoKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMTU5LDkgKzE1OCw5IEBAIGJvb2wgTWVk
aWFDb25zdHJhaW50OjpnZXRJZGVhbChWZWN0b3I8U3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LVJlZjxJbnRDb25zdHJhaW50PiBJbnRDb25zdHJhaW50OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBu
YW1lKQorUmVmPEludENvbnN0cmFpbnQ+IEludENvbnN0cmFpbnQ6OmNyZWF0ZShNZWRpYUNvbnN0
cmFpbnRUeXBlIHR5cGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW50Q29uc3RyYWlu
dChuYW1lKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW50Q29uc3RyYWludCh0eXBlKSk7
CiB9CiAKIHZvaWQgSW50Q29uc3RyYWludDo6c2V0TWluKGludCB2YWx1ZSkKQEAgLTIyNCw5ICsy
MjMsOSBAQCBib29sIEludENvbnN0cmFpbnQ6OmdldElkZWFsKGludCYgaWRlYWwpCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLVJlZjxEb3VibGVDb25zdHJhaW50PiBEb3VibGVDb25zdHJhaW50Ojpj
cmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lKQorUmVmPERvdWJsZUNvbnN0cmFpbnQ+IERvdWJsZUNv
bnN0cmFpbnQ6OmNyZWF0ZShNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRG91YmxlQ29uc3RyYWludChuYW1lKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRG91YmxlQ29uc3RyYWludCh0eXBlKSk7CiB9CiAKIHZvaWQgRG91YmxlQ29uc3Ry
YWludDo6c2V0TWluKGRvdWJsZSB2YWx1ZSkKQEAgLTI4OSw5ICsyODgsOSBAQCBib29sIERvdWJs
ZUNvbnN0cmFpbnQ6OmdldElkZWFsKGRvdWJsZSYgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVJl
ZjxCb29sZWFuQ29uc3RyYWludD4gQm9vbGVhbkNvbnN0cmFpbnQ6OmNyZWF0ZShjb25zdCBTdHJp
bmcmIG5hbWUpCitSZWY8Qm9vbGVhbkNvbnN0cmFpbnQ+IEJvb2xlYW5Db25zdHJhaW50OjpjcmVh
dGUoTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEJvb2xlYW5Db25zdHJhaW50KG5hbWUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCb29s
ZWFuQ29uc3RyYWludCh0eXBlKSk7CiB9CiAKIHZvaWQgQm9vbGVhbkNvbnN0cmFpbnQ6OnNldEV4
YWN0KGJvb2wgdmFsdWUpCkBAIC0zMjQsOSArMzIzLDkgQEAgYm9vbCBCb29sZWFuQ29uc3RyYWlu
dDo6Z2V0SWRlYWwoYm9vbCYgaQogICAgIHJldHVybiB0cnVlOwogfQogCi1SZWY8U3RyaW5nQ29u
c3RyYWludD4gU3RyaW5nQ29uc3RyYWludDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSkKK1Jl
ZjxTdHJpbmdDb25zdHJhaW50PiBTdHJpbmdDb25zdHJhaW50OjpjcmVhdGUoTWVkaWFDb25zdHJh
aW50VHlwZSB0eXBlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0cmluZ0NvbnN0cmFp
bnQobmFtZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0cmluZ0NvbnN0cmFpbnQodHlw
ZSkpOwogfQogCiB2b2lkIFN0cmluZ0NvbnN0cmFpbnQ6OnNldEV4YWN0KGNvbnN0IFN0cmluZyYg
dmFsdWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNv
bnN0cmFpbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCShyZXZpc2lvbiAyMDQ1NTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNs
dWRlICJSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaCIKICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC02OCwxNiArNjksMTcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBnZXRFeGFjdChWZWN0b3I8U3RyaW5nPiYpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRJZGVhbChWZWN0b3I8U3RyaW5nPiYpIGNvbnN0OwogCi0gICAgU3RyaW5nIG5hbWUo
KSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUo
KSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQg
TWVkaWFDb25zdHJhaW50KGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICAgICAgOiBtX25hbWUobmFt
ZSkKKyAgICBleHBsaWNpdCBNZWRpYUNvbnN0cmFpbnQoTWVkaWFDb25zdHJhaW50VHlwZSB0eXBl
KQorICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgIHsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
U3RyaW5nIG1fbmFtZTsKKyAgICBNZWRpYUNvbnN0cmFpbnRUeXBlIG1fdHlwZTsKIH07CiAKIGNs
YXNzIE51bWVyaWNDb25zdHJhaW50IDogcHVibGljIE1lZGlhQ29uc3RyYWludCB7CkBAIC04Niw4
ICs4OCw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzTWFuZGF0b3J5KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9oYXNNaW4gfHwgbV9oYXNNYXggfHwgbV9oYXNFeGFjdDsgfQogCiBwcm90ZWN0
ZWQ6Ci0gICAgZXhwbGljaXQgTnVtZXJpY0NvbnN0cmFpbnQoY29uc3QgU3RyaW5nJiBuYW1lKQot
ICAgICAgICA6IE1lZGlhQ29uc3RyYWludChuYW1lKQorICAgIGV4cGxpY2l0IE51bWVyaWNDb25z
dHJhaW50KE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSkKKyAgICAgICAgOiBNZWRpYUNvbnN0cmFp
bnQodHlwZSkKICAgICB7CiAgICAgfQogCkBAIC0xMTAsNyArMTEyLDcgQEAgcHJpdmF0ZToKIAog
Y2xhc3MgSW50Q29uc3RyYWludCBmaW5hbCA6IHB1YmxpYyBOdW1lcmljQ29uc3RyYWludCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbnRDb25zdHJhaW50PiBjcmVhdGUoY29uc3QgU3RyaW5n
JiBuYW1lKTsKKyAgICBzdGF0aWMgUmVmPEludENvbnN0cmFpbnQ+IGNyZWF0ZShNZWRpYUNvbnN0
cmFpbnRUeXBlKTsKIAogICAgIHZvaWQgc2V0TWluKGludCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRN
YXgoaW50IHZhbHVlKTsKQEAgLTEyMyw4ICsxMjUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBnZXRJ
ZGVhbChpbnQmKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBJbnRDb25z
dHJhaW50KGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICAgICAgOiBXZWJDb3JlOjpOdW1lcmljQ29u
c3RyYWludChuYW1lKQorICAgIGV4cGxpY2l0IEludENvbnN0cmFpbnQoTWVkaWFDb25zdHJhaW50
VHlwZSB0eXBlKQorICAgICAgICA6IFdlYkNvcmU6Ok51bWVyaWNDb25zdHJhaW50KHR5cGUpCiAg
ICAgewogICAgIH0KIApAQCAtMTM2LDcgKzEzOCw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIERvdWJs
ZUNvbnN0cmFpbnQgZmluYWwgOiBwdWJsaWMgTnVtZXJpY0NvbnN0cmFpbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8RG91YmxlQ29uc3RyYWludD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFt
ZSk7CisgICAgc3RhdGljIFJlZjxEb3VibGVDb25zdHJhaW50PiBjcmVhdGUoTWVkaWFDb25zdHJh
aW50VHlwZSk7CiAKICAgICB2b2lkIHNldE1pbihkb3VibGUgdmFsdWUpOwogICAgIHZvaWQgc2V0
TWF4KGRvdWJsZSB2YWx1ZSk7CkBAIC0xNDksOCArMTUxLDggQEAgcHVibGljOgogICAgIGJvb2wg
Z2V0SWRlYWwoZG91YmxlJikgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQg
RG91YmxlQ29uc3RyYWludChjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAgICAgIDogV2ViQ29yZTo6
TnVtZXJpY0NvbnN0cmFpbnQobmFtZSkKKyAgICBleHBsaWNpdCBEb3VibGVDb25zdHJhaW50KE1l
ZGlhQ29uc3RyYWludFR5cGUgdHlwZSkKKyAgICAgICAgOiBXZWJDb3JlOjpOdW1lcmljQ29uc3Ry
YWludCh0eXBlKQogICAgIHsKICAgICB9CiAKQEAgLTE2Miw3ICsxNjQsNyBAQCBwcml2YXRlOgog
CiBjbGFzcyBCb29sZWFuQ29uc3RyYWludCBmaW5hbCA6IHB1YmxpYyBNZWRpYUNvbnN0cmFpbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Qm9vbGVhbkNvbnN0cmFpbnQ+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIG5hbWUpOworICAgIHN0YXRpYyBSZWY8Qm9vbGVhbkNvbnN0cmFpbnQ+IGNyZWF0
ZShNZWRpYUNvbnN0cmFpbnRUeXBlKTsKIAogICAgIHZvaWQgc2V0RXhhY3QoYm9vbCB2YWx1ZSk7
CiAgICAgdm9pZCBzZXRJZGVhbChib29sIHZhbHVlKTsKQEAgLTE3NCw4ICsxNzYsOCBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc01hbmRhdG9yeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faGFzRXhh
Y3Q7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBCb29sZWFuQ29uc3RyYWludChjb25zdCBT
dHJpbmcmIG5hbWUpCi0gICAgICAgIDogTWVkaWFDb25zdHJhaW50KG5hbWUpCisgICAgZXhwbGlj
aXQgQm9vbGVhbkNvbnN0cmFpbnQoTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlKQorICAgICAgICA6
IE1lZGlhQ29uc3RyYWludCh0eXBlKQogICAgIHsKICAgICB9CiAKQEAgLTE4Nyw3ICsxODksNyBA
QCBwcml2YXRlOgogCiBjbGFzcyBTdHJpbmdDb25zdHJhaW50IGZpbmFsIDogcHVibGljIE1lZGlh
Q29uc3RyYWludCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTdHJpbmdDb25zdHJhaW50PiBj
cmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICBzdGF0aWMgUmVmPFN0cmluZ0NvbnN0cmFp
bnQ+IGNyZWF0ZShNZWRpYUNvbnN0cmFpbnRUeXBlKTsKIAogICAgIHZvaWQgc2V0RXhhY3QoY29u
c3QgU3RyaW5nJik7CiAgICAgdm9pZCBhcHBlbmRFeGFjdChjb25zdCBTdHJpbmcmKTsKQEAgLTIw
MSw4ICsyMDMsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc01hbmRhdG9yeSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICFtX2V4YWN0LmlzRW1wdHkoKTsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0
IFN0cmluZ0NvbnN0cmFpbnQoY29uc3QgU3RyaW5nJiBuYW1lKQotICAgICAgICA6IE1lZGlhQ29u
c3RyYWludChuYW1lKQorICAgIGV4cGxpY2l0IFN0cmluZ0NvbnN0cmFpbnQoTWVkaWFDb25zdHJh
aW50VHlwZSB0eXBlKQorICAgICAgICA6IE1lZGlhQ29uc3RyYWludCh0eXBlKQogICAgIHsKICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRl
ZENvbnN0cmFpbnRzLmNwcAkocmV2aXNpb24gMjA0NTU3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENv
bnN0cmFpbnRzOjpuYW1lRm9yQ29uc3RyYWludChNZWRpYUNvbnN0cmFpbnRUeXBlIGNvbnN0cmFp
bnQpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50czo6bmFtZUZvckNvbnN0cmFpbnQoTWVkaWFDb25zdHJhaW50VHlwZSBjb25z
dHJhaW50KQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHVua25v
d25Db25zdHJhaW50TmFtZShlbXB0eVN0cmluZygpKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiB3aWR0aENvbnN0cmFpbnROYW1lKCJ3aWR0aCIpOwpAQCAtNzcsNyAr
NzcsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFJlYWx0aW1lTWVkaWFTb3VyY2VTCiAgICAgfQog
fQogCi1NZWRpYUNvbnN0cmFpbnRUeXBlIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25z
dHJhaW50czo6Y29uc3RyYWludEZyb21OYW1lKGNvbnN0IFN0cmluZyYgY29uc3RyYWludE5hbWUp
IGNvbnN0CitNZWRpYUNvbnN0cmFpbnRUeXBlIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50czo6Y29uc3RyYWludEZyb21OYW1lKGNvbnN0IFN0cmluZyYgY29uc3RyYWludE5h
bWUpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8QXRvbWljU3RyaW5nLCBN
ZWRpYUNvbnN0cmFpbnRUeXBlPj4gbmFtZVRvQ29uc3RyYWludE1hcDsKICAgICBIYXNoTWFwPEF0
b21pY1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZT4mIG5hbWVUb0NvbnN0cmFpbnRNYXBWYWx1
ZSA9IG5hbWVUb0NvbnN0cmFpbnRNYXAuZ2V0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaAkocmV2aXNpb24gMjA0NTU3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZVN1cHBvcnRlZENvbnN0cmFpbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDEwICs5MSwxMSBA
QCBwdWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0c0dyb3VwSWQoKSBjb25zdCB7IHJldHVybiBtX3N1
cHBvcnRzR3JvdXBJZDsgfQogICAgIHZvaWQgc2V0U3VwcG9ydHNHcm91cElkKGJvb2wgdmFsdWUp
IHsgbV9zdXBwb3J0c0dyb3VwSWQgPSB2YWx1ZTsgfQogCi0gICAgY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lRm9yQ29uc3RyYWludChNZWRpYUNvbnN0cmFpbnRUeXBlKSBjb25zdDsKLSAgICBNZWRp
YUNvbnN0cmFpbnRUeXBlIGNvbnN0cmFpbnRGcm9tTmFtZShjb25zdCBTdHJpbmcmIGNvbnN0cmFp
bnROYW1lKSBjb25zdDsKICAgICBib29sIHN1cHBvcnRzQ29uc3RyYWludChNZWRpYUNvbnN0cmFp
bnRUeXBlKSBjb25zdDsKIAorICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVGb3JD
b25zdHJhaW50KE1lZGlhQ29uc3RyYWludFR5cGUpOworICAgIHN0YXRpYyBNZWRpYUNvbnN0cmFp
bnRUeXBlIGNvbnN0cmFpbnRGcm9tTmFtZShjb25zdCBTdHJpbmcmKTsKKwogcHJpdmF0ZToKICAg
ICBib29sIG1fc3VwcG9ydHNXaWR0aCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N1cHBvcnRzSGVp
Z2h0IHsgZmFsc2UgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCShy
ZXZpc2lvbiAyMDQ1NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjY3LDcgKzI2
Nyw3IEBAIENhcHR1cmVTZXNzaW9uSW5mbyBBVkNhcHR1cmVEZXZpY2VNYW5hZ2UKIGJvb2wgQVZD
YXB0dXJlRGV2aWNlTWFuYWdlcjo6c2Vzc2lvblN1cHBvcnRzQ29uc3RyYWludChjb25zdCBDYXB0
dXJlU2Vzc2lvbkluZm8qIHNlc3Npb24sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50JiBjb25zdHJhaW50KQogewogICAgIGNvbnN0IFJlYWx0aW1l
TWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMgPSBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zdXBwb3J0ZWRDb25zdHJhaW50
cygpOwotICAgIE1lZGlhQ29uc3RyYWludFR5cGUgY29uc3RyYWludFR5cGUgPSBzdXBwb3J0ZWRD
b25zdHJhaW50cy5jb25zdHJhaW50RnJvbU5hbWUoY29uc3RyYWludC5uYW1lKCkpOworICAgIE1l
ZGlhQ29uc3RyYWludFR5cGUgY29uc3RyYWludFR5cGUgPSBjb25zdHJhaW50LnR5cGUoKTsKICAg
ICBpZiAoIXN1cHBvcnRlZENvbnN0cmFpbnRzLnN1cHBvcnRzQ29uc3RyYWludChjb25zdHJhaW50
VHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVy
ZVNvdXJjZS5tbQkocmV2aXNpb24gMjA0NTU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzUsNDQgKzE3NSw0MyBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjphcHBseUNvbnN0
cmFpCiAKICAgICAvLyBGSVhNRTogQmVsb3cgbmVlZHMgdG8gYmUgcmVmYWN0b3JlZCBmb3IgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDU3OS4KIAotICAgIGF1dG8m
IHN1cHBvcnRlZENvbnN0cmFpbnRzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuc3VwcG9ydGVkQ29uc3RyYWludHMoKTsKLSAgICBTdHJpbmcgd2lkdGhDb25zdHJhaW50
TmFtZSA9IHN1cHBvcnRlZENvbnN0cmFpbnRzLm5hbWVGb3JDb25zdHJhaW50KE1lZGlhQ29uc3Ry
YWludFR5cGU6OldpZHRoKTsKLSAgICBTdHJpbmcgaGVpZ2h0Q29uc3RyYWludE5hbWUgPSBzdXBw
b3J0ZWRDb25zdHJhaW50cy5uYW1lRm9yQ29uc3RyYWludChNZWRpYUNvbnN0cmFpbnRUeXBlOjpI
ZWlnaHQpOwotCiAgICAgYXV0byYgbWFuZGF0b3J5Q29uc3RyYWludHMgPSBjb25zdHJhaW50cy0+
bWFuZGF0b3J5Q29uc3RyYWludHMoKTsKLQotICAgIFJlZlB0cjxNZWRpYUNvbnN0cmFpbnQ+IHdp
ZHRoQ29uc3RyYWludCA9IG1hbmRhdG9yeUNvbnN0cmFpbnRzLmdldCh3aWR0aENvbnN0cmFpbnRO
YW1lKTsKLSAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50PiBoZWlnaHRDb25zdHJhaW50ID0gbWFu
ZGF0b3J5Q29uc3RyYWludHMuZ2V0KGhlaWdodENvbnN0cmFpbnROYW1lKTsKLQogICAgIGludCBp
bnRWYWx1ZTsKIAorICAgIFN0cmluZyB3aWR0aENvbnN0cmFpbnROYW1lID0gUmVhbHRpbWVNZWRp
YVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzOjpuYW1lRm9yQ29uc3RyYWludChNZWRpYUNvbnN0
cmFpbnRUeXBlOjpXaWR0aCk7CisgICAgYXV0byB3aWR0aENvbnN0cmFpbnQgPSBtYW5kYXRvcnlD
b25zdHJhaW50cy5nZXQod2lkdGhDb25zdHJhaW50TmFtZSk7CiAgICAgT3B0aW9uYWw8aW50PiB3
aWR0aDsKICAgICBpZiAod2lkdGhDb25zdHJhaW50ICYmIHdpZHRoQ29uc3RyYWludC0+Z2V0RXhh
Y3QoaW50VmFsdWUpKQogICAgICAgICB3aWR0aCA9IGludFZhbHVlOwogCisgICAgU3RyaW5nIGhl
aWdodENvbnN0cmFpbnROYW1lID0gUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFp
bnRzOjpuYW1lRm9yQ29uc3RyYWludChNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQpOworICAg
IGF1dG8gaGVpZ2h0Q29uc3RyYWludCA9IG1hbmRhdG9yeUNvbnN0cmFpbnRzLmdldChoZWlnaHRD
b25zdHJhaW50TmFtZSk7CiAgICAgT3B0aW9uYWw8aW50PiBoZWlnaHQ7CiAgICAgaWYgKGhlaWdo
dENvbnN0cmFpbnQgJiYgaGVpZ2h0Q29uc3RyYWludC0+Z2V0RXhhY3QoaW50VmFsdWUpKQogICAg
ICAgICBoZWlnaHQgPSBpbnRWYWx1ZTsKICAgICAKICAgICBpZiAod2lkdGggJiYgaGVpZ2h0KSB7
CiAgICAgICAgIE5TU3RyaW5nICpwcmVzZXQgPSBBVkNhcHR1cmVTZXNzaW9uSW5mbyhzZXNzaW9u
KCkpLmJlc3RTZXNzaW9uUHJlc2V0Rm9yVmlkZW9EaW1lbnNpb25zKHdpZHRoLnZhbHVlKCksIGhl
aWdodC52YWx1ZSgpKTsKLSAgICAgICAgaWYgKCFwcmVzZXQgfHwgIVtzZXNzaW9uKCkgY2FuU2V0
U2Vzc2lvblByZXNldDpwcmVzZXRdKQorICAgICAgICBpZiAoIXByZXNldCB8fCAhW3Nlc3Npb24o
KSBjYW5TZXRTZXNzaW9uUHJlc2V0OnByZXNldF0pIHsKKyAgICAgICAgICAgIExPRyhNZWRpYSwg
IkFWVmlkZW9DYXB0dXJlU291cmNlOjphcHBseUNvbnN0cmFpbnRzKCVwKSwgdW5hYmxlIGZpbmQg
b3Igc2V0IHByZXNldCBmb3Igd2lkdGg6ICVpLCBoZWlnaHQ6ICVpIiwgdGhpcywgd2lkdGgudmFs
dWUoKSwgaGVpZ2h0LnZhbHVlKCkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CiAKICAgICAgICAgW3Nlc3Npb24oKSBzZXRTZXNzaW9uUHJlc2V0OnByZXNldF07CiAgICAg
fQogCi0gICAgU3RyaW5nIGZyYW1lUmF0ZUNvbnN0cmFpbnROYW1lID0gc3VwcG9ydGVkQ29uc3Ry
YWludHMubmFtZUZvckNvbnN0cmFpbnQoTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRlKTsK
LSAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50PiBmcmFtZVJhdGVDb25zdHJhaW50ID0gbWFuZGF0
b3J5Q29uc3RyYWludHMuZ2V0KGZyYW1lUmF0ZUNvbnN0cmFpbnROYW1lKTsKLQotICAgIGRvdWJs
ZSBkb3VibGVWYWx1ZTsKKyAgICBTdHJpbmcgZnJhbWVSYXRlQ29uc3RyYWludE5hbWUgPSBSZWFs
dGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHM6Om5hbWVGb3JDb25zdHJhaW50KE1l
ZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSk7CisgICAgYXV0byBmcmFtZVJhdGVDb25zdHJh
aW50ID0gbWFuZGF0b3J5Q29uc3RyYWludHMuZ2V0KGZyYW1lUmF0ZUNvbnN0cmFpbnROYW1lKTsK
IAogICAgIE9wdGlvbmFsPGRvdWJsZT4gZnJhbWVSYXRlOworICAgIGRvdWJsZSBkb3VibGVWYWx1
ZTsKICAgICBpZiAoZnJhbWVSYXRlQ29uc3RyYWludCAmJiBmcmFtZVJhdGVDb25zdHJhaW50LT5n
ZXRFeGFjdChkb3VibGVWYWx1ZSkpCiAgICAgICAgIGZyYW1lUmF0ZSA9IGRvdWJsZVZhbHVlOwog
Ci0gICAgaWYgKGZyYW1lUmF0ZSAmJiAhc2V0RnJhbWVSYXRlQ29uc3RyYWludChmcmFtZVJhdGUu
dmFsdWUoKSwgMCkpCisgICAgaWYgKGZyYW1lUmF0ZSAmJiAhc2V0RnJhbWVSYXRlQ29uc3RyYWlu
dChmcmFtZVJhdGUudmFsdWUoKSwgMCkpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMoJXApLCB1bmFibGUgc2V0IGZyYW1lIHJhdGUg
dG8gJWYiLCB0aGlzLCBmcmFtZVJhdGUudmFsdWUoKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTWVkaWFDb25zdHJhaW50c01vY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFDb25zdHJhaW50c01vY2suY3BwCShyZXZpc2lvbiAy
MDQ1NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhQ29uc3RyYWludHNN
b2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDIzICsxMDEsMjMgQEAgc3RhdGljIGJvb2wg
aXNTdHJpbmdNZWRpYUNvbnN0cmFpbnRTYXRpcwogCiBzdGF0aWMgYm9vbCBpc1NhdGlzZmlhYmxl
KFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50JiBj
b25zdHJhaW50KQogewotICAgIGNvbnN0IFN0cmluZyYgbmFtZSA9IGNvbnN0cmFpbnQubmFtZSgp
OworICAgIE1lZGlhQ29uc3RyYWludFR5cGUgY29uc3RyYWludFR5cGUgPSBjb25zdHJhaW50LnR5
cGUoKTsKIAogICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvKSB7Ci0g
ICAgICAgIGlmIChuYW1lID09ICJzYW1wbGVSYXRlIiB8fCBuYW1lID09ICJzYW1wbGVTaXplIikK
KyAgICAgICAgaWYgKGNvbnN0cmFpbnRUeXBlID09IE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBs
ZVJhdGUgfHwgY29uc3RyYWludFR5cGUgPT0gTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlU2l6
ZSkKICAgICAgICAgICAgIHJldHVybiBpc0ludE1lZGlhQ29uc3RyYWludFNhdGlzZmlhYmxlKGNv
bnN0cmFpbnQpOwotICAgICAgICBpZiAobmFtZSA9PSAidm9sdW1lIikKKyAgICAgICAgaWYgKGNv
bnN0cmFpbnRUeXBlID09IE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZSkKICAgICAgICAgICAg
IHJldHVybiBpc0RvdWJsZU1lZGlhQ29uc3RyYWludFNhdGlzZmlhYmxlKGNvbnN0cmFpbnQpOwot
ICAgICAgICBpZiAobmFtZSA9PSAiZWNob0NhbmNlbGxhdGlvbiIpCisgICAgICAgIGlmIChjb25z
dHJhaW50VHlwZSA9PSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uKQogICAg
ICAgICAgICAgcmV0dXJuIGlzQm9vbGVhbk1lZGlhQ29uc3RyYWludFNhdGlzZmlhYmxlKGNvbnN0
cmFpbnQpOwotICAgICAgICBpZiAobmFtZSA9PSAiZGV2aWNlSWQiIHx8IG5hbWUgPT0gImdyb3Vw
SWQiKQorICAgICAgICBpZiAoY29uc3RyYWludFR5cGUgPT0gTWVkaWFDb25zdHJhaW50VHlwZTo6
RGV2aWNlSWQgfHwgY29uc3RyYWludFR5cGUgPT0gTWVkaWFDb25zdHJhaW50VHlwZTo6R3JvdXBJ
ZCkKICAgICAgICAgICAgIHJldHVybiBpc1N0cmluZ01lZGlhQ29uc3RyYWludFNhdGlzZmlhYmxl
KGNvbnN0cmFpbnQpOwogICAgIH0gZWxzZSBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNl
OjpWaWRlbykgewotICAgICAgICBpZiAobmFtZSA9PSAid2lkdGgiIHx8IG5hbWUgPT0gImhlaWdo
dCIpCisgICAgICAgIGlmIChjb25zdHJhaW50VHlwZSA9PSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpX
aWR0aCB8fCBjb25zdHJhaW50VHlwZSA9PSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQpCiAg
ICAgICAgICAgICByZXR1cm4gaXNJbnRNZWRpYUNvbnN0cmFpbnRTYXRpc2ZpYWJsZShjb25zdHJh
aW50KTsKLSAgICAgICAgaWYgKG5hbWUgPT0gImFzcGVjdFJhdGlvIiB8fCBuYW1lID09ICJmcmFt
ZVJhdGUiKQorICAgICAgICBpZiAoY29uc3RyYWludFR5cGUgPT0gTWVkaWFDb25zdHJhaW50VHlw
ZTo6QXNwZWN0UmF0aW8gfHwgY29uc3RyYWludFR5cGUgPT0gTWVkaWFDb25zdHJhaW50VHlwZTo6
RnJhbWVSYXRlKQogICAgICAgICAgICAgcmV0dXJuIGlzRG91YmxlTWVkaWFDb25zdHJhaW50U2F0
aXNmaWFibGUoY29uc3RyYWludCk7Ci0gICAgICAgIGlmIChuYW1lID09ICJmYWNpbmdNb2RlIiB8
fCBuYW1lID09ICJkZXZpY2VJZCIgfHwgbmFtZSA9PSAiZ3JvdXBJZCIpCisgICAgICAgIGlmIChj
b25zdHJhaW50VHlwZSA9PSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlIHx8IGNvbnN0
cmFpbnRUeXBlID09IE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlkIHx8IGNvbnN0cmFpbnRU
eXBlID09IE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQpCiAgICAgICAgICAgICByZXR1cm4g
aXNTdHJpbmdNZWRpYUNvbnN0cmFpbnRTYXRpc2ZpYWJsZShjb25zdHJhaW50KTsKICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>