<?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>142568</bug_id>
          
          <creation_ts>2015-03-10 22:01:39 -0700</creation_ts>
          <short_desc>Add basic support for BOL and EOL assertions to the URL Filter parser</short_desc>
          <delta_ts>2015-03-11 14:09:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>achristensen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1076227</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-10 22:01:39 -0700</bug_when>
    <thetext>Add basic support for BOL and EOL assertions to the URL Filter parser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076229</commentid>
    <comment_count>1</comment_count>
      <attachid>248397</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-10 22:11:25 -0700</bug_when>
    <thetext>Created attachment 248397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076409</commentid>
    <comment_count>2</comment_count>
      <attachid>248442</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-11 12:54:34 -0700</bug_when>
    <thetext>Created attachment 248442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076415</commentid>
    <comment_count>3</comment_count>
      <attachid>248442</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-03-11 13:16:57 -0700</bug_when>
    <thetext>Comment on attachment 248442
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076428</commentid>
    <comment_count>4</comment_count>
      <attachid>248442</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-11 14:09:17 -0700</bug_when>
    <thetext>Comment on attachment 248442
Patch

Clearing flags on attachment: 248442

Committed r181405: &lt;http://trac.webkit.org/changeset/181405&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076429</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-11 14:09:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248397</attachid>
            <date>2015-03-10 22:11:25 -0700</date>
            <delta_ts>2015-03-11 12:54:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142568-20150310221100.patch</filename>
            <type>text/plain</type>
            <size>20471</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM1MTUwNjdmOGNhMmI1
M2NhZWFhNTQwMmQyYTEwNjZiMTZjNWU0OC4uYzlkMGNiOGNkMDYxNWM4NGZhNTI4YmQ1OThmYjMz
NjlmZjZmMjUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE1LTAzLTEwICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBz
dXBwb3J0IGZvciBCT0wgYW5kIEVPTCBhc3NlcnRpb25zIHRvIHRoZSBVUkwgRmlsdGVyIHBhcnNl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNTY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIGhlYXZpbHkgcmVzdHJpY3RlZCBzdXBwb3J0IGZvciBCT0wgYW5kIEVPTCB0byB0
aGUgVVJMIGZpbHRlciBwYXJzZXIuCisKKyAgICAgICAgQm90aCBhc3NlcnRpb25zIG11c3QgYmUg
dGhlIGZpcnN0L2xhc3QgdGVybSBvZiB0aGVpciBwYXR0ZXJuLiBBbnkgYWR2YW5jZWQgY29tYmlu
YXRpb24KKyAgICAgICAgcmVzdWx0cyBpbiBhIHBhcnNpbmcgZXJyb3IuCisKKyAgICAgICAgVGhl
IEJPTCBhc3NlcnRpb24gaXMgZWFzeSB0byByZXByZXNlbnQ6IGN1cnJlbnRseSwgYW55IHBhdHRl
cm4gc3RhcnRzIGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgICAgb2YgYSBsaW5lIGFuZCB0aGUgTkZB
IGFyZSBnZW5lcmF0ZWQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgSSBoYWQgdHdvIG9wdGlvbnMg
dG8gcmVwcmVzZW50IHRoZSBFT0wgYXNzZXJ0aW9uOgorICAgICAgICAxKSBBZGQgYSBuZXcgc3Bl
Y2lhbCB0cmFuc2l0aW9uIG9uIEVPTC4KKyAgICAgICAgMikgQWRkIGEgbmV3IHZlY3RvciBvZiBh
Y3Rpb25zIHRvIHRoZSBzdGF0ZXMsIGNvbmRpdGlvbmFsIHRvIHRoZSBFT0wgaW5wdXQuCisKKyAg
ICAgICAgSSBwaWNrZWQgdGhlIGZpcnN0IG9wdGlvbiB0byBhdm9pZCBncm93aW5nIGV2ZXJ5IHN0
YXRlIGJ5IGEgdmVjdG9yCisgICAgICAgIHRoYXQgd291bGQgYmUgZW1wdHkgaW4gdGhlIHZhc3Qg
bWFqb3JpdHkgb2YgY2FzZXMuCisKKworICAgICAgICBGb3IgbWF0Y2hpbmcgdGhhdCwgSSBhZGRl
ZCBhIG5ldyBraW5kIG9mIGluc3RydWN0aW9uOiBBcHBlbmRBY3Rpb25zT25JbnB1dEVuZC4KKyAg
ICAgICAgVGhlIHdheSBpdCB3b3JrcyBpczoKKyAgICAgICAgICAgIElmIGEgbm9kZSBBIGhhcyBh
IHRyYW5zaXRpb24gb24gemVybyB0byBhIG5vZGUgQi4KKyAgICAgICAgICAgICAgICAtIkJvcnJv
dyIgdGhlIGFjdGlvbnMgZnJvbSB0aGUgTm9kZSBCIGluIE5vZGUgQS4KKyAgICAgICAgICAgICAg
ICAtTWFrZSB0aG9zZSBhY3Rpb25zIGNvbmRpdGlvbmFsIG9uIGJlaW5nIGF0IHRoZSBpbnB1dCBl
bmQuCisKKyAgICAgICAgVGhlIG90aGVyIG9wdGlvbnMgd2VyZToKKyAgICAgICAgLUFkZCBhIHRy
YW5zaXRpb24gb24gemVybyBhdCB0aGUgZW5kIG9mIGV2ZXJ5IG5vZGUsIGJlZm9yZSB0aGUgZmFs
bGJhY2sgdHJhbnNpdGlvbi4KKyAgICAgICAgIChleHBlbnNpdmUgc3BhY2Ugd2lzZSkuCisgICAg
ICAgIC1BZGQgbGVuZ3RoIGhhbmRsaW5nIHRvIHRoZSBieXRlY29kZSBpbnN0ZWFkIG9mIHRoZSBp
bnRlcnByZXRlci4KKyAgICAgICAgIFdoaWxlIHRoaXMgbWF5IGJlIGJlbmVmaWNpYWwgZm9yIGVh
cmx5IGV4aXQsIGl0IHdvdWxkIHJlcXVpcmUgYSBoZWF2eSByZWZhY3RvcmluZworICAgICAgICAg
b2YgdGhlIERGQSBCeXRlY29kZSBjb21waWxlciB0byB2YWxpZGF0ZSB0aGUgcGVyZm9tYW5jZS4K
KworICAgICAgICBJIHdlbnQgd2l0aCB0aGUgZWFzaWVzdCBvcHRpb25zIDopCisKKyAgICAgICAg
KiBjb250ZW50ZXh0ZW5zaW9ucy9ERkEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM6OnByaW50VHJhbnNpdGlvbnMpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25z
L0RGQUJ5dGVjb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6aW5z
dHJ1Y3Rpb25TaXplV2l0aEFyZ3VtZW50cyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMv
REZBQnl0ZWNvZGVDb21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5z
aW9uczo6REZBQnl0ZWNvZGVDb21waWxlcjo6ZW1pdEFwcGVuZEFjdGlvbnNPbklucHV0RW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpERkFCeXRlY29kZUNvbXBpbGVy
Ojpjb21waWxlTm9kZSk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvREZBQnl0ZWNvZGVD
b21waWxlci5oOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0RGQUJ5dGVjb2RlSW50ZXJw
cmV0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVj
b2RlSW50ZXJwcmV0ZXI6OmludGVycHJldCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMv
REZBTm9kZS5oOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL05GQS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TkZBOjphZGRUcmFuc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpORkE6OmFkZEVwc2lsb25UcmFuc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpwcmludFRyYW5zaXRpb25z
KToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9ORkFOb2RlLmg6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvTkZBVG9ERkEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM6Ok5GQVRvREZBOjpjb252ZXJ0KToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9u
cy9VUkxGaWx0ZXJQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6OlRlcm06OlRlcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlRl
cm06OmlzRW5kT2ZMaW5lQXNzZXJ0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRl
bnNpb25zOjpHcmFwaEJ1aWxkZXI6OmFzc2VydGlvbkJPTCk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50RXh0ZW5zaW9uczo6R3JhcGhCdWlsZGVyOjphc3NlcnRpb25FT0wpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkdyYXBoQnVpbGRlcjo6c2lua0Zsb2F0aW5nVGVy
bUlmTmVjZXNzYXJ5KToKKwogMjAxNS0wMy0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSB1bnNpZ25lZCBmb3IgSGFzaFNldCBzaXpl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQS5jcHAKaW5kZXggMjNjNjIyMWNj
NWRkNTk5NmM1MzIwMWQ2MmFiNGU3NzVlZGI0YmM3ZS4uMjY4NmU1YjU5NTQzODEzNTNkMDRjOTky
MDMxNmU1Y2U2N2I3OTFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvREZBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkEu
Y3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIHByaW50UmFuZ2UoYm9vbCBmaXJzdFJh
bmdlLCBjaGFyIHJhbmdlU3RhcnQsIGNoYXIgcmFuZ2VFbmQpCiBzdGF0aWMgdm9pZCBwcmludFRy
YW5zaXRpb25zKGNvbnN0IFZlY3RvcjxERkFOb2RlPiYgZ3JhcGgsIHVuc2lnbmVkIHNvdXJjZU5v
ZGVJZCkKIHsKICAgICBjb25zdCBERkFOb2RlJiBzb3VyY2VOb2RlID0gZ3JhcGhbc291cmNlTm9k
ZUlkXTsKLSAgICBjb25zdCBIYXNoTWFwPHVpbnQxNl90LCB1bnNpZ25lZD4mIHRyYW5zaXRpb25z
ID0gc291cmNlTm9kZS50cmFuc2l0aW9uczsKKyAgICBjb25zdCBERkFOb2RlVHJhbnNpdGlvbnMm
IHRyYW5zaXRpb25zID0gc291cmNlTm9kZS50cmFuc2l0aW9uczsKIAogICAgIGlmICh0cmFuc2l0
aW9ucy5pc0VtcHR5KCkgJiYgIXNvdXJjZU5vZGUuaGFzRmFsbGJhY2tUcmFuc2l0aW9uKQogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9ERkFCeXRlY29kZS5oIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBQnl0
ZWNvZGUuaAppbmRleCBhZjU4NzQ5NjYyYWY4Mjg4OGJlNGRjN2I4OGQ5NTk0MDU0ZDAwNWJkLi44
YTgxOGRlOGIxNjEzM2EwOGQ1MzFiZjc1NzZmZmI4ZTFmMDY5OTNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5dGVjb2RlLmgKQEAgLTQ1LDYgKzQ1LDExIEBA
IGVudW0gY2xhc3MgREZBQnl0ZWNvZGVJbnN0cnVjdGlvbiA6IHVpbnQ4X3QgewogICAgIC8vIFRo
ZSBhY3Rpb24gdG8gYXBwZW5kICg0IGJ5dGVzKS4KICAgICBBcHBlbmRBY3Rpb24sCiAKKyAgICAv
LyBBcHBlbmRBY3Rpb25zT25JbnB1dEVuZCBhcHBlbmQgYW4gYWN0aW9ucyBpZiB0aGUgY3VycmVu
dCBzdGF0ZSBpcyBhdCB0aGUgZW5kCisgICAgLy8gb2YgdGhlIGlucHV0LgorICAgIC8vIFRoZXJl
IGlzIG9ubHkgb25lIGFyZ3VtZW50LCB0aGUgYWN0aW9uIHRvIGFwcGVuZCAoNCBieXRlcykuCisg
ICAgQXBwZW5kQWN0aW9uc09uSW5wdXRFbmQsCisKICAgICAvLyBUZXJtaW5hdGUgaGFzIG5vIGFy
Z3VtZW50cy4KICAgICBUZXJtaW5hdGUsCiAKQEAgLTYwLDYgKzY1LDggQEAgc3RhdGljIGlubGlu
ZSBzaXplX3QgaW5zdHJ1Y3Rpb25TaXplV2l0aEFyZ3VtZW50cyhERkFCeXRlY29kZUluc3RydWN0
aW9uIGluc3RydWMKICAgICAgICAgcmV0dXJuIHNpemVvZihERkFCeXRlY29kZUluc3RydWN0aW9u
KSArIHNpemVvZih1aW50OF90KSArIHNpemVvZih1bnNpZ25lZCk7CiAgICAgY2FzZSBERkFCeXRl
Y29kZUluc3RydWN0aW9uOjpBcHBlbmRBY3Rpb246CiAgICAgICAgIHJldHVybiBzaXplb2YoREZB
Qnl0ZWNvZGVJbnN0cnVjdGlvbikgKyBzaXplb2YodW5zaWduZWQpOworICAgIGNhc2UgREZBQnl0
ZWNvZGVJbnN0cnVjdGlvbjo6QXBwZW5kQWN0aW9uc09uSW5wdXRFbmQ6CisgICAgICAgIHJldHVy
biBzaXplb2YoREZBQnl0ZWNvZGVJbnN0cnVjdGlvbikgKyBzaXplb2YodW5zaWduZWQpOwogICAg
IGNhc2UgREZBQnl0ZWNvZGVJbnN0cnVjdGlvbjo6VGVybWluYXRlOgogICAgICAgICByZXR1cm4g
c2l6ZW9mKERGQUJ5dGVjb2RlSW5zdHJ1Y3Rpb24pOwogICAgIGNhc2UgREZBQnl0ZWNvZGVJbnN0
cnVjdGlvbjo6SnVtcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0RGQUJ5dGVjb2RlQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvREZBQnl0ZWNvZGVDb21waWxlci5jcHAKaW5kZXggYmRjZGVjOTY1ZTRhNDBmNGE1ZjVj
N2QwZWVjZTI4NWU2YWFlYzQzNy4uMjgyZWRiZWRlOTZmZTBmN2I4NmRmYmUwZDdkZmFjYjlmOTk3
OGJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBQnl0
ZWNvZGVDb21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
REZBQnl0ZWNvZGVDb21waWxlci5jcHAKQEAgLTUzLDYgKzUzLDEyIEBAIHZvaWQgREZBQnl0ZWNv
ZGVDb21waWxlcjo6ZW1pdEFwcGVuZEFjdGlvbih1bnNpZ25lZCBhY3Rpb24pCiAgICAgYXBwZW5k
PHVuc2lnbmVkPihtX2J5dGVjb2RlLCBhY3Rpb24pOwogfQogCit2b2lkIERGQUJ5dGVjb2RlQ29t
cGlsZXI6OmVtaXRBcHBlbmRBY3Rpb25zT25JbnB1dEVuZCh1bnNpZ25lZCBhY3Rpb24pCit7Cisg
ICAgYXBwZW5kPERGQUJ5dGVjb2RlSW5zdHJ1Y3Rpb24+KG1fYnl0ZWNvZGUsIERGQUJ5dGVjb2Rl
SW5zdHJ1Y3Rpb246OkFwcGVuZEFjdGlvbnNPbklucHV0RW5kKTsKKyAgICBhcHBlbmQ8dW5zaWdu
ZWQ+KG1fYnl0ZWNvZGUsIGFjdGlvbik7Cit9CisKIHZvaWQgREZBQnl0ZWNvZGVDb21waWxlcjo6
ZW1pdEp1bXAodW5zaWduZWQgZGVzdGluYXRpb25Ob2RlSW5kZXgpCiB7CiAgICAgYXBwZW5kPERG
QUJ5dGVjb2RlSW5zdHJ1Y3Rpb24+KG1fYnl0ZWNvZGUsIERGQUJ5dGVjb2RlSW5zdHJ1Y3Rpb246
Okp1bXApOwpAQCAtODIsNyArODgsMTQgQEAgdm9pZCBERkFCeXRlY29kZUNvbXBpbGVyOjpjb21w
aWxlTm9kZSh1bnNpZ25lZCBpbmRleCkKIAogICAgIGZvciAodWludDY0X3QgYWN0aW9uIDogbm9k
ZS5hY3Rpb25zKQogICAgICAgICBlbWl0QXBwZW5kQWN0aW9uKHN0YXRpY19jYXN0PHVuc2lnbmVk
PihhY3Rpb24pKTsKLSAgICAKKworICAgIGF1dG8gdHJhbnNpdGlvbk9uWmVybyA9IG5vZGUudHJh
bnNpdGlvbnMuZmluZCgwKTsKKyAgICBpZiAodHJhbnNpdGlvbk9uWmVybyAhPSBub2RlLnRyYW5z
aXRpb25zLmVuZCgpKSB7CisgICAgICAgIGNvbnN0IERGQU5vZGUmIHRhcmdldE5vZGVPblplcm8g
PSBtX2RmYS5ub2RlQXQodHJhbnNpdGlvbk9uWmVyby0+dmFsdWUpOworICAgICAgICBmb3IgKHVp
bnQ2NF90IGFjdGlvbiA6IHRhcmdldE5vZGVPblplcm8uYWN0aW9ucykKKyAgICAgICAgICAgIGVt
aXRBcHBlbmRBY3Rpb25zT25JbnB1dEVuZChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oYWN0aW9uKSk7
CisgICAgfQorCiAgICAgZm9yIChjb25zdCBhdXRvJiB0cmFuc2l0aW9uIDogbm9kZS50cmFuc2l0
aW9ucykKICAgICAgICAgZW1pdENoZWNrVmFsdWUodHJhbnNpdGlvbi5rZXksIHRyYW5zaXRpb24u
dmFsdWUpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvREZBQnl0ZWNvZGVDb21waWxlci5oIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvREZBQnl0ZWNvZGVDb21waWxlci5oCmluZGV4IDIzZmE4YjBmOGFkYzc1NTc1ZGQxMGI3MDk3
NTA4MzEyNzFlYTU0Y2IuLjk0YWUzODQ1NWU1ODNiYmM5OWFjNWYwYmJhYTljZmExNjE5NTYxNTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5dGVjb2Rl
Q29tcGlsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRl
Y29kZUNvbXBpbGVyLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbXBp
bGVOb2RlKHVuc2lnbmVkKTsKIAogICAgIHZvaWQgZW1pdEFwcGVuZEFjdGlvbih1bnNpZ25lZCk7
CisgICAgdm9pZCBlbWl0QXBwZW5kQWN0aW9uc09uSW5wdXRFbmQodW5zaWduZWQpOwogICAgIHZv
aWQgZW1pdEp1bXAodW5zaWduZWQgZGVzdGluYXRpb25Ob2RlSW5kZXgpOwogICAgIHZvaWQgZW1p
dENoZWNrVmFsdWUodWludDhfdCB2YWx1ZSwgdW5zaWduZWQgZGVzdGluYXRpb25Ob2RlSW5kZXgp
OwogICAgIHZvaWQgZW1pdFRlcm1pbmF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvREZBQnl0ZWNvZGVJbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVycHJldGVyLmNwcAppbmRleCA3
NGU3ZGY2ZDU0YmJmZmZhZGMzOGQ0MmUzYWU1MTE3ZGEzZWQzMDAzLi43NmM5ZmUyMmI4YjA2YzUy
YWEzNDE4NmIxMmM5ZDA4ZTQ0ZGU4NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVycHJldGVyLmNwcApAQCAtNzks
NiArNzksMTIgQEAgREZBQnl0ZWNvZGVJbnRlcnByZXRlcjo6QWN0aW9ucyBERkFCeXRlY29kZUlu
dGVycHJldGVyOjppbnRlcnByZXQoY29uc3QgQ1N0cmluZyYKICAgICAgICAgICAgIHByb2dyYW1D
b3VudGVyICs9IGluc3RydWN0aW9uU2l6ZVdpdGhBcmd1bWVudHMoREZBQnl0ZWNvZGVJbnN0cnVj
dGlvbjo6QXBwZW5kQWN0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2Ug
REZBQnl0ZWNvZGVJbnN0cnVjdGlvbjo6QXBwZW5kQWN0aW9uc09uSW5wdXRFbmQ6CisgICAgICAg
ICAgICBpZiAoIXVybFt1cmxJbmRleF0pCisgICAgICAgICAgICAgICAgYWN0aW9ucy5hZGQoc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KGdldEJpdHM8dW5zaWduZWQ+KG1fYnl0ZWNvZGUsIG1fYnl0ZWNv
ZGVMZW5ndGgsIHByb2dyYW1Db3VudGVyICsgc2l6ZW9mKERGQUJ5dGVjb2RlKSkpKTsKKyAgICAg
ICAgICAgIHByb2dyYW1Db3VudGVyICs9IGluc3RydWN0aW9uU2l6ZVdpdGhBcmd1bWVudHMoREZB
Qnl0ZWNvZGVJbnN0cnVjdGlvbjo6QXBwZW5kQWN0aW9uc09uSW5wdXRFbmQpOworICAgICAgICAg
ICAgYnJlYWs7CisKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IC8vIEludmFsaWQgYnl0ZWNvZGUuCiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQU5vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQU5vZGUuaAppbmRleCBkOGU2YjUxZDViMWEyYTM0
MTFlNmU4MGMyMGYxZTJmYTdmNjdlN2RjLi44NDhhOTNmYzUyOTE3Mzc3MjFiNzU2OWJkZjFmZWFh
ZTI4ZDc2ZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9E
RkFOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBTm9kZS5o
CkBAIC0zOCw5ICszOCwxMiBAQCBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewogCiAvLyBB
IERGQU5vZGUgYWJzdHJhY3QgdGhlIHRyYW5zaXRpb24gdGFibGUgb3V0IG9mIGEgREZBIHN0YXRl
LiBJZiBhIHN0YXRlIGlzIGFjY2VwdGluZywgdGhlIERGQU5vZGUgYWxzbyBoYXZlCiAvLyB0aGUg
YWN0aW9ucyBmb3IgdGhhdCBzdGF0ZS4KKwordHlwZWRlZiBIYXNoTWFwPHVpbnQxNl90LCB1bnNp
Z25lZCwgRGVmYXVsdEhhc2g8dWludDE2X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9L
ZXlIYXNoVHJhaXRzPHVpbnQxNl90Pj4gREZBTm9kZVRyYW5zaXRpb25zOworCiBjbGFzcyBERkFO
b2RlIHsKIHB1YmxpYzoKLSAgICBIYXNoTWFwPHVpbnQxNl90LCB1bnNpZ25lZD4gdHJhbnNpdGlv
bnM7CisgICAgREZBTm9kZVRyYW5zaXRpb25zIHRyYW5zaXRpb25zOwogICAgIGJvb2wgaGFzRmFs
bGJhY2tUcmFuc2l0aW9uID0gZmFsc2U7CiAgICAgdW5zaWduZWQgZmFsbGJhY2tUcmFuc2l0aW9u
OwogICAgIFZlY3Rvcjx1aW50NjRfdD4gYWN0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL05GQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9ORkEuY3BwCmluZGV4IGM3OTFiYjQzNDY4YjRkZmQ0MTA4OTUxY2ViOGE4N2IxZWE2
ZTFlODIuLjdjZjI2MTE0OWM3MDI5ZDEyZTU2NmMwOTgxODk3NDQ2MmY0MTM5NzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL05GQS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvTkZBLmNwcApAQCAtNTEsMTMgKzUxLDEyIEBAIHZv
aWQgTkZBOjphZGRUcmFuc2l0aW9uKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBjaGFyIGNo
YXJhY3RlcikKIHsKICAgICBBU1NFUlQoZnJvbSA8IG1fbm9kZXMuc2l6ZSgpKTsKICAgICBBU1NF
UlQodG8gPCBtX25vZGVzLnNpemUoKSk7Ci0gICAgQVNTRVJUKGNoYXJhY3Rlcik7CiAKICAgICBO
RkFOb2RlJiBmcm9tTm9kZSA9IG1fbm9kZXNbZnJvbV07CiAgICAgaWYgKGZyb21Ob2RlLnRyYW5z
aXRpb25zT25BbnlDaGFyYWN0ZXIuY29udGFpbnModG8pKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBhdXRvIGFkZFJlc3VsdCA9IG1fbm9kZXNbZnJvbV0udHJhbnNpdGlvbnMuYWRkKGNoYXJhY3Rl
ciwgSGFzaFNldDx1bnNpZ25lZCwgRGVmYXVsdEhhc2g8dW5zaWduZWQ+OjpIYXNoLCBXVEY6OlVu
c2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVuc2lnbmVkPj4oKSk7CisgICAgYXV0byBhZGRS
ZXN1bHQgPSBtX25vZGVzW2Zyb21dLnRyYW5zaXRpb25zLmFkZChjaGFyYWN0ZXIsIE5GQU5vZGVJ
bmRleFNldCgpKTsKICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFkZCh0byk7CiB9CiAK
QEAgLTY2LDcgKzY1LDcgQEAgdm9pZCBORkE6OmFkZEVwc2lsb25UcmFuc2l0aW9uKHVuc2lnbmVk
IGZyb20sIHVuc2lnbmVkIHRvKQogICAgIEFTU0VSVChmcm9tIDwgbV9ub2Rlcy5zaXplKCkpOwog
ICAgIEFTU0VSVCh0byA8IG1fbm9kZXMuc2l6ZSgpKTsKIAotICAgIGF1dG8gYWRkUmVzdWx0ID0g
bV9ub2Rlc1tmcm9tXS50cmFuc2l0aW9ucy5hZGQoZXBzaWxvblRyYW5zaXRpb25DaGFyYWN0ZXIs
IEhhc2hTZXQ8dW5zaWduZWQsIERlZmF1bHRIYXNoPHVuc2lnbmVkPjo6SGFzaCwgV1RGOjpVbnNp
Z25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1bnNpZ25lZD4+KCkpOworICAgIGF1dG8gYWRkUmVz
dWx0ID0gbV9ub2Rlc1tmcm9tXS50cmFuc2l0aW9ucy5hZGQoZXBzaWxvblRyYW5zaXRpb25DaGFy
YWN0ZXIsIE5GQU5vZGVJbmRleFNldCgpKTsKICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVl
LmFkZCh0byk7CiB9CiAKQEAgLTEzMywxMyArMTMyLDEzIEBAIHN0YXRpYyB2b2lkIHByaW50UmFu
Z2UoYm9vbCBmaXJzdFJhbmdlLCB1aW50MTZfdCByYW5nZVN0YXJ0LCB1aW50MTZfdCByYW5nZUVu
ZCwKIHN0YXRpYyB2b2lkIHByaW50VHJhbnNpdGlvbnMoY29uc3QgVmVjdG9yPE5GQU5vZGU+JiBn
cmFwaCwgdW5zaWduZWQgc291cmNlTm9kZSwgdWludDE2X3QgZXBzaWxvblRyYW5zaXRpb25DaGFy
YWN0ZXIpCiB7CiAgICAgY29uc3QgTkZBTm9kZSYgbm9kZSA9IGdyYXBoW3NvdXJjZU5vZGVdOwot
ICAgIGNvbnN0IEhhc2hNYXA8dWludDE2X3QsIEhhc2hTZXQ8dW5zaWduZWQsIERlZmF1bHRIYXNo
PHVuc2lnbmVkPjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1bnNp
Z25lZD4+PiYgdHJhbnNpdGlvbnMgPSBub2RlLnRyYW5zaXRpb25zOworICAgIGNvbnN0IEhhc2hN
YXA8dWludDE2X3QsIE5GQU5vZGVJbmRleFNldCwgRGVmYXVsdEhhc2g8dWludDE2X3Q+OjpIYXNo
LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQxNl90Pj4mIHRyYW5zaXRp
b25zID0gbm9kZS50cmFuc2l0aW9uczsKIAotICAgIEhhc2hNYXA8dW5zaWduZWQsIEhhc2hTZXQ8
dWludDE2X3Q+LCBEZWZhdWx0SGFzaDx1bnNpZ25lZD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRo
WmVyb0tleUhhc2hUcmFpdHM8dW5zaWduZWQ+PiB0cmFuc2l0aW9uc1BlclRhcmdldDsKKyAgICBI
YXNoTWFwPHVuc2lnbmVkLCBIYXNoU2V0PHVpbnQxNl90LCBEZWZhdWx0SGFzaDx1aW50MTZfdD46
Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDE2X3Q+PiwgRGVm
YXVsdEhhc2g8dW5zaWduZWQ+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJh
aXRzPHVuc2lnbmVkPj4gdHJhbnNpdGlvbnNQZXJUYXJnZXQ7CiAKICAgICBmb3IgKGNvbnN0IGF1
dG8mIHRyYW5zaXRpb24gOiB0cmFuc2l0aW9ucykgewogICAgICAgICBmb3IgKHVuc2lnbmVkIHRh
cmdldE5vZGUgOiB0cmFuc2l0aW9uLnZhbHVlKSB7Ci0gICAgICAgICAgICB0cmFuc2l0aW9uc1Bl
clRhcmdldC5hZGQodGFyZ2V0Tm9kZSwgSGFzaFNldDx1aW50MTZfdD4oKSk7CisgICAgICAgICAg
ICB0cmFuc2l0aW9uc1BlclRhcmdldC5hZGQodGFyZ2V0Tm9kZSwgSGFzaFNldDx1aW50MTZfdCwg
RGVmYXVsdEhhc2g8dWludDE2X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNo
VHJhaXRzPHVpbnQxNl90Pj4oKSk7CiAgICAgICAgICAgICB0cmFuc2l0aW9uc1BlclRhcmdldC5m
aW5kKHRhcmdldE5vZGUpLT52YWx1ZS5hZGQodHJhbnNpdGlvbi5rZXkpOwogICAgICAgICB9CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvTkZBTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvTkZBTm9kZS5oCmluZGV4IDc1
YTM1NDkwNTA5NGZlMzg2MTg1NmQ5ODZiMDIyNjZjMTQ2NmI4OTQuLmZmNzEwNTBjMDAzY2VhYTRl
ODgyZjljMDIzNTU0ZWU4NjExNmQxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL05GQU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5z
aW9ucy9ORkFOb2RlLmgKQEAgLTM4LDEwICszOCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBu
YW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewogCiAvLyBBIE5GQU5vZGUgYWJzdHJhY3QgdGhl
IHRyYW5zaXRpb24gdGFibGUgb3V0IG9mIGEgTkZBIHN0YXRlLgorCit0eXBlZGVmIEhhc2hTZXQ8
dW5zaWduZWQsIERlZmF1bHRIYXNoPHVuc2lnbmVkPjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGha
ZXJvS2V5SGFzaFRyYWl0czx1bnNpZ25lZD4+IE5GQU5vZGVJbmRleFNldDsKK3R5cGVkZWYgSGFz
aE1hcDx1aW50MTZfdCwgTkZBTm9kZUluZGV4U2V0LCBEZWZhdWx0SGFzaDx1aW50MTZfdD46Okhh
c2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDE2X3Q+PiBORkFOb2Rl
VHJhbnNpdGlvbnM7CisKIGNsYXNzIE5GQU5vZGUgewogcHVibGljOgotICAgIEhhc2hNYXA8dWlu
dDE2X3QsIEhhc2hTZXQ8dW5zaWduZWQsIERlZmF1bHRIYXNoPHVuc2lnbmVkPjo6SGFzaCwgV1RG
OjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1bnNpZ25lZD4+PiB0cmFuc2l0aW9uczsK
LSAgICBIYXNoU2V0PHVuc2lnbmVkLCBEZWZhdWx0SGFzaDx1bnNpZ25lZD46Okhhc2gsIFdURjo6
VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dW5zaWduZWQ+PiB0cmFuc2l0aW9uc09uQW55
Q2hhcmFjdGVyOworICAgIEhhc2hNYXA8dWludDE2X3QsIE5GQU5vZGVJbmRleFNldCwgRGVmYXVs
dEhhc2g8dWludDE2X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRz
PHVpbnQxNl90Pj4gdHJhbnNpdGlvbnM7CisgICAgTkZBTm9kZUluZGV4U2V0IHRyYW5zaXRpb25z
T25BbnlDaGFyYWN0ZXI7CiAKICAgICBWZWN0b3I8dWludDY0X3Q+IGZpbmFsUnVsZUlkczsKICNp
ZiBDT05URU5UX0VYVEVOU0lPTlNfU1RBVEVfTUFDSElORV9ERUJVR0dJTkcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL05GQVRvREZBLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL05GQVRvREZBLmNwcAppbmRleCBlNWZhMjBkODQ2ZDcy
ODI2NThlM2JiYzJmMTNlZjVlOTc5YjkwYjgyLi5iODA4Mzg3MjMwYTg3YWMxZDhkZTZmY2ZjNGNi
ZDk0YjBjMjgzYWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9ORkFUb0RGQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvTkZB
VG9ERkEuY3BwCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9ucyB7
CiAKIC8vIEZJWE1FOiBzZXQgYSBiZXR0ZXIgaW5pdGlhbCBzaXplLgogLy8gRklYTUU6IGluY2x1
ZGUgdGhlIGhhc2ggaW5zaWRlIE5vZGVJZFNldC4KLXR5cGVkZWYgSGFzaFNldDx1bnNpZ25lZCwg
RGVmYXVsdEhhc2g8dW5zaWduZWQ+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNo
VHJhaXRzPHVuc2lnbmVkPj4gTm9kZUlkU2V0OwordHlwZWRlZiBORkFOb2RlSW5kZXhTZXQgTm9k
ZUlkU2V0OwogCiBzdGF0aWMgaW5saW5lIHZvaWQgZXBzaWxvbkNsb3N1cmVFeGNsdWRpbmdTZWxm
KGNvbnN0IFZlY3RvcjxORkFOb2RlPiYgbmZhR3JhcGgsIHVuc2lnbmVkIG5vZGVJZCwgdW5zaWdu
ZWQgZXBzaWxvblRyYW5zaXRpb25DaGFyYWN0ZXIsIFZlY3Rvcjx1bnNpZ25lZD4mIG91dHB1dCkK
IHsKQEAgLTM2NSw3ICszNjUsNiBAQCBERkEgTkZBVG9ERkE6OmNvbnZlcnQoTkZBJiBuZmEpCiAg
ICAgICAgIE5vZGVJZFNldCBzZXRGYWxsYmFja1RyYW5zaXRpb247CiAgICAgICAgIHBvcHVsYXRl
VHJhbnNpdGlvbnModHJhbnNpdGlvbnNGcm9tQ2xvc2VkU2V0LCBzZXRGYWxsYmFja1RyYW5zaXRp
b24sICp1bmlxdWVOb2RlSWRTZXRJbXBsLCBuZmFHcmFwaCwgbmZhTm9kZUNsb3N1cmVzKTsKIAot
ICAgICAgICAvLyBGSVhNRTogdGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgdHJhbnNpdGlvbiBvbiBr
ZXkgMC4KICAgICAgICAgZm9yICh1bnNpZ25lZCBrZXkgPSAwOyBrZXkgPCB0cmFuc2l0aW9uc0Zy
b21DbG9zZWRTZXQuc2l6ZSgpOyArK2tleSkgewogICAgICAgICAgICAgTm9kZUlkU2V0JiB0YXJn
ZXROb2RlU2V0ID0gdHJhbnNpdGlvbnNGcm9tQ2xvc2VkU2V0W2tleV07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCmluZGV4
IDRjN2Q5Y2VjNjE2M2U4OTkxNTkxZjUzY2JiZTNkOGM3M2Q4OTNkZDkuLmNmZGVmYjNkM2VmMTNm
YmE2YjI4ZGU0ZjBiZjExOGRiMjVlNzBjYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2VyLmNwcApAQCAtODEsNiArODEsMTMgQEAg
cHVibGljOgogICAgICAgICBuZXcgKE5vdE51bGwsICZtX2F0b21EYXRhLmdyb3VwKSBHcm91cCgp
OwogICAgIH0KIAorICAgIGVudW0gRW5kT2ZMaW5lQXNzZXJ0aW9uVGVybVRhZyB7IEVuZE9mTGlu
ZUFzc2VydGlvblRlcm0gfTsKKyAgICBleHBsaWNpdCBUZXJtKEVuZE9mTGluZUFzc2VydGlvblRl
cm1UYWcpCisgICAgICAgIDogVGVybShDaGFyYWN0ZXJTZXRUZXJtLCBmYWxzZSkKKyAgICB7Cisg
ICAgICAgIG1fYXRvbURhdGEuY2hhcmFjdGVyU2V0LmNoYXJhY3RlcnMuc2V0KDApOworICAgIH0K
KwogICAgIFRlcm0oY29uc3QgVGVybSYgb3RoZXIpCiAgICAgICAgIDogbV90ZXJtVHlwZShvdGhl
ci5tX3Rlcm1UeXBlKQogICAgICAgICAsIG1fcXVhbnRpZmllcihvdGhlci5tX3F1YW50aWZpZXIp
CkBAIC0yMTIsNiArMjE5LDExIEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAorICAgIGJv
b2wgaXNFbmRPZkxpbmVBc3NlcnRpb24oKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1f
dGVybVR5cGUgPT0gVGVybVR5cGU6OkNoYXJhY3RlclNldCAmJiBtX2F0b21EYXRhLmNoYXJhY3Rl
clNldC5jaGFyYWN0ZXJzLmJpdENvdW50KCkgPT0gMSAmJiBtX2F0b21EYXRhLmNoYXJhY3RlclNl
dC5jaGFyYWN0ZXJzLmdldCgwKTsKKyAgICB9CisKICAgICBUZXJtJiBvcGVyYXRvcj0oY29uc3Qg
VGVybSYgb3RoZXIpCiAgICAgewogICAgICAgICBkZXN0cm95KCk7CkBAIC00OTgsMTIgKzUxMCwy
MiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFzc2VydGlvbkJPTCgpCiAgICAgewotICAgICAgICBm
YWlsKEFTQ0lJTGl0ZXJhbCgiTGluZSBib3VuZGFyeSBhc3NlcnRpb25zIGFyZSBub3Qgc3VwcG9y
dGVkIHlldC4iKSk7CisgICAgICAgIGlmIChoYXNFcnJvcigpKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGlmIChtX3N1YnRyZWVTdGFydCAhPSBtX3N1YnRyZWVFbmQgfHwgbV9mbG9h
dGluZ1Rlcm0uaXNWYWxpZCgpIHx8ICFtX29wZW5Hcm91cHMuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgZmFpbChBU0NJSUxpdGVyYWwoIlN0YXJ0IG9mIGxpbmUgYXNzZXJ0aW9uIGNhbiBvbmx5IGFw
cGVhciBhcyB0aGUgZmlyc3QgdGVybSBpbiBhIGZpbHRlci4iKSk7CiAgICAgfQogCiAgICAgdm9p
ZCBhc3NlcnRpb25FT0woKQogICAgIHsKLSAgICAgICAgZmFpbChBU0NJSUxpdGVyYWwoIkxpbmUg
Ym91bmRhcnkgYXNzZXJ0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIikpOworICAgICAgICBp
ZiAoaGFzRXJyb3IoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBzaW5rRmxvYXRp
bmdUZXJtSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgQVNTRVJUKCFtX2Zsb2F0aW5nVGVybS5pc1Zh
bGlkKCkpOworCisgICAgICAgIG1fZmxvYXRpbmdUZXJtID0gVGVybShUZXJtOjpFbmRPZkxpbmVB
c3NlcnRpb25UZXJtKTsKICAgICB9CiAKICAgICB2b2lkIGFzc2VydGlvbldvcmRCb3VuZGFyeShi
b29sKQpAQCAtNjE0LDYgKzYzNiwxNSBAQCBwcml2YXRlOgogCiAgICAgICAgIEFTU0VSVChtX2xh
c3RQcmVmaXhUcmVlRW50cnkpOwogCisgICAgICAgIGlmIChtX2hhc1Byb2Nlc3NlZEVuZE9mTGlu
ZUFzc2VydGlvbikgeworICAgICAgICAgICAgZmFpbChBU0NJSUxpdGVyYWwoIlRoZSBlbmQgb2Yg
bGluZSBhc3NlcnRpb24gbXVzdCBiZSB0aGUgbGFzdCB0ZXJtIGluIGFuIGV4cHJlc3Npb24uIikp
OworICAgICAgICAgICAgbV9mbG9hdGluZ1Rlcm0gPSBUZXJtKCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9mbG9hdGluZ1Rlcm0uaXNFbmRPZkxpbmVB
c3NlcnRpb24oKSkKKyAgICAgICAgICAgIG1faGFzUHJvY2Vzc2VkRW5kT2ZMaW5lQXNzZXJ0aW9u
ID0gdHJ1ZTsKKwogICAgICAgICBpZiAoIW1fb3Blbkdyb3Vwcy5pc0VtcHR5KCkpIHsKICAgICAg
ICAgICAgIG1fb3Blbkdyb3Vwcy5sYXN0KCkuZXh0ZW5kR3JvdXBTdWJwYXR0ZXJuKG1fZmxvYXRp
bmdUZXJtKTsKICAgICAgICAgICAgIG1fZmxvYXRpbmdUZXJtID0gVGVybSgpOwpAQCAtNjU2LDYg
KzY4Nyw3IEBAIHByaXZhdGU6CiAgICAgUHJlZml4VHJlZUVudHJ5KiBtX2xhc3RQcmVmaXhUcmVl
RW50cnk7CiAgICAgRGVxdWU8VGVybT4gbV9vcGVuR3JvdXBzOwogICAgIFRlcm0gbV9mbG9hdGlu
Z1Rlcm07CisgICAgYm9vbCBtX2hhc1Byb2Nlc3NlZEVuZE9mTGluZUFzc2VydGlvbiB7IGZhbHNl
IH07CiAKICAgICBQcmVmaXhUcmVlRW50cnkqIG1fbmV3UHJlZml4U3VidHJlZVJvb3QgPSBudWxs
cHRyOwogICAgIFRlcm0gbV9uZXdQcmVmaXhTdGFyaW5nUG9pbnQ7CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDVlODRiNjJjYjQ5NGUyNWVmNGMx
MDJmOWUyNjY5NzRjYmZhNmU0My4uZDg3N2QyOTdhNjI0ZDdiYzgwMGM1NWMyYzRlNWQ0YTQwNzU5
OTA1MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDE1LTAzLTEwICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBzdXBwb3J0IGZvciBCT0wgYW5kIEVPTCBh
c3NlcnRpb25zIHRvIHRoZSBVUkwgRmlsdGVyIHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNTY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29udGVudEV4dGVuc2lvbnMuY3BwOgorCiAyMDE1LTAzLTEwICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIHVuc2lnbmVkIGZvciBIYXNo
U2V0IHNpemUuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29udGVudEV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0NvbnRlbnRFeHRlbnNpb25zLmNwcAppbmRleCBkOGEyNmJkNjA1NDYyNjNiMDA0Mzc5MDFiODk5
YWNhYjI2Mjc2Zjc2Li5lZTg1MWFhMWNjMTY4OTY2YWNkNzBjYTJjNmFiZTUzYmNlMDM0MzQ1IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVu
c2lvbnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50
RXh0ZW5zaW9ucy5jcHAKQEAgLTE1Nyw0ICsxNTcsNDIgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNp
b25UZXN0LCBQYXR0ZXJuTmVzdGVkR3JvdXBzKQogICAgIHRlc3RVUkwoYmFja2VuZCwgVVJMKFVS
TCgpLCAiaHR0cDovL3dlYmtpdC5vcmcvZm9iYXIiKSwgeyB9KTsKIH0KIAorY29uc3QgY2hhciog
c3RhcnRPZkxpbmVBc3NlcnRpb25GaWx0ZXIgPSAiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJs
b2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIl5mb29iYXJcIn19XSI7CisKK1RF
U1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgU3RhcnRPZkxpbmVBc3NlcnRpb24pCit7CisgICAg
YXV0byBleHRlbnNpb25EYXRhID0gQ29udGVudEV4dGVuc2lvbnM6OmNvbXBpbGVSdWxlTGlzdChz
dGFydE9mTGluZUFzc2VydGlvbkZpbHRlcik7CisgICAgYXV0byBleHRlbnNpb24gPSBJbk1lbW9y
eUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlKFdURjo6bW92ZShleHRlbnNpb25EYXRh
KSk7CisKKyAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kIGJh
Y2tlbmQ7CisgICAgYmFja2VuZC5hZGRDb250ZW50RXh0ZW5zaW9uKCJTdGFydE9mTGluZUFzc2Vy
dGlvbiIsIGV4dGVuc2lvbik7CisKKyAgICB0ZXN0VVJMKGJhY2tlbmQsIFVSTChVUkwoKSwgImZv
b2JhcjovL3dlYmtpdC5vcmcvZm9vYmFyIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5
cGU6OkJsb2NrTG9hZCB9KTsKKyAgICB0ZXN0VVJMKGJhY2tlbmQsIFVSTChVUkwoKSwgImZvb2Jh
cnM6Ly8vZm9vYmFyIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9h
ZCB9KTsKKyAgICB0ZXN0VVJMKGJhY2tlbmQsIFVSTChVUkwoKSwgImZvb2JhcmZvb2JhcjovLy9m
b29iYXJmb29iYXJmb29iYXIiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6Qmxv
Y2tMb2FkIH0pOworCisgICAgdGVzdFVSTChiYWNrZW5kLCBVUkwoVVJMKCksICJodHRwOi8vd2Vi
a2l0Lm9yZy9mb29iYXJmb28iKSwgeyB9KTsKKyAgICB0ZXN0VVJMKGJhY2tlbmQsIFVSTChVUkwo
KSwgImh0dHA6Ly93ZWJraXQub3JnL2Zvb2JhcmYiKSwgeyB9KTsKKyAgICB0ZXN0VVJMKGJhY2tl
bmQsIFVSTChVUkwoKSwgImh0dHA6Ly9mb29iYXIub3JnLyIpLCB7IH0pOworICAgIHRlc3RVUkwo
YmFja2VuZCwgVVJMKFVSTCgpLCAiaHR0cDovL2Zvb2Jhci5vcmcvIiksIHsgfSk7Cit9CisKK2Nv
bnN0IGNoYXIqIGVuZE9mTGluZUFzc2VydGlvbkZpbHRlciA9ICJbe1wiYWN0aW9uXCI6e1widHlw
ZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiLipmb29iYXIkXCJ9
fV0iOworCitURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIEVuZE9mTGluZUFzc2VydGlvbikK
K3sKKyAgICBhdXRvIGV4dGVuc2lvbkRhdGEgPSBDb250ZW50RXh0ZW5zaW9uczo6Y29tcGlsZVJ1
bGVMaXN0KGVuZE9mTGluZUFzc2VydGlvbkZpbHRlcik7CisgICAgYXV0byBleHRlbnNpb24gPSBJ
bk1lbW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlKFdURjo6bW92ZShleHRlbnNp
b25EYXRhKSk7CisKKyAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNr
ZW5kIGJhY2tlbmQ7CisgICAgYmFja2VuZC5hZGRDb250ZW50RXh0ZW5zaW9uKCJFbmRPZkxpbmVB
c3NlcnRpb24iLCBleHRlbnNpb24pOworCisgICAgdGVzdFVSTChiYWNrZW5kLCBVUkwoVVJMKCks
ICJodHRwOi8vd2Via2l0Lm9yZy9mb29iYXIiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9u
VHlwZTo6QmxvY2tMb2FkIH0pOworICAgIHRlc3RVUkwoYmFja2VuZCwgVVJMKFVSTCgpLCAiZmls
ZTovLy9mb29iYXIiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2Fk
IH0pOworICAgIHRlc3RVUkwoYmFja2VuZCwgVVJMKFVSTCgpLCAiZmlsZTovLy9mb29iYXJmb29i
YXJmb29iYXIiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0p
OworCisgICAgdGVzdFVSTChiYWNrZW5kLCBVUkwoVVJMKCksICJodHRwOi8vd2Via2l0Lm9yZy9m
b29iYXJmb28iKSwgeyB9KTsKKyAgICB0ZXN0VVJMKGJhY2tlbmQsIFVSTChVUkwoKSwgImh0dHA6
Ly93ZWJraXQub3JnL2Zvb2JhcmYiKSwgeyB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248442</attachid>
            <date>2015-03-11 12:54:34 -0700</date>
            <delta_ts>2015-03-11 14:09:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142568-20150311125409.patch</filename>
            <type>text/plain</type>
            <size>20001</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM1MTUwNjdmOGNhMmI1
M2NhZWFhNTQwMmQyYTEwNjZiMTZjNWU0OC4uYjAwZTEyY2I3YWEzNTFlOTViYjM1MDM0NTJlOWVj
NWMwNjliZmQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE1LTAzLTExICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBz
dXBwb3J0IGZvciBCT0wgYW5kIEVPTCBhc3NlcnRpb25zIHRvIHRoZSBVUkwgRmlsdGVyIHBhcnNl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNTY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIGhlYXZpbHkgcmVzdHJpY3RlZCBzdXBwb3J0IGZvciBCT0wgYW5kIEVPTCB0byB0
aGUgVVJMIGZpbHRlciBwYXJzZXIuCisKKyAgICAgICAgQm90aCBhc3NlcnRpb25zIG11c3QgYmUg
dGhlIGZpcnN0L2xhc3QgdGVybSBvZiB0aGVpciBwYXR0ZXJuLiBBbnkgYWR2YW5jZWQgY29tYmlu
YXRpb24KKyAgICAgICAgcmVzdWx0cyBpbiBhIHBhcnNpbmcgZXJyb3IuCisKKyAgICAgICAgVGhl
IEJPTCBhc3NlcnRpb24gaXMgZWFzeSB0byByZXByZXNlbnQ6IGN1cnJlbnRseSwgYW55IHBhdHRl
cm4gc3RhcnRzIGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgICAgb2YgYSBsaW5lIGFuZCB0aGUgTkZB
IGFyZSBnZW5lcmF0ZWQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgSSBoYWQgdHdvIG9wdGlvbnMg
dG8gcmVwcmVzZW50IHRoZSBFT0wgYXNzZXJ0aW9uOgorICAgICAgICAxKSBBZGQgYSBuZXcgc3Bl
Y2lhbCB0cmFuc2l0aW9uIG9uIEVPTC4KKyAgICAgICAgMikgQWRkIGEgbmV3IHZlY3RvciBvZiBh
Y3Rpb25zIHRvIHRoZSBzdGF0ZXMsIGNvbmRpdGlvbmFsIHRvIHRoZSBFT0wgaW5wdXQuCisKKyAg
ICAgICAgSSBwaWNrZWQgdGhlIGZpcnN0IG9wdGlvbiB0byBhdm9pZCBncm93aW5nIGV2ZXJ5IHN0
YXRlIGJ5IGEgdmVjdG9yCisgICAgICAgIHRoYXQgd291bGQgYmUgZW1wdHkgaW4gdGhlIHZhc3Qg
bWFqb3JpdHkgb2YgY2FzZXMuCisKKworICAgICAgICBPbiB0aGUgbWF0Y2hpbmcgc2lkZSwgdGhl
IGludGVycHJldGVyIHdhcyBtb2RpZmllZCB0byBzdXBwb3J0IHRyYW5zaXRpb25zIG9uICdcMCcu
CisgICAgICAgIERGQUJ5dGVjb2RlSW5zdHJ1Y3Rpb246OkNoZWNrVmFsdWUgbm93IHN0b3BzIHdo
ZW4gcnVubmluZyBvbiBhIGNoYXJhY3RlciBhZnRlcgorICAgICAgICB0aGUgZW5kIG9mIHRoZSBz
dHJpbmcuCisKKyAgICAgICAgREZBQnl0ZWNvZGVJbnN0cnVjdGlvbjo6SnVtcCBnZXRzIHR3byBm
aXhlczogRmlyc3Qgd2Ugbm93IGFjY291bnQgZm9yIHRoZSBpbmRleAorICAgICAgICB0byBhdm9p
ZCBnb2luZyBwYXN0IHRoZSBlbmQgb2YgdGhlIGlucHV0LiBTZWNvbmQsIHN0b3Agb24gJ1wwJyB0
b28uLi4gdGhlIHJlYXNvbgorICAgICAgICBpcyB0aGF0IHRoZSB1bmNvbmRpdGlvbmFsIGp1bXAg
aXMgb25seSB1c2VkIGZvciBmYWxsYmFjayBlZGdlcyBvZiB0aGUgREZBLCBmYWxsYmFjaworICAg
ICAgICBlZGdlIGFyZSBub3Qgc3VwcG9zZWQgdG8gYWNjZXB0ICdcMCcuCisKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9ERkEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM6OnByaW50VHJhbnNpdGlvbnMpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0RG
QUJ5dGVjb2RlSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM6OkRGQUJ5dGVjb2RlSW50ZXJwcmV0ZXI6OmludGVycHJldCk6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvREZBTm9kZS5oOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL05G
QS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TkZBOjphZGRUcmFu
c2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpORkE6OmFkZEVw
c2lsb25UcmFuc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpw
cmludFRyYW5zaXRpb25zKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9ORkFOb2RlLmg6
CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvTkZBVG9ERkEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnBvcHVsYXRlVHJhbnNpdGlvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok5GQVRvREZBOjpjb252ZXJ0KToKKyAgICAgICAg
KiBjb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEV4dGVuc2lvbnM6OlRlcm06OlRlcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OlRlcm06OmlzRW5kT2ZMaW5lQXNzZXJ0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpHcmFwaEJ1aWxkZXI6OmFzc2VydGlvbkJPTCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6R3JhcGhCdWlsZGVyOjphc3NlcnRp
b25FT0wpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkdyYXBoQnVpbGRl
cjo6c2lua0Zsb2F0aW5nVGVybUlmTmVjZXNzYXJ5KToKKwogMjAxNS0wMy0xMCAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSB1bnNpZ25l
ZCBmb3IgSGFzaFNldCBzaXplLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvREZBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQS5j
cHAKaW5kZXggMjNjNjIyMWNjNWRkNTk5NmM1MzIwMWQ2MmFiNGU3NzVlZGI0YmM3ZS4uMjY4NmU1
YjU5NTQzODEzNTNkMDRjOTkyMDMxNmU1Y2U2N2I3OTFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9ERkEuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIHByaW50
UmFuZ2UoYm9vbCBmaXJzdFJhbmdlLCBjaGFyIHJhbmdlU3RhcnQsIGNoYXIgcmFuZ2VFbmQpCiBz
dGF0aWMgdm9pZCBwcmludFRyYW5zaXRpb25zKGNvbnN0IFZlY3RvcjxERkFOb2RlPiYgZ3JhcGgs
IHVuc2lnbmVkIHNvdXJjZU5vZGVJZCkKIHsKICAgICBjb25zdCBERkFOb2RlJiBzb3VyY2VOb2Rl
ID0gZ3JhcGhbc291cmNlTm9kZUlkXTsKLSAgICBjb25zdCBIYXNoTWFwPHVpbnQxNl90LCB1bnNp
Z25lZD4mIHRyYW5zaXRpb25zID0gc291cmNlTm9kZS50cmFuc2l0aW9uczsKKyAgICBjb25zdCBE
RkFOb2RlVHJhbnNpdGlvbnMmIHRyYW5zaXRpb25zID0gc291cmNlTm9kZS50cmFuc2l0aW9uczsK
IAogICAgIGlmICh0cmFuc2l0aW9ucy5pc0VtcHR5KCkgJiYgIXNvdXJjZU5vZGUuaGFzRmFsbGJh
Y2tUcmFuc2l0aW9uKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVycHJldGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5dGVjb2RlSW50ZXJwcmV0ZXIuY3BwCmluZGV4
IDc0ZTdkZjZkNTRiYmZmZmFkYzM4ZDQyZTNhZTUxMTdkYTNlZDMwMDMuLmNhMjBhMmZmNzIzYjA0
ZmZlNWZkZDlhNGZhZTkzZDU5YTM1ZGIyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0RGQUJ5dGVjb2RlSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5dGVjb2RlSW50ZXJwcmV0ZXIuY3BwCkBAIC00
OCw2ICs0OCw3IEBAIERGQUJ5dGVjb2RlSW50ZXJwcmV0ZXI6OkFjdGlvbnMgREZBQnl0ZWNvZGVJ
bnRlcnByZXRlcjo6aW50ZXJwcmV0KGNvbnN0IENTdHJpbmcmCiAgICAgCiAgICAgdW5zaWduZWQg
cHJvZ3JhbUNvdW50ZXIgPSAwOwogICAgIHVuc2lnbmVkIHVybEluZGV4ID0gMDsKKyAgICBib29s
IHVybEluZGV4SXNBZnRlckVuZE9mU3RyaW5nID0gZmFsc2U7CiAgICAgQWN0aW9ucyBhY3Rpb25z
OwogICAgIAogICAgIC8vIFRoaXMgc2hvdWxkIGFsd2F5cyB0ZXJtaW5hdGUgaWYgaW50ZXJwcmV0
aW5nIGNvcnJlY3RseSBjb21waWxlZCBieXRlY29kZS4KQEAgLTU5LDE3ICs2MCwyMyBAQCBERkFC
eXRlY29kZUludGVycHJldGVyOjpBY3Rpb25zIERGQUJ5dGVjb2RlSW50ZXJwcmV0ZXI6OmludGVy
cHJldChjb25zdCBDU3RyaW5nJgogICAgICAgICAgICAgcmV0dXJuIGFjdGlvbnM7CiAKICAgICAg
ICAgY2FzZSBERkFCeXRlY29kZUluc3RydWN0aW9uOjpDaGVja1ZhbHVlOgorICAgICAgICAgICAg
aWYgKHVybEluZGV4SXNBZnRlckVuZE9mU3RyaW5nKQorICAgICAgICAgICAgICAgIHJldHVybiBh
Y3Rpb25zOworCiAgICAgICAgICAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIG5leHQgY2hhcmFj
dGVyIGluIHRoZSB1cmwgaXMgdGhlIHZhbHVlIHN0b3JlZCB3aXRoIHRoZSBieXRlY29kZS4KLSAg
ICAgICAgICAgIGlmICghdXJsW3VybEluZGV4XSkKLSAgICAgICAgICAgICAgICByZXR1cm4gYWN0
aW9uczsgLy8gUmVhY2hlZCBudWxsIGNoYXJhY3RlciBhdCBlbmQuCiAgICAgICAgICAgICBpZiAo
dXJsW3VybEluZGV4XSA9PSBnZXRCaXRzPHVpbnQ4X3Q+KG1fYnl0ZWNvZGUsIG1fYnl0ZWNvZGVM
ZW5ndGgsIHByb2dyYW1Db3VudGVyICsgc2l6ZW9mKERGQUJ5dGVjb2RlKSkpIHsKICAgICAgICAg
ICAgICAgICBwcm9ncmFtQ291bnRlciA9IGdldEJpdHM8dW5zaWduZWQ+KG1fYnl0ZWNvZGUsIG1f
Ynl0ZWNvZGVMZW5ndGgsIHByb2dyYW1Db3VudGVyICsgc2l6ZW9mKERGQUJ5dGVjb2RlKSArIHNp
emVvZih1aW50OF90KSk7CisgICAgICAgICAgICAgICAgaWYgKCF1cmxbdXJsSW5kZXhdKQorICAg
ICAgICAgICAgICAgICAgICB1cmxJbmRleElzQWZ0ZXJFbmRPZlN0cmluZyA9IHRydWU7CiAgICAg
ICAgICAgICAgICAgdXJsSW5kZXgrKzsgLy8gVGhpcyByZXByZXNlbnRzIGFuIGVkZ2UgaW4gdGhl
IERGQS4KICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHByb2dyYW1Db3VudGVy
ICs9IGluc3RydWN0aW9uU2l6ZVdpdGhBcmd1bWVudHMoREZBQnl0ZWNvZGVJbnN0cnVjdGlvbjo6
Q2hlY2tWYWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIERGQUJ5dGVj
b2RlSW5zdHJ1Y3Rpb246Okp1bXA6CisgICAgICAgICAgICBpZiAoIXVybFt1cmxJbmRleF0gfHwg
dXJsSW5kZXhJc0FmdGVyRW5kT2ZTdHJpbmcpCisgICAgICAgICAgICAgICAgcmV0dXJuIGFjdGlv
bnM7CisKICAgICAgICAgICAgIHByb2dyYW1Db3VudGVyID0gZ2V0Qml0czx1bnNpZ25lZD4obV9i
eXRlY29kZSwgbV9ieXRlY29kZUxlbmd0aCwgcHJvZ3JhbUNvdW50ZXIgKyBzaXplb2YoREZBQnl0
ZWNvZGUpKTsKICAgICAgICAgICAgIHVybEluZGV4Kys7IC8vIFRoaXMgcmVwcmVzZW50cyBhbiBl
ZGdlIGluIHRoZSBERkEuCiAgICAgICAgICAgICBicmVhazsKQEAgLTgyLDcgKzg5LDggQEAgREZB
Qnl0ZWNvZGVJbnRlcnByZXRlcjo6QWN0aW9ucyBERkFCeXRlY29kZUludGVycHJldGVyOjppbnRl
cnByZXQoY29uc3QgQ1N0cmluZyYKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIEludmFsaWQgYnl0ZWNvZGUuCiAgICAgICAgIH0K
LSAgICAgICAgQVNTRVJUKHVybEluZGV4IDw9IHVybENTdHJpbmcubGVuZ3RoKCkpOyAvLyBXZSBz
aG91bGQgYWx3YXlzIHRlcm1pbmF0ZSBhdCBhIG51bGwgY2hhcmFjdGVyIGF0IHRoZSBlbmQgb2Yg
YSBTdHJpbmcuCisgICAgICAgIC8vIFdlIHNob3VsZCBhbHdheXMgdGVybWluYXRlIGJlZm9yZSBv
ciBhdCBhIG51bGwgY2hhcmFjdGVyIGF0IHRoZSBlbmQgb2YgYSBTdHJpbmcuCisgICAgICAgIEFT
U0VSVCh1cmxJbmRleCA8PSB1cmxDU3RyaW5nLmxlbmd0aCgpIHx8ICh1cmxJbmRleElzQWZ0ZXJF
bmRPZlN0cmluZyAmJiB1cmxJbmRleCA8PSB1cmxDU3RyaW5nLmxlbmd0aCgpICsgMSkpOwogICAg
IH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBTm9kZS5oIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvREZBTm9kZS5oCmluZGV4IGQ4ZTZiNTFkNWIxYTJhMzQxMWU2ZTgw
YzIwZjFlMmZhN2Y2N2U3ZGMuLjg0OGE5M2ZjNTI5MTczNzcyMWI3NTY5YmRmMWZlYWFlMjhkNzZk
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQU5vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFOb2RlLmgKQEAgLTM4
LDkgKzM4LDEyIEBAIG5hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9ucyB7CiAKIC8vIEEgREZBTm9k
ZSBhYnN0cmFjdCB0aGUgdHJhbnNpdGlvbiB0YWJsZSBvdXQgb2YgYSBERkEgc3RhdGUuIElmIGEg
c3RhdGUgaXMgYWNjZXB0aW5nLCB0aGUgREZBTm9kZSBhbHNvIGhhdmUKIC8vIHRoZSBhY3Rpb25z
IGZvciB0aGF0IHN0YXRlLgorCit0eXBlZGVmIEhhc2hNYXA8dWludDE2X3QsIHVuc2lnbmVkLCBE
ZWZhdWx0SGFzaDx1aW50MTZfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hU
cmFpdHM8dWludDE2X3Q+PiBERkFOb2RlVHJhbnNpdGlvbnM7CisKIGNsYXNzIERGQU5vZGUgewog
cHVibGljOgotICAgIEhhc2hNYXA8dWludDE2X3QsIHVuc2lnbmVkPiB0cmFuc2l0aW9uczsKKyAg
ICBERkFOb2RlVHJhbnNpdGlvbnMgdHJhbnNpdGlvbnM7CiAgICAgYm9vbCBoYXNGYWxsYmFja1Ry
YW5zaXRpb24gPSBmYWxzZTsKICAgICB1bnNpZ25lZCBmYWxsYmFja1RyYW5zaXRpb247CiAgICAg
VmVjdG9yPHVpbnQ2NF90PiBhY3Rpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvTkZBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L05GQS5jcHAKaW5kZXggYzc5MWJiNDM0NjhiNGRmZDQxMDg5NTFjZWI4YTg3YjFlYTZlMWU4Mi4u
N2NmMjYxMTQ5YzcwMjlkMTJlNTY2YzA5ODE4OTc0NDYyZjQxMzk3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvTkZBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9ORkEuY3BwCkBAIC01MSwxMyArNTEsMTIgQEAgdm9pZCBORkE6
OmFkZFRyYW5zaXRpb24odW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIGNoYXIgY2hhcmFjdGVy
KQogewogICAgIEFTU0VSVChmcm9tIDwgbV9ub2Rlcy5zaXplKCkpOwogICAgIEFTU0VSVCh0byA8
IG1fbm9kZXMuc2l6ZSgpKTsKLSAgICBBU1NFUlQoY2hhcmFjdGVyKTsKIAogICAgIE5GQU5vZGUm
IGZyb21Ob2RlID0gbV9ub2Rlc1tmcm9tXTsKICAgICBpZiAoZnJvbU5vZGUudHJhbnNpdGlvbnNP
bkFueUNoYXJhY3Rlci5jb250YWlucyh0bykpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8g
YWRkUmVzdWx0ID0gbV9ub2Rlc1tmcm9tXS50cmFuc2l0aW9ucy5hZGQoY2hhcmFjdGVyLCBIYXNo
U2V0PHVuc2lnbmVkLCBEZWZhdWx0SGFzaDx1bnNpZ25lZD46Okhhc2gsIFdURjo6VW5zaWduZWRX
aXRoWmVyb0tleUhhc2hUcmFpdHM8dW5zaWduZWQ+PigpKTsKKyAgICBhdXRvIGFkZFJlc3VsdCA9
IG1fbm9kZXNbZnJvbV0udHJhbnNpdGlvbnMuYWRkKGNoYXJhY3RlciwgTkZBTm9kZUluZGV4U2V0
KCkpOwogICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYWRkKHRvKTsKIH0KIApAQCAtNjYs
NyArNjUsNyBAQCB2b2lkIE5GQTo6YWRkRXBzaWxvblRyYW5zaXRpb24odW5zaWduZWQgZnJvbSwg
dW5zaWduZWQgdG8pCiAgICAgQVNTRVJUKGZyb20gPCBtX25vZGVzLnNpemUoKSk7CiAgICAgQVNT
RVJUKHRvIDwgbV9ub2Rlcy5zaXplKCkpOwogCi0gICAgYXV0byBhZGRSZXN1bHQgPSBtX25vZGVz
W2Zyb21dLnRyYW5zaXRpb25zLmFkZChlcHNpbG9uVHJhbnNpdGlvbkNoYXJhY3RlciwgSGFzaFNl
dDx1bnNpZ25lZCwgRGVmYXVsdEhhc2g8dW5zaWduZWQ+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0
aFplcm9LZXlIYXNoVHJhaXRzPHVuc2lnbmVkPj4oKSk7CisgICAgYXV0byBhZGRSZXN1bHQgPSBt
X25vZGVzW2Zyb21dLnRyYW5zaXRpb25zLmFkZChlcHNpbG9uVHJhbnNpdGlvbkNoYXJhY3Rlciwg
TkZBTm9kZUluZGV4U2V0KCkpOwogICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYWRkKHRv
KTsKIH0KIApAQCAtMTMzLDEzICsxMzIsMTMgQEAgc3RhdGljIHZvaWQgcHJpbnRSYW5nZShib29s
IGZpcnN0UmFuZ2UsIHVpbnQxNl90IHJhbmdlU3RhcnQsIHVpbnQxNl90IHJhbmdlRW5kLAogc3Rh
dGljIHZvaWQgcHJpbnRUcmFuc2l0aW9ucyhjb25zdCBWZWN0b3I8TkZBTm9kZT4mIGdyYXBoLCB1
bnNpZ25lZCBzb3VyY2VOb2RlLCB1aW50MTZfdCBlcHNpbG9uVHJhbnNpdGlvbkNoYXJhY3RlcikK
IHsKICAgICBjb25zdCBORkFOb2RlJiBub2RlID0gZ3JhcGhbc291cmNlTm9kZV07Ci0gICAgY29u
c3QgSGFzaE1hcDx1aW50MTZfdCwgSGFzaFNldDx1bnNpZ25lZCwgRGVmYXVsdEhhc2g8dW5zaWdu
ZWQ+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVuc2lnbmVkPj4+
JiB0cmFuc2l0aW9ucyA9IG5vZGUudHJhbnNpdGlvbnM7CisgICAgY29uc3QgSGFzaE1hcDx1aW50
MTZfdCwgTkZBTm9kZUluZGV4U2V0LCBEZWZhdWx0SGFzaDx1aW50MTZfdD46Okhhc2gsIFdURjo6
VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDE2X3Q+PiYgdHJhbnNpdGlvbnMgPSBu
b2RlLnRyYW5zaXRpb25zOwogCi0gICAgSGFzaE1hcDx1bnNpZ25lZCwgSGFzaFNldDx1aW50MTZf
dD4sIERlZmF1bHRIYXNoPHVuc2lnbmVkPjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5
SGFzaFRyYWl0czx1bnNpZ25lZD4+IHRyYW5zaXRpb25zUGVyVGFyZ2V0OworICAgIEhhc2hNYXA8
dW5zaWduZWQsIEhhc2hTZXQ8dWludDE2X3QsIERlZmF1bHRIYXNoPHVpbnQxNl90Pjo6SGFzaCwg
V1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50MTZfdD4+LCBEZWZhdWx0SGFz
aDx1bnNpZ25lZD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dW5z
aWduZWQ+PiB0cmFuc2l0aW9uc1BlclRhcmdldDsKIAogICAgIGZvciAoY29uc3QgYXV0byYgdHJh
bnNpdGlvbiA6IHRyYW5zaXRpb25zKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgdGFyZ2V0Tm9k
ZSA6IHRyYW5zaXRpb24udmFsdWUpIHsKLSAgICAgICAgICAgIHRyYW5zaXRpb25zUGVyVGFyZ2V0
LmFkZCh0YXJnZXROb2RlLCBIYXNoU2V0PHVpbnQxNl90PigpKTsKKyAgICAgICAgICAgIHRyYW5z
aXRpb25zUGVyVGFyZ2V0LmFkZCh0YXJnZXROb2RlLCBIYXNoU2V0PHVpbnQxNl90LCBEZWZhdWx0
SGFzaDx1aW50MTZfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8
dWludDE2X3Q+PigpKTsKICAgICAgICAgICAgIHRyYW5zaXRpb25zUGVyVGFyZ2V0LmZpbmQodGFy
Z2V0Tm9kZSktPnZhbHVlLmFkZCh0cmFuc2l0aW9uLmtleSk7CiAgICAgICAgIH0KICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ORkFOb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ORkFOb2RlLmgKaW5kZXggNzVhMzU0OTA1
MDk0ZmUzODYxODU2ZDk4NmIwMjI2NmMxNDY2Yjg5NC4uZmY3MTA1MGMwMDNjZWFhNGU4ODJmOWMw
MjM1NTRlZTg2MTE2ZDEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvTkZBTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL05G
QU5vZGUuaApAQCAtMzgsMTAgKzM4LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFj
ZSBDb250ZW50RXh0ZW5zaW9ucyB7CiAKIC8vIEEgTkZBTm9kZSBhYnN0cmFjdCB0aGUgdHJhbnNp
dGlvbiB0YWJsZSBvdXQgb2YgYSBORkEgc3RhdGUuCisKK3R5cGVkZWYgSGFzaFNldDx1bnNpZ25l
ZCwgRGVmYXVsdEhhc2g8dW5zaWduZWQ+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlI
YXNoVHJhaXRzPHVuc2lnbmVkPj4gTkZBTm9kZUluZGV4U2V0OwordHlwZWRlZiBIYXNoTWFwPHVp
bnQxNl90LCBORkFOb2RlSW5kZXhTZXQsIERlZmF1bHRIYXNoPHVpbnQxNl90Pjo6SGFzaCwgV1RG
OjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50MTZfdD4+IE5GQU5vZGVUcmFuc2l0
aW9uczsKKwogY2xhc3MgTkZBTm9kZSB7CiBwdWJsaWM6Ci0gICAgSGFzaE1hcDx1aW50MTZfdCwg
SGFzaFNldDx1bnNpZ25lZCwgRGVmYXVsdEhhc2g8dW5zaWduZWQ+OjpIYXNoLCBXVEY6OlVuc2ln
bmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVuc2lnbmVkPj4+IHRyYW5zaXRpb25zOwotICAgIEhh
c2hTZXQ8dW5zaWduZWQsIERlZmF1bHRIYXNoPHVuc2lnbmVkPjo6SGFzaCwgV1RGOjpVbnNpZ25l
ZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1bnNpZ25lZD4+IHRyYW5zaXRpb25zT25BbnlDaGFyYWN0
ZXI7CisgICAgSGFzaE1hcDx1aW50MTZfdCwgTkZBTm9kZUluZGV4U2V0LCBEZWZhdWx0SGFzaDx1
aW50MTZfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDE2
X3Q+PiB0cmFuc2l0aW9uczsKKyAgICBORkFOb2RlSW5kZXhTZXQgdHJhbnNpdGlvbnNPbkFueUNo
YXJhY3RlcjsKIAogICAgIFZlY3Rvcjx1aW50NjRfdD4gZmluYWxSdWxlSWRzOwogI2lmIENPTlRF
TlRfRVhURU5TSU9OU19TVEFURV9NQUNISU5FX0RFQlVHR0lORwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvTkZBVG9ERkEuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvTkZBVG9ERkEuY3BwCmluZGV4IGU1ZmEyMGQ4NDZkNzI4MjY1OGUz
YmJjMmYxM2VmNWU5NzliOTBiODIuLmU5MTgxYzVkNmU5N2E2OGE2NmYzN2IxY2U0MzIyYmY2OTA3
NmVjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL05GQVRv
REZBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ORkFUb0RGQS5j
cHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zIHsKIAogLy8g
RklYTUU6IHNldCBhIGJldHRlciBpbml0aWFsIHNpemUuCiAvLyBGSVhNRTogaW5jbHVkZSB0aGUg
aGFzaCBpbnNpZGUgTm9kZUlkU2V0LgotdHlwZWRlZiBIYXNoU2V0PHVuc2lnbmVkLCBEZWZhdWx0
SGFzaDx1bnNpZ25lZD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8
dW5zaWduZWQ+PiBOb2RlSWRTZXQ7Cit0eXBlZGVmIE5GQU5vZGVJbmRleFNldCBOb2RlSWRTZXQ7
CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBlcHNpbG9uQ2xvc3VyZUV4Y2x1ZGluZ1NlbGYoY29uc3Qg
VmVjdG9yPE5GQU5vZGU+JiBuZmFHcmFwaCwgdW5zaWduZWQgbm9kZUlkLCB1bnNpZ25lZCBlcHNp
bG9uVHJhbnNpdGlvbkNoYXJhY3RlciwgVmVjdG9yPHVuc2lnbmVkPiYgb3V0cHV0KQogewpAQCAt
MzIyLDcgKzMyMiw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwb3B1bGF0ZVRyYW5zaXRpb25zKFNl
dFRyYW5zaXRpb25zJiBzZXRUcmFuc2l0aW9ucywgTm9kZUlkU2V0CiAgICAgICAgICAgICAgICAg
dGFyZ2V0U2V0LmFkZCh0YXJnZXROb2RJZCk7CiAgICAgICAgICAgICAgICAgZXh0ZW5kU2V0V2l0
aENsb3N1cmUobmZhTm9kZWNsb3N1cmVzLCB0YXJnZXROb2RJZCwgdGFyZ2V0U2V0KTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHRhcmdldFNldC5hZGQoc2V0RmFsbGJhY2tUcmFuc2l0aW9u
LmJlZ2luKCksIHNldEZhbGxiYWNrVHJhbnNpdGlvbi5lbmQoKSk7CisgICAgICAgICAgICBpZiAo
dHJhbnNpdGlvblNsb3Qua2V5KQorICAgICAgICAgICAgICAgIHRhcmdldFNldC5hZGQoc2V0RmFs
bGJhY2tUcmFuc2l0aW9uLmJlZ2luKCksIHNldEZhbGxiYWNrVHJhbnNpdGlvbi5lbmQoKSk7CiAg
ICAgICAgIH0KICAgICB9CiB9CkBAIC0zNjUsNyArMzY2LDYgQEAgREZBIE5GQVRvREZBOjpjb252
ZXJ0KE5GQSYgbmZhKQogICAgICAgICBOb2RlSWRTZXQgc2V0RmFsbGJhY2tUcmFuc2l0aW9uOwog
ICAgICAgICBwb3B1bGF0ZVRyYW5zaXRpb25zKHRyYW5zaXRpb25zRnJvbUNsb3NlZFNldCwgc2V0
RmFsbGJhY2tUcmFuc2l0aW9uLCAqdW5pcXVlTm9kZUlkU2V0SW1wbCwgbmZhR3JhcGgsIG5mYU5v
ZGVDbG9zdXJlcyk7CiAKLSAgICAgICAgLy8gRklYTUU6IHRoZXJlIHNob3VsZCBub3QgYmUgYW55
IHRyYW5zaXRpb24gb24ga2V5IDAuCiAgICAgICAgIGZvciAodW5zaWduZWQga2V5ID0gMDsga2V5
IDwgdHJhbnNpdGlvbnNGcm9tQ2xvc2VkU2V0LnNpemUoKTsgKytrZXkpIHsKICAgICAgICAgICAg
IE5vZGVJZFNldCYgdGFyZ2V0Tm9kZVNldCA9IHRyYW5zaXRpb25zRnJvbUNsb3NlZFNldFtrZXld
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0
ZXJQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVy
UGFyc2VyLmNwcAppbmRleCA0YzdkOWNlYzYxNjNlODk5MTU5MWY1M2NiYmUzZDhjNzNkODkzZGQ5
Li5jZmRlZmIzZDNlZjEzZmJhNmIyOGRlNGYwYmYxMThkYjI1ZTcwY2IyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAKQEAg
LTgxLDYgKzgxLDEzIEBAIHB1YmxpYzoKICAgICAgICAgbmV3IChOb3ROdWxsLCAmbV9hdG9tRGF0
YS5ncm91cCkgR3JvdXAoKTsKICAgICB9CiAKKyAgICBlbnVtIEVuZE9mTGluZUFzc2VydGlvblRl
cm1UYWcgeyBFbmRPZkxpbmVBc3NlcnRpb25UZXJtIH07CisgICAgZXhwbGljaXQgVGVybShFbmRP
ZkxpbmVBc3NlcnRpb25UZXJtVGFnKQorICAgICAgICA6IFRlcm0oQ2hhcmFjdGVyU2V0VGVybSwg
ZmFsc2UpCisgICAgeworICAgICAgICBtX2F0b21EYXRhLmNoYXJhY3RlclNldC5jaGFyYWN0ZXJz
LnNldCgwKTsKKyAgICB9CisKICAgICBUZXJtKGNvbnN0IFRlcm0mIG90aGVyKQogICAgICAgICA6
IG1fdGVybVR5cGUob3RoZXIubV90ZXJtVHlwZSkKICAgICAgICAgLCBtX3F1YW50aWZpZXIob3Ro
ZXIubV9xdWFudGlmaWVyKQpAQCAtMjEyLDYgKzIxOSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIH0K
ICAgICB9CiAKKyAgICBib29sIGlzRW5kT2ZMaW5lQXNzZXJ0aW9uKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX3Rlcm1UeXBlID09IFRlcm1UeXBlOjpDaGFyYWN0ZXJTZXQgJiYgbV9h
dG9tRGF0YS5jaGFyYWN0ZXJTZXQuY2hhcmFjdGVycy5iaXRDb3VudCgpID09IDEgJiYgbV9hdG9t
RGF0YS5jaGFyYWN0ZXJTZXQuY2hhcmFjdGVycy5nZXQoMCk7CisgICAgfQorCiAgICAgVGVybSYg
b3BlcmF0b3I9KGNvbnN0IFRlcm0mIG90aGVyKQogICAgIHsKICAgICAgICAgZGVzdHJveSgpOwpA
QCAtNDk4LDEyICs1MTAsMjIgQEAgcHVibGljOgogCiAgICAgdm9pZCBhc3NlcnRpb25CT0woKQog
ICAgIHsKLSAgICAgICAgZmFpbChBU0NJSUxpdGVyYWwoIkxpbmUgYm91bmRhcnkgYXNzZXJ0aW9u
cyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIikpOworICAgICAgICBpZiAoaGFzRXJyb3IoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAobV9zdWJ0cmVlU3RhcnQgIT0gbV9zdWJ0
cmVlRW5kIHx8IG1fZmxvYXRpbmdUZXJtLmlzVmFsaWQoKSB8fCAhbV9vcGVuR3JvdXBzLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgIGZhaWwoQVNDSUlMaXRlcmFsKCJTdGFydCBvZiBsaW5lIGFzc2Vy
dGlvbiBjYW4gb25seSBhcHBlYXIgYXMgdGhlIGZpcnN0IHRlcm0gaW4gYSBmaWx0ZXIuIikpOwog
ICAgIH0KIAogICAgIHZvaWQgYXNzZXJ0aW9uRU9MKCkKICAgICB7Ci0gICAgICAgIGZhaWwoQVND
SUlMaXRlcmFsKCJMaW5lIGJvdW5kYXJ5IGFzc2VydGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0
LiIpKTsKKyAgICAgICAgaWYgKGhhc0Vycm9yKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgc2lua0Zsb2F0aW5nVGVybUlmTmVjZXNzYXJ5KCk7CisgICAgICAgIEFTU0VSVCghbV9m
bG9hdGluZ1Rlcm0uaXNWYWxpZCgpKTsKKworICAgICAgICBtX2Zsb2F0aW5nVGVybSA9IFRlcm0o
VGVybTo6RW5kT2ZMaW5lQXNzZXJ0aW9uVGVybSk7CiAgICAgfQogCiAgICAgdm9pZCBhc3NlcnRp
b25Xb3JkQm91bmRhcnkoYm9vbCkKQEAgLTYxNCw2ICs2MzYsMTUgQEAgcHJpdmF0ZToKIAogICAg
ICAgICBBU1NFUlQobV9sYXN0UHJlZml4VHJlZUVudHJ5KTsKIAorICAgICAgICBpZiAobV9oYXNQ
cm9jZXNzZWRFbmRPZkxpbmVBc3NlcnRpb24pIHsKKyAgICAgICAgICAgIGZhaWwoQVNDSUlMaXRl
cmFsKCJUaGUgZW5kIG9mIGxpbmUgYXNzZXJ0aW9uIG11c3QgYmUgdGhlIGxhc3QgdGVybSBpbiBh
biBleHByZXNzaW9uLiIpKTsKKyAgICAgICAgICAgIG1fZmxvYXRpbmdUZXJtID0gVGVybSgpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fZmxvYXRpbmdU
ZXJtLmlzRW5kT2ZMaW5lQXNzZXJ0aW9uKCkpCisgICAgICAgICAgICBtX2hhc1Byb2Nlc3NlZEVu
ZE9mTGluZUFzc2VydGlvbiA9IHRydWU7CisKICAgICAgICAgaWYgKCFtX29wZW5Hcm91cHMuaXNF
bXB0eSgpKSB7CiAgICAgICAgICAgICBtX29wZW5Hcm91cHMubGFzdCgpLmV4dGVuZEdyb3VwU3Vi
cGF0dGVybihtX2Zsb2F0aW5nVGVybSk7CiAgICAgICAgICAgICBtX2Zsb2F0aW5nVGVybSA9IFRl
cm0oKTsKQEAgLTY1Niw2ICs2ODcsNyBAQCBwcml2YXRlOgogICAgIFByZWZpeFRyZWVFbnRyeSog
bV9sYXN0UHJlZml4VHJlZUVudHJ5OwogICAgIERlcXVlPFRlcm0+IG1fb3Blbkdyb3VwczsKICAg
ICBUZXJtIG1fZmxvYXRpbmdUZXJtOworICAgIGJvb2wgbV9oYXNQcm9jZXNzZWRFbmRPZkxpbmVB
c3NlcnRpb24geyBmYWxzZSB9OwogCiAgICAgUHJlZml4VHJlZUVudHJ5KiBtX25ld1ByZWZpeFN1
YnRyZWVSb290ID0gbnVsbHB0cjsKICAgICBUZXJtIG1fbmV3UHJlZml4U3RhcmluZ1BvaW50Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ1ZTg0
YjYyY2I0OTRlMjVlZjRjMTAyZjllMjY2OTc0Y2JmYTZlNDMuLjUxZTY5OTU3NmMyZjBiNDIwZGVj
MGFiNGU1N2RkNTBlN2UwODNlMTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNS0wMy0xMSAgQmVuamFtaW4gUG91
bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgc3VwcG9ydCBm
b3IgQk9MIGFuZCBFT0wgYXNzZXJ0aW9ucyB0byB0aGUgVVJMIEZpbHRlciBwYXJzZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjU2OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1RfRik6CisKIDIwMTUtMDMtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgdW5zaWduZWQgZm9yIEhhc2hTZXQgc2l6
ZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50
RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVu
dEV4dGVuc2lvbnMuY3BwCmluZGV4IGQ4YTI2YmQ2MDU0NjI2M2IwMDQzNzkwMWI4OTlhY2FiMjYy
NzZmNzYuLjcyNGRlMWM2ODE5N2FkZjNkMmZhODAyMDVmOGEyYjliYjU2NGExNjEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNp
b25zLmNwcApAQCAtMTU3LDQgKzE1Nyw2MiBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3Qs
IFBhdHRlcm5OZXN0ZWRHcm91cHMpCiAgICAgdGVzdFVSTChiYWNrZW5kLCBVUkwoVVJMKCksICJo
dHRwOi8vd2Via2l0Lm9yZy9mb2JhciIpLCB7IH0pOwogfQogCitjb25zdCBjaGFyKiBtYXRjaFBh
c3RFbmRPZlN0cmluZ0ZpbHRlciA9ICJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0s
XCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiLitcIn19XSI7CisKK1RFU1RfRihDb250ZW50
RXh0ZW5zaW9uVGVzdCwgTWF0Y2hQYXN0RW5kT2ZTdHJpbmcpCit7CisgICAgYXV0byBleHRlbnNp
b25EYXRhID0gQ29udGVudEV4dGVuc2lvbnM6OmNvbXBpbGVSdWxlTGlzdChtYXRjaFBhc3RFbmRP
ZlN0cmluZ0ZpbHRlcik7CisgICAgYXV0byBleHRlbnNpb24gPSBJbk1lbW9yeUNvbXBpbGVkQ29u
dGVudEV4dGVuc2lvbjo6Y3JlYXRlKFdURjo6bW92ZShleHRlbnNpb25EYXRhKSk7CisKKyAgICBD
b250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kIGJhY2tlbmQ7CisgICAg
YmFja2VuZC5hZGRDb250ZW50RXh0ZW5zaW9uKCJNYXRjaFBhc3RFbmRPZlN0cmluZyIsIGV4dGVu
c2lvbik7CisKKyAgICB0ZXN0VVJMKGJhY2tlbmQsIFVSTChVUkwoKSwgImh0dHA6Ly93ZWJraXQu
b3JnLyIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQgfSk7Cisg
ICAgdGVzdFVSTChiYWNrZW5kLCBVUkwoVVJMKCksICJodHRwOi8vd2Via2l0Lm9yZy9mb28iKSwg
eyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOworICAgIHRlc3RV
UkwoYmFja2VuZCwgVVJMKFVSTCgpLCAiaHR0cDovL3dlYmtpdC5vcmcvZm9vYmFyIiksIHsgQ29u
dGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKKyAgICB0ZXN0VVJMKGJh
Y2tlbmQsIFVSTChVUkwoKSwgImh0dHA6Ly93ZWJraXQub3JnL2Zvb2JhcmJhciIpLCB7IENvbnRl
bnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQgfSk7CisgICAgdGVzdFVSTChiYWNr
ZW5kLCBVUkwoVVJMKCksICJodHRwOi8vd2Via2l0Lm9yZy9mb29mb29iYXIiKSwgeyBDb250ZW50
RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOworICAgIHRlc3RVUkwoYmFja2Vu
ZCwgVVJMKFVSTCgpLCAiaHR0cDovL3dlYmtpdC5vcmcvZm9vYmFyZm9vYmFyIiksIHsgQ29udGVu
dEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKKyAgICB0ZXN0VVJMKGJhY2tl
bmQsIFVSTChVUkwoKSwgImh0dHA6Ly93ZWJraXQub3JnL2Zvb2IiKSwgeyBDb250ZW50RXh0ZW5z
aW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOworICAgIHRlc3RVUkwoYmFja2VuZCwgVVJM
KFVSTCgpLCAiaHR0cDovL3dlYmtpdC5vcmcvZm9vciIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpB
Y3Rpb25UeXBlOjpCbG9ja0xvYWQgfSk7Cit9CisKK2NvbnN0IGNoYXIqIHN0YXJ0T2ZMaW5lQXNz
ZXJ0aW9uRmlsdGVyID0gIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJeZm9vYmFyXCJ9fV0iOworCitURVNUX0YoQ29udGVudEV4
dGVuc2lvblRlc3QsIFN0YXJ0T2ZMaW5lQXNzZXJ0aW9uKQoreworICAgIGF1dG8gZXh0ZW5zaW9u
RGF0YSA9IENvbnRlbnRFeHRlbnNpb25zOjpjb21waWxlUnVsZUxpc3Qoc3RhcnRPZkxpbmVBc3Nl
cnRpb25GaWx0ZXIpOworICAgIGF1dG8gZXh0ZW5zaW9uID0gSW5NZW1vcnlDb21waWxlZENvbnRl
bnRFeHRlbnNpb246OmNyZWF0ZShXVEY6Om1vdmUoZXh0ZW5zaW9uRGF0YSkpOworCisgICAgQ29u
dGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25zQmFja2VuZCBiYWNrZW5kOworICAgIGJh
Y2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbigiU3RhcnRPZkxpbmVBc3NlcnRpb24iLCBleHRlbnNp
b24pOworCisgICAgdGVzdFVSTChiYWNrZW5kLCBVUkwoVVJMKCksICJmb29iYXI6Ly93ZWJraXQu
b3JnL2Zvb2JhciIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQg
fSk7CisgICAgdGVzdFVSTChiYWNrZW5kLCBVUkwoVVJMKCksICJmb29iYXJzOi8vL2Zvb2JhciIp
LCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQgfSk7CisgICAgdGVz
dFVSTChiYWNrZW5kLCBVUkwoVVJMKCksICJmb29iYXJmb29iYXI6Ly8vZm9vYmFyZm9vYmFyZm9v
YmFyIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKKwor
ICAgIHRlc3RVUkwoYmFja2VuZCwgVVJMKFVSTCgpLCAiaHR0cDovL3dlYmtpdC5vcmcvZm9vYmFy
Zm9vIiksIHsgfSk7CisgICAgdGVzdFVSTChiYWNrZW5kLCBVUkwoVVJMKCksICJodHRwOi8vd2Vi
a2l0Lm9yZy9mb29iYXJmIiksIHsgfSk7CisgICAgdGVzdFVSTChiYWNrZW5kLCBVUkwoVVJMKCks
ICJodHRwOi8vZm9vYmFyLm9yZy8iKSwgeyB9KTsKKyAgICB0ZXN0VVJMKGJhY2tlbmQsIFVSTChV
UkwoKSwgImh0dHA6Ly9mb29iYXIub3JnLyIpLCB7IH0pOworfQorCitjb25zdCBjaGFyKiBlbmRP
ZkxpbmVBc3NlcnRpb25GaWx0ZXIgPSAiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9
LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIi4qZm9vYmFyJFwifX1dIjsKKworVEVTVF9G
KENvbnRlbnRFeHRlbnNpb25UZXN0LCBFbmRPZkxpbmVBc3NlcnRpb24pCit7CisgICAgYXV0byBl
eHRlbnNpb25EYXRhID0gQ29udGVudEV4dGVuc2lvbnM6OmNvbXBpbGVSdWxlTGlzdChlbmRPZkxp
bmVBc3NlcnRpb25GaWx0ZXIpOworICAgIGF1dG8gZXh0ZW5zaW9uID0gSW5NZW1vcnlDb21waWxl
ZENvbnRlbnRFeHRlbnNpb246OmNyZWF0ZShXVEY6Om1vdmUoZXh0ZW5zaW9uRGF0YSkpOworCisg
ICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25zQmFja2VuZCBiYWNrZW5kOwor
ICAgIGJhY2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbigiRW5kT2ZMaW5lQXNzZXJ0aW9uIiwgZXh0
ZW5zaW9uKTsKKworICAgIHRlc3RVUkwoYmFja2VuZCwgVVJMKFVSTCgpLCAiaHR0cDovL3dlYmtp
dC5vcmcvZm9vYmFyIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9h
ZCB9KTsKKyAgICB0ZXN0VVJMKGJhY2tlbmQsIFVSTChVUkwoKSwgImZpbGU6Ly8vZm9vYmFyIiks
IHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKKyAgICB0ZXN0
VVJMKGJhY2tlbmQsIFVSTChVUkwoKSwgImZpbGU6Ly8vZm9vYmFyZm9vYmFyZm9vYmFyIiksIHsg
Q29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKKworICAgIHRlc3RV
UkwoYmFja2VuZCwgVVJMKFVSTCgpLCAiaHR0cDovL3dlYmtpdC5vcmcvZm9vYmFyZm9vIiksIHsg
fSk7CisgICAgdGVzdFVSTChiYWNrZW5kLCBVUkwoVVJMKCksICJodHRwOi8vd2Via2l0Lm9yZy9m
b29iYXJmIiksIHsgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>