<?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>169629</bug_id>
          
          <creation_ts>2017-03-14 14:33:40 -0700</creation_ts>
          <short_desc>[Cocoa] Web Inspector: generated code for parsing an array of primitive-type enums from payload does not work</short_desc>
          <delta_ts>2017-03-14 16:44:08 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1287792</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-03-14 14:33:40 -0700</bug_when>
    <thetext>Oops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287796</commentid>
    <comment_count>1</comment_count>
      <attachid>304422</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-03-14 14:41:34 -0700</bug_when>
    <thetext>Created attachment 304422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287801</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-14 14:43:45 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-inspector-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287829</commentid>
    <comment_count>3</comment_count>
      <attachid>304422</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-03-14 15:01:52 -0700</bug_when>
    <thetext>Comment on attachment 304422
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287874</commentid>
    <comment_count>4</comment_count>
      <attachid>304422</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-14 16:44:04 -0700</bug_when>
    <thetext>Comment on attachment 304422
Patch

Clearing flags on attachment: 304422

Committed r213960: &lt;http://trac.webkit.org/changeset/213960&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287875</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-14 16:44:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304422</attachid>
            <date>2017-03-14 14:41:34 -0700</date>
            <delta_ts>2017-03-14 16:44:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169629-20170314144134.patch</filename>
            <type>text/plain</type>
            <size>36290</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
M2M1N2ViNGNhZGNhZDQyOTJiYzYxMTFjMDhhY2ZiZDBiZDU4OTM3Li4zODRjN2Y3Njc3YjFmNTE2
YzdmM2ExZDMyYmMxMDM1NDFhMTg1MjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNy0wMy0xNCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29jb2FdIFdlYiBJbnNwZWN0b3I6IGdlbmVyYXRlZCBjb2RlIGZvciBwYXJzaW5n
IGFuIGFycmF5IG9mIHByaW1pdGl2ZS10eXBlIGVudW1zIGZyb20gcGF5bG9hZCBkb2VzIG5vdCB3
b3JrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk2
MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHdhcyBlbmNvdW50ZXJlZCB3aGlsZSB0cnlpbmcgdG8gY29tcGlsZSBuZXcgcHJvdG9jb2wgZGVm
aW5pdGlvbnMgdGhhdCBzdXBwb3J0IHRoZSBBY3Rpb25zIEFQSS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9zY3JpcHRzL2NvZGVnZW4vbW9kZWxzLnB5OgorICAgICAgICAoRW51bVR5cGUuX19yZXBy
X18pOiBJbXByb3ZlIGRlYnVnIGxvZ2dpbmcgc28gZmllbGRzIG1hdGNoIHRoZSBjbGFzcyBtZW1i
ZXIgbmFtZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL29iamNfZ2Vu
ZXJhdG9yLnB5OgorICAgICAgICAoT2JqQ0dlbmVyYXRvci5wYXlsb2FkX3RvX29iamNfZXhwcmVz
c2lvbl9mb3JfbWVtYmVyKToKKyAgICAgICAgSWYgdGhlIGFycmF5IGVsZW1lbnRzIGFyZSBhY3R1
YWxseSBhIHByaW1pdGl2ZSB0eXBlLCB0aGVuIHRoZXJlJ3Mgbm8gbmVlZCB0byBkbyBhbnkKKyAg
ICAgICAgY29udmVyc2lvbiBmcm9tIGEgcGF5bG9hZC4gVGhpcyBoYXBwZW5zIGZvciBmcmVlIHNp
bmNlIHRoZSBwYXlsb2FkIGlzIGEgdHJlZSBvZgorICAgICAgICBOU0RpY3Rpb25hcnksIE5TU3Ry
aW5nLCBOU051bWJlciwgZXRjLiAKKworICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2dlbmVyaWMvZXhwZWN0ZWQvc2hhZG93ZWQtb3B0aW9uYWwtdHlwZS1zZXR0ZXJzLmpzb24tcmVz
dWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQv
dHlwZS1kZWNsYXJhdGlvbi1vYmplY3QtdHlwZS5qc29uLXJlc3VsdDoKKyAgICAgICAgUmViYXNl
bGluZS4KKworICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvdHlwZS1k
ZWNsYXJhdGlvbi1vYmplY3QtdHlwZS5qc29uOgorICAgICAgICBBZGQgbmV3IGNhc2VzIGZvciBw
cm9wZXJ0aWVzIHRoYXQgY29udGFpbiBhbiBhcnJheSB3aXRoIGVudW0gdHlwZSByZWZlcmVuY2Vz
IGFuZCBhbiBhcnJheSBvZiBhbm9ueW1vdXMgZW51bXMuCisKIDIwMTctMDMtMDkgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEd1YXJkIENyZWRlbnRpYWwgTWFu
YWdlbWVudCBpbXBsZW1lbnRhdGlvbiBiZWhpbmQgYSBydW50aW1lIGVuYWJsZWQgZmVhdHVyZSBm
bGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9tb2RlbHMucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvY29kZWdlbi9tb2RlbHMucHkKaW5kZXggYjI4NmE1YzQwZDRhMzQyNWJiMDYyMDc3MDU4YzQz
MDE2NTdiZWM2OC4uY2Y5YWNmZDY3OTFjY2I1ZDc2YzIwZjU4ZGMyYzA5NjM3NDhlNmU0ZiAxMDA3
NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4v
bW9kZWxzLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9j
b2RlZ2VuL21vZGVscy5weQpAQCAtMjU4LDcgKzI1OCw3IEBAIGNsYXNzIEVudW1UeXBlKFR5cGUp
OgogICAgICAgICBzZWxmLmlzX2Fub255bW91cyA9IGlzX2Fub255bW91cwogCiAgICAgZGVmIF9f
cmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gJ0VudW1UeXBlW3ZhbHVlX3R5cGU9JXM7IHZh
bHVlcz0lc10nICUgKHNlbGYucXVhbGlmaWVkX25hbWUoKSwgJywgJy5qb2luKG1hcChzdHIsIHNl
bGYuZW51bV92YWx1ZXMoKSkpKQorICAgICAgICByZXR1cm4gJ0VudW1UeXBlW3ByaW1pdGl2ZV90
eXBlPSVzOyBlbnVtX3ZhbHVlcz0lc10nICUgKHNlbGYucXVhbGlmaWVkX25hbWUoKSwgJywgJy5q
b2luKG1hcChzdHIsIHNlbGYuZW51bV92YWx1ZXMoKSkpKQogCiAgICAgZGVmIGlzX2VudW0oc2Vs
Zik6CiAgICAgICAgIHJldHVybiBUcnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9vYmpjX2dlbmVyYXRvci5weSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL29iamNfZ2VuZXJhdG9yLnB5
CmluZGV4IDIxZTE3OTE0ODdmNDhmZTdkZmRmOGJlMjU2NGM0NGVhODQxZDkyYjYuLjAyMmM4ZTY3
NGQ2NGM1OTgwMTE2ZDYxNWNmMjc1YjQ0YWVjODllYWMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL29iamNfZ2VuZXJhdG9yLnB5Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL29iamNf
Z2VuZXJhdG9yLnB5CkBAIC00ODYsOCArNDg2LDE2IEBAIGNsYXNzIE9iakNHZW5lcmF0b3IoR2Vu
ZXJhdG9yKToKICAgICAgICAgICAgIG9iamNfY2xhc3MgPSBzZWxmLm9iamNfY2xhc3NfZm9yX3R5
cGUobWVtYmVyLnR5cGUpCiAgICAgICAgICAgICByZXR1cm4gJ1tbJXMgYWxsb2NdIGluaXRXaXRo
UGF5bG9hZDpwYXlsb2FkW0AiJXMiXV0nICUgKG9iamNfY2xhc3MsIG1lbWJlci5tZW1iZXJfbmFt
ZSkKICAgICAgICAgaWYgaXNpbnN0YW5jZShfdHlwZSwgQXJyYXlUeXBlKToKLSAgICAgICAgICAg
IG9iamNfY2xhc3MgPSBzZWxmLm9iamNfY2xhc3NfZm9yX3R5cGUobWVtYmVyLnR5cGUuZWxlbWVu
dF90eXBlKQotICAgICAgICAgICAgcmV0dXJuICdvYmpjQXJyYXlGcm9tUGF5bG9hZDwlcz4ocGF5
bG9hZFtAIiVzIl0pJyAlIChvYmpjX2NsYXNzLCBtZW1iZXIubWVtYmVyX25hbWUpCisgICAgICAg
ICAgICBlbGVtZW50X3R5cGUgPSBtZW1iZXIudHlwZS5lbGVtZW50X3R5cGUKKyAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2UoZWxlbWVudF90eXBlLCBFbnVtVHlwZSk6CisgICAgICAgICAgICAgICAg
ZWxlbWVudF90eXBlID0gZWxlbWVudF90eXBlLnByaW1pdGl2ZV90eXBlCisKKyAgICAgICAgICAg
ICMgSW4gdGhpcyBjYXNlLCB0aGVyZSBpcyBubyBjb252ZXJzaW9uIHRoYXQgbmVlZHMgdG8gYmUg
ZG9uZSwgdGhlIGFycmF5IGFscmVhZHkgY29udGFpbnMgYW4gT2JqQyB0eXBlLgorICAgICAgICAg
ICAgaWYgaXNpbnN0YW5jZShlbGVtZW50X3R5cGUsIFByaW1pdGl2ZVR5cGUpOgorICAgICAgICAg
ICAgICAgIHJldHVybiAncGF5bG9hZFtAIiVzIl0nICUgbWVtYmVyLm1lbWJlcl9uYW1lCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG9iamNfY2xhc3MgPSBzZWxmLm9iamNfY2xh
c3NfZm9yX3R5cGUoZWxlbWVudF90eXBlKQorICAgICAgICAgICAgICAgIHJldHVybiAnb2JqY0Fy
cmF5RnJvbVBheWxvYWQ8JXM+KHBheWxvYWRbQCIlcyJdKScgJSAob2JqY19jbGFzcywgbWVtYmVy
Lm1lbWJlcl9uYW1lKQogCiAgICAgIyBKU09OIG9iamVjdCBzZXR0ZXIvZ2V0dGVyIHNlbGVjdG9y
cyBmb3IgdHlwZXMuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3NoYWRvd2VkLW9wdGlvbmFsLXR5cGUt
c2V0dGVycy5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3NoYWRvd2VkLW9wdGlvbmFsLXR5cGUtc2V0dGVy
cy5qc29uLXJlc3VsdAppbmRleCBiN2VmZjFiMTU3ODU1MmE0MmFhM2RmYTZmZjE4YzY1N2E1YWI4
ODljLi4xNjg4MjFhOTlmZDUyMGY5ZTI2Nzk3ZDdmOWM2Y2FjYTdiM2VlY2YzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9l
eHBlY3RlZC9zaGFkb3dlZC1vcHRpb25hbC10eXBlLXNldHRlcnMuanNvbi1yZXN1bHQKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhw
ZWN0ZWQvc2hhZG93ZWQtb3B0aW9uYWwtdHlwZS1zZXR0ZXJzLmpzb24tcmVzdWx0CkBAIC0xMDYx
LDcgKzEwNjEsNyBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiAgICAgc2VsZi5zdHJp
bmcgPSBwYXlsb2FkW0Aic3RyaW5nIl07CiAKLSAgICBzZWxmLmFycmF5ID0gb2JqY0FycmF5RnJv
bVBheWxvYWQ8TlNTdHJpbmc+KHBheWxvYWRbQCJhcnJheSJdKTsKKyAgICBzZWxmLmFycmF5ID0g
cGF5bG9hZFtAImFycmF5Il07CiAKICAgICByZXR1cm4gc2VsZjsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVj
dGVkL3R5cGUtZGVjbGFyYXRpb24tb2JqZWN0LXR5cGUuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBl
LWRlY2xhcmF0aW9uLW9iamVjdC10eXBlLmpzb24tcmVzdWx0CmluZGV4IDFiMjNhYjJhOTc2YmIw
ZWRlYWEzMWU3NjExYWQ4MGVkNThiNTI1ZjIuLmZlYjYzNzBhNzY2MjY5NDcwOGM1OTNiMDg4MDJl
MmIxZGQyMjY3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRpb24tb2JqZWN0LXR5
cGUuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1vYmplY3QtdHlwZS5q
c29uLXJlc3VsdApAQCAtMjgsNiArMjgsMTEgQEAKIAogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxF
LiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHR5cGUtZGVjbGFyYXRpb24tb2Jq
ZWN0LXR5cGUuanNvbgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQor
CisvLyBEYXRhYmFzZS4KK0luc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJEYXRhYmFzZS5N
b3VzZUJ1dHRvbiIsIHtOb25lOiAiTm9uZSIsIExlZnQ6ICJMZWZ0IiwgTWlkZGxlOiAiTWlkZGxl
IiwgUmlnaHQ6ICJSaWdodCJ9KTsKK0luc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJEYXRh
YmFzZS5PcHRpb25hbFBhcmFtZXRlckJ1bmRsZURpcmVjdGlvbmFsaXR5Iiwge0xUUjogIkxUUiIs
IFJUTDogIlJUTCJ9KTsKK0luc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJEYXRhYmFzZS5Q
YXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eSIsIHtMVFI6ICJMVFIiLCBSVEw6ICJSVEwifSk7
CiAjIyMgRW5kIEZpbGU6IEluc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcwogCiAjIyMgQmVnaW4g
RmlsZTogVGVzdEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oCkBAIC0zMjAsNiArMzI1LDcg
QEAgY2xhc3MgT3B0aW9uYWxQYXJhbWV0ZXJCdW5kbGU7CiBjbGFzcyBQYXJhbWV0ZXJCdW5kbGU7
CiBjbGFzcyBPYmplY3RXaXRoUHJvcGVydHlOYW1lQ29uZmxpY3RzOwogY2xhc3MgRHVtbXlPYmpl
Y3Q7CitlbnVtIGNsYXNzIE1vdXNlQnV0dG9uOwogfSAvLyBEYXRhYmFzZQogCiBuYW1lc3BhY2Ug
VGVzdCB7CkBAIC0zMzQsNiArMzQwLDE3IEBAIHR5cGVkZWYgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6RGF0YWJhc2U6OkVycm9yPiBFcnJvckxpCiB9IC8v
IERhdGFiYXNlCiAvLyBFbmQgb2YgdHlwZWRlZnMuCiAKK25hbWVzcGFjZSBUZXN0SGVscGVycyB7
CisKK1N0cmluZyBnZXRFbnVtQ29uc3RhbnRWYWx1ZShpbnQgY29kZSk7CisKK3RlbXBsYXRlPHR5
cGVuYW1lIFQ+IFN0cmluZyBnZXRFbnVtQ29uc3RhbnRWYWx1ZShUIGVudW1WYWx1ZSkKK3sKKyAg
ICByZXR1cm4gZ2V0RW51bUNvbnN0YW50VmFsdWUoc3RhdGljX2Nhc3Q8aW50PihlbnVtVmFsdWUp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdEhlbHBlcnMKKwogbmFtZXNwYWNlIERhdGFiYXNl
IHsKIC8qIERhdGFiYXNlIGVycm9yLiAqLwogY2xhc3MgRXJyb3IgOiBwdWJsaWMgSW5zcGVjdG9y
OjpJbnNwZWN0b3JPYmplY3RCYXNlIHsKQEAgLTQwMCw4ICs0MTcsMjAgQEAgcHVibGljOgogICAg
IH0KIH07CiAKKy8qIEVudW1lcmF0ZXMgZGlmZmVyZW50IG1vdXNlIGJ1dHRvbnMgdGhhdCBjYW4g
YmUgdXNlZC4gKi8KK2VudW0gY2xhc3MgTW91c2VCdXR0b24geworICAgIE5vbmUgPSAwLAorICAg
IExlZnQgPSAxLAorICAgIE1pZGRsZSA9IDIsCisgICAgUmlnaHQgPSAzLAorfTsgLy8gZW51bSBj
bGFzcyBNb3VzZUJ1dHRvbgogY2xhc3MgT3B0aW9uYWxQYXJhbWV0ZXJCdW5kbGUgOiBwdWJsaWMg
SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3RCYXNlIHsKIHB1YmxpYzoKKyAgICAvLyBOYW1lZCBh
ZnRlciBwcm9wZXJ0eSBuYW1lICdkaXJlY3Rpb25hbGl0eScgd2hpbGUgZ2VuZXJhdGluZyBPcHRp
b25hbFBhcmFtZXRlckJ1bmRsZS4KKyAgICBlbnVtIGNsYXNzIERpcmVjdGlvbmFsaXR5IHsKKyAg
ICAgICAgTFRSID0gNCwKKyAgICAgICAgUlRMID0gNSwKKyAgICB9OyAvLyBlbnVtIGNsYXNzIERp
cmVjdGlvbmFsaXR5CiAgICAgZW51bSB7CiAgICAgICAgIE5vRmllbGRzU2V0ID0gMCwKICAgICAg
ICAgQWxsRmllbGRzU2V0ID0gMApAQCAtNDUwLDYgKzQ3OSwxNiBAQCBwdWJsaWM6CiAgICAgICAg
IEluc3BlY3Rvck9iamVjdEJhc2U6OnNldEFycmF5KEFTQ0lJTGl0ZXJhbCgiY29sdW1uTmFtZXMi
KSwgV1RGTW92ZSh2YWx1ZSkpOwogICAgIH0KIAorICAgIHZvaWQgc2V0QnV0dG9ucyhSZWZQdHI8
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6RGF0YWJhc2U6
Ok1vdXNlQnV0dG9uPj4gdmFsdWUpCisgICAgeworICAgICAgICBJbnNwZWN0b3JPYmplY3RCYXNl
OjpzZXRBcnJheShBU0NJSUxpdGVyYWwoImJ1dHRvbnMiKSwgV1RGTW92ZSh2YWx1ZSkpOworICAg
IH0KKworICAgIHZvaWQgc2V0RGlyZWN0aW9uYWxpdHkoRGlyZWN0aW9uYWxpdHkgdmFsdWUpCisg
ICAgeworICAgICAgICBJbnNwZWN0b3JPYmplY3RCYXNlOjpzZXRTdHJpbmcoQVNDSUlMaXRlcmFs
KCJkaXJlY3Rpb25hbGl0eSIpLCBJbnNwZWN0b3I6OlByb3RvY29sOjpUZXN0SGVscGVyczo6Z2V0
RW51bUNvbnN0YW50VmFsdWUodmFsdWUpKTsKKyAgICB9CisKICAgICB2b2lkIHNldE5vdGVzKGNv
bnN0IFN0cmluZyYgdmFsdWUpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JPYmplY3RCYXNlOjpz
ZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJub3RlcyIpLCB2YWx1ZSk7CkBAIC00ODMsMTYgKzUyMiwy
MyBAQCBwdWJsaWM6CiAKIGNsYXNzIFBhcmFtZXRlckJ1bmRsZSA6IHB1YmxpYyBJbnNwZWN0b3I6
Okluc3BlY3Rvck9iamVjdEJhc2UgewogcHVibGljOgorICAgIC8vIE5hbWVkIGFmdGVyIHByb3Bl
cnR5IG5hbWUgJ2RpcmVjdGlvbmFsaXR5JyB3aGlsZSBnZW5lcmF0aW5nIFBhcmFtZXRlckJ1bmRs
ZS4KKyAgICBlbnVtIGNsYXNzIERpcmVjdGlvbmFsaXR5IHsKKyAgICAgICAgTFRSID0gNCwKKyAg
ICAgICAgUlRMID0gNSwKKyAgICB9OyAvLyBlbnVtIGNsYXNzIERpcmVjdGlvbmFsaXR5CiAgICAg
ZW51bSB7CiAgICAgICAgIE5vRmllbGRzU2V0ID0gMCwKICAgICAgICAgQ29sdW1uTmFtZXNTZXQg
PSAxIDw8IDAsCi0gICAgICAgIE5vdGVzU2V0ID0gMSA8PCAxLAotICAgICAgICBUaW1lc3RhbXBT
ZXQgPSAxIDw8IDIsCi0gICAgICAgIFZhbHVlc1NldCA9IDEgPDwgMywKLSAgICAgICAgUGF5bG9h
ZFNldCA9IDEgPDwgNCwKLSAgICAgICAgRXJyb3JTZXQgPSAxIDw8IDUsCi0gICAgICAgIEVycm9y
TGlzdFNldCA9IDEgPDwgNiwKLSAgICAgICAgQWxsRmllbGRzU2V0ID0gKENvbHVtbk5hbWVzU2V0
IHwgTm90ZXNTZXQgfCBUaW1lc3RhbXBTZXQgfCBWYWx1ZXNTZXQgfCBQYXlsb2FkU2V0IHwgRXJy
b3JTZXQgfCBFcnJvckxpc3RTZXQpCisgICAgICAgIEJ1dHRvbnNTZXQgPSAxIDw8IDEsCisgICAg
ICAgIERpcmVjdGlvbmFsaXR5U2V0ID0gMSA8PCAyLAorICAgICAgICBOb3Rlc1NldCA9IDEgPDwg
MywKKyAgICAgICAgVGltZXN0YW1wU2V0ID0gMSA8PCA0LAorICAgICAgICBWYWx1ZXNTZXQgPSAx
IDw8IDUsCisgICAgICAgIFBheWxvYWRTZXQgPSAxIDw8IDYsCisgICAgICAgIEVycm9yU2V0ID0g
MSA8PCA3LAorICAgICAgICBFcnJvckxpc3RTZXQgPSAxIDw8IDgsCisgICAgICAgIEFsbEZpZWxk
c1NldCA9IChDb2x1bW5OYW1lc1NldCB8IEJ1dHRvbnNTZXQgfCBEaXJlY3Rpb25hbGl0eVNldCB8
IE5vdGVzU2V0IHwgVGltZXN0YW1wU2V0IHwgVmFsdWVzU2V0IHwgUGF5bG9hZFNldCB8IEVycm9y
U2V0IHwgRXJyb3JMaXN0U2V0KQogICAgIH07CiAKICAgICB0ZW1wbGF0ZTxpbnQgU1RBVEU+CkBA
IC01MjAsNiArNTY2LDIwIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBjYXN0U3RhdGU8
Q29sdW1uTmFtZXNTZXQ+KCk7CiAgICAgICAgIH0KIAorICAgICAgICBCdWlsZGVyPFNUQVRFIHwg
QnV0dG9uc1NldD4mIHNldEJ1dHRvbnMoUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRhdGFiYXNlOjpNb3VzZUJ1dHRvbj4+IHZhbHVlKQorICAg
ICAgICB7CisgICAgICAgICAgICBDT01QSUxFX0FTU0VSVCghKFNUQVRFICYgQnV0dG9uc1NldCks
IHByb3BlcnR5X2J1dHRvbnNfYWxyZWFkeV9zZXQpOworICAgICAgICAgICAgbV9yZXN1bHQtPnNl
dEFycmF5KEFTQ0lJTGl0ZXJhbCgiYnV0dG9ucyIpLCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1
cm4gY2FzdFN0YXRlPEJ1dHRvbnNTZXQ+KCk7CisgICAgICAgIH0KKworICAgICAgICBCdWlsZGVy
PFNUQVRFIHwgRGlyZWN0aW9uYWxpdHlTZXQ+JiBzZXREaXJlY3Rpb25hbGl0eShEaXJlY3Rpb25h
bGl0eSB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoIShTVEFU
RSAmIERpcmVjdGlvbmFsaXR5U2V0KSwgcHJvcGVydHlfZGlyZWN0aW9uYWxpdHlfYWxyZWFkeV9z
ZXQpOworICAgICAgICAgICAgbV9yZXN1bHQtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImRpcmVj
dGlvbmFsaXR5IiksIEluc3BlY3Rvcjo6UHJvdG9jb2w6OlRlc3RIZWxwZXJzOjpnZXRFbnVtQ29u
c3RhbnRWYWx1ZSh2YWx1ZSkpOworICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxEaXJlY3Rp
b25hbGl0eVNldD4oKTsKKyAgICAgICAgfQorCiAgICAgICAgIEJ1aWxkZXI8U1RBVEUgfCBOb3Rl
c1NldD4mIHNldE5vdGVzKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIENPTVBJTEVfQVNTRVJUKCEoU1RBVEUgJiBOb3Rlc1NldCksIHByb3BlcnR5X25vdGVzX2Fs
cmVhZHlfc2V0KTsKQEAgLTU3Niw2ICs2MzYsOCBAQCBwdWJsaWM6CiAgICAgICogU3ludGhldGlj
IGNvbnN0cnVjdG9yOgogICAgICAqIFJlZjxQYXJhbWV0ZXJCdW5kbGU+IHJlc3VsdCA9IFBhcmFt
ZXRlckJ1bmRsZTo6Y3JlYXRlKCkKICAgICAgKiAgICAgLnNldENvbHVtbk5hbWVzKC4uLikKKyAg
ICAgKiAgICAgLnNldEJ1dHRvbnMoLi4uKQorICAgICAqICAgICAuc2V0RGlyZWN0aW9uYWxpdHko
Li4uKQogICAgICAqICAgICAuc2V0Tm90ZXMoLi4uKQogICAgICAqICAgICAuc2V0VGltZXN0YW1w
KC4uLikKICAgICAgKiAgICAgLnNldFZhbHVlcyguLi4pCkBAIC02ODcsMTUgKzc0OSwyMiBAQCBw
dWJsaWM6CiBuYW1lc3BhY2UgVGVzdCB7CiBjbGFzcyBQYXJhbWV0ZXJCdW5kbGUgOiBwdWJsaWMg
SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3RCYXNlIHsKIHB1YmxpYzoKKyAgICAvLyBOYW1lZCBh
ZnRlciBwcm9wZXJ0eSBuYW1lICdkaXJlY3Rpb25hbGl0eScgd2hpbGUgZ2VuZXJhdGluZyBQYXJh
bWV0ZXJCdW5kbGUuCisgICAgZW51bSBjbGFzcyBEaXJlY3Rpb25hbGl0eSB7CisgICAgICAgIExU
UiA9IDQsCisgICAgICAgIFJUTCA9IDUsCisgICAgfTsgLy8gZW51bSBjbGFzcyBEaXJlY3Rpb25h
bGl0eQogICAgIGVudW0gewogICAgICAgICBOb0ZpZWxkc1NldCA9IDAsCi0gICAgICAgIENvbHVt
bk5hbWVzU2V0ID0gMSA8PCAwLAotICAgICAgICBOb3Rlc1NldCA9IDEgPDwgMSwKLSAgICAgICAg
VGltZXN0YW1wU2V0ID0gMSA8PCAyLAotICAgICAgICBWYWx1ZXNTZXQgPSAxIDw8IDMsCi0gICAg
ICAgIFBheWxvYWRTZXQgPSAxIDw8IDQsCi0gICAgICAgIEVycm9yU2V0ID0gMSA8PCA1LAotICAg
ICAgICBBbGxGaWVsZHNTZXQgPSAoQ29sdW1uTmFtZXNTZXQgfCBOb3Rlc1NldCB8IFRpbWVzdGFt
cFNldCB8IFZhbHVlc1NldCB8IFBheWxvYWRTZXQgfCBFcnJvclNldCkKKyAgICAgICAgRGlyZWN0
aW9uYWxpdHlTZXQgPSAxIDw8IDAsCisgICAgICAgIEJ1dHRvbnNTZXQgPSAxIDw8IDEsCisgICAg
ICAgIENvbHVtbk5hbWVzU2V0ID0gMSA8PCAyLAorICAgICAgICBOb3Rlc1NldCA9IDEgPDwgMywK
KyAgICAgICAgVGltZXN0YW1wU2V0ID0gMSA8PCA0LAorICAgICAgICBWYWx1ZXNTZXQgPSAxIDw8
IDUsCisgICAgICAgIFBheWxvYWRTZXQgPSAxIDw8IDYsCisgICAgICAgIEVycm9yU2V0ID0gMSA8
PCA3LAorICAgICAgICBBbGxGaWVsZHNTZXQgPSAoRGlyZWN0aW9uYWxpdHlTZXQgfCBCdXR0b25z
U2V0IHwgQ29sdW1uTmFtZXNTZXQgfCBOb3Rlc1NldCB8IFRpbWVzdGFtcFNldCB8IFZhbHVlc1Nl
dCB8IFBheWxvYWRTZXQgfCBFcnJvclNldCkKICAgICB9OwogCiAgICAgdGVtcGxhdGU8aW50IFNU
QVRFPgpAQCAtNzE2LDYgKzc4NSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBQ
YXJhbWV0ZXJCdW5kbGU7CiAgICAgcHVibGljOgogCisgICAgICAgIEJ1aWxkZXI8U1RBVEUgfCBE
aXJlY3Rpb25hbGl0eVNldD4mIHNldERpcmVjdGlvbmFsaXR5KERpcmVjdGlvbmFsaXR5IHZhbHVl
KQorICAgICAgICB7CisgICAgICAgICAgICBDT01QSUxFX0FTU0VSVCghKFNUQVRFICYgRGlyZWN0
aW9uYWxpdHlTZXQpLCBwcm9wZXJ0eV9kaXJlY3Rpb25hbGl0eV9hbHJlYWR5X3NldCk7CisgICAg
ICAgICAgICBtX3Jlc3VsdC0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiZGlyZWN0aW9uYWxpdHki
KSwgSW5zcGVjdG9yOjpQcm90b2NvbDo6VGVzdEhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVl
KHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm4gY2FzdFN0YXRlPERpcmVjdGlvbmFsaXR5U2V0
PigpOworICAgICAgICB9CisKKyAgICAgICAgQnVpbGRlcjxTVEFURSB8IEJ1dHRvbnNTZXQ+JiBz
ZXRCdXR0b25zKFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlBy
b3RvY29sOjpEYXRhYmFzZTo6TW91c2VCdXR0b24+PiB2YWx1ZSkKKyAgICAgICAgeworICAgICAg
ICAgICAgQ09NUElMRV9BU1NFUlQoIShTVEFURSAmIEJ1dHRvbnNTZXQpLCBwcm9wZXJ0eV9idXR0
b25zX2FscmVhZHlfc2V0KTsKKyAgICAgICAgICAgIG1fcmVzdWx0LT5zZXRBcnJheShBU0NJSUxp
dGVyYWwoImJ1dHRvbnMiKSwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxC
dXR0b25zU2V0PigpOworICAgICAgICB9CisKICAgICAgICAgQnVpbGRlcjxTVEFURSB8IENvbHVt
bk5hbWVzU2V0PiYgc2V0Q29sdW1uTmFtZXMoUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFy
cmF5PFN0cmluZz4+IHZhbHVlKQogICAgICAgICB7CiAgICAgICAgICAgICBDT01QSUxFX0FTU0VS
VCghKFNUQVRFICYgQ29sdW1uTmFtZXNTZXQpLCBwcm9wZXJ0eV9jb2x1bW5OYW1lc19hbHJlYWR5
X3NldCk7CkBAIC03NzEsNiArODU0LDggQEAgcHVibGljOgogICAgIC8qCiAgICAgICogU3ludGhl
dGljIGNvbnN0cnVjdG9yOgogICAgICAqIFJlZjxQYXJhbWV0ZXJCdW5kbGU+IHJlc3VsdCA9IFBh
cmFtZXRlckJ1bmRsZTo6Y3JlYXRlKCkKKyAgICAgKiAgICAgLnNldERpcmVjdGlvbmFsaXR5KC4u
LikKKyAgICAgKiAgICAgLnNldEJ1dHRvbnMoLi4uKQogICAgICAqICAgICAuc2V0Q29sdW1uTmFt
ZXMoLi4uKQogICAgICAqICAgICAuc2V0Tm90ZXMoLi4uKQogICAgICAqICAgICAuc2V0VGltZXN0
YW1wKC4uLikKQEAgLTc4OSw2ICs4NzQsMjUgQEAgcHVibGljOgogCiAKIAorbmFtZXNwYWNlIFRl
c3RIZWxwZXJzIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgUHJvdG9jb2xFbnVtVHlwZT4KK3N0ZDo6
b3B0aW9uYWw8UHJvdG9jb2xFbnVtVHlwZT4gcGFyc2VFbnVtVmFsdWVGcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYpOworCisvLyBFbnVtcyBpbiB0aGUgJ0RhdGFiYXNlJyBEb21haW4KK3RlbXBsYXRl
PD4KK3N0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6RGF0YWJhc2U6Ok1vdXNlQnV0
dG9uPiBwYXJzZUVudW1WYWx1ZUZyb21TdHJpbmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6RGF0YWJh
c2U6Ok1vdXNlQnV0dG9uPihjb25zdCBTdHJpbmcmKTsKK3RlbXBsYXRlPD4KK3N0ZDo6b3B0aW9u
YWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6RGF0YWJhc2U6Ok9wdGlvbmFsUGFyYW1ldGVyQnVuZGxl
OjpEaXJlY3Rpb25hbGl0eT4gcGFyc2VFbnVtVmFsdWVGcm9tU3RyaW5nPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkRhdGFiYXNlOjpPcHRpb25hbFBhcmFtZXRlckJ1bmRsZTo6RGlyZWN0aW9uYWxpdHk+
KGNvbnN0IFN0cmluZyYpOwordGVtcGxhdGU8Pgorc3RkOjpvcHRpb25hbDxJbnNwZWN0b3I6OlBy
b3RvY29sOjpEYXRhYmFzZTo6UGFyYW1ldGVyQnVuZGxlOjpEaXJlY3Rpb25hbGl0eT4gcGFyc2VF
bnVtVmFsdWVGcm9tU3RyaW5nPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRhdGFiYXNlOjpQYXJhbWV0
ZXJCdW5kbGU6OkRpcmVjdGlvbmFsaXR5Pihjb25zdCBTdHJpbmcmKTsKKworLy8gRW51bXMgaW4g
dGhlICdUZXN0JyBEb21haW4KK3RlbXBsYXRlPD4KK3N0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6VGVzdDo6UGFyYW1ldGVyQnVuZGxlOjpEaXJlY3Rpb25hbGl0eT4gcGFyc2VFbnVt
VmFsdWVGcm9tU3RyaW5nPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlRlc3Q6OlBhcmFtZXRlckJ1bmRs
ZTo6RGlyZWN0aW9uYWxpdHk+KGNvbnN0IFN0cmluZyYpOworCit9IC8vIG5hbWVzcGFjZSBUZXN0
SGVscGVycworCiB9IC8vIG5hbWVzcGFjZSBQcm90b2NvbAogCiB9IC8vIG5hbWVzcGFjZSBJbnNw
ZWN0b3IKQEAgLTgzNSw2ICs5MzksODUgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIG5hbWVz
cGFjZSBQcm90b2NvbCB7CiAKK25hbWVzcGFjZSBUZXN0SGVscGVycyB7CisKK3N0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCBlbnVtX2NvbnN0YW50X3ZhbHVlc1tdID0geworICAgICJOb25lIiwKKyAg
ICAiTGVmdCIsCisgICAgIk1pZGRsZSIsCisgICAgIlJpZ2h0IiwKKyAgICAiTFRSIiwKKyAgICAi
UlRMIiwKK307CisKK1N0cmluZyBnZXRFbnVtQ29uc3RhbnRWYWx1ZShpbnQgY29kZSkgeworICAg
IHJldHVybiBlbnVtX2NvbnN0YW50X3ZhbHVlc1tjb2RlXTsKK30KKworLy8gRW51bXMgaW4gdGhl
ICdEYXRhYmFzZScgRG9tYWluCit0ZW1wbGF0ZTw+CitzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkRhdGFiYXNlOjpNb3VzZUJ1dHRvbj4gcGFyc2VFbnVtVmFsdWVGcm9tU3RyaW5n
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRhdGFiYXNlOjpNb3VzZUJ1dHRvbj4oY29uc3QgU3RyaW5n
JiBwcm90b2NvbFN0cmluZykKK3sKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGNvbnN0YW50VmFs
dWVzW10gPSB7CisgICAgICAgIChzaXplX3QpSW5zcGVjdG9yOjpQcm90b2NvbDo6RGF0YWJhc2U6
Ok1vdXNlQnV0dG9uOjpOb25lLAorICAgICAgICAoc2l6ZV90KUluc3BlY3Rvcjo6UHJvdG9jb2w6
OkRhdGFiYXNlOjpNb3VzZUJ1dHRvbjo6TGVmdCwKKyAgICAgICAgKHNpemVfdClJbnNwZWN0b3I6
OlByb3RvY29sOjpEYXRhYmFzZTo6TW91c2VCdXR0b246Ok1pZGRsZSwKKyAgICAgICAgKHNpemVf
dClJbnNwZWN0b3I6OlByb3RvY29sOjpEYXRhYmFzZTo6TW91c2VCdXR0b246OlJpZ2h0LAorICAg
IH07CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCA0OyArK2kpCisgICAgICAgIGlmIChwcm90
b2NvbFN0cmluZyA9PSBlbnVtX2NvbnN0YW50X3ZhbHVlc1tjb25zdGFudFZhbHVlc1tpXV0pCisg
ICAgICAgICAgICByZXR1cm4gKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRhdGFiYXNlOjpNb3VzZUJ1
dHRvbiljb25zdGFudFZhbHVlc1tpXTsKKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisK
K3RlbXBsYXRlPD4KK3N0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6RGF0YWJhc2U6
Ok9wdGlvbmFsUGFyYW1ldGVyQnVuZGxlOjpEaXJlY3Rpb25hbGl0eT4gcGFyc2VFbnVtVmFsdWVG
cm9tU3RyaW5nPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRhdGFiYXNlOjpPcHRpb25hbFBhcmFtZXRl
ckJ1bmRsZTo6RGlyZWN0aW9uYWxpdHk+KGNvbnN0IFN0cmluZyYgcHJvdG9jb2xTdHJpbmcpCit7
CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBjb25zdGFudFZhbHVlc1tdID0geworICAgICAgICAo
c2l6ZV90KUluc3BlY3Rvcjo6UHJvdG9jb2w6OkRhdGFiYXNlOjpPcHRpb25hbFBhcmFtZXRlckJ1
bmRsZTo6RGlyZWN0aW9uYWxpdHk6OkxUUiwKKyAgICAgICAgKHNpemVfdClJbnNwZWN0b3I6OlBy
b3RvY29sOjpEYXRhYmFzZTo6T3B0aW9uYWxQYXJhbWV0ZXJCdW5kbGU6OkRpcmVjdGlvbmFsaXR5
OjpSVEwsCisgICAgfTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDI7ICsraSkKKyAgICAg
ICAgaWYgKHByb3RvY29sU3RyaW5nID09IGVudW1fY29uc3RhbnRfdmFsdWVzW2NvbnN0YW50VmFs
dWVzW2ldXSkKKyAgICAgICAgICAgIHJldHVybiAoSW5zcGVjdG9yOjpQcm90b2NvbDo6RGF0YWJh
c2U6Ok9wdGlvbmFsUGFyYW1ldGVyQnVuZGxlOjpEaXJlY3Rpb25hbGl0eSljb25zdGFudFZhbHVl
c1tpXTsKKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK3RlbXBsYXRlPD4KK3N0ZDo6
b3B0aW9uYWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6RGF0YWJhc2U6OlBhcmFtZXRlckJ1bmRsZTo6
RGlyZWN0aW9uYWxpdHk+IHBhcnNlRW51bVZhbHVlRnJvbVN0cmluZzxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpEYXRhYmFzZTo6UGFyYW1ldGVyQnVuZGxlOjpEaXJlY3Rpb25hbGl0eT4oY29uc3QgU3Ry
aW5nJiBwcm90b2NvbFN0cmluZykKK3sKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGNvbnN0YW50
VmFsdWVzW10gPSB7CisgICAgICAgIChzaXplX3QpSW5zcGVjdG9yOjpQcm90b2NvbDo6RGF0YWJh
c2U6OlBhcmFtZXRlckJ1bmRsZTo6RGlyZWN0aW9uYWxpdHk6OkxUUiwKKyAgICAgICAgKHNpemVf
dClJbnNwZWN0b3I6OlByb3RvY29sOjpEYXRhYmFzZTo6UGFyYW1ldGVyQnVuZGxlOjpEaXJlY3Rp
b25hbGl0eTo6UlRMLAorICAgIH07CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAyOyArK2kp
CisgICAgICAgIGlmIChwcm90b2NvbFN0cmluZyA9PSBlbnVtX2NvbnN0YW50X3ZhbHVlc1tjb25z
dGFudFZhbHVlc1tpXV0pCisgICAgICAgICAgICByZXR1cm4gKEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkRhdGFiYXNlOjpQYXJhbWV0ZXJCdW5kbGU6OkRpcmVjdGlvbmFsaXR5KWNvbnN0YW50VmFsdWVz
W2ldOworCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKworCisvLyBFbnVtcyBpbiB0aGUg
J1Rlc3QnIERvbWFpbgordGVtcGxhdGU8Pgorc3RkOjpvcHRpb25hbDxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpUZXN0OjpQYXJhbWV0ZXJCdW5kbGU6OkRpcmVjdGlvbmFsaXR5PiBwYXJzZUVudW1WYWx1
ZUZyb21TdHJpbmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6VGVzdDo6UGFyYW1ldGVyQnVuZGxlOjpE
aXJlY3Rpb25hbGl0eT4oY29uc3QgU3RyaW5nJiBwcm90b2NvbFN0cmluZykKK3sKKyAgICBzdGF0
aWMgY29uc3Qgc2l6ZV90IGNvbnN0YW50VmFsdWVzW10gPSB7CisgICAgICAgIChzaXplX3QpSW5z
cGVjdG9yOjpQcm90b2NvbDo6VGVzdDo6UGFyYW1ldGVyQnVuZGxlOjpEaXJlY3Rpb25hbGl0eTo6
TFRSLAorICAgICAgICAoc2l6ZV90KUluc3BlY3Rvcjo6UHJvdG9jb2w6OlRlc3Q6OlBhcmFtZXRl
ckJ1bmRsZTo6RGlyZWN0aW9uYWxpdHk6OlJUTCwKKyAgICB9OworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgMjsgKytpKQorICAgICAgICBpZiAocHJvdG9jb2xTdHJpbmcgPT0gZW51bV9jb25z
dGFudF92YWx1ZXNbY29uc3RhbnRWYWx1ZXNbaV1dKQorICAgICAgICAgICAgcmV0dXJuIChJbnNw
ZWN0b3I6OlByb3RvY29sOjpUZXN0OjpQYXJhbWV0ZXJCdW5kbGU6OkRpcmVjdGlvbmFsaXR5KWNv
bnN0YW50VmFsdWVzW2ldOworCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKworCit9IC8v
IG5hbWVzcGFjZSBUZXN0SGVscGVycworCiAKIAogfSAvLyBuYW1lc3BhY2UgUHJvdG9jb2wKQEAg
LTExMjksNiArMTMxMiwyNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBUZXN0UHJvdG9j
b2xQbGF0Zm9ybSkgewogfTsKIAogCit0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBUZXN0UHJv
dG9jb2xEYXRhYmFzZU1vdXNlQnV0dG9uKSB7CisgICAgVGVzdFByb3RvY29sRGF0YWJhc2VNb3Vz
ZUJ1dHRvbk5vbmUsCisgICAgVGVzdFByb3RvY29sRGF0YWJhc2VNb3VzZUJ1dHRvbkxlZnQsCisg
ICAgVGVzdFByb3RvY29sRGF0YWJhc2VNb3VzZUJ1dHRvbk1pZGRsZSwKKyAgICBUZXN0UHJvdG9j
b2xEYXRhYmFzZU1vdXNlQnV0dG9uUmlnaHQsCit9OworCit0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBUZXN0UHJvdG9jb2xEYXRhYmFzZU9wdGlvbmFsUGFyYW1ldGVyQnVuZGxlRGlyZWN0aW9u
YWxpdHkpIHsKKyAgICBUZXN0UHJvdG9jb2xEYXRhYmFzZU9wdGlvbmFsUGFyYW1ldGVyQnVuZGxl
RGlyZWN0aW9uYWxpdHlMVFIsCisgICAgVGVzdFByb3RvY29sRGF0YWJhc2VPcHRpb25hbFBhcmFt
ZXRlckJ1bmRsZURpcmVjdGlvbmFsaXR5UlRMLAorfTsKKwordHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgVGVzdFByb3RvY29sRGF0YWJhc2VQYXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eSkg
eworICAgIFRlc3RQcm90b2NvbERhdGFiYXNlUGFyYW1ldGVyQnVuZGxlRGlyZWN0aW9uYWxpdHlM
VFIsCisgICAgVGVzdFByb3RvY29sRGF0YWJhc2VQYXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0
eVJUTCwKK307CisKK3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRlc3RQcm90b2NvbFRlc3RQ
YXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eSkgeworICAgIFRlc3RQcm90b2NvbFRlc3RQYXJh
bWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eUxUUiwKKyAgICBUZXN0UHJvdG9jb2xUZXN0UGFyYW1l
dGVyQnVuZGxlRGlyZWN0aW9uYWxpdHlSVEwsCit9OwogCiAKIF9fYXR0cmlidXRlX18oKHZpc2li
aWxpdHkgKCJkZWZhdWx0IikpKQpAQCAtMTE0NSw2ICsxMzQ5LDggQEAgX19hdHRyaWJ1dGVfXygo
dmlzaWJpbGl0eSAoImRlZmF1bHQiKSkpCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYXlsb2Fk
OihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopcGF5bG9hZDsKIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aEpTT05PYmplY3Q6KFJXSVByb3RvY29sSlNPTk9iamVjdCAqKWpzb25PYmplY3Q7
CiAvKiBvcHRpb25hbCAqLyBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheS8qPE5T
U3RyaW5nPiovICpjb2x1bW5OYW1lczsKKy8qIG9wdGlvbmFsICovIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBjb3B5KSBOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKmJ1dHRvbnM7CisvKiBvcHRpb25hbCAq
LyBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBUZXN0UHJvdG9jb2xEYXRhYmFzZU9wdGlv
bmFsUGFyYW1ldGVyQnVuZGxlRGlyZWN0aW9uYWxpdHkgZGlyZWN0aW9uYWxpdHk7CiAvKiBvcHRp
b25hbCAqLyBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKm5vdGVzOwogLyog
b3B0aW9uYWwgKi8gQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgZG91YmxlIHRpbWVzdGFt
cDsKIC8qIG9wdGlvbmFsICovIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4pIFJXSVByb3Rv
Y29sSlNPTk9iamVjdCAqdmFsdWVzOwpAQCAtMTE1Nyw4ICsxMzYzLDEwIEBAIF9fYXR0cmlidXRl
X18oKHZpc2liaWxpdHkgKCJkZWZhdWx0IikpKQogQGludGVyZmFjZSBUZXN0UHJvdG9jb2xEYXRh
YmFzZVBhcmFtZXRlckJ1bmRsZSA6IFJXSVByb3RvY29sSlNPTk9iamVjdAogLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoUGF5bG9hZDooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKXBheWxv
YWQ7CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhKU09OT2JqZWN0OihSV0lQcm90b2NvbEpTT05P
YmplY3QgKilqc29uT2JqZWN0OwotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29sdW1uTmFtZXM6
KE5TQXJyYXkvKjxOU1N0cmluZz4qLyAqKWNvbHVtbk5hbWVzIG5vdGVzOihOU1N0cmluZyAqKW5v
dGVzIHRpbWVzdGFtcDooZG91YmxlKXRpbWVzdGFtcCB2YWx1ZXM6KFJXSVByb3RvY29sSlNPTk9i
amVjdCAqKXZhbHVlcyBwYXlsb2FkOihSV0lQcm90b2NvbEpTT05PYmplY3QgKilwYXlsb2FkIGVy
cm9yOihUZXN0UHJvdG9jb2xEYXRhYmFzZUVycm9yICopZXJyb3IgZXJyb3JMaXN0OihOU0FycmF5
Lyo8VGVzdFByb3RvY29sRGF0YWJhc2VFcnJvcj4qLyAqKWVycm9yTGlzdDsKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aENvbHVtbk5hbWVzOihOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKiljb2x1bW5O
YW1lcyBidXR0b25zOihOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKilidXR0b25zIGRpcmVjdGlvbmFs
aXR5OihUZXN0UHJvdG9jb2xEYXRhYmFzZVBhcmFtZXRlckJ1bmRsZURpcmVjdGlvbmFsaXR5KWRp
cmVjdGlvbmFsaXR5IG5vdGVzOihOU1N0cmluZyAqKW5vdGVzIHRpbWVzdGFtcDooZG91YmxlKXRp
bWVzdGFtcCB2YWx1ZXM6KFJXSVByb3RvY29sSlNPTk9iamVjdCAqKXZhbHVlcyBwYXlsb2FkOihS
V0lQcm90b2NvbEpTT05PYmplY3QgKilwYXlsb2FkIGVycm9yOihUZXN0UHJvdG9jb2xEYXRhYmFz
ZUVycm9yICopZXJyb3IgZXJyb3JMaXN0OihOU0FycmF5Lyo8VGVzdFByb3RvY29sRGF0YWJhc2VF
cnJvcj4qLyAqKWVycm9yTGlzdDsKIC8qIHJlcXVpcmVkICovIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSBOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKmNvbHVtbk5hbWVzOworLyogcmVxdWlyZWQg
Ki8gQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXkvKjxOU1N0cmluZz4qLyAqYnV0
dG9uczsKKy8qIHJlcXVpcmVkICovIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIFRlc3RQ
cm90b2NvbERhdGFiYXNlUGFyYW1ldGVyQnVuZGxlRGlyZWN0aW9uYWxpdHkgZGlyZWN0aW9uYWxp
dHk7CiAvKiByZXF1aXJlZCAqLyBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcg
Km5vdGVzOwogLyogcmVxdWlyZWQgKi8gQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgZG91
YmxlIHRpbWVzdGFtcDsKIC8qIHJlcXVpcmVkICovIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRh
aW4pIFJXSVByb3RvY29sSlNPTk9iamVjdCAqdmFsdWVzOwpAQCAtMTE4OSw3ICsxMzk3LDkgQEAg
X19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSAoImRlZmF1bHQiKSkpCiBAaW50ZXJmYWNlIFRlc3RQ
cm90b2NvbFRlc3RQYXJhbWV0ZXJCdW5kbGUgOiBSV0lQcm90b2NvbEpTT05PYmplY3QKIC0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFBheWxvYWQ6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4g
KilwYXlsb2FkOwogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSlNPTk9iamVjdDooUldJUHJvdG9j
b2xKU09OT2JqZWN0ICopanNvbk9iamVjdDsKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbHVt
bk5hbWVzOihOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKiljb2x1bW5OYW1lcyBub3RlczooTlNTdHJp
bmcgKilub3RlcyB0aW1lc3RhbXA6KGRvdWJsZSl0aW1lc3RhbXAgdmFsdWVzOihSV0lQcm90b2Nv
bEpTT05PYmplY3QgKil2YWx1ZXMgcGF5bG9hZDooUldJUHJvdG9jb2xKU09OT2JqZWN0ICopcGF5
bG9hZCBlcnJvcjooVGVzdFByb3RvY29sRGF0YWJhc2VFcnJvciAqKWVycm9yOworLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoRGlyZWN0aW9uYWxpdHk6KFRlc3RQcm90b2NvbFRlc3RQYXJhbWV0ZXJC
dW5kbGVEaXJlY3Rpb25hbGl0eSlkaXJlY3Rpb25hbGl0eSBidXR0b25zOihOU0FycmF5Lyo8TlNT
dHJpbmc+Ki8gKilidXR0b25zIGNvbHVtbk5hbWVzOihOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKilj
b2x1bW5OYW1lcyBub3RlczooTlNTdHJpbmcgKilub3RlcyB0aW1lc3RhbXA6KGRvdWJsZSl0aW1l
c3RhbXAgdmFsdWVzOihSV0lQcm90b2NvbEpTT05PYmplY3QgKil2YWx1ZXMgcGF5bG9hZDooUldJ
UHJvdG9jb2xKU09OT2JqZWN0ICopcGF5bG9hZCBlcnJvcjooVGVzdFByb3RvY29sRGF0YWJhc2VF
cnJvciAqKWVycm9yOworLyogcmVxdWlyZWQgKi8gQHByb3BlcnR5IChub25hdG9taWMsIGFzc2ln
bikgVGVzdFByb3RvY29sVGVzdFBhcmFtZXRlckJ1bmRsZURpcmVjdGlvbmFsaXR5IGRpcmVjdGlv
bmFsaXR5OworLyogcmVxdWlyZWQgKi8gQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJy
YXkvKjxOU1N0cmluZz4qLyAqYnV0dG9uczsKIC8qIHJlcXVpcmVkICovIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5KSBOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKmNvbHVtbk5hbWVzOwogLyogcmVx
dWlyZWQgKi8gQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpub3RlczsKIC8q
IHJlcXVpcmVkICovIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIGRvdWJsZSB0aW1lc3Rh
bXA7CkBAIC0xMzE0LDggKzE1MjQsOTQgQEAgaW5saW5lIHN0ZDo6b3B0aW9uYWw8VGVzdFByb3Rv
Y29sUGxhdGZvcm0+IGZyb21Qcm90b2NvbFN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHUKIH0KIAog
CitpbmxpbmUgU3RyaW5nIHRvUHJvdG9jb2xTdHJpbmcoVGVzdFByb3RvY29sRGF0YWJhc2VNb3Vz
ZUJ1dHRvbiB2YWx1ZSkKK3sKKyAgICBzd2l0Y2godmFsdWUpIHsKKyAgICBjYXNlIFRlc3RQcm90
b2NvbERhdGFiYXNlTW91c2VCdXR0b25Ob25lOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJOb25lIik7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xEYXRhYmFzZU1vdXNlQnV0dG9uTGVmdDoK
KyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiTGVmdCIpOworICAgIGNhc2UgVGVzdFByb3Rv
Y29sRGF0YWJhc2VNb3VzZUJ1dHRvbk1pZGRsZToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgiTWlkZGxlIik7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xEYXRhYmFzZU1vdXNlQnV0dG9uUmln
aHQ6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIlJpZ2h0Iik7CisgICAgfQorfQorCit0
ZW1wbGF0ZTw+CitpbmxpbmUgc3RkOjpvcHRpb25hbDxUZXN0UHJvdG9jb2xEYXRhYmFzZU1vdXNl
QnV0dG9uPiBmcm9tUHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBp
ZiAodmFsdWUgPT0gIk5vbmUiKQorICAgICAgICByZXR1cm4gVGVzdFByb3RvY29sRGF0YWJhc2VN
b3VzZUJ1dHRvbk5vbmU7CisgICAgaWYgKHZhbHVlID09ICJMZWZ0IikKKyAgICAgICAgcmV0dXJu
IFRlc3RQcm90b2NvbERhdGFiYXNlTW91c2VCdXR0b25MZWZ0OworICAgIGlmICh2YWx1ZSA9PSAi
TWlkZGxlIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbERhdGFiYXNlTW91c2VCdXR0b25N
aWRkbGU7CisgICAgaWYgKHZhbHVlID09ICJSaWdodCIpCisgICAgICAgIHJldHVybiBUZXN0UHJv
dG9jb2xEYXRhYmFzZU1vdXNlQnV0dG9uUmlnaHQ7CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
K30KKworaW5saW5lIFN0cmluZyB0b1Byb3RvY29sU3RyaW5nKFRlc3RQcm90b2NvbERhdGFiYXNl
T3B0aW9uYWxQYXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eSB2YWx1ZSkKK3sKKyAgICBzd2l0
Y2godmFsdWUpIHsKKyAgICBjYXNlIFRlc3RQcm90b2NvbERhdGFiYXNlT3B0aW9uYWxQYXJhbWV0
ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eUxUUjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
TFRSIik7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xEYXRhYmFzZU9wdGlvbmFsUGFyYW1ldGVyQnVu
ZGxlRGlyZWN0aW9uYWxpdHlSVEw6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIlJUTCIp
OworICAgIH0KK30KKwordGVtcGxhdGU8PgoraW5saW5lIHN0ZDo6b3B0aW9uYWw8VGVzdFByb3Rv
Y29sRGF0YWJhc2VPcHRpb25hbFBhcmFtZXRlckJ1bmRsZURpcmVjdGlvbmFsaXR5PiBmcm9tUHJv
dG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUgPT0gIkxU
UiIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xEYXRhYmFzZU9wdGlvbmFsUGFyYW1ldGVy
QnVuZGxlRGlyZWN0aW9uYWxpdHlMVFI7CisgICAgaWYgKHZhbHVlID09ICJSVEwiKQorICAgICAg
ICByZXR1cm4gVGVzdFByb3RvY29sRGF0YWJhc2VPcHRpb25hbFBhcmFtZXRlckJ1bmRsZURpcmVj
dGlvbmFsaXR5UlRMOworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK2lubGluZSBTdHJp
bmcgdG9Qcm90b2NvbFN0cmluZyhUZXN0UHJvdG9jb2xEYXRhYmFzZVBhcmFtZXRlckJ1bmRsZURp
cmVjdGlvbmFsaXR5IHZhbHVlKQoreworICAgIHN3aXRjaCh2YWx1ZSkgeworICAgIGNhc2UgVGVz
dFByb3RvY29sRGF0YWJhc2VQYXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eUxUUjoKKyAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiTFRSIik7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xEYXRh
YmFzZVBhcmFtZXRlckJ1bmRsZURpcmVjdGlvbmFsaXR5UlRMOgorICAgICAgICByZXR1cm4gQVND
SUlMaXRlcmFsKCJSVEwiKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4KK2lubGluZSBzdGQ6Om9w
dGlvbmFsPFRlc3RQcm90b2NvbERhdGFiYXNlUGFyYW1ldGVyQnVuZGxlRGlyZWN0aW9uYWxpdHk+
IGZyb21Qcm90b2NvbFN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICh2YWx1
ZSA9PSAiTFRSIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbERhdGFiYXNlUGFyYW1ldGVy
QnVuZGxlRGlyZWN0aW9uYWxpdHlMVFI7CisgICAgaWYgKHZhbHVlID09ICJSVEwiKQorICAgICAg
ICByZXR1cm4gVGVzdFByb3RvY29sRGF0YWJhc2VQYXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0
eVJUTDsKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCiAKK2lubGluZSBTdHJpbmcgdG9Q
cm90b2NvbFN0cmluZyhUZXN0UHJvdG9jb2xUZXN0UGFyYW1ldGVyQnVuZGxlRGlyZWN0aW9uYWxp
dHkgdmFsdWUpCit7CisgICAgc3dpdGNoKHZhbHVlKSB7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xU
ZXN0UGFyYW1ldGVyQnVuZGxlRGlyZWN0aW9uYWxpdHlMVFI6CisgICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWwoIkxUUiIpOworICAgIGNhc2UgVGVzdFByb3RvY29sVGVzdFBhcmFtZXRlckJ1bmRs
ZURpcmVjdGlvbmFsaXR5UlRMOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJSVEwiKTsK
KyAgICB9Cit9CiAKK3RlbXBsYXRlPD4KK2lubGluZSBzdGQ6Om9wdGlvbmFsPFRlc3RQcm90b2Nv
bFRlc3RQYXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eT4gZnJvbVByb3RvY29sU3RyaW5nKGNv
bnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlID09ICJMVFIiKQorICAgICAgICBy
ZXR1cm4gVGVzdFByb3RvY29sVGVzdFBhcmFtZXRlckJ1bmRsZURpcmVjdGlvbmFsaXR5TFRSOwor
ICAgIGlmICh2YWx1ZSA9PSAiUlRMIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFRlc3RQ
YXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eVJUTDsKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworfQogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKIApAQCAtMTM2NCw2ICsxNjYwLDcgQEAg
dXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogKyAodm9pZClfcGFyc2VFcnJvcjooVGVzdFBy
b3RvY29sRGF0YWJhc2VFcnJvciAqKilvdXRWYWx1ZSBmcm9tUGF5bG9hZDooaWQpcGF5bG9hZDsK
ICsgKHZvaWQpX3BhcnNlRXJyb3JMaXN0OihOU0FycmF5Lyo8VGVzdFByb3RvY29sRGF0YWJhc2VF
cnJvcj4qLyAqKilvdXRWYWx1ZSBmcm9tUGF5bG9hZDooaWQpcGF5bG9hZDsKKysgKHZvaWQpX3Bh
cnNlTW91c2VCdXR0b246KE5TTnVtYmVyICoqKW91dFZhbHVlIGZyb21QYXlsb2FkOihpZClwYXls
b2FkOwogKyAodm9pZClfcGFyc2VPcHRpb25hbFBhcmFtZXRlckJ1bmRsZTooVGVzdFByb3RvY29s
RGF0YWJhc2VPcHRpb25hbFBhcmFtZXRlckJ1bmRsZSAqKilvdXRWYWx1ZSBmcm9tUGF5bG9hZDoo
aWQpcGF5bG9hZDsKICsgKHZvaWQpX3BhcnNlUGFyYW1ldGVyQnVuZGxlOihUZXN0UHJvdG9jb2xE
YXRhYmFzZVBhcmFtZXRlckJ1bmRsZSAqKilvdXRWYWx1ZSBmcm9tUGF5bG9hZDooaWQpcGF5bG9h
ZDsKICsgKHZvaWQpX3BhcnNlT2JqZWN0V2l0aFByb3BlcnR5TmFtZUNvbmZsaWN0czooVGVzdFBy
b3RvY29sRGF0YWJhc2VPYmplY3RXaXRoUHJvcGVydHlOYW1lQ29uZmxpY3RzICoqKW91dFZhbHVl
IGZyb21QYXlsb2FkOihpZClwYXlsb2FkOwpAQCAtMTM5MCw2ICsxNjg3LDE0IEBAIHVzaW5nIG5h
bWVzcGFjZSBJbnNwZWN0b3I7CiAgICAgKm91dFZhbHVlID0gKE5TQXJyYXkvKjxUZXN0UHJvdG9j
b2xEYXRhYmFzZUVycm9yPiovICopcGF5bG9hZDsKIH0KIAorKyAodm9pZClfcGFyc2VNb3VzZUJ1
dHRvbjooTlNOdW1iZXIgKiopb3V0VmFsdWUgZnJvbVBheWxvYWQ6KGlkKXBheWxvYWQKK3sKKyAg
ICBUSFJPV19FWENFUFRJT05fRk9SX0JBRF9UWVBFKHBheWxvYWQsIFtOU1N0cmluZyBjbGFzc10p
OworICAgIHN0ZDo6b3B0aW9uYWw8VGVzdFByb3RvY29sRGF0YWJhc2VNb3VzZUJ1dHRvbj4gcmVz
dWx0ID0gSW5zcGVjdG9yOjpmcm9tUHJvdG9jb2xTdHJpbmc8VGVzdFByb3RvY29sRGF0YWJhc2VN
b3VzZUJ1dHRvbj4ocGF5bG9hZCk7CisgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9CQURfRU5VTV9W
QUxVRShyZXN1bHQsIEAiTW91c2VCdXR0b24iKTsKKyAgICAqb3V0VmFsdWUgPSBAKHJlc3VsdC52
YWx1ZSgpKTsKK30KKwogKyAodm9pZClfcGFyc2VPcHRpb25hbFBhcmFtZXRlckJ1bmRsZTooVGVz
dFByb3RvY29sRGF0YWJhc2VPcHRpb25hbFBhcmFtZXRlckJ1bmRsZSAqKilvdXRWYWx1ZSBmcm9t
UGF5bG9hZDooaWQpcGF5bG9hZAogewogICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfQkFEX1RZUEUo
cGF5bG9hZCwgW05TRGljdGlvbmFyeSBjbGFzc10pOwpAQCAtMTUzNCw3ICsxODM5LDEzIEBAIHVz
aW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkp
CiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBzZWxmLmNvbHVtbk5hbWVzID0gb2JqY0FycmF5
RnJvbVBheWxvYWQ8TlNTdHJpbmc+KHBheWxvYWRbQCJjb2x1bW5OYW1lcyJdKTsKKyAgICBzZWxm
LmNvbHVtbk5hbWVzID0gcGF5bG9hZFtAImNvbHVtbk5hbWVzIl07CisKKyAgICBzZWxmLmJ1dHRv
bnMgPSBwYXlsb2FkW0AiYnV0dG9ucyJdOworCisgICAgc3RkOjpvcHRpb25hbDxUZXN0UHJvdG9j
b2xEYXRhYmFzZU9wdGlvbmFsUGFyYW1ldGVyQnVuZGxlRGlyZWN0aW9uYWxpdHk+IGRpcmVjdGlv
bmFsaXR5ID0gZnJvbVByb3RvY29sU3RyaW5nPFRlc3RQcm90b2NvbERhdGFiYXNlT3B0aW9uYWxQ
YXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eT4ocGF5bG9hZFtAImRpcmVjdGlvbmFsaXR5Il0p
OworICAgIGlmIChkaXJlY3Rpb25hbGl0eSkKKyAgICAgICAgc2VsZi5kaXJlY3Rpb25hbGl0eSA9
IGRpcmVjdGlvbmFsaXR5LnZhbHVlKCk7CiAKICAgICBzZWxmLm5vdGVzID0gcGF5bG9hZFtAIm5v
dGVzIl07CiAKQEAgLTE1NjgsNiArMTg3OSwyNiBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9y
OwogICAgIHJldHVybiBvYmpjU3RyaW5nQXJyYXkoW3N1cGVyIGluc3BlY3RvckFycmF5Rm9yS2V5
OkAiY29sdW1uTmFtZXMiXSk7CiB9CiAKKy0gKHZvaWQpc2V0QnV0dG9uczooTlNBcnJheS8qPE5T
U3RyaW5nPiovICopYnV0dG9ucworeworICAgIFtzdXBlciBzZXRJbnNwZWN0b3JBcnJheTppbnNw
ZWN0b3JTdHJpbmdBcnJheShidXR0b25zKSBmb3JLZXk6QCJidXR0b25zIl07Cit9CisKKy0gKE5T
QXJyYXkvKjxOU1N0cmluZz4qLyAqKWJ1dHRvbnMKK3sKKyAgICByZXR1cm4gb2JqY1N0cmluZ0Fy
cmF5KFtzdXBlciBpbnNwZWN0b3JBcnJheUZvcktleTpAImJ1dHRvbnMiXSk7Cit9CisKKy0gKHZv
aWQpc2V0RGlyZWN0aW9uYWxpdHk6KFRlc3RQcm90b2NvbERhdGFiYXNlT3B0aW9uYWxQYXJhbWV0
ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eSlkaXJlY3Rpb25hbGl0eQoreworICAgIFtzdXBlciBzZXRT
dHJpbmc6dG9Qcm90b2NvbFN0cmluZyhkaXJlY3Rpb25hbGl0eSkgZm9yS2V5OkAiZGlyZWN0aW9u
YWxpdHkiXTsKK30KKworLSAoVGVzdFByb3RvY29sRGF0YWJhc2VPcHRpb25hbFBhcmFtZXRlckJ1
bmRsZURpcmVjdGlvbmFsaXR5KWRpcmVjdGlvbmFsaXR5Cit7CisgICAgcmV0dXJuIGZyb21Qcm90
b2NvbFN0cmluZzxUZXN0UHJvdG9jb2xEYXRhYmFzZU9wdGlvbmFsUGFyYW1ldGVyQnVuZGxlRGly
ZWN0aW9uYWxpdHk+KFtzdXBlciBzdHJpbmdGb3JLZXk6QCJkaXJlY3Rpb25hbGl0eSJdKS52YWx1
ZSgpOworfQorCiAtICh2b2lkKXNldE5vdGVzOihOU1N0cmluZyAqKW5vdGVzCiB7CiAgICAgW3N1
cGVyIHNldFN0cmluZzpub3RlcyBmb3JLZXk6QCJub3RlcyJdOwpAQCAtMTYzOSw3ICsxOTcwLDE1
IEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAgICAgICAgIHJldHVybiBuaWw7CiAKICAg
ICBUSFJPV19FWENFUFRJT05fRk9SX1JFUVVJUkVEX1BST1BFUlRZKHBheWxvYWRbQCJjb2x1bW5O
YW1lcyJdLCBAImNvbHVtbk5hbWVzIik7Ci0gICAgc2VsZi5jb2x1bW5OYW1lcyA9IG9iamNBcnJh
eUZyb21QYXlsb2FkPE5TU3RyaW5nPihwYXlsb2FkW0AiY29sdW1uTmFtZXMiXSk7CisgICAgc2Vs
Zi5jb2x1bW5OYW1lcyA9IHBheWxvYWRbQCJjb2x1bW5OYW1lcyJdOworCisgICAgVEhST1dfRVhD
RVBUSU9OX0ZPUl9SRVFVSVJFRF9QUk9QRVJUWShwYXlsb2FkW0AiYnV0dG9ucyJdLCBAImJ1dHRv
bnMiKTsKKyAgICBzZWxmLmJ1dHRvbnMgPSBwYXlsb2FkW0AiYnV0dG9ucyJdOworCisgICAgVEhS
T1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QUk9QRVJUWShwYXlsb2FkW0AiZGlyZWN0aW9uYWxp
dHkiXSwgQCJkaXJlY3Rpb25hbGl0eSIpOworICAgIHN0ZDo6b3B0aW9uYWw8VGVzdFByb3RvY29s
RGF0YWJhc2VQYXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eT4gZGlyZWN0aW9uYWxpdHkgPSBm
cm9tUHJvdG9jb2xTdHJpbmc8VGVzdFByb3RvY29sRGF0YWJhc2VQYXJhbWV0ZXJCdW5kbGVEaXJl
Y3Rpb25hbGl0eT4ocGF5bG9hZFtAImRpcmVjdGlvbmFsaXR5Il0pOworICAgIFRIUk9XX0VYQ0VQ
VElPTl9GT1JfQkFEX0VOVU1fVkFMVUUoZGlyZWN0aW9uYWxpdHksIEAiZGlyZWN0aW9uYWxpdHki
KTsKKyAgICBzZWxmLmRpcmVjdGlvbmFsaXR5ID0gZGlyZWN0aW9uYWxpdHkudmFsdWUoKTsKIAog
ICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURfUFJPUEVSVFkocGF5bG9hZFtAIm5vdGVz
Il0sIEAibm90ZXMiKTsKICAgICBzZWxmLm5vdGVzID0gcGF5bG9hZFtAIm5vdGVzIl07CkBAIC0x
NjY5LDEyICsyMDA4LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAgICAgcmV0dXJu
IHNlbGY7CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbHVtbk5hbWVzOihOU0FycmF5
Lyo8TlNTdHJpbmc+Ki8gKiljb2x1bW5OYW1lcyBub3RlczooTlNTdHJpbmcgKilub3RlcyB0aW1l
c3RhbXA6KGRvdWJsZSl0aW1lc3RhbXAgdmFsdWVzOihSV0lQcm90b2NvbEpTT05PYmplY3QgKil2
YWx1ZXMgcGF5bG9hZDooUldJUHJvdG9jb2xKU09OT2JqZWN0ICopcGF5bG9hZCBlcnJvcjooVGVz
dFByb3RvY29sRGF0YWJhc2VFcnJvciAqKWVycm9yIGVycm9yTGlzdDooTlNBcnJheS8qPFRlc3RQ
cm90b2NvbERhdGFiYXNlRXJyb3I+Ki8gKillcnJvckxpc3QKKy0gKGluc3RhbmNldHlwZSlpbml0
V2l0aENvbHVtbk5hbWVzOihOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKiljb2x1bW5OYW1lcyBidXR0
b25zOihOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKilidXR0b25zIGRpcmVjdGlvbmFsaXR5OihUZXN0
UHJvdG9jb2xEYXRhYmFzZVBhcmFtZXRlckJ1bmRsZURpcmVjdGlvbmFsaXR5KWRpcmVjdGlvbmFs
aXR5IG5vdGVzOihOU1N0cmluZyAqKW5vdGVzIHRpbWVzdGFtcDooZG91YmxlKXRpbWVzdGFtcCB2
YWx1ZXM6KFJXSVByb3RvY29sSlNPTk9iamVjdCAqKXZhbHVlcyBwYXlsb2FkOihSV0lQcm90b2Nv
bEpTT05PYmplY3QgKilwYXlsb2FkIGVycm9yOihUZXN0UHJvdG9jb2xEYXRhYmFzZUVycm9yICop
ZXJyb3IgZXJyb3JMaXN0OihOU0FycmF5Lyo8VGVzdFByb3RvY29sRGF0YWJhc2VFcnJvcj4qLyAq
KWVycm9yTGlzdAogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICBy
ZXR1cm4gbmlsOwogCiAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QUk9QRVJUWShj
b2x1bW5OYW1lcywgQCJjb2x1bW5OYW1lcyIpOworICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVR
VUlSRURfUFJPUEVSVFkoYnV0dG9ucywgQCJidXR0b25zIik7CiAgICAgVEhST1dfRVhDRVBUSU9O
X0ZPUl9SRVFVSVJFRF9QUk9QRVJUWShub3RlcywgQCJub3RlcyIpOwogICAgIFRIUk9XX0VYQ0VQ
VElPTl9GT1JfUkVRVUlSRURfUFJPUEVSVFkodmFsdWVzLCBAInZhbHVlcyIpOwogICAgIFRIUk9X
X0VYQ0VQVElPTl9GT1JfUkVRVUlSRURfUFJPUEVSVFkocGF5bG9hZCwgQCJwYXlsb2FkIik7CkBA
IC0xNjgzLDYgKzIwMjMsOCBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogICAgIFRIUk9X
X0VYQ0VQVElPTl9GT1JfQkFEX1RZUEVfSU5fQVJSQVkoZXJyb3JMaXN0LCBbVGVzdFByb3RvY29s
RGF0YWJhc2VFcnJvciBjbGFzc10pOwogCiAgICAgc2VsZi5jb2x1bW5OYW1lcyA9IGNvbHVtbk5h
bWVzOworICAgIHNlbGYuYnV0dG9ucyA9IGJ1dHRvbnM7CisgICAgc2VsZi5kaXJlY3Rpb25hbGl0
eSA9IGRpcmVjdGlvbmFsaXR5OwogICAgIHNlbGYubm90ZXMgPSBub3RlczsKICAgICBzZWxmLnRp
bWVzdGFtcCA9IHRpbWVzdGFtcDsKICAgICBzZWxmLnZhbHVlcyA9IHZhbHVlczsKQEAgLTE3MDMs
NiArMjA0NSwyNiBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogICAgIHJldHVybiBvYmpj
U3RyaW5nQXJyYXkoW3N1cGVyIGluc3BlY3RvckFycmF5Rm9yS2V5OkAiY29sdW1uTmFtZXMiXSk7
CiB9CiAKKy0gKHZvaWQpc2V0QnV0dG9uczooTlNBcnJheS8qPE5TU3RyaW5nPiovICopYnV0dG9u
cworeworICAgIFtzdXBlciBzZXRJbnNwZWN0b3JBcnJheTppbnNwZWN0b3JTdHJpbmdBcnJheShi
dXR0b25zKSBmb3JLZXk6QCJidXR0b25zIl07Cit9CisKKy0gKE5TQXJyYXkvKjxOU1N0cmluZz4q
LyAqKWJ1dHRvbnMKK3sKKyAgICByZXR1cm4gb2JqY1N0cmluZ0FycmF5KFtzdXBlciBpbnNwZWN0
b3JBcnJheUZvcktleTpAImJ1dHRvbnMiXSk7Cit9CisKKy0gKHZvaWQpc2V0RGlyZWN0aW9uYWxp
dHk6KFRlc3RQcm90b2NvbERhdGFiYXNlUGFyYW1ldGVyQnVuZGxlRGlyZWN0aW9uYWxpdHkpZGly
ZWN0aW9uYWxpdHkKK3sKKyAgICBbc3VwZXIgc2V0U3RyaW5nOnRvUHJvdG9jb2xTdHJpbmcoZGly
ZWN0aW9uYWxpdHkpIGZvcktleTpAImRpcmVjdGlvbmFsaXR5Il07Cit9CisKKy0gKFRlc3RQcm90
b2NvbERhdGFiYXNlUGFyYW1ldGVyQnVuZGxlRGlyZWN0aW9uYWxpdHkpZGlyZWN0aW9uYWxpdHkK
K3sKKyAgICByZXR1cm4gZnJvbVByb3RvY29sU3RyaW5nPFRlc3RQcm90b2NvbERhdGFiYXNlUGFy
YW1ldGVyQnVuZGxlRGlyZWN0aW9uYWxpdHk+KFtzdXBlciBzdHJpbmdGb3JLZXk6QCJkaXJlY3Rp
b25hbGl0eSJdKS52YWx1ZSgpOworfQorCiAtICh2b2lkKXNldE5vdGVzOihOU1N0cmluZyAqKW5v
dGVzCiB7CiAgICAgW3N1cGVyIHNldFN0cmluZzpub3RlcyBmb3JLZXk6QCJub3RlcyJdOwpAQCAt
MTg5Nyw4ICsyMjU5LDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAgICAgaWYgKCEo
c2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKKyAgICBUSFJPV19F
WENFUFRJT05fRk9SX1JFUVVJUkVEX1BST1BFUlRZKHBheWxvYWRbQCJkaXJlY3Rpb25hbGl0eSJd
LCBAImRpcmVjdGlvbmFsaXR5Iik7CisgICAgc3RkOjpvcHRpb25hbDxUZXN0UHJvdG9jb2xUZXN0
UGFyYW1ldGVyQnVuZGxlRGlyZWN0aW9uYWxpdHk+IGRpcmVjdGlvbmFsaXR5ID0gZnJvbVByb3Rv
Y29sU3RyaW5nPFRlc3RQcm90b2NvbFRlc3RQYXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eT4o
cGF5bG9hZFtAImRpcmVjdGlvbmFsaXR5Il0pOworICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfQkFE
X0VOVU1fVkFMVUUoZGlyZWN0aW9uYWxpdHksIEAiZGlyZWN0aW9uYWxpdHkiKTsKKyAgICBzZWxm
LmRpcmVjdGlvbmFsaXR5ID0gZGlyZWN0aW9uYWxpdHkudmFsdWUoKTsKKworICAgIFRIUk9XX0VY
Q0VQVElPTl9GT1JfUkVRVUlSRURfUFJPUEVSVFkocGF5bG9hZFtAImJ1dHRvbnMiXSwgQCJidXR0
b25zIik7CisgICAgc2VsZi5idXR0b25zID0gcGF5bG9hZFtAImJ1dHRvbnMiXTsKKwogICAgIFRI
Uk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURfUFJPUEVSVFkocGF5bG9hZFtAImNvbHVtbk5hbWVz
Il0sIEAiY29sdW1uTmFtZXMiKTsKLSAgICBzZWxmLmNvbHVtbk5hbWVzID0gb2JqY0FycmF5RnJv
bVBheWxvYWQ8TlNTdHJpbmc+KHBheWxvYWRbQCJjb2x1bW5OYW1lcyJdKTsKKyAgICBzZWxmLmNv
bHVtbk5hbWVzID0gcGF5bG9hZFtAImNvbHVtbk5hbWVzIl07CiAKICAgICBUSFJPV19FWENFUFRJ
T05fRk9SX1JFUVVJUkVEX1BST1BFUlRZKHBheWxvYWRbQCJub3RlcyJdLCBAIm5vdGVzIik7CiAg
ICAgc2VsZi5ub3RlcyA9IHBheWxvYWRbQCJub3RlcyJdOwpAQCAtMTkyNSwxNyArMjI5NSwyMCBA
QCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogICAgIHJldHVybiBzZWxmOwogfQogCi0tIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhDb2x1bW5OYW1lczooTlNBcnJheS8qPE5TU3RyaW5nPiovICop
Y29sdW1uTmFtZXMgbm90ZXM6KE5TU3RyaW5nICopbm90ZXMgdGltZXN0YW1wOihkb3VibGUpdGlt
ZXN0YW1wIHZhbHVlczooUldJUHJvdG9jb2xKU09OT2JqZWN0ICopdmFsdWVzIHBheWxvYWQ6KFJX
SVByb3RvY29sSlNPTk9iamVjdCAqKXBheWxvYWQgZXJyb3I6KFRlc3RQcm90b2NvbERhdGFiYXNl
RXJyb3IgKillcnJvcgorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRGlyZWN0aW9uYWxpdHk6KFRl
c3RQcm90b2NvbFRlc3RQYXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0eSlkaXJlY3Rpb25hbGl0
eSBidXR0b25zOihOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKilidXR0b25zIGNvbHVtbk5hbWVzOihO
U0FycmF5Lyo8TlNTdHJpbmc+Ki8gKiljb2x1bW5OYW1lcyBub3RlczooTlNTdHJpbmcgKilub3Rl
cyB0aW1lc3RhbXA6KGRvdWJsZSl0aW1lc3RhbXAgdmFsdWVzOihSV0lQcm90b2NvbEpTT05PYmpl
Y3QgKil2YWx1ZXMgcGF5bG9hZDooUldJUHJvdG9jb2xKU09OT2JqZWN0ICopcGF5bG9hZCBlcnJv
cjooVGVzdFByb3RvY29sRGF0YWJhc2VFcnJvciAqKWVycm9yCiB7CiAgICAgaWYgKCEoc2VsZiA9
IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKKyAgICBUSFJPV19FWENFUFRJ
T05fRk9SX1JFUVVJUkVEX1BST1BFUlRZKGJ1dHRvbnMsIEAiYnV0dG9ucyIpOwogICAgIFRIUk9X
X0VYQ0VQVElPTl9GT1JfUkVRVUlSRURfUFJPUEVSVFkoY29sdW1uTmFtZXMsIEAiY29sdW1uTmFt
ZXMiKTsKICAgICBUSFJPV19FWENFUFRJT05fRk9SX1JFUVVJUkVEX1BST1BFUlRZKG5vdGVzLCBA
Im5vdGVzIik7CiAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QUk9QRVJUWSh2YWx1
ZXMsIEAidmFsdWVzIik7CiAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QUk9QRVJU
WShwYXlsb2FkLCBAInBheWxvYWQiKTsKICAgICBUSFJPV19FWENFUFRJT05fRk9SX1JFUVVJUkVE
X1BST1BFUlRZKGVycm9yLCBAImVycm9yIik7CiAKKyAgICBzZWxmLmRpcmVjdGlvbmFsaXR5ID0g
ZGlyZWN0aW9uYWxpdHk7CisgICAgc2VsZi5idXR0b25zID0gYnV0dG9uczsKICAgICBzZWxmLmNv
bHVtbk5hbWVzID0gY29sdW1uTmFtZXM7CiAgICAgc2VsZi5ub3RlcyA9IG5vdGVzOwogICAgIHNl
bGYudGltZXN0YW1wID0gdGltZXN0YW1wOwpAQCAtMTk0Niw2ICsyMzE5LDI2IEBAIHVzaW5nIG5h
bWVzcGFjZSBJbnNwZWN0b3I7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKKy0gKHZvaWQpc2V0RGly
ZWN0aW9uYWxpdHk6KFRlc3RQcm90b2NvbFRlc3RQYXJhbWV0ZXJCdW5kbGVEaXJlY3Rpb25hbGl0
eSlkaXJlY3Rpb25hbGl0eQoreworICAgIFtzdXBlciBzZXRTdHJpbmc6dG9Qcm90b2NvbFN0cmlu
ZyhkaXJlY3Rpb25hbGl0eSkgZm9yS2V5OkAiZGlyZWN0aW9uYWxpdHkiXTsKK30KKworLSAoVGVz
dFByb3RvY29sVGVzdFBhcmFtZXRlckJ1bmRsZURpcmVjdGlvbmFsaXR5KWRpcmVjdGlvbmFsaXR5
Cit7CisgICAgcmV0dXJuIGZyb21Qcm90b2NvbFN0cmluZzxUZXN0UHJvdG9jb2xUZXN0UGFyYW1l
dGVyQnVuZGxlRGlyZWN0aW9uYWxpdHk+KFtzdXBlciBzdHJpbmdGb3JLZXk6QCJkaXJlY3Rpb25h
bGl0eSJdKS52YWx1ZSgpOworfQorCistICh2b2lkKXNldEJ1dHRvbnM6KE5TQXJyYXkvKjxOU1N0
cmluZz4qLyAqKWJ1dHRvbnMKK3sKKyAgICBbc3VwZXIgc2V0SW5zcGVjdG9yQXJyYXk6aW5zcGVj
dG9yU3RyaW5nQXJyYXkoYnV0dG9ucykgZm9yS2V5OkAiYnV0dG9ucyJdOworfQorCistIChOU0Fy
cmF5Lyo8TlNTdHJpbmc+Ki8gKilidXR0b25zCit7CisgICAgcmV0dXJuIG9iamNTdHJpbmdBcnJh
eShbc3VwZXIgaW5zcGVjdG9yQXJyYXlGb3JLZXk6QCJidXR0b25zIl0pOworfQorCiAtICh2b2lk
KXNldENvbHVtbk5hbWVzOihOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKiljb2x1bW5OYW1lcwogewog
ICAgIFtzdXBlciBzZXRJbnNwZWN0b3JBcnJheTppbnNwZWN0b3JTdHJpbmdBcnJheShjb2x1bW5O
YW1lcykgZm9yS2V5OkAiY29sdW1uTmFtZXMiXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL3R5cGUtZGVjbGFyYXRpb24t
b2JqZWN0LXR5cGUuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy90ZXN0cy9nZW5lcmljL3R5cGUtZGVjbGFyYXRpb24tb2JqZWN0LXR5cGUuanNvbgppbmRleCAx
NzgzMDkxOTczYmNmMzc1NDVjZDc1OTYwOTE4NjdmOGNhMjVkODVhLi4yYzQzYzMzMDk5MmRlNjc1
ZGI4MGQyOThmZjMzMWE2ZWY1ODk5MzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy90eXBlLWRlY2xhcmF0aW9uLW9iamVj
dC10eXBlLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L3Rlc3RzL2dlbmVyaWMvdHlwZS1kZWNsYXJhdGlvbi1vYmplY3QtdHlwZS5qc29uCkBAIC0xOCwx
MCArMTgsMjMgQEAKICAgICAgICAgICAgICJpdGVtcyI6IHsgIiRyZWYiOiAiRXJyb3IiIH0KICAg
ICAgICAgfSwKICAgICAgICAgeworICAgICAgICAgICAgImlkIjogIk1vdXNlQnV0dG9uIiwKKyAg
ICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
RW51bWVyYXRlcyBkaWZmZXJlbnQgbW91c2UgYnV0dG9ucyB0aGF0IGNhbiBiZSB1c2VkLiIsCisg
ICAgICAgICAgICAiZW51bSI6IFsKKyAgICAgICAgICAgICAgICAiTm9uZSIsCisgICAgICAgICAg
ICAgICAgIkxlZnQiLAorICAgICAgICAgICAgICAgICJNaWRkbGUiLAorICAgICAgICAgICAgICAg
ICJSaWdodCIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgewogICAgICAgICAg
ICAgImlkIjogIk9wdGlvbmFsUGFyYW1ldGVyQnVuZGxlIiwKICAgICAgICAgICAgICJ0eXBlIjog
Im9iamVjdCIsCiAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImNvbHVtbk5hbWVzIiwgInR5cGUiOiAiYXJyYXkiLCAib3B0aW9uYWwiOiB0cnVl
LCAiaXRlbXMiOiB7ICJ0eXBlIjogInN0cmluZyIgfSB9LAorICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiYnV0dG9ucyIsICJ0eXBlIjogImFycmF5IiwgIm9wdGlvbmFsIjogdHJ1ZSwgIml0ZW1z
IjogeyAiJHJlZiI6ICJNb3VzZUJ1dHRvbiIgfSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiZGlyZWN0aW9uYWxpdHkiLCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6IFsiTFRSIiwgIlJU
TCJdLCAib3B0aW9uYWwiOiB0cnVlIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub3Rl
cyIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUgfSwKICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInRpbWVzdGFtcCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRy
dWUgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVlcyIsICJ0eXBlIjogIm9iamVj
dCIsICJvcHRpb25hbCI6IHRydWUgfSwKQEAgLTM1LDYgKzQ4LDggQEAKICAgICAgICAgICAgICJ0
eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImNvbHVtbk5hbWVzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7
ICJ0eXBlIjogInN0cmluZyIgfSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnV0dG9u
cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJNb3VzZUJ1dHRvbiIgfSB9
LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGlyZWN0aW9uYWxpdHkiLCAidHlwZSI6ICJz
dHJpbmciLCAiZW51bSI6IFsiTFRSIiwgIlJUTCJdIH0sCiAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJub3RlcyIsICJ0eXBlIjogInN0cmluZyIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInRpbWVzdGFtcCIsICJ0eXBlIjogIm51bWJlciIgfSwKICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInZhbHVlcyIsICJ0eXBlIjogIm9iamVjdCIgfSwKQEAgLTcwLDYgKzg1LDggQEAKICAg
ICAgICAgICAgICJpZCI6ICJQYXJhbWV0ZXJCdW5kbGUiLAogICAgICAgICAgICAgInR5cGUiOiAi
b2JqZWN0IiwKICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZGlyZWN0aW9uYWxpdHkiLCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6IFsiTFRS
IiwgIlJUTCJdIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJidXR0b25zIiwgInR5cGUi
OiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkRhdGFiYXNlLk1vdXNlQnV0dG9uIiB9IH0s
CiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb2x1bW5OYW1lcyIsICJ0eXBlIjogImFycmF5
IiwgIml0ZW1zIjogeyAidHlwZSI6ICJzdHJpbmciIH0gfSwKICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIm5vdGVzIiwgInR5cGUiOiAic3RyaW5nIiB9LAogICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAidGltZXN0YW1wIiwgInR5cGUiOiAibnVtYmVyIiB9LAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>