<?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>233864</bug_id>
          
          <creation_ts>2021-12-05 21:28:03 -0800</creation_ts>
          <short_desc>webpushd/webpushtool debugging additions</short_desc>
          <delta_ts>2021-12-06 16:39:25 -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>WebKit Misc.</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1820520</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-05 21:28:03 -0800</bug_when>
    <thetext>webpushd/webpushtool debugging additions

Add more debug messages.
Add ability for webpushtool to reconnect when connection is lost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820521</commentid>
    <comment_count>1</comment_count>
      <attachid>445994</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-05 21:49:38 -0800</bug_when>
    <thetext>Created attachment 445994
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820724</commentid>
    <comment_count>2</comment_count>
      <attachid>445994</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-06 12:42:43 -0800</bug_when>
    <thetext>Comment on attachment 445994
Patch v1

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

&gt; Source/WebKit/ChangeLog:14
&gt; +        * WebKit.xcodeproj/xcshareddata/xcschemes/webpushd.xcscheme: Added.

why?

&gt; Source/WebKit/webpushd/PushClientConnection.mm:115
&gt; +        messageIdentifier = makeString (&quot;[(0x&quot;, hex((uint64_t)(m_xpcConnection.get()), WTF::HexConversionMode::Lowercase), &quot;)] &quot;);

reinterpret_cast

&gt; Source/WebKit/webpushd/PushClientConnection.mm:117
&gt; +        messageIdentifier = makeString (&quot;[&quot;, signingIdentifer, &quot; (0x&quot;, hex((uint64_t)(m_xpcConnection.get()), WTF::HexConversionMode::Lowercase), &quot;)] &quot;);

ditto

&gt; Source/WebKit/webpushd/WebPushDaemon.mm:184
&gt; +    broadcastDebugMessage((JSC::MessageLevel)0, makeString(&quot;New connection: 0x&quot;, hex((uint64_t)connection, WTF::HexConversionMode::Lowercase)));

JSC::MessageLevel::Log

&gt; Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h:39
&gt; +enum class PreferTestService {

: bool

&gt; Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h:44
&gt; +enum class Reconnect {

: bool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820751</commentid>
    <comment_count>3</comment_count>
      <attachid>446079</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-06 13:26:54 -0800</bug_when>
    <thetext>Created attachment 446079
PFL v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820755</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-06 13:33:54 -0800</bug_when>
    <thetext>The style check failure is a bogus bug because of how the string I&apos;m constructing looks. Bummer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820792</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-06 15:50:54 -0800</bug_when>
    <thetext>ChangeLog entry in Tools/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820801</commentid>
    <comment_count>6</comment_count>
      <attachid>446090</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-06 16:09:44 -0800</bug_when>
    <thetext>Created attachment 446090
PFL v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820812</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-06 16:38:17 -0800</bug_when>
    <thetext>Committed r286579 (?): &lt;https://commits.webkit.org/r286579&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446090.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820813</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-06 16:39:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/86130115&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445994</attachid>
            <date>2021-12-05 21:49:38 -0800</date>
            <delta_ts>2021-12-06 13:26:54 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>19104</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggOGVkYjA2NzQyY2YxLi5kODU0MmZlNjA5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDQgQEAKKzIwMjEtMTItMDUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIHdlYnB1c2hkL3dlYnB1c2h0b29sIGRlYnVnZ2luZyBhZGRpdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzg2NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgQVBJ
IHRlc3RzLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRjaDoKKyAgICAgICAgLSBUZWFjaGVz
IHdlYnB1c2h0b29sIHRoZSBhYmlsaXR5IHRvIHdhaXQgZm9yIGEgcmVjb25uZWN0IGFmdGVyIGxv
c2luZyBpdHMgY29ubmVjdGlvbgorICAgICAgICAtIFN0YXJ0cyBhY3R1YWxseSBicm9hZGNhc3Rp
bmcgbWVhbmluZ2Z1bCBkZWJ1ZyBtZXNzYWdlcyBmcm9tIHdlYnB1c2hkCisKKyAgICAgICAgKiBX
ZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvd2VicHVzaGQueGNzY2hlbWU6
IEFkZGVkLgorCisgICAgICAgICogd2VicHVzaGQvQXBwQnVuZGxlUmVxdWVzdC5tbToKKyAgICAg
ICAgKFdlYlB1c2hEOjpBcHBCdW5kbGVSZXF1ZXN0OjpzdGFydCk6CisgICAgICAgIChXZWJQdXNo
RDo6QXBwQnVuZGxlUGVybWlzc2lvbnNSZXF1ZXN0OjpkaWRDaGVja0ZvckV4aXN0aW5nQnVuZGxl
KToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBCdW5kbGVQZXJtaXNzaW9uc1JlcXVlc3Q6OmRpZENy
ZWF0ZUFwcEJ1bmRsZSk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwQnVuZGxlRGVsZXRpb25SZXF1
ZXN0OjpkaWREZWxldGVFeGlzdGluZ0J1bmRsZVdpdGhFcnJvcik6CisKKyAgICAgICAgKiB3ZWJw
dXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdlYnB1c2hkL1B1c2hDbGll
bnRDb25uZWN0aW9uLm1tOgorICAgICAgICAoV2ViUHVzaEQ6OkNsaWVudENvbm5lY3Rpb246OnNl
dERlYnVnTW9kZUlzRW5hYmxlZCk6CisgICAgICAgIChXZWJQdXNoRDo6Q2xpZW50Q29ubmVjdGlv
bjo6YnJvYWRjYXN0RGVidWdNZXNzYWdlKToKKyAgICAgICAgKFdlYlB1c2hEOjpDbGllbnRDb25u
ZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKToKKworICAgICAgICAqIHdlYnB1c2hkL1dlYlB1c2hE
YWVtb24ubW06CisgICAgICAgIChXZWJQdXNoRDo6RGFlbW9uOjpjb25uZWN0aW9uQWRkZWQpOgor
CisgICAgICAgICogd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLmg6
CisgICAgICAgICogd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1t
OgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJQdXNoVG9v
bDo6Q29ubmVjdGlvbjo6Y29ubmVjdFRvU2VydmljZSk6CisgICAgICAgIChXZWJQdXNoVG9vbDo6
Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRyb3BwZWQpOgorCisgICAgICAgICogd2VicHVzaGQvd2Vi
cHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tOgorICAgICAgICAocHJpbnRVc2FnZUFuZFRlcm1p
bmF0ZSk6CisgICAgICAgIChtYWluKToKKwogMjAyMS0xMi0wNCAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGNvbW1hbmQgbGluZSBgd2VicHVzaHRvb2xg
IGZvciBkYWVtb24gZGV2ZWxvcG1lbnQgYW5kIGRlYnVnZ2luZy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL3dlYnB1c2hk
Lnhjc2NoZW1lIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94
Y3NjaGVtZXMvd2VicHVzaGQueGNzY2hlbWUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi5mN2U3ZjU3YjRiZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy93ZWJwdXNoZC54Y3NjaGVt
ZQpAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/
PgorPFNjaGVtZQorICAgTGFzdFVwZ3JhZGVWZXJzaW9uID0gIjEzMDAiCisgICB2ZXJzaW9uID0g
IjEuNyI+CisgICA8QnVpbGRBY3Rpb24KKyAgICAgIHBhcmFsbGVsaXplQnVpbGRhYmxlcyA9ICJZ
RVMiCisgICAgICBidWlsZEltcGxpY2l0RGVwZW5kZW5jaWVzID0gIllFUyI+CisgICAgICA8QnVp
bGRBY3Rpb25FbnRyaWVzPgorICAgICAgICAgPEJ1aWxkQWN0aW9uRW50cnkKKyAgICAgICAgICAg
IGJ1aWxkRm9yVGVzdGluZyA9ICJZRVMiCisgICAgICAgICAgICBidWlsZEZvclJ1bm5pbmcgPSAi
WUVTIgorICAgICAgICAgICAgYnVpbGRGb3JQcm9maWxpbmcgPSAiWUVTIgorICAgICAgICAgICAg
YnVpbGRGb3JBcmNoaXZpbmcgPSAiWUVTIgorICAgICAgICAgICAgYnVpbGRGb3JBbmFseXppbmcg
PSAiWUVTIj4KKyAgICAgICAgICAgIDxCdWlsZGFibGVSZWZlcmVuY2UKKyAgICAgICAgICAgICAg
IEJ1aWxkYWJsZUlkZW50aWZpZXIgPSAicHJpbWFyeSIKKyAgICAgICAgICAgICAgIEJsdWVwcmlu
dElkZW50aWZpZXIgPSAiNUMxNTc5Q0MyNzE2NUIyRjAwRUQ1MjgwIgorICAgICAgICAgICAgICAg
QnVpbGRhYmxlTmFtZSA9ICJ3ZWJwdXNoZCIKKyAgICAgICAgICAgICAgIEJsdWVwcmludE5hbWUg
PSAid2VicHVzaGQiCisgICAgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRh
aW5lcjpXZWJLaXQueGNvZGVwcm9qIj4KKyAgICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNl
PgorICAgICAgICAgPC9CdWlsZEFjdGlvbkVudHJ5PgorICAgICAgPC9CdWlsZEFjdGlvbkVudHJp
ZXM+CisgICA8L0J1aWxkQWN0aW9uPgorICAgPFRlc3RBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmln
dXJhdGlvbiA9ICJEZWJ1ZyIKKyAgICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhj
b2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgorICAgICAgc2VsZWN0ZWRMYXVu
Y2hlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxMREIi
CisgICAgICBzaG91bGRVc2VMYXVuY2hTY2hlbWVBcmdzRW52ID0gIllFUyI+CisgICAgICA8VGVz
dGFibGVzPgorICAgICAgPC9UZXN0YWJsZXM+CisgICA8L1Rlc3RBY3Rpb24+CisgICA8TGF1bmNo
QWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCisgICAgICBzZWxlY3Rl
ZERlYnVnZ2VySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdnZXIu
TExEQiIKKyAgICAgIHNlbGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2Vy
Rm91bmRhdGlvbi5MYXVuY2hlci5MTERCIgorICAgICAgbGF1bmNoU3R5bGUgPSAiMCIKKyAgICAg
IHVzZUN1c3RvbVdvcmtpbmdEaXJlY3RvcnkgPSAiTk8iCisgICAgICBpZ25vcmVzUGVyc2lzdGVu
dFN0YXRlT25MYXVuY2ggPSAiTk8iCisgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZ
RVMiCisgICAgICBkZWJ1Z1NlcnZpY2VFeHRlbnNpb24gPSAiaW50ZXJuYWwiCisgICAgICBhbGxv
d0xvY2F0aW9uU2ltdWxhdGlvbiA9ICJZRVMiPgorICAgICAgPEJ1aWxkYWJsZVByb2R1Y3RSdW5u
YWJsZQorICAgICAgICAgcnVubmFibGVEZWJ1Z2dpbmdNb2RlID0gIjAiPgorICAgICAgICAgPEJ1
aWxkYWJsZVJlZmVyZW5jZQorICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmlt
YXJ5IgorICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICI1QzE1NzlDQzI3MTY1QjJG
MDBFRDUyODAiCisgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0gIndlYnB1c2hkIgorICAgICAg
ICAgICAgQmx1ZXByaW50TmFtZSA9ICJ3ZWJwdXNoZCIKKyAgICAgICAgICAgIFJlZmVyZW5jZWRD
b250YWluZXIgPSAiY29udGFpbmVyOldlYktpdC54Y29kZXByb2oiPgorICAgICAgICAgPC9CdWls
ZGFibGVSZWZlcmVuY2U+CisgICAgICA8L0J1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZT4KKyAgIDwv
TGF1bmNoQWN0aW9uPgorICAgPFByb2ZpbGVBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlv
biA9ICJSZWxlYXNlIgorICAgICAgc2hvdWxkVXNlTGF1bmNoU2NoZW1lQXJnc0VudiA9ICJZRVMi
CisgICAgICBzYXZlZFRvb2xJZGVudGlmaWVyID0gIiIKKyAgICAgIHVzZUN1c3RvbVdvcmtpbmdE
aXJlY3RvcnkgPSAiTk8iCisgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZRVMiPgor
ICAgICAgPEJ1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZQorICAgICAgICAgcnVubmFibGVEZWJ1Z2dp
bmdNb2RlID0gIjAiPgorICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQorICAgICAgICAgICAg
QnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgorICAgICAgICAgICAgQmx1ZXByaW50SWRl
bnRpZmllciA9ICI1QzE1NzlDQzI3MTY1QjJGMDBFRDUyODAiCisgICAgICAgICAgICBCdWlsZGFi
bGVOYW1lID0gIndlYnB1c2hkIgorICAgICAgICAgICAgQmx1ZXByaW50TmFtZSA9ICJ3ZWJwdXNo
ZCIKKyAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAiY29udGFpbmVyOldlYktpdC54
Y29kZXByb2oiPgorICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+CisgICAgICA8L0J1aWxk
YWJsZVByb2R1Y3RSdW5uYWJsZT4KKyAgIDwvUHJvZmlsZUFjdGlvbj4KKyAgIDxBbmFseXplQWN0
aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciPgorICAgPC9BbmFseXplQWN0
aW9uPgorICAgPEFyY2hpdmVBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxl
YXNlIgorICAgICAgcmV2ZWFsQXJjaGl2ZUluT3JnYW5pemVyID0gIllFUyI+CisgICA8L0FyY2hp
dmVBY3Rpb24+CisgICA8SW5zdGFsbEFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0g
IlJlbGVhc2UiPgorICAgPC9JbnN0YWxsQWN0aW9uPgorPC9TY2hlbWU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3QubW0gYi9Tb3VyY2UvV2ViS2l0
L3dlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3QubW0KaW5kZXggZDA0N2UxZDYyYTczLi41NzNhZDRk
NGUwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwQnVuZGxlUmVxdWVz
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3QubW0KQEAg
LTQ3LDYgKzQ3LDggQEAgdm9pZCBBcHBCdW5kbGVSZXF1ZXN0OjpzdGFydCgpCiB7CiAgICAgQVNT
RVJUKG1fY29ubmVjdGlvbik7CiAKKyAgICBtX2Nvbm5lY3Rpb24tPmJyb2FkY2FzdERlYnVnTWVz
c2FnZShtYWtlU3RyaW5nKCJTdGFydGluZyAiLCB0cmFuc2FjdGlvbkRlc2NyaXB0aW9uKCksICIg
cmVxdWVzdCBmb3Igb3JpZ2luICIsIG1fb3JpZ2luU3RyaW5nKSk7CisKICAgICBtX3RyYW5zYWN0
aW9uID0gYWRvcHRPU09iamVjdChvc190cmFuc2FjdGlvbl9jcmVhdGUodHJhbnNhY3Rpb25EZXNj
cmlwdGlvbigpKSk7CiAKICAgICBpZiAobV9jb25uZWN0aW9uLT51c2VNb2NrQnVuZGxlc0ZvclRl
c3RpbmcoKSkKQEAgLTkxLDYgKzkzLDggQEAgdm9pZCBBcHBCdW5kbGVQZXJtaXNzaW9uc1JlcXVl
c3Q6OmRpZENoZWNrRm9yRXhpc3RpbmdCdW5kbGUoUHVzaEFwcEJ1bmRsZSYgYnVuZGwKIHsKICAg
ICBBU1NFUlRfVU5VU0VEKGJ1bmRsZSwgJmJ1bmRsZSA9PSBtX2FwcEJ1bmRsZS5nZXQoKSk7CiAK
KyAgICBtX2Nvbm5lY3Rpb24tPmJyb2FkY2FzdERlYnVnTWVzc2FnZShtYWtlU3RyaW5nKCJPcmln
aW4gIiwgbV9vcmlnaW5TdHJpbmcsICIgYXBwIGJ1bmRsZSByZXF1ZXN0OiBkaWRDaGVja0ZvckV4
aXN0aW5nQnVuZGxlIC0gIiwgZXhpc3RzID09IFB1c2hBcHBCdW5kbGVFeGlzdHM6OlllcyA/ICJF
eGlzdHMiIDogIkRvZXMgbm90IGV4aXN0IikpOworCiAgICAgaWYgKGV4aXN0cyA9PSBQdXNoQXBw
QnVuZGxlRXhpc3RzOjpZZXMpCiAgICAgICAgIHJldHVybiBjYWxsQ29tcGxldGlvbkhhbmRsZXJB
bmRDbGVhbnVwKHRydWUpOwogCkBAIC0xMDEsNiArMTA1LDggQEAgdm9pZCBBcHBCdW5kbGVQZXJt
aXNzaW9uc1JlcXVlc3Q6OmRpZENyZWF0ZUFwcEJ1bmRsZShQdXNoQXBwQnVuZGxlJiBidW5kbGUs
IFB1c2gKIHsKICAgICBBU1NFUlRfVU5VU0VEKGJ1bmRsZSwgJmJ1bmRsZSA9PSBtX2FwcEJ1bmRs
ZS5nZXQoKSk7CiAKKyAgICBtX2Nvbm5lY3Rpb24tPmJyb2FkY2FzdERlYnVnTWVzc2FnZShtYWtl
U3RyaW5nKCJPcmlnaW4gIiwgbV9vcmlnaW5TdHJpbmcsICIgYXBwIGJ1bmRsZSByZXF1ZXN0OiBk
aWRDcmVhdGVBcHBCdW5kbGUgLSAiLCByZXN1bHQgPT0gUHVzaEFwcEJ1bmRsZUNyZWF0aW9uUmVz
dWx0OjpTdWNjZXNzID8gIkNyZWF0ZWQiIDogIkZhaWxlZCB0byBjcmVhdGUiKSk7CisKICAgICBp
ZiAocmVzdWx0ID09IFB1c2hBcHBCdW5kbGVDcmVhdGlvblJlc3VsdDo6RmFpbHVyZSkKICAgICAg
ICAgcmV0dXJuIGNhbGxDb21wbGV0aW9uSGFuZGxlckFuZENsZWFudXAoZmFsc2UpOwogCkBAIC0x
MTgsOCArMTI0LDEwIEBAIHZvaWQgQXBwQnVuZGxlRGVsZXRpb25SZXF1ZXN0OjpkaWREZWxldGVF
eGlzdGluZ0J1bmRsZVdpdGhFcnJvcihQdXNoQXBwQnVuZGxlJiBiCiB7CiAgICAgQVNTRVJUX1VO
VVNFRChidW5kbGUsICZidW5kbGUgPT0gbV9hcHBCdW5kbGUuZ2V0KCkpOwogCisgICAgbV9jb25u
ZWN0aW9uLT5icm9hZGNhc3REZWJ1Z01lc3NhZ2UobWFrZVN0cmluZygiT3JpZ2luICIsIG1fb3Jp
Z2luU3RyaW5nLCAiIGFwcCBidW5kbGUgcmVxdWVzdDogZGlkRGVsZXRlRXhpc3RpbmdCdW5kbGVX
aXRoRXJyb3IiKSk7CisKICAgICBpZiAoZXJyb3IpCi0gICAgICAgIERhZW1vbjo6c2luZ2xldG9u
KCkuYnJvYWRjYXN0RGVidWdNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygi
RmFpbGVkIHRvIGRlbGV0ZSBhcHAgYnVuZGxlOiAiLCBTdHJpbmcoW2Vycm9yIGRlc2NyaXB0aW9u
XSkpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5icm9hZGNhc3REZWJ1Z01lc3NhZ2UobWFrZVN0
cmluZygiRmFpbGVkIHRvIGRlbGV0ZSBhcHAgYnVuZGxlOiAiLCBTdHJpbmcoW2Vycm9yIGRlc2Ny
aXB0aW9uXSkpKTsKIAogICAgIGNhbGxDb21wbGV0aW9uSGFuZGxlckFuZENsZWFudXAoZXJyb3Ig
PyBTdHJpbmcoW2Vycm9yIGRlc2NyaXB0aW9uXSkgOiAiIik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggMTZkMTJiMzQzMzBhLi43NjA1
M2VmYzJkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaENsaWVudENv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0
aW9uLmgKQEAgLTY3LDYgKzY3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBjb25uZWN0aW9uQ2xv
c2VkKCk7CiAKKyAgICB2b2lkIGJyb2FkY2FzdERlYnVnTWVzc2FnZShjb25zdCBTdHJpbmcmKTsK
KwogcHJpdmF0ZToKICAgICBDbGllbnRDb25uZWN0aW9uKHhwY19jb25uZWN0aW9uX3QpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLm1t
IGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5tbQppbmRleCBk
YzJmYzU3OTYyYTkuLmMyNjU3ODljZDdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93ZWJw
dXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hk
L1B1c2hDbGllbnRDb25uZWN0aW9uLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJXZWJQ
dXNoRGFlbW9uLmgiCiAjaW1wb3J0ICJXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRp
b24uaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgorI2ltcG9ydCA8
d3RmL0hleE51bWJlci5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogI2ltcG9ydCA8d3RmL2Nv
Y29hL0VudGl0bGVtZW50cy5oPgogCkBAIC0xMDMsMTUgKzEwNCwxOSBAQCB2b2lkIENsaWVudENv
bm5lY3Rpb246OnNldERlYnVnTW9kZUlzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1fZGVidWdNb2RlRW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgYnJvYWRjYXN0
RGVidWdNZXNzYWdlKG1ha2VTdHJpbmcoIlR1cm5lZCBEZWJ1ZyBNb2RlICIsIG1fZGVidWdNb2Rl
RW5hYmxlZCA/ICJvbiIgOiAib2ZmIikpOworfQogCi0gICAgYXV0byBpZGVudGlmaWVyID0gaG9z
dEFwcENvZGVTaWduaW5nSWRlbnRpZmllcigpOwotICAgIFN0cmluZyBtZXNzYWdlOwotICAgIGlm
ICghaWRlbnRpZmllci5pc0VtcHR5KCkpCi0gICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJb
d2VicHVzaGQgLSAiLCBpZGVudGlmaWVyLCAiXSBUdXJuZWQgRGVidWcgTW9kZSAiLCBtX2RlYnVn
TW9kZUVuYWJsZWQgPyAib24iIDogIm9mZiIpOwordm9pZCBDbGllbnRDb25uZWN0aW9uOjpicm9h
ZGNhc3REZWJ1Z01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIFN0cmluZyBt
ZXNzYWdlSWRlbnRpZmllcjsKKyAgICBhdXRvIHNpZ25pbmdJZGVudGlmZXIgPSBob3N0QXBwQ29k
ZVNpZ25pbmdJZGVudGlmaWVyKCk7CisgICAgaWYgKHNpZ25pbmdJZGVudGlmZXIuaXNFbXB0eSgp
KQorICAgICAgICBtZXNzYWdlSWRlbnRpZmllciA9IG1ha2VTdHJpbmcgKCJbKDB4IiwgaGV4KCh1
aW50NjRfdCkobV94cGNDb25uZWN0aW9uLmdldCgpKSwgV1RGOjpIZXhDb252ZXJzaW9uTW9kZTo6
TG93ZXJjYXNlKSwgIildICIpOwogICAgIGVsc2UKLSAgICAgICAgbWVzc2FnZSA9IG1ha2VTdHJp
bmcoIlt3ZWJwdXNoZF0gVHVybmVkIERlYnVnIE1vZGUgIiwgbV9kZWJ1Z01vZGVFbmFibGVkID8g
Im9uIiA6ICJvZmYiKTsKKyAgICAgICAgbWVzc2FnZUlkZW50aWZpZXIgPSBtYWtlU3RyaW5nICgi
WyIsIHNpZ25pbmdJZGVudGlmZXIsICIgKDB4IiwgaGV4KCh1aW50NjRfdCkobV94cGNDb25uZWN0
aW9uLmdldCgpKSwgV1RGOjpIZXhDb252ZXJzaW9uTW9kZTo6TG93ZXJjYXNlKSwgIildICIpOwog
Ci0gICAgRGFlbW9uOjpzaW5nbGV0b24oKS5icm9hZGNhc3REZWJ1Z01lc3NhZ2UoTWVzc2FnZUxl
dmVsOjpJbmZvLCBtZXNzYWdlKTsKKyAgICBEYWVtb246OnNpbmdsZXRvbigpLmJyb2FkY2FzdERl
YnVnTWVzc2FnZShKU0M6Ok1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZyhtZXNzYWdlSWRl
bnRpZmllciwgbWVzc2FnZSkpOwogfQogCiB2b2lkIENsaWVudENvbm5lY3Rpb246OmVucXVldWVB
cHBCdW5kbGVSZXF1ZXN0KHN0ZDo6dW5pcXVlX3B0cjxBcHBCdW5kbGVSZXF1ZXN0PiYmIHJlcXVl
c3QpCkBAIC0xNDUsNiArMTUwLDggQEAgdm9pZCBDbGllbnRDb25uZWN0aW9uOjpkaWRDb21wbGV0
ZUFwcEJ1bmRsZVJlcXVlc3QoQXBwQnVuZGxlUmVxdWVzdCYgcmVxdWVzdCkKIAogdm9pZCBDbGll
bnRDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKCkKIHsKKyAgICBicm9hZGNhc3REZWJ1Z01l
c3NhZ2UoIkNvbm5lY3Rpb24gY2xvc2VkIik7CisKICAgICBSRUxFQVNFX0FTU0VSVChtX3hwY0Nv
bm5lY3Rpb24pOwogICAgIG1feHBjQ29ubmVjdGlvbiA9IG51bGxwdHI7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbSBiL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQppbmRleCAzYjc4ZjI5MGMyN2UuLmVhZTkzNjcxZjc4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQpAQCAtMzQsNiArMzQs
NyBAQAogI2ltcG9ydCAiTW9ja0FwcEJ1bmRsZVJlZ2lzdHJ5LmgiCiAKICNpbXBvcnQgPHd0Zi9D
b21wbGV0aW9uSGFuZGxlci5oPgorI2ltcG9ydCA8d3RmL0hleE51bWJlci5oPgogI2ltcG9ydCA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvU3Bhbi5oPgogCkBAIC0xODAsNiAr
MTgxLDggQEAgdm9pZCBEYWVtb246OmNvbm5lY3Rpb25FdmVudEhhbmRsZXIoeHBjX29iamVjdF90
IHJlcXVlc3QpCiAKIHZvaWQgRGFlbW9uOjpjb25uZWN0aW9uQWRkZWQoeHBjX2Nvbm5lY3Rpb25f
dCBjb25uZWN0aW9uKQogeworICAgIGJyb2FkY2FzdERlYnVnTWVzc2FnZSgoSlNDOjpNZXNzYWdl
TGV2ZWwpMCwgbWFrZVN0cmluZygiTmV3IGNvbm5lY3Rpb246IDB4IiwgaGV4KCh1aW50NjRfdClj
b25uZWN0aW9uLCBXVEY6OkhleENvbnZlcnNpb25Nb2RlOjpMb3dlcmNhc2UpKSk7CisKICAgICBS
RUxFQVNFX0FTU0VSVCghbV9jb25uZWN0aW9uTWFwLmNvbnRhaW5zKGNvbm5lY3Rpb24pKTsKICAg
ICBtX2Nvbm5lY3Rpb25NYXAuc2V0KGNvbm5lY3Rpb24sIENsaWVudENvbm5lY3Rpb246OmNyZWF0
ZShjb25uZWN0aW9uKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dl
YnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC93ZWJwdXNo
ZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24uaAppbmRleCA1NGQxNTJjMDRkMDku
LmI0MDBlNWZiODJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNo
dG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hk
L3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oCkBAIC0zNiwxMSArMzYsMjEgQEAg
ZW51bSBjbGFzcyBBY3Rpb24gewogICAgIFN0cmVhbURlYnVnTWVzc2FnZXMsCiB9OwogCitlbnVt
IGNsYXNzIFByZWZlclRlc3RTZXJ2aWNlIHsKKyAgICBZZXMsCisgICAgTm8sCit9OworCitlbnVt
IGNsYXNzIFJlY29ubmVjdCB7CisgICAgWWVzLAorICAgIE5vLAorfTsKKwogY2xhc3MgQ29ubmVj
dGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDb25uZWN0aW9uPiB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDb25u
ZWN0aW9uPiBjcmVhdGUoQWN0aW9uLCBib29sIHByZWZlclRlc3RTZXJ2aWNlKTsKLSAgICBDb25u
ZWN0aW9uKEFjdGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSk7CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxDb25uZWN0aW9uPiBjcmVhdGUoQWN0aW9uLCBQcmVmZXJUZXN0U2VydmljZSwg
UmVjb25uZWN0KTsKKyAgICBDb25uZWN0aW9uKEFjdGlvbiwgUHJlZmVyVGVzdFNlcnZpY2UsIFJl
Y29ubmVjdCk7CiAKICAgICB2b2lkIGNvbm5lY3RUb1NlcnZpY2UoKTsKIApAQCAtNTQsNiArNjQs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VuZEF1ZGl0VG9rZW4oKTsKICAgICAKICAgICBBY3Rp
b24gbV9hY3Rpb247CisgICAgYm9vbCBtX3JlY29ubmVjdCB7IGZhbHNlIH07CiAgICAgUmV0YWlu
UHRyPHhwY19jb25uZWN0aW9uX3Q+IG1fY29ubmVjdGlvbjsKICAgICBjb25zdCBjaGFyKiBtX3Nl
cnZpY2VOYW1lOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVz
aHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93
ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24ubW0KaW5kZXggNzkwNDQ2MGEyZmEzLi5i
ZGU0ZTU0ZTExZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRv
b2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQv
d2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tCkBAIC0yOSwxMyArMjksMTQgQEAK
ICNpbXBvcnQgPG1hY2gvbWFjaF9pbml0Lmg+CiAjaW1wb3J0IDxtYWNoL3Rhc2suaD4KICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvU2VydmVyc1NQSS5oPgorI2ltcG9ydCA8d3RmL01haW5UaHJlYWQu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYlB1c2hUb29sIHsK
IAotc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+IENvbm5lY3Rpb246OmNyZWF0ZShBY3Rpb24g
YWN0aW9uLCBib29sIHByZWZlclRlc3RTZXJ2aWNlKQorc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rp
b24+IENvbm5lY3Rpb246OmNyZWF0ZShBY3Rpb24gYWN0aW9uLCBQcmVmZXJUZXN0U2VydmljZSBw
cmVmZXJUZXN0U2VydmljZSwgUmVjb25uZWN0IHJlY29ubmVjdCkKIHsKLSAgICByZXR1cm4gbWFr
ZVVuaXF1ZTxDb25uZWN0aW9uPihhY3Rpb24sIHByZWZlclRlc3RTZXJ2aWNlKTsKKyAgICByZXR1
cm4gbWFrZVVuaXF1ZTxDb25uZWN0aW9uPihhY3Rpb24sIHByZWZlclRlc3RTZXJ2aWNlLCByZWNv
bm5lY3QpOwogfQogCiBzdGF0aWMgbWFjaF9wb3J0X3QgbWF5YmVDb25uZWN0VG9TZXJ2aWNlKGNv
bnN0IGNoYXIqIHNlcnZpY2VOYW1lKQpAQCAtNTIsMTMgKzUzLDIwIEBAIHN0YXRpYyBtYWNoX3Bv
cnRfdCBtYXliZUNvbm5lY3RUb1NlcnZpY2UoY29uc3QgY2hhciogc2VydmljZU5hbWUpCiAgICAg
cmV0dXJuIE1BQ0hfUE9SVF9OVUxMOwogfQogCi1Db25uZWN0aW9uOjpDb25uZWN0aW9uKEFjdGlv
biBhY3Rpb24sIGJvb2wgcHJlZmVyVGVzdFNlcnZpY2UpCitDb25uZWN0aW9uOjpDb25uZWN0aW9u
KEFjdGlvbiBhY3Rpb24sIFByZWZlclRlc3RTZXJ2aWNlIHByZWZlclRlc3RTZXJ2aWNlLCBSZWNv
bm5lY3QgcmVjb25uZWN0KQogICAgIDogbV9hY3Rpb24oYWN0aW9uKQorICAgICwgbV9yZWNvbm5l
Y3QocmVjb25uZWN0ID09IFJlY29ubmVjdDo6WWVzKQogewotICAgIGlmIChwcmVmZXJUZXN0U2Vy
dmljZSkKKyAgICBpZiAocHJlZmVyVGVzdFNlcnZpY2UgPT0gUHJlZmVyVGVzdFNlcnZpY2U6Olll
cykKICAgICAgICAgbV9zZXJ2aWNlTmFtZSA9ICJvcmcud2Via2l0LndlYnB1c2h0ZXN0ZGFlbW9u
LnNlcnZpY2UiOwogICAgIGVsc2UKICAgICAgICAgbV9zZXJ2aWNlTmFtZSA9ICJjb20uYXBwbGUu
d2Via2l0LndlYnB1c2hkLnNlcnZpY2UiOworfQorCit2b2lkIENvbm5lY3Rpb246OmNvbm5lY3RU
b1NlcnZpY2UoKQoreworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKIAog
ICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0TlMoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX21hY2hfc2Vy
dmljZShtX3NlcnZpY2VOYW1lLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCAwKSk7CiAKQEAg
LTc0LDYgKzgyLDggQEAgQ29ubmVjdGlvbjo6Q29ubmVjdGlvbihBY3Rpb24gYWN0aW9uLCBib29s
IHByZWZlclRlc3RTZXJ2aWNlKQogCiAgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09O
TkVDVElPTl9JTlRFUlJVUFRFRCkgewogICAgICAgICAgICAgcHJpbnRmKCJDb25uZWN0aW9uIGNs
b3NlZFxuIik7CisgICAgICAgICAgICBpZiAobV9yZWNvbm5lY3QpCisgICAgICAgICAgICAgICAg
cHJpbnRmKCI9PT09PT09PT09PT09PT1cblJlY29ubmVjdGluZy4uLlxuIik7CiAgICAgICAgICAg
ICBjb25uZWN0aW9uRHJvcHBlZCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBA
IC04NSwxMiArOTUsNiBAQCBDb25uZWN0aW9uOjpDb25uZWN0aW9uKEFjdGlvbiBhY3Rpb24sIGJv
b2wgcHJlZmVyVGVzdFNlcnZpY2UpCiAKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICB9KTsKLX0KLQotdm9pZCBDb25uZWN0aW9uOjpjb25uZWN0VG9TZXJ2aWNlKCkK
LXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBy
ZXN1bHQgPSBtYXliZUNvbm5lY3RUb1NlcnZpY2UobV9zZXJ2aWNlTmFtZSk7CiAgICAgaWYgKHJl
c3VsdCA9PSBNQUNIX1BPUlRfTlVMTCkKQEAgLTE1NCw2ICsxNTgsMTQgQEAgdm9pZCBDb25uZWN0
aW9uOjpzZW5kQXVkaXRUb2tlbigpCiB2b2lkIENvbm5lY3Rpb246OmNvbm5lY3Rpb25Ecm9wcGVk
KCkKIHsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOworICAgIGlmIChtX3JlY29ubmVjdCkg
eworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
dGhpcyB9XSB7CisgICAgICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICAgICAgY29u
bmVjdFRvU2VydmljZSgpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIENGUnVuTG9vcFN0b3AoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0g
Yi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sTWFpbi5tbQpp
bmRleCBhYzU2OTZiOTE3Y2YuLjYyZjY3OGY5ZmQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0KKysrIGIvU291cmNlL1dl
YktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0KQEAgLTI3LDYgKzI3
LDcgQEAKICNpbXBvcnQgIldlYlB1c2hUb29sQ29ubmVjdGlvbi5oIgogI2ltcG9ydCA8Rm91bmRh
dGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxvcHRpb25hbD4KKyNpbXBvcnQgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAKIF9fYXR0cmlidXRlX18oKF9fbm9yZXR1cm5fXykpCiBzdGF0aWMgdm9pZCBw
cmludFVzYWdlQW5kVGVybWluYXRlKE5TU3RyaW5nICptZXNzYWdlKQpAQCAtMzgsNiArMzksNyBA
QCBzdGF0aWMgdm9pZCBwcmludFVzYWdlQW5kVGVybWluYXRlKE5TU3RyaW5nICptZXNzYWdlKQog
ICAgIGZwcmludGYoc3RkZXJyLCAiICAtLWRldmVsb3BtZW50ICAgICAgICAgICAgICBDb25uZWN0
cyB0byBtYWNoIHNlcnZpY2UgXCJvcmcud2Via2l0LndlYnB1c2h0ZXN0ZGFlbW9uLnNlcnZpY2Vc
IiAoRGVmYXVsdClcbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiICAtLXByb2R1Y3Rpb24gICAg
ICAgICAgICAgICBDb25uZWN0cyB0byBtYWNoIHNlcnZpY2UgXCJjb20uYXBwbGUud2Via2l0Lndl
YnB1c2hkLnNlcnZpY2VcIlxuIik7CiAgICAgZnByaW50ZihzdGRlcnIsICIgIC0tc3RyZWFtRGVi
dWdNZXNzYWdlcyAgICAgIFN0cmVhbSBkZWJ1ZyBtZXNzYWdlcyBmcm9tIHdlYnB1c2hkXG4iKTsK
KyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1yZWNvbm5lY3QgICAgICAgICAgICAgICAgUmVjb25u
ZWN0IGFmdGVyIGNvbm5lY3Rpb24gaXMgbG9zdFxuIik7CiAgICAgZnByaW50ZihzdGRlcnIsICJc
biIpOwogCiAgICAgZXhpdCgtMSk7CkBAIC00NSw3ICs0NywxMCBAQCBzdGF0aWMgdm9pZCBwcmlu
dFVzYWdlQW5kVGVybWluYXRlKE5TU3RyaW5nICptZXNzYWdlKQogCiBpbnQgbWFpbihpbnQsIGNv
bnN0IGNoYXIgKiopCiB7Ci0gICAgYm9vbCBwcmVmZXJUZXN0U2VydmljZSA9IHRydWU7CisgICAg
V1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOworCisgICAgYXV0byBwcmVmZXJUZXN0U2Vydmlj
ZSA9IFdlYlB1c2hUb29sOjpQcmVmZXJUZXN0U2VydmljZTo6WWVzOworICAgIGF1dG8gcmVjb25u
ZWN0ID0gV2ViUHVzaFRvb2w6OlJlY29ubmVjdDo6Tm87CiAgICAgc3RkOjpvcHRpb25hbDxXZWJQ
dXNoVG9vbDo6QWN0aW9uPiBhY3Rpb247CiAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKQEAgLTU1
LDExICs2MCwxMyBAQCBpbnQgbWFpbihpbnQsIGNvbnN0IGNoYXIgKiopCiAKICAgICAgICAgZm9y
IChOU1N0cmluZyAqYXJndW1lbnQgaW4gW2FyZ3VtZW50cyBzdWJhcnJheVdpdGhSYW5nZTpOU01h
a2VSYW5nZSgxLCBhcmd1bWVudHMuY291bnQgLSAxKV0pIHsKICAgICAgICAgICAgIGlmIChbYXJn
dW1lbnQgaXNFcXVhbFRvU3RyaW5nOkAiLS1wcm9kdWN0aW9uIl0pCi0gICAgICAgICAgICAgICAg
cHJlZmVyVGVzdFNlcnZpY2UgPSBmYWxzZTsKLSAgICAgICAgICAgIGlmIChbYXJndW1lbnQgaXNF
cXVhbFRvU3RyaW5nOkAiLS1kZXZlbG9wbWVudCJdKQotICAgICAgICAgICAgICAgIHByZWZlclRl
c3RTZXJ2aWNlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBwcmVmZXJUZXN0U2VydmljZSA9IFdl
YlB1c2hUb29sOjpQcmVmZXJUZXN0U2VydmljZTo6Tm87CisgICAgICAgICAgICBlbHNlIGlmIChb
YXJndW1lbnQgaXNFcXVhbFRvU3RyaW5nOkAiLS1kZXZlbG9wbWVudCJdKQorICAgICAgICAgICAg
ICAgIHByZWZlclRlc3RTZXJ2aWNlID0gV2ViUHVzaFRvb2w6OlByZWZlclRlc3RTZXJ2aWNlOjpZ
ZXM7CiAgICAgICAgICAgICBlbHNlIGlmIChbYXJndW1lbnQgaXNFcXVhbFRvU3RyaW5nOkAiLS1z
dHJlYW1EZWJ1Z01lc3NhZ2VzIl0pCiAgICAgICAgICAgICAgICAgYWN0aW9uID0gV2ViUHVzaFRv
b2w6OkFjdGlvbjo6U3RyZWFtRGVidWdNZXNzYWdlczsKKyAgICAgICAgICAgIGVsc2UgaWYgKFth
cmd1bWVudCBpc0VxdWFsVG9TdHJpbmc6QCItLXJlY29ubmVjdCJdKQorICAgICAgICAgICAgICAg
IHJlY29ubmVjdCA9IFdlYlB1c2hUb29sOjpSZWNvbm5lY3Q6OlllczsKICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICBwcmludFVzYWdlQW5kVGVybWluYXRlKFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiSW52YWxpZCBvcHRpb24gcHJvdmlkZWQ6ICVAIiwgYXJndW1lbnRdKTsK
ICAgICAgICAgfQpAQCAtNjgsNyArNzUsNyBAQCBpbnQgbWFpbihpbnQsIGNvbnN0IGNoYXIgKiop
CiAgICAgaWYgKCFhY3Rpb24pCiAgICAgICAgIHByaW50VXNhZ2VBbmRUZXJtaW5hdGUoQCJObyBh
Y3Rpb24gcHJvdmlkZWQiKTsKIAotICAgIGF1dG8gY29ubmVjdGlvbiA9IFdlYlB1c2hUb29sOjpD
b25uZWN0aW9uOjpjcmVhdGUoKmFjdGlvbiwgcHJlZmVyVGVzdFNlcnZpY2UpOworICAgIGF1dG8g
Y29ubmVjdGlvbiA9IFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpjcmVhdGUoKmFjdGlvbiwgcHJl
ZmVyVGVzdFNlcnZpY2UsIHJlY29ubmVjdCk7CiAgICAgY29ubmVjdGlvbi0+Y29ubmVjdFRvU2Vy
dmljZSgpOwogCiAgICAgQ0ZSdW5Mb29wUnVuKCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDEwZmMyZmZlYjJiLi5iZTM2MGU2YzNmYzAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAyMS0xMi0wNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgd2VicHVzaGQvd2VicHVzaHRvb2wgZGVidWdnaW5nIGFkZGl0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzODY0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKTogQWRhcHQgdG8gZGVidWcgbWVzc2FnZSBjaGFuZ2VzLgorCiAyMDIxLTEyLTAz
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1Nd
IFdlYiBjb250ZW50IHByb2Nlc3Mgc29tZXRpbWVzIGNyYXNoZXMgdW5kZXIgV2ViUGFnZTo6cG9z
aXRpb25JbmZvcm1hdGlvbigpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW0KaW5kZXggN2JhMWYyNDdmNzk2Li43M2Y0YzI4
Zjg5NTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V2ViUHVzaERhZW1vbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dlYlB1c2hEYWVtb24ubW0KQEAgLTE4MSw5ICsxODEsMTQgQEAgVEVTVChXZWJQdXNoRCwg
QmFzaWNDb21tdW5pY2F0aW9uKQogICAgICAgICBpZiAoIWRlYnVnTWVzc2FnZSkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBib29sIHN0cmluZ01hdGNoZXMgPSAhc3RyY21wKGRlYnVn
TWVzc2FnZSwgIlt3ZWJwdXNoZCAtIFRlc3RXZWJLaXRBUEldIFR1cm5lZCBEZWJ1ZyBNb2RlIG9u
Iik7Ci0gICAgICAgIGlmICghc3RyaW5nTWF0Y2hlcykKLSAgICAgICAgICAgIHN0cmluZ01hdGNo
ZXMgPSAhc3RyY21wKGRlYnVnTWVzc2FnZSwgIlt3ZWJwdXNoZCAtIGNvbS5hcHBsZS5XZWJLaXQu
VGVzdFdlYktpdEFQSV0gVHVybmVkIERlYnVnIE1vZGUgb24iKTsKKyAgICAgICAgTlNTdHJpbmcg
Km5zTWVzc2FnZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzpkZWJ1Z01lc3NhZ2Vd
OworCisgICAgICAgIC8vIElnbm9yZSBwb3NzaWJsZSBjb25uZWN0aW9ucy9tZXNzYWdlcyBmcm9t
IHdlYnB1c2h0b29sCisgICAgICAgIGlmIChbbnNNZXNzYWdlIGhhc1ByZWZpeDpAIlt3ZWJwdXNo
dG9vbCAiXSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBib29sIHN0cmluZ01hdGNo
ZXMgPSBbbnNNZXNzYWdlIGhhc1ByZWZpeDpAIltjb20uYXBwbGUuV2ViS2l0LlRlc3RXZWJLaXRB
UEkiXSB8fCBbbnNNZXNzYWdlIGhhc1ByZWZpeDpAIltUZXN0V2ViS2l0QVBJIl07CisgICAgICAg
IHN0cmluZ01hdGNoZXMgPSBzdHJpbmdNYXRjaGVzICYmIFtuc01lc3NhZ2UgaGFzU3VmZml4OkAi
IFR1cm5lZCBEZWJ1ZyBNb2RlIG9uIl07CiAKICAgICAgICAgRVhQRUNUX1RSVUUoc3RyaW5nTWF0
Y2hlcyk7CiAK
</data>
<flag name="review"
          id="471361"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446079</attachid>
            <date>2021-12-06 13:26:54 -0800</date>
            <delta_ts>2021-12-06 15:50:55 -0800</delta_ts>
            <desc>PFL v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>15692</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZDZlYjczNjMzNDRlLi43Y2ZkZDQ1MWUwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDIgQEAKKzIwMjEtMTItMDYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIHdlYnB1c2hkL3dlYnB1c2h0b29sIGRlYnVnZ2luZyBhZGRpdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzg2NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQ292ZXJlZCBieSBB
UEkgdGVzdHMuCisgICAgICAgIAorICAgICAgICBUaGlzIHBhdGNoOgorICAgICAgICAtIFRlYWNo
ZXMgd2VicHVzaHRvb2wgdGhlIGFiaWxpdHkgdG8gd2FpdCBmb3IgYSByZWNvbm5lY3QgYWZ0ZXIg
bG9zaW5nIGl0cyBjb25uZWN0aW9uCisgICAgICAgIC0gU3RhcnRzIGFjdHVhbGx5IGJyb2FkY2Fz
dGluZyBtZWFuaW5nZnVsIGRlYnVnIG1lc3NhZ2VzIGZyb20gd2VicHVzaGQKKworICAgICAgICAq
IHdlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3QubW06CisgICAgICAgIChXZWJQdXNoRDo6QXBwQnVu
ZGxlUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcEJ1bmRsZVBlcm1pc3Np
b25zUmVxdWVzdDo6ZGlkQ2hlY2tGb3JFeGlzdGluZ0J1bmRsZSk6CisgICAgICAgIChXZWJQdXNo
RDo6QXBwQnVuZGxlUGVybWlzc2lvbnNSZXF1ZXN0OjpkaWRDcmVhdGVBcHBCdW5kbGUpOgorICAg
ICAgICAoV2ViUHVzaEQ6OkFwcEJ1bmRsZURlbGV0aW9uUmVxdWVzdDo6ZGlkRGVsZXRlRXhpc3Rp
bmdCdW5kbGVXaXRoRXJyb3IpOgorCisgICAgICAgICogd2VicHVzaGQvUHVzaENsaWVudENvbm5l
Y3Rpb24uaDoKKyAgICAgICAgKiB3ZWJwdXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5tbToKKyAg
ICAgICAgKFdlYlB1c2hEOjpDbGllbnRDb25uZWN0aW9uOjpzZXREZWJ1Z01vZGVJc0VuYWJsZWQp
OgorICAgICAgICAoV2ViUHVzaEQ6OkNsaWVudENvbm5lY3Rpb246OmJyb2FkY2FzdERlYnVnTWVz
c2FnZSk6CisgICAgICAgIChXZWJQdXNoRDo6Q2xpZW50Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkNs
b3NlZCk6CisKKyAgICAgICAgKiB3ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tOgorICAgICAgICAo
V2ViUHVzaEQ6OkRhZW1vbjo6Y29ubmVjdGlvbkFkZGVkKToKKworICAgICAgICAqIHdlYnB1c2hk
L3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oOgorICAgICAgICAqIHdlYnB1c2hk
L3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbToKKyAgICAgICAgKFdlYlB1c2hU
b29sOjpDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rp
b246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNvbm5l
Y3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNvbm5lY3Rp
b25Ecm9wcGVkKToKKworICAgICAgICAqIHdlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29s
TWFpbi5tbToKKyAgICAgICAgKHByaW50VXNhZ2VBbmRUZXJtaW5hdGUpOgorICAgICAgICAobWFp
bik6CisKIDIwMjEtMTItMDYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFB1dCB3ZWJwdXNoZCBjb2RlIGluIFdlYktpdC5mcmFtZXdvcmsuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3QubW0gYi9Tb3VyY2UvV2Vi
S2l0L3dlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3QubW0KaW5kZXggZDA0N2UxZDYyYTczLi41NzNh
ZDRkNGUwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwQnVuZGxlUmVx
dWVzdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3QubW0K
QEAgLTQ3LDYgKzQ3LDggQEAgdm9pZCBBcHBCdW5kbGVSZXF1ZXN0OjpzdGFydCgpCiB7CiAgICAg
QVNTRVJUKG1fY29ubmVjdGlvbik7CiAKKyAgICBtX2Nvbm5lY3Rpb24tPmJyb2FkY2FzdERlYnVn
TWVzc2FnZShtYWtlU3RyaW5nKCJTdGFydGluZyAiLCB0cmFuc2FjdGlvbkRlc2NyaXB0aW9uKCks
ICIgcmVxdWVzdCBmb3Igb3JpZ2luICIsIG1fb3JpZ2luU3RyaW5nKSk7CisKICAgICBtX3RyYW5z
YWN0aW9uID0gYWRvcHRPU09iamVjdChvc190cmFuc2FjdGlvbl9jcmVhdGUodHJhbnNhY3Rpb25E
ZXNjcmlwdGlvbigpKSk7CiAKICAgICBpZiAobV9jb25uZWN0aW9uLT51c2VNb2NrQnVuZGxlc0Zv
clRlc3RpbmcoKSkKQEAgLTkxLDYgKzkzLDggQEAgdm9pZCBBcHBCdW5kbGVQZXJtaXNzaW9uc1Jl
cXVlc3Q6OmRpZENoZWNrRm9yRXhpc3RpbmdCdW5kbGUoUHVzaEFwcEJ1bmRsZSYgYnVuZGwKIHsK
ICAgICBBU1NFUlRfVU5VU0VEKGJ1bmRsZSwgJmJ1bmRsZSA9PSBtX2FwcEJ1bmRsZS5nZXQoKSk7
CiAKKyAgICBtX2Nvbm5lY3Rpb24tPmJyb2FkY2FzdERlYnVnTWVzc2FnZShtYWtlU3RyaW5nKCJP
cmlnaW4gIiwgbV9vcmlnaW5TdHJpbmcsICIgYXBwIGJ1bmRsZSByZXF1ZXN0OiBkaWRDaGVja0Zv
ckV4aXN0aW5nQnVuZGxlIC0gIiwgZXhpc3RzID09IFB1c2hBcHBCdW5kbGVFeGlzdHM6OlllcyA/
ICJFeGlzdHMiIDogIkRvZXMgbm90IGV4aXN0IikpOworCiAgICAgaWYgKGV4aXN0cyA9PSBQdXNo
QXBwQnVuZGxlRXhpc3RzOjpZZXMpCiAgICAgICAgIHJldHVybiBjYWxsQ29tcGxldGlvbkhhbmRs
ZXJBbmRDbGVhbnVwKHRydWUpOwogCkBAIC0xMDEsNiArMTA1LDggQEAgdm9pZCBBcHBCdW5kbGVQ
ZXJtaXNzaW9uc1JlcXVlc3Q6OmRpZENyZWF0ZUFwcEJ1bmRsZShQdXNoQXBwQnVuZGxlJiBidW5k
bGUsIFB1c2gKIHsKICAgICBBU1NFUlRfVU5VU0VEKGJ1bmRsZSwgJmJ1bmRsZSA9PSBtX2FwcEJ1
bmRsZS5nZXQoKSk7CiAKKyAgICBtX2Nvbm5lY3Rpb24tPmJyb2FkY2FzdERlYnVnTWVzc2FnZSht
YWtlU3RyaW5nKCJPcmlnaW4gIiwgbV9vcmlnaW5TdHJpbmcsICIgYXBwIGJ1bmRsZSByZXF1ZXN0
OiBkaWRDcmVhdGVBcHBCdW5kbGUgLSAiLCByZXN1bHQgPT0gUHVzaEFwcEJ1bmRsZUNyZWF0aW9u
UmVzdWx0OjpTdWNjZXNzID8gIkNyZWF0ZWQiIDogIkZhaWxlZCB0byBjcmVhdGUiKSk7CisKICAg
ICBpZiAocmVzdWx0ID09IFB1c2hBcHBCdW5kbGVDcmVhdGlvblJlc3VsdDo6RmFpbHVyZSkKICAg
ICAgICAgcmV0dXJuIGNhbGxDb21wbGV0aW9uSGFuZGxlckFuZENsZWFudXAoZmFsc2UpOwogCkBA
IC0xMTgsOCArMTI0LDEwIEBAIHZvaWQgQXBwQnVuZGxlRGVsZXRpb25SZXF1ZXN0OjpkaWREZWxl
dGVFeGlzdGluZ0J1bmRsZVdpdGhFcnJvcihQdXNoQXBwQnVuZGxlJiBiCiB7CiAgICAgQVNTRVJU
X1VOVVNFRChidW5kbGUsICZidW5kbGUgPT0gbV9hcHBCdW5kbGUuZ2V0KCkpOwogCisgICAgbV9j
b25uZWN0aW9uLT5icm9hZGNhc3REZWJ1Z01lc3NhZ2UobWFrZVN0cmluZygiT3JpZ2luICIsIG1f
b3JpZ2luU3RyaW5nLCAiIGFwcCBidW5kbGUgcmVxdWVzdDogZGlkRGVsZXRlRXhpc3RpbmdCdW5k
bGVXaXRoRXJyb3IiKSk7CisKICAgICBpZiAoZXJyb3IpCi0gICAgICAgIERhZW1vbjo6c2luZ2xl
dG9uKCkuYnJvYWRjYXN0RGVidWdNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmlu
ZygiRmFpbGVkIHRvIGRlbGV0ZSBhcHAgYnVuZGxlOiAiLCBTdHJpbmcoW2Vycm9yIGRlc2NyaXB0
aW9uXSkpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5icm9hZGNhc3REZWJ1Z01lc3NhZ2UobWFr
ZVN0cmluZygiRmFpbGVkIHRvIGRlbGV0ZSBhcHAgYnVuZGxlOiAiLCBTdHJpbmcoW2Vycm9yIGRl
c2NyaXB0aW9uXSkpKTsKIAogICAgIGNhbGxDb21wbGV0aW9uSGFuZGxlckFuZENsZWFudXAoZXJy
b3IgPyBTdHJpbmcoW2Vycm9yIGRlc2NyaXB0aW9uXSkgOiAiIik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggMTZkMTJiMzQzMzBhLi43
NjA1M2VmYzJkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaENsaWVu
dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25u
ZWN0aW9uLmgKQEAgLTY3LDYgKzY3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBjb25uZWN0aW9u
Q2xvc2VkKCk7CiAKKyAgICB2b2lkIGJyb2FkY2FzdERlYnVnTWVzc2FnZShjb25zdCBTdHJpbmcm
KTsKKwogcHJpdmF0ZToKICAgICBDbGllbnRDb25uZWN0aW9uKHhwY19jb25uZWN0aW9uX3QpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5tbQppbmRl
eCBkYzJmYzU3OTYyYTkuLjQ1YzQxYWZlMTkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
ZWJwdXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1
c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJX
ZWJQdXNoRGFlbW9uLmgiCiAjaW1wb3J0ICJXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3Vy
YXRpb24uaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgorI2ltcG9y
dCA8d3RmL0hleE51bWJlci5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogI2ltcG9ydCA8d3Rm
L2NvY29hL0VudGl0bGVtZW50cy5oPgogCkBAIC0xMDMsMTUgKzEwNCwxOSBAQCB2b2lkIENsaWVu
dENvbm5lY3Rpb246OnNldERlYnVnTW9kZUlzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1fZGVidWdNb2RlRW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgYnJvYWRj
YXN0RGVidWdNZXNzYWdlKG1ha2VTdHJpbmcoIlR1cm5lZCBEZWJ1ZyBNb2RlICIsIG1fZGVidWdN
b2RlRW5hYmxlZCA/ICJvbiIgOiAib2ZmIikpOworfQogCi0gICAgYXV0byBpZGVudGlmaWVyID0g
aG9zdEFwcENvZGVTaWduaW5nSWRlbnRpZmllcigpOwotICAgIFN0cmluZyBtZXNzYWdlOwotICAg
IGlmICghaWRlbnRpZmllci5pc0VtcHR5KCkpCi0gICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5n
KCJbd2VicHVzaGQgLSAiLCBpZGVudGlmaWVyLCAiXSBUdXJuZWQgRGVidWcgTW9kZSAiLCBtX2Rl
YnVnTW9kZUVuYWJsZWQgPyAib24iIDogIm9mZiIpOwordm9pZCBDbGllbnRDb25uZWN0aW9uOjpi
cm9hZGNhc3REZWJ1Z01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIFN0cmlu
ZyBtZXNzYWdlSWRlbnRpZmllcjsKKyAgICBhdXRvIHNpZ25pbmdJZGVudGlmZXIgPSBob3N0QXBw
Q29kZVNpZ25pbmdJZGVudGlmaWVyKCk7CisgICAgaWYgKHNpZ25pbmdJZGVudGlmZXIuaXNFbXB0
eSgpKQorICAgICAgICBtZXNzYWdlSWRlbnRpZmllciA9IG1ha2VTdHJpbmcgKCJbKDB4IiwgaGV4
KHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG1feHBjQ29ubmVjdGlvbi5nZXQoKSksIFdURjo6
SGV4Q29udmVyc2lvbk1vZGU6Okxvd2VyY2FzZSksICIpXSAiKTsKICAgICBlbHNlCi0gICAgICAg
IG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJbd2VicHVzaGRdIFR1cm5lZCBEZWJ1ZyBNb2RlICIsIG1f
ZGVidWdNb2RlRW5hYmxlZCA/ICJvbiIgOiAib2ZmIik7CisgICAgICAgIG1lc3NhZ2VJZGVudGlm
aWVyID0gbWFrZVN0cmluZyAoIlsiLCBzaWduaW5nSWRlbnRpZmVyLCAiICgweCIsIGhleChyZWlu
dGVycHJldF9jYXN0PHVpbnQ2NF90PihtX3hwY0Nvbm5lY3Rpb24uZ2V0KCkpLCBXVEY6OkhleENv
bnZlcnNpb25Nb2RlOjpMb3dlcmNhc2UpLCAiKV0gIik7CiAKLSAgICBEYWVtb246OnNpbmdsZXRv
bigpLmJyb2FkY2FzdERlYnVnTWVzc2FnZShNZXNzYWdlTGV2ZWw6OkluZm8sIG1lc3NhZ2UpOwor
ICAgIERhZW1vbjo6c2luZ2xldG9uKCkuYnJvYWRjYXN0RGVidWdNZXNzYWdlKEpTQzo6TWVzc2Fn
ZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKG1lc3NhZ2VJZGVudGlmaWVyLCBtZXNzYWdlKSk7CiB9
CiAKIHZvaWQgQ2xpZW50Q29ubmVjdGlvbjo6ZW5xdWV1ZUFwcEJ1bmRsZVJlcXVlc3Qoc3RkOjp1
bmlxdWVfcHRyPEFwcEJ1bmRsZVJlcXVlc3Q+JiYgcmVxdWVzdCkKQEAgLTE0NSw2ICsxNTAsOCBA
QCB2b2lkIENsaWVudENvbm5lY3Rpb246OmRpZENvbXBsZXRlQXBwQnVuZGxlUmVxdWVzdChBcHBC
dW5kbGVSZXF1ZXN0JiByZXF1ZXN0KQogCiB2b2lkIENsaWVudENvbm5lY3Rpb246OmNvbm5lY3Rp
b25DbG9zZWQoKQogeworICAgIGJyb2FkY2FzdERlYnVnTWVzc2FnZSgiQ29ubmVjdGlvbiBjbG9z
ZWQiKTsKKwogICAgIFJFTEVBU0VfQVNTRVJUKG1feHBjQ29ubmVjdGlvbik7CiAgICAgbV94cGND
b25uZWN0aW9uID0gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNo
ZC9XZWJQdXNoRGFlbW9uLm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9u
Lm1tCmluZGV4IDNiNzhmMjkwYzI3ZS4uZmQ3YjI1MDA1MDliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0KKysrIGIvU291cmNlL1dlYktpdC93ZWJw
dXNoZC9XZWJQdXNoRGFlbW9uLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJNb2NrQXBw
QnVuZGxlUmVnaXN0cnkuaCIKIAogI2ltcG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Cisj
aW1wb3J0IDx3dGYvSGV4TnVtYmVyLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbXBvcnQgPHd0Zi9TcGFuLmg+CiAKQEAgLTE4MCw2ICsxODEsOCBAQCB2b2lkIERhZW1vbjo6
Y29ubmVjdGlvbkV2ZW50SGFuZGxlcih4cGNfb2JqZWN0X3QgcmVxdWVzdCkKIAogdm9pZCBEYWVt
b246OmNvbm5lY3Rpb25BZGRlZCh4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24pCiB7CisgICAg
YnJvYWRjYXN0RGVidWdNZXNzYWdlKChKU0M6Ok1lc3NhZ2VMZXZlbCkwLCBtYWtlU3RyaW5nKCJO
ZXcgY29ubmVjdGlvbjogMHgiLCBoZXgocmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4oY29ubmVj
dGlvbiksIFdURjo6SGV4Q29udmVyc2lvbk1vZGU6Okxvd2VyY2FzZSkpKTsKKwogICAgIFJFTEVB
U0VfQVNTRVJUKCFtX2Nvbm5lY3Rpb25NYXAuY29udGFpbnMoY29ubmVjdGlvbikpOwogICAgIG1f
Y29ubmVjdGlvbk1hcC5zZXQoY29ubmVjdGlvbiwgQ2xpZW50Q29ubmVjdGlvbjo6Y3JlYXRlKGNv
bm5lY3Rpb24pKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVz
aHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dl
YnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oCmluZGV4IDU0ZDE1MmMwNGQwOS4uZmY2
MjM2YjdiZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29s
L1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2Vi
cHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLmgKQEAgLTM2LDExICszNiwyMSBAQCBlbnVt
IGNsYXNzIEFjdGlvbiB7CiAgICAgU3RyZWFtRGVidWdNZXNzYWdlcywKIH07CiAKK2VudW0gY2xh
c3MgUHJlZmVyVGVzdFNlcnZpY2UgOiBib29sIHsKKyAgICBZZXMsCisgICAgTm8sCit9OworCitl
bnVtIGNsYXNzIFJlY29ubmVjdCA6IGJvb2wgeworICAgIFllcywKKyAgICBObywKK307CisKIGNs
YXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q29ubmVjdGlvbj4gewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8Q29ubmVjdGlvbj4gY3JlYXRlKEFjdGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSk7
Ci0gICAgQ29ubmVjdGlvbihBY3Rpb24sIGJvb2wgcHJlZmVyVGVzdFNlcnZpY2UpOworICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdGlvbj4gY3JlYXRlKEFjdGlvbiwgUHJlZmVyVGVz
dFNlcnZpY2UsIFJlY29ubmVjdCk7CisgICAgQ29ubmVjdGlvbihBY3Rpb24sIFByZWZlclRlc3RT
ZXJ2aWNlLCBSZWNvbm5lY3QpOwogCiAgICAgdm9pZCBjb25uZWN0VG9TZXJ2aWNlKCk7CiAKQEAg
LTU0LDYgKzY0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmRBdWRpdFRva2VuKCk7CiAgICAg
CiAgICAgQWN0aW9uIG1fYWN0aW9uOworICAgIGJvb2wgbV9yZWNvbm5lY3QgeyBmYWxzZSB9Owog
ICAgIFJldGFpblB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CiAgICAgY29uc3Qg
Y2hhciogbV9zZXJ2aWNlTmFtZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1
c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tCmluZGV4IDc5MDQ0
NjBhMmZhMy4uYmRlNGU1NGUxMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hk
L3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbQpAQCAtMjksMTMg
KzI5LDE0IEBACiAjaW1wb3J0IDxtYWNoL21hY2hfaW5pdC5oPgogI2ltcG9ydCA8bWFjaC90YXNr
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1NlcnZlcnNTUEkuaD4KKyNpbXBvcnQgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJQ
dXNoVG9vbCB7CiAKLXN0ZDo6dW5pcXVlX3B0cjxDb25uZWN0aW9uPiBDb25uZWN0aW9uOjpjcmVh
dGUoQWN0aW9uIGFjdGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSkKK3N0ZDo6dW5pcXVlX3B0
cjxDb25uZWN0aW9uPiBDb25uZWN0aW9uOjpjcmVhdGUoQWN0aW9uIGFjdGlvbiwgUHJlZmVyVGVz
dFNlcnZpY2UgcHJlZmVyVGVzdFNlcnZpY2UsIFJlY29ubmVjdCByZWNvbm5lY3QpCiB7Ci0gICAg
cmV0dXJuIG1ha2VVbmlxdWU8Q29ubmVjdGlvbj4oYWN0aW9uLCBwcmVmZXJUZXN0U2VydmljZSk7
CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8Q29ubmVjdGlvbj4oYWN0aW9uLCBwcmVmZXJUZXN0U2Vy
dmljZSwgcmVjb25uZWN0KTsKIH0KIAogc3RhdGljIG1hY2hfcG9ydF90IG1heWJlQ29ubmVjdFRv
U2VydmljZShjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZSkKQEAgLTUyLDEzICs1MywyMCBAQCBzdGF0
aWMgbWFjaF9wb3J0X3QgbWF5YmVDb25uZWN0VG9TZXJ2aWNlKGNvbnN0IGNoYXIqIHNlcnZpY2VO
YW1lKQogICAgIHJldHVybiBNQUNIX1BPUlRfTlVMTDsKIH0KIAotQ29ubmVjdGlvbjo6Q29ubmVj
dGlvbihBY3Rpb24gYWN0aW9uLCBib29sIHByZWZlclRlc3RTZXJ2aWNlKQorQ29ubmVjdGlvbjo6
Q29ubmVjdGlvbihBY3Rpb24gYWN0aW9uLCBQcmVmZXJUZXN0U2VydmljZSBwcmVmZXJUZXN0U2Vy
dmljZSwgUmVjb25uZWN0IHJlY29ubmVjdCkKICAgICA6IG1fYWN0aW9uKGFjdGlvbikKKyAgICAs
IG1fcmVjb25uZWN0KHJlY29ubmVjdCA9PSBSZWNvbm5lY3Q6OlllcykKIHsKLSAgICBpZiAocHJl
ZmVyVGVzdFNlcnZpY2UpCisgICAgaWYgKHByZWZlclRlc3RTZXJ2aWNlID09IFByZWZlclRlc3RT
ZXJ2aWNlOjpZZXMpCiAgICAgICAgIG1fc2VydmljZU5hbWUgPSAib3JnLndlYmtpdC53ZWJwdXNo
dGVzdGRhZW1vbi5zZXJ2aWNlIjsKICAgICBlbHNlCiAgICAgICAgIG1fc2VydmljZU5hbWUgPSAi
Y29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlIjsKK30KKwordm9pZCBDb25uZWN0aW9u
Ojpjb25uZWN0VG9TZXJ2aWNlKCkKK3sKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBy
ZXR1cm47CiAKICAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKHhwY19jb25uZWN0aW9uX2NyZWF0
ZV9tYWNoX3NlcnZpY2UobV9zZXJ2aWNlTmFtZSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
MCkpOwogCkBAIC03NCw2ICs4Miw4IEBAIENvbm5lY3Rpb246OkNvbm5lY3Rpb24oQWN0aW9uIGFj
dGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSkKIAogICAgICAgICBpZiAoZXZlbnQgPT0gWFBD
X0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQpIHsKICAgICAgICAgICAgIHByaW50ZigiQ29u
bmVjdGlvbiBjbG9zZWRcbiIpOworICAgICAgICAgICAgaWYgKG1fcmVjb25uZWN0KQorICAgICAg
ICAgICAgICAgIHByaW50ZigiPT09PT09PT09PT09PT09XG5SZWNvbm5lY3RpbmcuLi5cbiIpOwog
ICAgICAgICAgICAgY29ubmVjdGlvbkRyb3BwZWQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQpAQCAtODUsMTIgKzk1LDYgQEAgQ29ubmVjdGlvbjo6Q29ubmVjdGlvbihBY3Rpb24g
YWN0aW9uLCBib29sIHByZWZlclRlc3RTZXJ2aWNlKQogCiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgfSk7Ci19Ci0KLXZvaWQgQ29ubmVjdGlvbjo6Y29ubmVjdFRv
U2VydmljZSgpCi17Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24pCi0gICAgICAgIHJldHVybjsKIAog
ICAgIGF1dG8gcmVzdWx0ID0gbWF5YmVDb25uZWN0VG9TZXJ2aWNlKG1fc2VydmljZU5hbWUpOwog
ICAgIGlmIChyZXN1bHQgPT0gTUFDSF9QT1JUX05VTEwpCkBAIC0xNTQsNiArMTU4LDE0IEBAIHZv
aWQgQ29ubmVjdGlvbjo6c2VuZEF1ZGl0VG9rZW4oKQogdm9pZCBDb25uZWN0aW9uOjpjb25uZWN0
aW9uRHJvcHBlZCgpCiB7CiAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICBpZiAobV9y
ZWNvbm5lY3QpIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHdlYWtUaGlzID0g
V2Vha1B0ciB7IHRoaXMgfV0geworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAg
ICAgICAgIGNvbm5lY3RUb1NlcnZpY2UoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICBDRlJ1bkxvb3BTdG9wKENGUnVuTG9vcEdldEN1cnJlbnQoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRv
b2xNYWluLm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9v
bE1haW4ubW0KaW5kZXggYWM1Njk2YjkxN2NmLi42MmY2NzhmOWZkNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJXZWJQdXNoVG9vbENvbm5lY3Rpb24uaCIKICNpbXBv
cnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8b3B0aW9uYWw+CisjaW1wb3J0
IDx3dGYvTWFpblRocmVhZC5oPgogCiBfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKQogc3Rh
dGljIHZvaWQgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShOU1N0cmluZyAqbWVzc2FnZSkKQEAgLTM4
LDYgKzM5LDcgQEAgc3RhdGljIHZvaWQgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShOU1N0cmluZyAq
bWVzc2FnZSkKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1kZXZlbG9wbWVudCAgICAgICAgICAg
ICAgQ29ubmVjdHMgdG8gbWFjaCBzZXJ2aWNlIFwib3JnLndlYmtpdC53ZWJwdXNodGVzdGRhZW1v
bi5zZXJ2aWNlXCIgKERlZmF1bHQpXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1wcm9k
dWN0aW9uICAgICAgICAgICAgICAgQ29ubmVjdHMgdG8gbWFjaCBzZXJ2aWNlIFwiY29tLmFwcGxl
LndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlXCJcbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiICAt
LXN0cmVhbURlYnVnTWVzc2FnZXMgICAgICBTdHJlYW0gZGVidWcgbWVzc2FnZXMgZnJvbSB3ZWJw
dXNoZFxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC0tcmVjb25uZWN0ICAgICAgICAgICAg
ICAgIFJlY29ubmVjdCBhZnRlciBjb25uZWN0aW9uIGlzIGxvc3RcbiIpOwogICAgIGZwcmludGYo
c3RkZXJyLCAiXG4iKTsKIAogICAgIGV4aXQoLTEpOwpAQCAtNDUsNyArNDcsMTAgQEAgc3RhdGlj
IHZvaWQgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShOU1N0cmluZyAqbWVzc2FnZSkKIAogaW50IG1h
aW4oaW50LCBjb25zdCBjaGFyICoqKQogewotICAgIGJvb2wgcHJlZmVyVGVzdFNlcnZpY2UgPSB0
cnVlOworICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKKworICAgIGF1dG8gcHJlZmVy
VGVzdFNlcnZpY2UgPSBXZWJQdXNoVG9vbDo6UHJlZmVyVGVzdFNlcnZpY2U6OlllczsKKyAgICBh
dXRvIHJlY29ubmVjdCA9IFdlYlB1c2hUb29sOjpSZWNvbm5lY3Q6Ok5vOwogICAgIHN0ZDo6b3B0
aW9uYWw8V2ViUHVzaFRvb2w6OkFjdGlvbj4gYWN0aW9uOwogCiAgICAgQGF1dG9yZWxlYXNlcG9v
bCB7CkBAIC01NSwxMSArNjAsMTMgQEAgaW50IG1haW4oaW50LCBjb25zdCBjaGFyICoqKQogCiAg
ICAgICAgIGZvciAoTlNTdHJpbmcgKmFyZ3VtZW50IGluIFthcmd1bWVudHMgc3ViYXJyYXlXaXRo
UmFuZ2U6TlNNYWtlUmFuZ2UoMSwgYXJndW1lbnRzLmNvdW50IC0gMSldKSB7CiAgICAgICAgICAg
ICBpZiAoW2FyZ3VtZW50IGlzRXF1YWxUb1N0cmluZzpAIi0tcHJvZHVjdGlvbiJdKQotICAgICAg
ICAgICAgICAgIHByZWZlclRlc3RTZXJ2aWNlID0gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoW2Fy
Z3VtZW50IGlzRXF1YWxUb1N0cmluZzpAIi0tZGV2ZWxvcG1lbnQiXSkKLSAgICAgICAgICAgICAg
ICBwcmVmZXJUZXN0U2VydmljZSA9IHRydWU7CisgICAgICAgICAgICAgICAgcHJlZmVyVGVzdFNl
cnZpY2UgPSBXZWJQdXNoVG9vbDo6UHJlZmVyVGVzdFNlcnZpY2U6Ok5vOworICAgICAgICAgICAg
ZWxzZSBpZiAoW2FyZ3VtZW50IGlzRXF1YWxUb1N0cmluZzpAIi0tZGV2ZWxvcG1lbnQiXSkKKyAg
ICAgICAgICAgICAgICBwcmVmZXJUZXN0U2VydmljZSA9IFdlYlB1c2hUb29sOjpQcmVmZXJUZXN0
U2VydmljZTo6WWVzOwogICAgICAgICAgICAgZWxzZSBpZiAoW2FyZ3VtZW50IGlzRXF1YWxUb1N0
cmluZzpAIi0tc3RyZWFtRGVidWdNZXNzYWdlcyJdKQogICAgICAgICAgICAgICAgIGFjdGlvbiA9
IFdlYlB1c2hUb29sOjpBY3Rpb246OlN0cmVhbURlYnVnTWVzc2FnZXM7CisgICAgICAgICAgICBl
bHNlIGlmIChbYXJndW1lbnQgaXNFcXVhbFRvU3RyaW5nOkAiLS1yZWNvbm5lY3QiXSkKKyAgICAg
ICAgICAgICAgICByZWNvbm5lY3QgPSBXZWJQdXNoVG9vbDo6UmVjb25uZWN0OjpZZXM7CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkludmFsaWQgb3B0aW9uIHByb3ZpZGVkOiAlQCIsIGFy
Z3VtZW50XSk7CiAgICAgICAgIH0KQEAgLTY4LDcgKzc1LDcgQEAgaW50IG1haW4oaW50LCBjb25z
dCBjaGFyICoqKQogICAgIGlmICghYWN0aW9uKQogICAgICAgICBwcmludFVzYWdlQW5kVGVybWlu
YXRlKEAiTm8gYWN0aW9uIHByb3ZpZGVkIik7CiAKLSAgICBhdXRvIGNvbm5lY3Rpb24gPSBXZWJQ
dXNoVG9vbDo6Q29ubmVjdGlvbjo6Y3JlYXRlKCphY3Rpb24sIHByZWZlclRlc3RTZXJ2aWNlKTsK
KyAgICBhdXRvIGNvbm5lY3Rpb24gPSBXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y3JlYXRlKCph
Y3Rpb24sIHByZWZlclRlc3RTZXJ2aWNlLCByZWNvbm5lY3QpOwogICAgIGNvbm5lY3Rpb24tPmNv
bm5lY3RUb1NlcnZpY2UoKTsKIAogICAgIENGUnVuTG9vcFJ1bigpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRlYWJmZmJmYjRlOC4uZDE1OTZj
MTUwZmE4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTItMDYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgorCisgICAgICAgIHdlYnB1c2hkL3dlYnB1c2h0b29sIGRlYnVnZ2luZyBhZGRpdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzg2
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6IEFkYXB0IHRvIGRlYnVnIG1lc3NhZ2UgY2hhbmdlcy4KKwog
MjAyMS0xMi0wNiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRl
IEdQVSBQcm9jZXNzIGZlYXR1cmUgZmxhZ3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbQppbmRleCA3YmExZjI0N2Y3OTYu
LjczZjRjMjhmODk1MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbQpAQCAtMTgxLDkgKzE4MSwxNCBAQCBURVNUKFdl
YlB1c2hELCBCYXNpY0NvbW11bmljYXRpb24pCiAgICAgICAgIGlmICghZGVidWdNZXNzYWdlKQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGJvb2wgc3RyaW5nTWF0Y2hlcyA9ICFzdHJj
bXAoZGVidWdNZXNzYWdlLCAiW3dlYnB1c2hkIC0gVGVzdFdlYktpdEFQSV0gVHVybmVkIERlYnVn
IE1vZGUgb24iKTsKLSAgICAgICAgaWYgKCFzdHJpbmdNYXRjaGVzKQotICAgICAgICAgICAgc3Ry
aW5nTWF0Y2hlcyA9ICFzdHJjbXAoZGVidWdNZXNzYWdlLCAiW3dlYnB1c2hkIC0gY29tLmFwcGxl
LldlYktpdC5UZXN0V2ViS2l0QVBJXSBUdXJuZWQgRGVidWcgTW9kZSBvbiIpOworICAgICAgICBO
U1N0cmluZyAqbnNNZXNzYWdlID0gW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmRlYnVn
TWVzc2FnZV07CisKKyAgICAgICAgLy8gSWdub3JlIHBvc3NpYmxlIGNvbm5lY3Rpb25zL21lc3Nh
Z2VzIGZyb20gd2VicHVzaHRvb2wKKyAgICAgICAgaWYgKFtuc01lc3NhZ2UgaGFzUHJlZml4OkAi
W3dlYnB1c2h0b29sICJdKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGJvb2wgc3Ry
aW5nTWF0Y2hlcyA9IFtuc01lc3NhZ2UgaGFzUHJlZml4OkAiW2NvbS5hcHBsZS5XZWJLaXQuVGVz
dFdlYktpdEFQSSJdIHx8IFtuc01lc3NhZ2UgaGFzUHJlZml4OkAiW1Rlc3RXZWJLaXRBUEkiXTsK
KyAgICAgICAgc3RyaW5nTWF0Y2hlcyA9IHN0cmluZ01hdGNoZXMgJiYgW25zTWVzc2FnZSBoYXNT
dWZmaXg6QCIgVHVybmVkIERlYnVnIE1vZGUgb24iXTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShz
dHJpbmdNYXRjaGVzKTsKIAo=
</data>
<flag name="commit-queue"
          id="471417"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446090</attachid>
            <date>2021-12-06 16:09:44 -0800</date>
            <delta_ts>2021-12-06 16:38:18 -0800</delta_ts>
            <desc>PFL v2</desc>
            <filename>123</filename>
            <type>text/plain</type>
            <size>15694</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZDZlYjczNjMzNDRlLi43Y2ZkZDQ1MWUwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDIgQEAKKzIwMjEtMTItMDYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIHdlYnB1c2hkL3dlYnB1c2h0b29sIGRlYnVnZ2luZyBhZGRpdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzg2NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQ292ZXJlZCBieSBB
UEkgdGVzdHMuCisgICAgICAgIAorICAgICAgICBUaGlzIHBhdGNoOgorICAgICAgICAtIFRlYWNo
ZXMgd2VicHVzaHRvb2wgdGhlIGFiaWxpdHkgdG8gd2FpdCBmb3IgYSByZWNvbm5lY3QgYWZ0ZXIg
bG9zaW5nIGl0cyBjb25uZWN0aW9uCisgICAgICAgIC0gU3RhcnRzIGFjdHVhbGx5IGJyb2FkY2Fz
dGluZyBtZWFuaW5nZnVsIGRlYnVnIG1lc3NhZ2VzIGZyb20gd2VicHVzaGQKKworICAgICAgICAq
IHdlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3QubW06CisgICAgICAgIChXZWJQdXNoRDo6QXBwQnVu
ZGxlUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcEJ1bmRsZVBlcm1pc3Np
b25zUmVxdWVzdDo6ZGlkQ2hlY2tGb3JFeGlzdGluZ0J1bmRsZSk6CisgICAgICAgIChXZWJQdXNo
RDo6QXBwQnVuZGxlUGVybWlzc2lvbnNSZXF1ZXN0OjpkaWRDcmVhdGVBcHBCdW5kbGUpOgorICAg
ICAgICAoV2ViUHVzaEQ6OkFwcEJ1bmRsZURlbGV0aW9uUmVxdWVzdDo6ZGlkRGVsZXRlRXhpc3Rp
bmdCdW5kbGVXaXRoRXJyb3IpOgorCisgICAgICAgICogd2VicHVzaGQvUHVzaENsaWVudENvbm5l
Y3Rpb24uaDoKKyAgICAgICAgKiB3ZWJwdXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5tbToKKyAg
ICAgICAgKFdlYlB1c2hEOjpDbGllbnRDb25uZWN0aW9uOjpzZXREZWJ1Z01vZGVJc0VuYWJsZWQp
OgorICAgICAgICAoV2ViUHVzaEQ6OkNsaWVudENvbm5lY3Rpb246OmJyb2FkY2FzdERlYnVnTWVz
c2FnZSk6CisgICAgICAgIChXZWJQdXNoRDo6Q2xpZW50Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkNs
b3NlZCk6CisKKyAgICAgICAgKiB3ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tOgorICAgICAgICAo
V2ViUHVzaEQ6OkRhZW1vbjo6Y29ubmVjdGlvbkFkZGVkKToKKworICAgICAgICAqIHdlYnB1c2hk
L3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oOgorICAgICAgICAqIHdlYnB1c2hk
L3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbToKKyAgICAgICAgKFdlYlB1c2hU
b29sOjpDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rp
b246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNvbm5l
Y3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNvbm5lY3Rp
b25Ecm9wcGVkKToKKworICAgICAgICAqIHdlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29s
TWFpbi5tbToKKyAgICAgICAgKHByaW50VXNhZ2VBbmRUZXJtaW5hdGUpOgorICAgICAgICAobWFp
bik6CisKIDIwMjEtMTItMDYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFB1dCB3ZWJwdXNoZCBjb2RlIGluIFdlYktpdC5mcmFtZXdvcmsuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3QubW0gYi9Tb3VyY2UvV2Vi
S2l0L3dlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3QubW0KaW5kZXggZDA0N2UxZDYyYTczLi41NzNh
ZDRkNGUwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwQnVuZGxlUmVx
dWVzdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3QubW0K
QEAgLTQ3LDYgKzQ3LDggQEAgdm9pZCBBcHBCdW5kbGVSZXF1ZXN0OjpzdGFydCgpCiB7CiAgICAg
QVNTRVJUKG1fY29ubmVjdGlvbik7CiAKKyAgICBtX2Nvbm5lY3Rpb24tPmJyb2FkY2FzdERlYnVn
TWVzc2FnZShtYWtlU3RyaW5nKCJTdGFydGluZyAiLCB0cmFuc2FjdGlvbkRlc2NyaXB0aW9uKCks
ICIgcmVxdWVzdCBmb3Igb3JpZ2luICIsIG1fb3JpZ2luU3RyaW5nKSk7CisKICAgICBtX3RyYW5z
YWN0aW9uID0gYWRvcHRPU09iamVjdChvc190cmFuc2FjdGlvbl9jcmVhdGUodHJhbnNhY3Rpb25E
ZXNjcmlwdGlvbigpKSk7CiAKICAgICBpZiAobV9jb25uZWN0aW9uLT51c2VNb2NrQnVuZGxlc0Zv
clRlc3RpbmcoKSkKQEAgLTkxLDYgKzkzLDggQEAgdm9pZCBBcHBCdW5kbGVQZXJtaXNzaW9uc1Jl
cXVlc3Q6OmRpZENoZWNrRm9yRXhpc3RpbmdCdW5kbGUoUHVzaEFwcEJ1bmRsZSYgYnVuZGwKIHsK
ICAgICBBU1NFUlRfVU5VU0VEKGJ1bmRsZSwgJmJ1bmRsZSA9PSBtX2FwcEJ1bmRsZS5nZXQoKSk7
CiAKKyAgICBtX2Nvbm5lY3Rpb24tPmJyb2FkY2FzdERlYnVnTWVzc2FnZShtYWtlU3RyaW5nKCJP
cmlnaW4gIiwgbV9vcmlnaW5TdHJpbmcsICIgYXBwIGJ1bmRsZSByZXF1ZXN0OiBkaWRDaGVja0Zv
ckV4aXN0aW5nQnVuZGxlIC0gIiwgZXhpc3RzID09IFB1c2hBcHBCdW5kbGVFeGlzdHM6OlllcyA/
ICJFeGlzdHMiIDogIkRvZXMgbm90IGV4aXN0IikpOworCiAgICAgaWYgKGV4aXN0cyA9PSBQdXNo
QXBwQnVuZGxlRXhpc3RzOjpZZXMpCiAgICAgICAgIHJldHVybiBjYWxsQ29tcGxldGlvbkhhbmRs
ZXJBbmRDbGVhbnVwKHRydWUpOwogCkBAIC0xMDEsNiArMTA1LDggQEAgdm9pZCBBcHBCdW5kbGVQ
ZXJtaXNzaW9uc1JlcXVlc3Q6OmRpZENyZWF0ZUFwcEJ1bmRsZShQdXNoQXBwQnVuZGxlJiBidW5k
bGUsIFB1c2gKIHsKICAgICBBU1NFUlRfVU5VU0VEKGJ1bmRsZSwgJmJ1bmRsZSA9PSBtX2FwcEJ1
bmRsZS5nZXQoKSk7CiAKKyAgICBtX2Nvbm5lY3Rpb24tPmJyb2FkY2FzdERlYnVnTWVzc2FnZSht
YWtlU3RyaW5nKCJPcmlnaW4gIiwgbV9vcmlnaW5TdHJpbmcsICIgYXBwIGJ1bmRsZSByZXF1ZXN0
OiBkaWRDcmVhdGVBcHBCdW5kbGUgLSAiLCByZXN1bHQgPT0gUHVzaEFwcEJ1bmRsZUNyZWF0aW9u
UmVzdWx0OjpTdWNjZXNzID8gIkNyZWF0ZWQiIDogIkZhaWxlZCB0byBjcmVhdGUiKSk7CisKICAg
ICBpZiAocmVzdWx0ID09IFB1c2hBcHBCdW5kbGVDcmVhdGlvblJlc3VsdDo6RmFpbHVyZSkKICAg
ICAgICAgcmV0dXJuIGNhbGxDb21wbGV0aW9uSGFuZGxlckFuZENsZWFudXAoZmFsc2UpOwogCkBA
IC0xMTgsOCArMTI0LDEwIEBAIHZvaWQgQXBwQnVuZGxlRGVsZXRpb25SZXF1ZXN0OjpkaWREZWxl
dGVFeGlzdGluZ0J1bmRsZVdpdGhFcnJvcihQdXNoQXBwQnVuZGxlJiBiCiB7CiAgICAgQVNTRVJU
X1VOVVNFRChidW5kbGUsICZidW5kbGUgPT0gbV9hcHBCdW5kbGUuZ2V0KCkpOwogCisgICAgbV9j
b25uZWN0aW9uLT5icm9hZGNhc3REZWJ1Z01lc3NhZ2UobWFrZVN0cmluZygiT3JpZ2luICIsIG1f
b3JpZ2luU3RyaW5nLCAiIGFwcCBidW5kbGUgcmVxdWVzdDogZGlkRGVsZXRlRXhpc3RpbmdCdW5k
bGVXaXRoRXJyb3IiKSk7CisKICAgICBpZiAoZXJyb3IpCi0gICAgICAgIERhZW1vbjo6c2luZ2xl
dG9uKCkuYnJvYWRjYXN0RGVidWdNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmlu
ZygiRmFpbGVkIHRvIGRlbGV0ZSBhcHAgYnVuZGxlOiAiLCBTdHJpbmcoW2Vycm9yIGRlc2NyaXB0
aW9uXSkpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5icm9hZGNhc3REZWJ1Z01lc3NhZ2UobWFr
ZVN0cmluZygiRmFpbGVkIHRvIGRlbGV0ZSBhcHAgYnVuZGxlOiAiLCBTdHJpbmcoW2Vycm9yIGRl
c2NyaXB0aW9uXSkpKTsKIAogICAgIGNhbGxDb21wbGV0aW9uSGFuZGxlckFuZENsZWFudXAoZXJy
b3IgPyBTdHJpbmcoW2Vycm9yIGRlc2NyaXB0aW9uXSkgOiAiIik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggMTZkMTJiMzQzMzBhLi43
NjA1M2VmYzJkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaENsaWVu
dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25u
ZWN0aW9uLmgKQEAgLTY3LDYgKzY3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBjb25uZWN0aW9u
Q2xvc2VkKCk7CiAKKyAgICB2b2lkIGJyb2FkY2FzdERlYnVnTWVzc2FnZShjb25zdCBTdHJpbmcm
KTsKKwogcHJpdmF0ZToKICAgICBDbGllbnRDb25uZWN0aW9uKHhwY19jb25uZWN0aW9uX3QpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5tbQppbmRl
eCBkYzJmYzU3OTYyYTkuLjQ1YzQxYWZlMTkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
ZWJwdXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1
c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJX
ZWJQdXNoRGFlbW9uLmgiCiAjaW1wb3J0ICJXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3Vy
YXRpb24uaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgorI2ltcG9y
dCA8d3RmL0hleE51bWJlci5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogI2ltcG9ydCA8d3Rm
L2NvY29hL0VudGl0bGVtZW50cy5oPgogCkBAIC0xMDMsMTUgKzEwNCwxOSBAQCB2b2lkIENsaWVu
dENvbm5lY3Rpb246OnNldERlYnVnTW9kZUlzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1fZGVidWdNb2RlRW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgYnJvYWRj
YXN0RGVidWdNZXNzYWdlKG1ha2VTdHJpbmcoIlR1cm5lZCBEZWJ1ZyBNb2RlICIsIG1fZGVidWdN
b2RlRW5hYmxlZCA/ICJvbiIgOiAib2ZmIikpOworfQogCi0gICAgYXV0byBpZGVudGlmaWVyID0g
aG9zdEFwcENvZGVTaWduaW5nSWRlbnRpZmllcigpOwotICAgIFN0cmluZyBtZXNzYWdlOwotICAg
IGlmICghaWRlbnRpZmllci5pc0VtcHR5KCkpCi0gICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5n
KCJbd2VicHVzaGQgLSAiLCBpZGVudGlmaWVyLCAiXSBUdXJuZWQgRGVidWcgTW9kZSAiLCBtX2Rl
YnVnTW9kZUVuYWJsZWQgPyAib24iIDogIm9mZiIpOwordm9pZCBDbGllbnRDb25uZWN0aW9uOjpi
cm9hZGNhc3REZWJ1Z01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIFN0cmlu
ZyBtZXNzYWdlSWRlbnRpZmllcjsKKyAgICBhdXRvIHNpZ25pbmdJZGVudGlmZXIgPSBob3N0QXBw
Q29kZVNpZ25pbmdJZGVudGlmaWVyKCk7CisgICAgaWYgKHNpZ25pbmdJZGVudGlmZXIuaXNFbXB0
eSgpKQorICAgICAgICBtZXNzYWdlSWRlbnRpZmllciA9IG1ha2VTdHJpbmcgKCJbKDB4IiwgaGV4
KHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG1feHBjQ29ubmVjdGlvbi5nZXQoKSksIFdURjo6
SGV4Q29udmVyc2lvbk1vZGU6Okxvd2VyY2FzZSksICIpXSAiKTsKICAgICBlbHNlCi0gICAgICAg
IG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJbd2VicHVzaGRdIFR1cm5lZCBEZWJ1ZyBNb2RlICIsIG1f
ZGVidWdNb2RlRW5hYmxlZCA/ICJvbiIgOiAib2ZmIik7CisgICAgICAgIG1lc3NhZ2VJZGVudGlm
aWVyID0gbWFrZVN0cmluZyAoIlsiLCBzaWduaW5nSWRlbnRpZmVyLCAiICgweCIsIGhleChyZWlu
dGVycHJldF9jYXN0PHVpbnQ2NF90PihtX3hwY0Nvbm5lY3Rpb24uZ2V0KCkpLCBXVEY6OkhleENv
bnZlcnNpb25Nb2RlOjpMb3dlcmNhc2UpLCAiKV0gIik7CiAKLSAgICBEYWVtb246OnNpbmdsZXRv
bigpLmJyb2FkY2FzdERlYnVnTWVzc2FnZShNZXNzYWdlTGV2ZWw6OkluZm8sIG1lc3NhZ2UpOwor
ICAgIERhZW1vbjo6c2luZ2xldG9uKCkuYnJvYWRjYXN0RGVidWdNZXNzYWdlKEpTQzo6TWVzc2Fn
ZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKG1lc3NhZ2VJZGVudGlmaWVyLCBtZXNzYWdlKSk7CiB9
CiAKIHZvaWQgQ2xpZW50Q29ubmVjdGlvbjo6ZW5xdWV1ZUFwcEJ1bmRsZVJlcXVlc3Qoc3RkOjp1
bmlxdWVfcHRyPEFwcEJ1bmRsZVJlcXVlc3Q+JiYgcmVxdWVzdCkKQEAgLTE0NSw2ICsxNTAsOCBA
QCB2b2lkIENsaWVudENvbm5lY3Rpb246OmRpZENvbXBsZXRlQXBwQnVuZGxlUmVxdWVzdChBcHBC
dW5kbGVSZXF1ZXN0JiByZXF1ZXN0KQogCiB2b2lkIENsaWVudENvbm5lY3Rpb246OmNvbm5lY3Rp
b25DbG9zZWQoKQogeworICAgIGJyb2FkY2FzdERlYnVnTWVzc2FnZSgiQ29ubmVjdGlvbiBjbG9z
ZWQiKTsKKwogICAgIFJFTEVBU0VfQVNTRVJUKG1feHBjQ29ubmVjdGlvbik7CiAgICAgbV94cGND
b25uZWN0aW9uID0gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNo
ZC9XZWJQdXNoRGFlbW9uLm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9u
Lm1tCmluZGV4IDNiNzhmMjkwYzI3ZS4uZmQ3YjI1MDA1MDliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0KKysrIGIvU291cmNlL1dlYktpdC93ZWJw
dXNoZC9XZWJQdXNoRGFlbW9uLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJNb2NrQXBw
QnVuZGxlUmVnaXN0cnkuaCIKIAogI2ltcG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Cisj
aW1wb3J0IDx3dGYvSGV4TnVtYmVyLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbXBvcnQgPHd0Zi9TcGFuLmg+CiAKQEAgLTE4MCw2ICsxODEsOCBAQCB2b2lkIERhZW1vbjo6
Y29ubmVjdGlvbkV2ZW50SGFuZGxlcih4cGNfb2JqZWN0X3QgcmVxdWVzdCkKIAogdm9pZCBEYWVt
b246OmNvbm5lY3Rpb25BZGRlZCh4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24pCiB7CisgICAg
YnJvYWRjYXN0RGVidWdNZXNzYWdlKChKU0M6Ok1lc3NhZ2VMZXZlbCkwLCBtYWtlU3RyaW5nKCJO
ZXcgY29ubmVjdGlvbjogMHgiLCBoZXgocmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4oY29ubmVj
dGlvbiksIFdURjo6SGV4Q29udmVyc2lvbk1vZGU6Okxvd2VyY2FzZSkpKTsKKwogICAgIFJFTEVB
U0VfQVNTRVJUKCFtX2Nvbm5lY3Rpb25NYXAuY29udGFpbnMoY29ubmVjdGlvbikpOwogICAgIG1f
Y29ubmVjdGlvbk1hcC5zZXQoY29ubmVjdGlvbiwgQ2xpZW50Q29ubmVjdGlvbjo6Y3JlYXRlKGNv
bm5lY3Rpb24pKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVz
aHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dl
YnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oCmluZGV4IDU0ZDE1MmMwNGQwOS4uZmY2
MjM2YjdiZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29s
L1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2Vi
cHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLmgKQEAgLTM2LDExICszNiwyMSBAQCBlbnVt
IGNsYXNzIEFjdGlvbiB7CiAgICAgU3RyZWFtRGVidWdNZXNzYWdlcywKIH07CiAKK2VudW0gY2xh
c3MgUHJlZmVyVGVzdFNlcnZpY2UgOiBib29sIHsKKyAgICBZZXMsCisgICAgTm8sCit9OworCitl
bnVtIGNsYXNzIFJlY29ubmVjdCA6IGJvb2wgeworICAgIFllcywKKyAgICBObywKK307CisKIGNs
YXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q29ubmVjdGlvbj4gewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8Q29ubmVjdGlvbj4gY3JlYXRlKEFjdGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSk7
Ci0gICAgQ29ubmVjdGlvbihBY3Rpb24sIGJvb2wgcHJlZmVyVGVzdFNlcnZpY2UpOworICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdGlvbj4gY3JlYXRlKEFjdGlvbiwgUHJlZmVyVGVz
dFNlcnZpY2UsIFJlY29ubmVjdCk7CisgICAgQ29ubmVjdGlvbihBY3Rpb24sIFByZWZlclRlc3RT
ZXJ2aWNlLCBSZWNvbm5lY3QpOwogCiAgICAgdm9pZCBjb25uZWN0VG9TZXJ2aWNlKCk7CiAKQEAg
LTU0LDYgKzY0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmRBdWRpdFRva2VuKCk7CiAgICAg
CiAgICAgQWN0aW9uIG1fYWN0aW9uOworICAgIGJvb2wgbV9yZWNvbm5lY3QgeyBmYWxzZSB9Owog
ICAgIFJldGFpblB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CiAgICAgY29uc3Qg
Y2hhciogbV9zZXJ2aWNlTmFtZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1
c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tCmluZGV4IDc5MDQ0
NjBhMmZhMy4uYmRlNGU1NGUxMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hk
L3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbQpAQCAtMjksMTMg
KzI5LDE0IEBACiAjaW1wb3J0IDxtYWNoL21hY2hfaW5pdC5oPgogI2ltcG9ydCA8bWFjaC90YXNr
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1NlcnZlcnNTUEkuaD4KKyNpbXBvcnQgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJQ
dXNoVG9vbCB7CiAKLXN0ZDo6dW5pcXVlX3B0cjxDb25uZWN0aW9uPiBDb25uZWN0aW9uOjpjcmVh
dGUoQWN0aW9uIGFjdGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSkKK3N0ZDo6dW5pcXVlX3B0
cjxDb25uZWN0aW9uPiBDb25uZWN0aW9uOjpjcmVhdGUoQWN0aW9uIGFjdGlvbiwgUHJlZmVyVGVz
dFNlcnZpY2UgcHJlZmVyVGVzdFNlcnZpY2UsIFJlY29ubmVjdCByZWNvbm5lY3QpCiB7Ci0gICAg
cmV0dXJuIG1ha2VVbmlxdWU8Q29ubmVjdGlvbj4oYWN0aW9uLCBwcmVmZXJUZXN0U2VydmljZSk7
CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8Q29ubmVjdGlvbj4oYWN0aW9uLCBwcmVmZXJUZXN0U2Vy
dmljZSwgcmVjb25uZWN0KTsKIH0KIAogc3RhdGljIG1hY2hfcG9ydF90IG1heWJlQ29ubmVjdFRv
U2VydmljZShjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZSkKQEAgLTUyLDEzICs1MywyMCBAQCBzdGF0
aWMgbWFjaF9wb3J0X3QgbWF5YmVDb25uZWN0VG9TZXJ2aWNlKGNvbnN0IGNoYXIqIHNlcnZpY2VO
YW1lKQogICAgIHJldHVybiBNQUNIX1BPUlRfTlVMTDsKIH0KIAotQ29ubmVjdGlvbjo6Q29ubmVj
dGlvbihBY3Rpb24gYWN0aW9uLCBib29sIHByZWZlclRlc3RTZXJ2aWNlKQorQ29ubmVjdGlvbjo6
Q29ubmVjdGlvbihBY3Rpb24gYWN0aW9uLCBQcmVmZXJUZXN0U2VydmljZSBwcmVmZXJUZXN0U2Vy
dmljZSwgUmVjb25uZWN0IHJlY29ubmVjdCkKICAgICA6IG1fYWN0aW9uKGFjdGlvbikKKyAgICAs
IG1fcmVjb25uZWN0KHJlY29ubmVjdCA9PSBSZWNvbm5lY3Q6OlllcykKIHsKLSAgICBpZiAocHJl
ZmVyVGVzdFNlcnZpY2UpCisgICAgaWYgKHByZWZlclRlc3RTZXJ2aWNlID09IFByZWZlclRlc3RT
ZXJ2aWNlOjpZZXMpCiAgICAgICAgIG1fc2VydmljZU5hbWUgPSAib3JnLndlYmtpdC53ZWJwdXNo
dGVzdGRhZW1vbi5zZXJ2aWNlIjsKICAgICBlbHNlCiAgICAgICAgIG1fc2VydmljZU5hbWUgPSAi
Y29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlIjsKK30KKwordm9pZCBDb25uZWN0aW9u
Ojpjb25uZWN0VG9TZXJ2aWNlKCkKK3sKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBy
ZXR1cm47CiAKICAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKHhwY19jb25uZWN0aW9uX2NyZWF0
ZV9tYWNoX3NlcnZpY2UobV9zZXJ2aWNlTmFtZSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
MCkpOwogCkBAIC03NCw2ICs4Miw4IEBAIENvbm5lY3Rpb246OkNvbm5lY3Rpb24oQWN0aW9uIGFj
dGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSkKIAogICAgICAgICBpZiAoZXZlbnQgPT0gWFBD
X0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQpIHsKICAgICAgICAgICAgIHByaW50ZigiQ29u
bmVjdGlvbiBjbG9zZWRcbiIpOworICAgICAgICAgICAgaWYgKG1fcmVjb25uZWN0KQorICAgICAg
ICAgICAgICAgIHByaW50ZigiPT09PT09PT09PT09PT09XG5SZWNvbm5lY3RpbmcuLi5cbiIpOwog
ICAgICAgICAgICAgY29ubmVjdGlvbkRyb3BwZWQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQpAQCAtODUsMTIgKzk1LDYgQEAgQ29ubmVjdGlvbjo6Q29ubmVjdGlvbihBY3Rpb24g
YWN0aW9uLCBib29sIHByZWZlclRlc3RTZXJ2aWNlKQogCiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgfSk7Ci19Ci0KLXZvaWQgQ29ubmVjdGlvbjo6Y29ubmVjdFRv
U2VydmljZSgpCi17Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24pCi0gICAgICAgIHJldHVybjsKIAog
ICAgIGF1dG8gcmVzdWx0ID0gbWF5YmVDb25uZWN0VG9TZXJ2aWNlKG1fc2VydmljZU5hbWUpOwog
ICAgIGlmIChyZXN1bHQgPT0gTUFDSF9QT1JUX05VTEwpCkBAIC0xNTQsNiArMTU4LDE0IEBAIHZv
aWQgQ29ubmVjdGlvbjo6c2VuZEF1ZGl0VG9rZW4oKQogdm9pZCBDb25uZWN0aW9uOjpjb25uZWN0
aW9uRHJvcHBlZCgpCiB7CiAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICBpZiAobV9y
ZWNvbm5lY3QpIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHdlYWtUaGlzID0g
V2Vha1B0ciB7IHRoaXMgfV0geworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAg
ICAgICAgIGNvbm5lY3RUb1NlcnZpY2UoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICBDRlJ1bkxvb3BTdG9wKENGUnVuTG9vcEdldEN1cnJlbnQoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRv
b2xNYWluLm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9v
bE1haW4ubW0KaW5kZXggYWM1Njk2YjkxN2NmLi42MmY2NzhmOWZkNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJXZWJQdXNoVG9vbENvbm5lY3Rpb24uaCIKICNpbXBv
cnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8b3B0aW9uYWw+CisjaW1wb3J0
IDx3dGYvTWFpblRocmVhZC5oPgogCiBfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKQogc3Rh
dGljIHZvaWQgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShOU1N0cmluZyAqbWVzc2FnZSkKQEAgLTM4
LDYgKzM5LDcgQEAgc3RhdGljIHZvaWQgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShOU1N0cmluZyAq
bWVzc2FnZSkKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1kZXZlbG9wbWVudCAgICAgICAgICAg
ICAgQ29ubmVjdHMgdG8gbWFjaCBzZXJ2aWNlIFwib3JnLndlYmtpdC53ZWJwdXNodGVzdGRhZW1v
bi5zZXJ2aWNlXCIgKERlZmF1bHQpXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1wcm9k
dWN0aW9uICAgICAgICAgICAgICAgQ29ubmVjdHMgdG8gbWFjaCBzZXJ2aWNlIFwiY29tLmFwcGxl
LndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlXCJcbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiICAt
LXN0cmVhbURlYnVnTWVzc2FnZXMgICAgICBTdHJlYW0gZGVidWcgbWVzc2FnZXMgZnJvbSB3ZWJw
dXNoZFxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC0tcmVjb25uZWN0ICAgICAgICAgICAg
ICAgIFJlY29ubmVjdCBhZnRlciBjb25uZWN0aW9uIGlzIGxvc3RcbiIpOwogICAgIGZwcmludGYo
c3RkZXJyLCAiXG4iKTsKIAogICAgIGV4aXQoLTEpOwpAQCAtNDUsNyArNDcsMTAgQEAgc3RhdGlj
IHZvaWQgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShOU1N0cmluZyAqbWVzc2FnZSkKIAogaW50IG1h
aW4oaW50LCBjb25zdCBjaGFyICoqKQogewotICAgIGJvb2wgcHJlZmVyVGVzdFNlcnZpY2UgPSB0
cnVlOworICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKKworICAgIGF1dG8gcHJlZmVy
VGVzdFNlcnZpY2UgPSBXZWJQdXNoVG9vbDo6UHJlZmVyVGVzdFNlcnZpY2U6OlllczsKKyAgICBh
dXRvIHJlY29ubmVjdCA9IFdlYlB1c2hUb29sOjpSZWNvbm5lY3Q6Ok5vOwogICAgIHN0ZDo6b3B0
aW9uYWw8V2ViUHVzaFRvb2w6OkFjdGlvbj4gYWN0aW9uOwogCiAgICAgQGF1dG9yZWxlYXNlcG9v
bCB7CkBAIC01NSwxMSArNjAsMTMgQEAgaW50IG1haW4oaW50LCBjb25zdCBjaGFyICoqKQogCiAg
ICAgICAgIGZvciAoTlNTdHJpbmcgKmFyZ3VtZW50IGluIFthcmd1bWVudHMgc3ViYXJyYXlXaXRo
UmFuZ2U6TlNNYWtlUmFuZ2UoMSwgYXJndW1lbnRzLmNvdW50IC0gMSldKSB7CiAgICAgICAgICAg
ICBpZiAoW2FyZ3VtZW50IGlzRXF1YWxUb1N0cmluZzpAIi0tcHJvZHVjdGlvbiJdKQotICAgICAg
ICAgICAgICAgIHByZWZlclRlc3RTZXJ2aWNlID0gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoW2Fy
Z3VtZW50IGlzRXF1YWxUb1N0cmluZzpAIi0tZGV2ZWxvcG1lbnQiXSkKLSAgICAgICAgICAgICAg
ICBwcmVmZXJUZXN0U2VydmljZSA9IHRydWU7CisgICAgICAgICAgICAgICAgcHJlZmVyVGVzdFNl
cnZpY2UgPSBXZWJQdXNoVG9vbDo6UHJlZmVyVGVzdFNlcnZpY2U6Ok5vOworICAgICAgICAgICAg
ZWxzZSBpZiAoW2FyZ3VtZW50IGlzRXF1YWxUb1N0cmluZzpAIi0tZGV2ZWxvcG1lbnQiXSkKKyAg
ICAgICAgICAgICAgICBwcmVmZXJUZXN0U2VydmljZSA9IFdlYlB1c2hUb29sOjpQcmVmZXJUZXN0
U2VydmljZTo6WWVzOwogICAgICAgICAgICAgZWxzZSBpZiAoW2FyZ3VtZW50IGlzRXF1YWxUb1N0
cmluZzpAIi0tc3RyZWFtRGVidWdNZXNzYWdlcyJdKQogICAgICAgICAgICAgICAgIGFjdGlvbiA9
IFdlYlB1c2hUb29sOjpBY3Rpb246OlN0cmVhbURlYnVnTWVzc2FnZXM7CisgICAgICAgICAgICBl
bHNlIGlmIChbYXJndW1lbnQgaXNFcXVhbFRvU3RyaW5nOkAiLS1yZWNvbm5lY3QiXSkKKyAgICAg
ICAgICAgICAgICByZWNvbm5lY3QgPSBXZWJQdXNoVG9vbDo6UmVjb25uZWN0OjpZZXM7CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkludmFsaWQgb3B0aW9uIHByb3ZpZGVkOiAlQCIsIGFy
Z3VtZW50XSk7CiAgICAgICAgIH0KQEAgLTY4LDcgKzc1LDcgQEAgaW50IG1haW4oaW50LCBjb25z
dCBjaGFyICoqKQogICAgIGlmICghYWN0aW9uKQogICAgICAgICBwcmludFVzYWdlQW5kVGVybWlu
YXRlKEAiTm8gYWN0aW9uIHByb3ZpZGVkIik7CiAKLSAgICBhdXRvIGNvbm5lY3Rpb24gPSBXZWJQ
dXNoVG9vbDo6Q29ubmVjdGlvbjo6Y3JlYXRlKCphY3Rpb24sIHByZWZlclRlc3RTZXJ2aWNlKTsK
KyAgICBhdXRvIGNvbm5lY3Rpb24gPSBXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y3JlYXRlKCph
Y3Rpb24sIHByZWZlclRlc3RTZXJ2aWNlLCByZWNvbm5lY3QpOwogICAgIGNvbm5lY3Rpb24tPmNv
bm5lY3RUb1NlcnZpY2UoKTsKIAogICAgIENGUnVuTG9vcFJ1bigpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRlYWJmZmJmYjRlOC4uZDE1OTZj
MTUwZmE4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTItMDYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgorCisgICAgICAgIHdlYnB1c2hkL3dlYnB1c2h0b29sIGRlYnVnZ2luZyBhZGRpdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzg2
NAorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKTogQWRhcHQgdG8gZGVidWcgbWVzc2FnZSBjaGFuZ2VzLgor
CiAyMDIxLTEyLTA2ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRh
dGUgR1BVIFByb2Nlc3MgZmVhdHVyZSBmbGFncwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tCmluZGV4IDdiYTFmMjQ3Zjc5
Ni4uNzNmNGMyOGY4OTUwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dlYlB1c2hEYWVtb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tCkBAIC0xODEsOSArMTgxLDE0IEBAIFRFU1Qo
V2ViUHVzaEQsIEJhc2ljQ29tbXVuaWNhdGlvbikKICAgICAgICAgaWYgKCFkZWJ1Z01lc3NhZ2Up
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYm9vbCBzdHJpbmdNYXRjaGVzID0gIXN0
cmNtcChkZWJ1Z01lc3NhZ2UsICJbd2VicHVzaGQgLSBUZXN0V2ViS2l0QVBJXSBUdXJuZWQgRGVi
dWcgTW9kZSBvbiIpOwotICAgICAgICBpZiAoIXN0cmluZ01hdGNoZXMpCi0gICAgICAgICAgICBz
dHJpbmdNYXRjaGVzID0gIXN0cmNtcChkZWJ1Z01lc3NhZ2UsICJbd2VicHVzaGQgLSBjb20uYXBw
bGUuV2ViS2l0LlRlc3RXZWJLaXRBUEldIFR1cm5lZCBEZWJ1ZyBNb2RlIG9uIik7CisgICAgICAg
IE5TU3RyaW5nICpuc01lc3NhZ2UgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6ZGVi
dWdNZXNzYWdlXTsKKworICAgICAgICAvLyBJZ25vcmUgcG9zc2libGUgY29ubmVjdGlvbnMvbWVz
c2FnZXMgZnJvbSB3ZWJwdXNodG9vbAorICAgICAgICBpZiAoW25zTWVzc2FnZSBoYXNQcmVmaXg6
QCJbd2VicHVzaHRvb2wgIl0pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYm9vbCBz
dHJpbmdNYXRjaGVzID0gW25zTWVzc2FnZSBoYXNQcmVmaXg6QCJbY29tLmFwcGxlLldlYktpdC5U
ZXN0V2ViS2l0QVBJIl0gfHwgW25zTWVzc2FnZSBoYXNQcmVmaXg6QCJbVGVzdFdlYktpdEFQSSJd
OworICAgICAgICBzdHJpbmdNYXRjaGVzID0gc3RyaW5nTWF0Y2hlcyAmJiBbbnNNZXNzYWdlIGhh
c1N1ZmZpeDpAIiBUdXJuZWQgRGVidWcgTW9kZSBvbiJdOwogCiAgICAgICAgIEVYUEVDVF9UUlVF
KHN0cmluZ01hdGNoZXMpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>