<?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>74348</bug_id>
          
          <creation_ts>2011-12-12 14:55:23 -0800</creation_ts>
          <short_desc>De-virtualize destructors part 4</short_desc>
          <delta_ts>2011-12-18 12:22:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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>
          <dependson>74347</dependson>
          <blocked>74331</blocked>
    
    <blocked>74349</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>519523</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-12-12 14:55:23 -0800</bug_when>
    <thetext>Same as bug 74341, just moving the static destroy functions down another level in the hierarchy and leaving behind any necessary destroy functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519539</commentid>
    <comment_count>1</comment_count>
      <attachid>118868</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-12-12 15:02:44 -0800</bug_when>
    <thetext>Created attachment 118868
De-virtualize destructors part 4

No changelog (bug 74331).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519588</commentid>
    <comment_count>2</comment_count>
      <attachid>118868</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-12-12 15:31:40 -0800</bug_when>
    <thetext>Comment on attachment 118868
De-virtualize destructors part 4

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118868</attachid>
            <date>2011-12-12 15:02:44 -0800</date>
            <delta_ts>2011-12-12 15:31:40 -0800</delta_ts>
            <desc>De-virtualize destructors part 4</desc>
            <filename>0010-Finished-level-4.patch</filename>
            <type>text/plain</type>
            <size>68662</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">RnJvbSBmYmVkYzgyNDk3ZmU5NGFlNzVmZGI2MmRiYzI4YjVlZDk2ZTIzMTY1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIEhhaG5lbmJlcmcgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KRGF0ZTogV2VkLCA3IERlYyAyMDExIDEyOjE1OjEyIC0wODAwClN1YmplY3Q6IFtQQVRDSCAx
MC8xOF0gRmluaXNoZWQgbGV2ZWwgNAoKLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tGdW5jdGlvbi5jcHAgICB8ICAgIDEgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrRnVuY3Rpb24uaCAgICAgfCAgICA1ICsrKysrCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUuZXhwICAgICAgICAgICB8ICAgIDMgKy0tCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcCB8ICAgIDIgKysKIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaCAgIHwgICAgNSArKysr
KwogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcCAgfCAg
ICAxICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5o
IHwgICAgNSArKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVj
dC5jcHAgICAgfCAgICAxICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5P
YmplY3QuaCAgICAgIHwgICAgNSArKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5jcHAgfCAgICAxICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaCAgIHwgICAgNSArKysrKwogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcCAgfCAgICAxICsKIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oICAgIHwgICAgNSArKysrKwogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcCAgICAgfCAgICA1ICsrKysr
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaCAgICAgICB8ICAg
IDkgKysrKysrKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBl
LmggICAgICB8ICAgIDUgKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
LmNwcCAgICAgICAgICAgIHwgICAgNSArKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3IuaCAgICAgICAgICAgICAgfCAgICA3ICsrKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwIHwgICAgMSArCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmggICB8ICAgIDUgKysrKysKIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwICAgIHwgICAxMSArKy0t
LS0tLS0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oICAg
ICAgfCAgICA4ICsrKysrLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclBy
b3RvdHlwZS5jcHAgICB8ICAgIDkgKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvclByb3RvdHlwZS5oICAgICB8ICAgIDMgKysrCiAuLi4vSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCB8ICAgIDEgKwogLi4uL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oICAgfCAgICA1ICsrKysrCiAuLi4vSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAgICB8ICAgIDEgKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaCAgfCAgICA1ICsr
KysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcCB8
ICAgMTAgKy0tLS0tLS0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxG
dW5jdGlvbi5oICAgfCAgICA4ICsrKysrLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FjdGl2YXRpb24uY3BwICAgICB8ICAgIDkgKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCAgICAgICB8ICAgIDIgKysKIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwICAgICAgICAgIHwgICAgMiArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcCAgfCAgICAxICsKIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oICAgIHwgICAgNSAr
KysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgICAgICAg
fCAgICA5ICsrKy0tLS0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5oICAgICAgICAgfCAgICA2ICsrKysrLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwICAgfCAgICA1ICsrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oICAgICB8ICAgIDEgKwogLi4uL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAgfCAgICA1ICsrKysrCiAuLi4vSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmggICB8ICAgIDQgKysrLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcCAgfCAgICA4ICsr
LS0tLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaCAg
ICB8ICAgIDkgKysrKysrLS0tCiAuLi4vcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNw
cCAgICAgICAgICAgICB8ICAgIDEgKwogLi4uL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5oICAgICAgICAgICAgICAgfCAgICA1ICsrKysrCiAuLi4vSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAgICB8ICAgIDIgKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmggIHwgICAgNSArKysrKwogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcCAgICAgfCAgICAxICsKIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oICAgICAgIHwgICAgNSArKysrKwog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCAgfCAgICAx
ICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oICAgIHwg
ICAgNSArKysrKwogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwICAgfCAgICAyICsrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25z
dHJ1Y3Rvci5oICB8ICAgIDUgKysrKysKIC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmNwcCAgIHwgICAxMCArKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oICB8ICAgIDYgKysrKysrCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaCB8ICAgIDMgKystCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwICAgICB8ICAgIDYgKy0t
LS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaCAgICAgICB8
ICAgMTAgKysrKysrKy0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJv
dG90eXBlLmggICAgfCAgICA1ICsrKysrCiAuLi4vSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdDb25zdHJ1Y3Rvci5jcHAgICB8ICAgIDEgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nQ29uc3RydWN0b3IuaCAgfCAgICA1ICsrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwICAgICB8ICAgIDEgKwogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmggICAgICAgfCAgICA1ICsrKysrCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwICB8ICAgIDEgKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmggICAgfCAgICA1ICsr
KysrCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDQgKystLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCAg
ICAgICAgfCAgICA5ICsrKysrKysrKwogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmggICAgICAgICAgfCAgICAzICsrKwogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcCAgICAgfCAgICA5ICsrKysrKysrKwogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggICAgICAgfCAgICAzICsrKwogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAgICAgfCAgICA1ICsrKysrCiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggICAgICB8ICAgIDEg
KwogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmNwcCAgICAgICAgfCAg
IDExICsrLS0tLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIu
aCAgICAgICAgICB8ICAgIDggKysrKystLS0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyQ29udGV4dEJhc2UuY3BwIHwgICAgNSArKysrKwogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oICAgfCAgICAxICsKIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIHwgICAxMCArKysrKysrKystCiBTb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5jcHAgICAgICAgICB8ICAgIDUgKysr
KysKIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmggICAgICAgICAgIHwg
ICAgMSArCiAuLi4vV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5jcHAg
ICB8ICAgIDQgLS0tLQogU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVP
YmplY3QuaCAgfCAgICAyIC0tCiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5j
cHAgICAgICAgICAgICB8ICAgIDUgKysrKysKIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9y
dW50aW1lLmggICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9hcnJheS5jcHAgICAgICAgICAgICB8ICAgIDUgKysrKysKIFNvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmggICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwICAgICAgICAgICB8ICAgIDkgKysrKysrKysrCiBT
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaCAgICAgICAgICAgICB8ICAgIDIg
KysKIC4uLi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAgICAgIHwg
ICAgMiArKwogLi4uL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmggICAg
ICAgfCAgICA1ICsrKysrCiA4OSBmaWxlcyBjaGFuZ2VkLCAzMzAgaW5zZXJ0aW9ucygrKSwgNzUg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
RnVuY3Rpb24uY3BwCmluZGV4IGRkMTA2Y2MuLjNmYmMwMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAKQEAgLTQwLDYgKzQwLDcgQEAK
IG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTQ2FsbGJhY2tG
dW5jdGlvbik7CitBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihKU0NhbGxiYWNrRnVuY3Rp
b24pOwogCiBjb25zdCBDbGFzc0luZm8gSlNDYWxsYmFja0Z1bmN0aW9uOjpzX2luZm8gPSB7ICJD
YWxsYmFja0Z1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgMCwgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU0NhbGxiYWNrRnVuY3Rpb24pIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4IDZjMWIxMGUuLjZjYzM2MmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9u
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaApA
QCAtMzEsNiArMzEsOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0
dWFsLWR0b3IiCisKIGNsYXNzIEpTQ2FsbGJhY2tGdW5jdGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1
bmN0aW9uIHsKIHByb3RlY3RlZDoKICAgICBKU0NhbGxiYWNrRnVuY3Rpb24oSlNHbG9iYWxPYmpl
Y3QqLCBKU09iamVjdENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2spOwpAQCAtNjYsNiArNjksOCBAQCBw
cml2YXRlOgogICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBtX2NhbGxiYWNrOwog
fTsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiB9IC8vIG5hbWVzcGFjZSBKU0MK
IAogI2VuZGlmIC8vIEpTQ2FsbGJhY2tGdW5jdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmV4cAppbmRleCAyODM3NmQxLi5lMDc0NmM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTE3OSw2ICsxNzksNyBAQCBfX1pOM0pTQzE0
SlNHbG9iYWxPYmplY3QyNXNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGVFCiBfX1pOM0pTQzE0SlNH
bG9iYWxPYmplY3QzcHV0RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTRKU0dsb2Jh
bE9iamVjdDRpbml0RVBOU184SlNPYmplY3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Q2c19p
bmZvRQorX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0N2Rlc3Ryb3lFUE5TXzZKU0NlbGxFCiBfX1pO
M0pTQzE0SlNHbG9iYWxPYmplY3REMkV2CiBfX1pOM0pTQzE0TWFjaGluZVRocmVhZHMxNmFkZEN1
cnJlbnRUaHJlYWRFdgogX19aTjNKU0MxNE1hcmtTdGFja0FycmF5NmV4cGFuZEV2CkBAIC0xOTks
OSArMjAwLDcgQEAgX19aTjNKU0MxNkludGVybmFsRnVuY3Rpb24xMnZ0YWJsZUFuY2hvckV2CiBf
X1pOM0pTQzE2SW50ZXJuYWxGdW5jdGlvbjE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxE
YXRhRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0MxNkludGVybmFsRnVuY3Rpb240bmFtZUVQ
TlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMTZJbnRlcm5hbEZ1bmN0aW9uNnNfaW5mb0UKLV9fWk4z
SlNDMTZJbnRlcm5hbEZ1bmN0aW9uN2Rlc3Ryb3lFUE5TXzZKU0NlbGxFCiBfX1pOM0pTQzE2SW50
ZXJuYWxGdW5jdGlvbkMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQotX19a
TjNKU0MxNkludGVybmFsRnVuY3Rpb25EMkV2CiBfX1pOM0pTQzE2SlNOb25GaW5hbE9iamVjdDEy
dnRhYmxlQW5jaG9yRXYKIF9fWk4zSlNDMTZKU05vbkZpbmFsT2JqZWN0N2Rlc3Ryb3lFUE5TXzZK
U0NlbGxFCiBfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE0ZGVsZXRlUHJvcGVydHlFUE5TXzZK
U0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCmluZGV4IDk4MzZhMTIu
LmQxMTk1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
Q29uc3RydWN0b3IuY3BwCkBAIC00MSw2ICs0MSw4IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGFycmF5Q29uc3RydWN0b3JJc0FycmF5KEV4ZWNTdGF0ZSopOwogCiBuYW1l
c3BhY2UgSlNDIHsKIAorQVNTRVJUX0hBU19UUklWSUFMX0RFU1RSVUNUT1IoQXJyYXlDb25zdHJ1
Y3Rvcik7CisKIGNvbnN0IENsYXNzSW5mbyBBcnJheUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJG
dW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6YXJyYXlD
b25zdHJ1Y3RvclRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFycmF5Q29uc3RydWN0b3IpIH07
CiAKIC8qIFNvdXJjZSBmb3IgQXJyYXlDb25zdHJ1Y3Rvci5sdXQuaApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCmluZGV4IGVjMWZmNzguLjhi
ZDc1MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0
cnVjdG9yLmgKQEAgLTI3LDYgKzI3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBB
cnJheVByb3RvdHlwZTsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCisKICAgICBjbGFz
cyBBcnJheUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIHB1Ymxp
YzoKICAgICAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CkBAIC01OSw2ICs2Miw4
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEo
SlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB9OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gQXJyYXlDb25zdHJ1Y3Rvcl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVj
dG9yLmNwcAppbmRleCBkYzI4ZGUxLi5hNTRkMjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKQEAgLTI3LDYgKzI3LDcg
QEAKIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEJvb2xlYW5D
b25zdHJ1Y3Rvcik7CitBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihCb29sZWFuQ29uc3Ry
dWN0b3IpOwogCiBjb25zdCBDbGFzc0luZm8gQm9vbGVhbkNvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoQm9v
bGVhbkNvbnN0cnVjdG9yKSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCmluZGV4IGFmNmJlNjUuLjcxODFjMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCkBA
IC0yNyw2ICsyNyw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgQm9vbGVhblByb3Rv
dHlwZTsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCisKICAgICBjbGFzcyBCb29sZWFu
Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgcHVibGljOgogICAg
ICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKQEAgLTU0LDYgKzU3LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwq
LCBDYWxsRGF0YSYpOwogICAgIH07CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwog
ICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oRXhlY1N0
YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKICAgICBKU09iamVjdCogY29uc3RydWN0
Qm9vbGVhbihFeGVjU3RhdGUqLCBjb25zdCBBcmdMaXN0Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKaW5kZXggNWE0NDljMC4uMzdjNmVh
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5j
cHAKQEAgLTI0LDYgKzI0LDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfQ0xBU1NfRklU
U19JTl9DRUxMKEJvb2xlYW5PYmplY3QpOworQVNTRVJUX0hBU19UUklWSUFMX0RFU1RSVUNUT1Io
Qm9vbGVhbk9iamVjdCk7CiAKIGNvbnN0IENsYXNzSW5mbyBCb29sZWFuT2JqZWN0OjpzX2luZm8g
PSB7ICJCb29sZWFuIiwgJkpTV3JhcHBlck9iamVjdDo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEJvb2xlYW5PYmplY3QpIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Jvb2xlYW5PYmplY3QuaAppbmRleCAwMDBkMTk3Li4xYjQzYzJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCkBAIC0yNSw2ICsyNSw5
IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAor
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKKwog
ICAgIGNsYXNzIEJvb2xlYW5PYmplY3QgOiBwdWJsaWMgSlNXcmFwcGVyT2JqZWN0IHsKICAgICBw
cm90ZWN0ZWQ6CiAgICAgICAgIEJvb2xlYW5PYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJl
Kik7CkBAIC00OCw2ICs1MSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgfTsK
IAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiAgICAgQm9vbGVhbk9iamVjdCogYXNC
b29sZWFuT2JqZWN0KEpTVmFsdWUpOwogCiAgICAgaW5saW5lIEJvb2xlYW5PYmplY3QqIGFzQm9v
bGVhbk9iamVjdChKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAppbmRleCBjN2VhOTY0Li5iOTYwNWQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNw
cApAQCAtNDgsNiArNDgsNyBAQCBjb25zdCBDbGFzc0luZm8gQm9vbGVhblByb3RvdHlwZTo6c19p
bmZvID0geyAiQm9vbGVhbiIsICZCb29sZWFuT2JqZWN0OjpzX2luZm8sCiAqLwogCiBBU1NFUlRf
Q0xBU1NfRklUU19JTl9DRUxMKEJvb2xlYW5Qcm90b3R5cGUpOworQVNTRVJUX0hBU19UUklWSUFM
X0RFU1RSVUNUT1IoQm9vbGVhblByb3RvdHlwZSk7CiAKIEJvb2xlYW5Qcm90b3R5cGU6OkJvb2xl
YW5Qcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6
IEJvb2xlYW5PYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKaW5kZXggYjc5Y2Vk
Yy4uYzc1YjkyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9v
bGVhblByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5Qcm90b3R5cGUuaApAQCAtMjUsNiArMjUsOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV25vbi12aXJ0dWFsLWR0b3IiCisKICAgICBjbGFzcyBCb29sZWFuUHJvdG90eXBlIDog
cHVibGljIEJvb2xlYW5PYmplY3QgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBCb29s
ZWFuT2JqZWN0IEJhc2U7CkBAIC01NCw2ICs1Nyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgfTsKIAor
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2Vu
ZGlmIC8vIEJvb2xlYW5Qcm90b3R5cGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOTMxODk5ZS4uYWQ0MDJjNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCkBA
IC03Miw2ICs3Miw3IEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mCiAqLwogCiBBU1NFUlRfQ0xB
U1NfRklUU19JTl9DRUxMKERhdGVDb25zdHJ1Y3Rvcik7CitBU1NFUlRfSEFTX1RSSVZJQUxfREVT
VFJVQ1RPUihEYXRlQ29uc3RydWN0b3IpOwogCiBEYXRlQ29uc3RydWN0b3I6OkRhdGVDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
ICAgICA6IEludGVybmFsRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAppbmRleCBhZTIz
NzZhLi45NWU1ZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29uc3RydWN0b3IuaApAQCAtMjcsNiArMjcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNs
YXNzIERhdGVQcm90b3R5cGU7CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgorCiAgICAg
Y2xhc3MgRGF0ZUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIHB1
YmxpYzoKICAgICAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CkBAIC01OSw2ICs2
Miw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlEZXNjcmlwdG9yJik7CiAgICAgfTsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorCiAgICAgSlNPYmplY3QqIGNvbnN0cnVjdERhdGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqLCBjb25zdCBBcmdMaXN0Jik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKaW5kZXggNTQ1NzU3Yi4uYTUw
Mjc3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3Rh
bmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2Uu
Y3BwCkBAIC01Myw2ICs1MywxMSBAQCB2b2lkIERhdGVJbnN0YW5jZTo6ZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBkb3VibGUgdGltZSkKICAgICBzZXRJbnRlcm5hbFZh
bHVlKGdsb2JhbERhdGEsIGpzTnVtYmVyKHRpbWVDbGlwKHRpbWUpKSk7CiB9CiAKK3ZvaWQgRGF0
ZUluc3RhbmNlOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBqc0Nhc3Q8RGF0ZUluc3Rh
bmNlKj4oY2VsbCktPkRhdGVJbnN0YW5jZTo6fkRhdGVJbnN0YW5jZSgpOworfQorCiBjb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGlt
ZShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7CiAgICAgZG91YmxlIG1pbGxpID0gaW50ZXJuYWxO
dW1iZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJ
bnN0YW5jZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgK
aW5kZXggMzI0MTcwYi4uMWEwMWYyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUluc3RhbmNlLmgKQEAgLTI5LDEyICsyOSwxNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAog
bmFtZXNwYWNlIEpTQyB7CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgorCiAgICAgY2xh
c3MgRGF0ZUluc3RhbmNlIDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgcHJvdGVjdGVk
OgogICAgICAgICBEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7CiAgICAgICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJik7CiAgICAgICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgZG91YmxlKTsKLSAgICAgICAgCisKKyAgICAgICAgc3Rh
dGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKKyAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVk
ZWYgSlNXcmFwcGVyT2JqZWN0IEJhc2U7CiAKQEAgLTgyLDYgKzg3LDggQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPERhdGVJbnN0YW5jZURhdGE+IG1fZGF0YTsKICAg
ICB9OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKICAgICBEYXRlSW5zdGFuY2Uq
IGFzRGF0ZUluc3RhbmNlKEpTVmFsdWUpOwogCiAgICAgaW5saW5lIERhdGVJbnN0YW5jZSogYXNE
YXRlSW5zdGFuY2UoSlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVQcm90b3R5cGUuaAppbmRleCA1MGEwMGVjLi42ZmEwZDNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCkBAIC0yNyw2ICsyNyw5IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgT2JqZWN0UHJvdG90eXBlOwogCisjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1Xbm9uLXZpcnR1YWwtZHRvciIKKwogICAgIGNsYXNzIERhdGVQcm90b3R5cGUgOiBwdWJsaWMg
RGF0ZUluc3RhbmNlIHsKICAgICBwcml2YXRlOgogICAgICAgICBEYXRlUHJvdG90eXBlKEV4ZWNT
dGF0ZSosIFN0cnVjdHVyZSopOwpAQCAtNTYsNiArNTksOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgRGF0ZUluc3RhbmNlOjpTdHJ1Y3R1cmVGbGFnczsKICAgICB9Owog
CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAj
ZW5kaWYgLy8gRGF0ZVByb3RvdHlwZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ci5jcHAKaW5kZXggNGExZTE0OC4uYTUzNzNkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yLmNwcApAQCAtMTcwLDYgKzE3MCwxMSBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9D
RUxMKFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbik7CiAKIGNvbnN0IENsYXNzSW5mbyBTdHJp
Y3RNb2RlVHlwZUVycm9yRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNf
aW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rp
b24pIH07CiAKK3ZvaWQgU3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uOjpkZXN0cm95KEpTQ2Vs
bCogY2VsbCkKK3sKKyAgICBqc0Nhc3Q8U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uKj4oY2Vs
bCktPlN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbjo6flN0cmljdE1vZGVUeXBlRXJyb3JGdW5j
dGlvbigpOworfQorCiBKU1ZhbHVlIGNyZWF0ZVR5cGVFcnJvckZ1bmN0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgVVN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yLmgKaW5kZXggYWM3MzU0ZC4uMTgwOTQzYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvci5oCkBAIC03NCw2ICs3NCw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgSlNWYWx1ZSBjcmVhdGVUeXBlRXJyb3JGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IFVTdHJpbmcmIG1lc3NhZ2UpOwogICAgIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3Ii
CisKICAgICBjbGFzcyBTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24gOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgU3RyaWN0TW9kZVR5cGVFcnJvckZ1
bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQpAQCAtODIsNiArODUsOCBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgewogICAgICAgICB9CiAKKyAgICAgICAgc3RhdGljIHZvaWQgZGVzdHJveShK
U0NlbGwqKTsKKwogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9u
IEJhc2U7CiAKQEAgLTEyNyw2ICsxMzIsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgVVN0
cmluZyBtX21lc3NhZ2U7CiAgICAgfTsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVycm9yX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNTIzMDlk
MS4uYzhmOTNiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBB
U1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEVycm9yQ29uc3RydWN0b3IpOworQVNTRVJUX0hBU19U
UklWSUFMX0RFU1RSVUNUT1IoRXJyb3JDb25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBF
cnJvckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIDAs
IDAsIENSRUFURV9NRVRIT0RfVEFCTEUoRXJyb3JDb25zdHJ1Y3RvcikgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IGJlNjdk
NmMuLjEzNzU0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ckNvbnN0cnVjdG9yLmgKQEAgLTI4LDYgKzI4LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBj
bGFzcyBFcnJvclByb3RvdHlwZTsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCisKICAg
ICBjbGFzcyBFcnJvckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAg
IHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CkBAIC01NSw2
ICs1OCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB9OwogCisjcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRXJyb3JDb25zdHJ1
Y3Rvcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvcklu
c3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2Uu
Y3BwCmluZGV4IGJiMGNjMDAuLjkxYTZmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCkBAIC0yMyw2ICsyMyw4IEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCitBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihFcnJvckluc3RhbmNlKTsK
KwogY29uc3QgQ2xhc3NJbmZvIEVycm9ySW5zdGFuY2U6OnNfaW5mbyA9IHsgIkVycm9yIiwgJkpT
Tm9uRmluYWxPYmplY3Q6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShFcnJvcklu
c3RhbmNlKSB9OwogCiBFcnJvckluc3RhbmNlOjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCkBAIC0zMSwxMyArMzMsNCBAQCBFcnJv
ckluc3RhbmNlOjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCiB7CiB9CiAKLUVycm9ySW5zdGFuY2U6On5FcnJvckluc3RhbmNlKCkK
LXsKLX0KLQotdm9pZCBFcnJvckluc3RhbmNlOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKLXsKLSAg
ICBqc0Nhc3Q8RXJyb3JJbnN0YW5jZSo+KGNlbGwpLT5+RXJyb3JJbnN0YW5jZSgpOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
SW5zdGFuY2UuaAppbmRleCA3MzgxYzQ1Li5kMGRlNGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCkBAIC0yNSw2ICsyNSw5IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKKwogICAgIGNsYXNzIEVy
cm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgcHVibGljOgogICAg
ICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKQEAgLTY2LDEyICs2OSwxMSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHB1dERpcmVjdChnbG9iYWxEYXRhLCBnbG9iYWxE
YXRhLnByb3BlcnR5TmFtZXMtPm1lc3NhZ2UsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCBtZXNzYWdl
KSwgRG9udEVudW0pOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB+RXJyb3JJbnN0YW5j
ZSgpOwotICAgICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwotCiAgICAgICAgIGJv
b2wgbV9hcHBlbmRTb3VyY2VUb01lc3NhZ2U7CiAgICAgfTsKIAorI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVycm9ySW5zdGFu
Y2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUu
Y3BwCmluZGV4IGUxYTM5NWMuLjRjNDhhNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKQEAgLTYzLDYgKzYzLDE1IEBAIHZvaWQgRXJy
b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqKQogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgIkVycm9yIiksIERvbnRFbnVtKTsK
IH0KIAorRXJyb3JQcm90b3R5cGU6On5FcnJvclByb3RvdHlwZSgpCit7Cit9CisKK3ZvaWQgRXJy
b3JQcm90b3R5cGU6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQoreworICAgIGpzQ2FzdDxFcnJvclBy
b3RvdHlwZSo+KGNlbGwpLT5+RXJyb3JQcm90b3R5cGUoKTsKK30KKwogYm9vbCBFcnJvclByb3Rv
dHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAg
ICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEVycm9ySW5zdGFuY2U+KGV4ZWMsIEV4ZWNT
dGF0ZTo6ZXJyb3JQcm90b3R5cGVUYWJsZShleGVjKSwganNDYXN0PEVycm9yUHJvdG90eXBlKj4o
Y2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JQcm90b3R5cGUuaAppbmRleCA2NjdiZTQyLi4xODc2YmVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKQEAgLTUxLDYgKzUx
LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgRXJyb3JJbnN0YW5j
ZTo6U3RydWN0dXJlRmxhZ3M7CiAKKyAgICAgICAgdmlydHVhbCB+RXJyb3JQcm90b3R5cGUoKTsK
KyAgICAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKKwogICAgIHByaXZhdGU6CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggYmU0YzYzYy4u
ZTA4ZTU4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKIG5hbWVzcGFjZSBKU0Mgewog
CiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEZ1bmN0aW9uQ29uc3RydWN0b3IpOworQVNTRVJU
X0hBU19UUklWSUFMX0RFU1RSVUNUT1IoRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENs
YXNzSW5mbyBGdW5jdGlvbkNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNl
OjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoRnVuY3Rpb25Db25zdHJ1Y3Rvcikg
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25D
b25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25z
dHJ1Y3Rvci5oCmluZGV4IGE4YWNmMWEuLmJkMGUyODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKQEAgLTMxLDYgKzMxLDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBGdW5jdGlvblByb3RvdHlwZTsKIAorI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV25vbi12aXJ0dWFsLWR0b3IiCisKICAgICBjbGFzcyBGdW5jdGlvbkNvbnN0cnVjdG9y
IDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRl
ZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CkBAIC01Niw2ICs1OSw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
KTsKICAgICB9OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKICAgICBKU09iamVj
dCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBjb25zdCBB
cmdMaXN0JiwgY29uc3QgSWRlbnRpZmllciYgZnVuY3Rpb25OYW1lLCBjb25zdCBVU3RyaW5nJiBz
b3VyY2VVUkwsIGNvbnN0IFdURjo6VGV4dFBvc2l0aW9uJik7CiAgICAgSlNPYmplY3QqIGNvbnN0
cnVjdEZ1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgQXJnTGlzdCYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3Rv
dHlwZS5jcHAKaW5kZXggMzc3MWZmMi4uYjEwMTdlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcApAQCAtMzMsNiArMzMsNyBA
QAogbmFtZXNwYWNlIEpTQyB7CiAKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoRnVuY3Rpb25Q
cm90b3R5cGUpOworQVNTRVJUX0hBU19UUklWSUFMX0RFU1RSVUNUT1IoRnVuY3Rpb25Qcm90b3R5
cGUpOwogCiBjb25zdCBDbGFzc0luZm8gRnVuY3Rpb25Qcm90b3R5cGU6OnNfaW5mbyA9IHsgIkZ1
bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShGdW5jdGlv
blByb3RvdHlwZSkgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uUHJvdG90eXBlLmgKaW5kZXggNDVlMDkzMy4uYThhZTdlYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCkBAIC0yNSw2ICsy
NSw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIK
KwogICAgIGNsYXNzIEZ1bmN0aW9uUHJvdG90eXBlIDogcHVibGljIEludGVybmFsRnVuY3Rpb24g
ewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CkBA
IC01Myw2ICs1Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgQ2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB9OwogCisjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRnVuY3Rp
b25Qcm90b3R5cGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50ZXJuYWxGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRl
cm5hbEZ1bmN0aW9uLmNwcAppbmRleCBkYTgxYzQxLi5iMDJkMWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcApAQCAtMzMsNiAr
MzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIHZvaWQgSW50ZXJuYWxGdW5jdGlvbjo6dnRhYmxlQW5j
aG9yKCkge30KIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChJbnRlcm5hbEZ1bmN0aW9uKTsK
K0FTU0VSVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKEludGVybmFsRnVuY3Rpb24pOwogCiBjb25z
dCBDbGFzc0luZm8gSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSlNO
b25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEludGVybmFs
RnVuY3Rpb24pIH07CiAKQEAgLTU0LDE1ICs1NSw2IEBAIHZvaWQgSW50ZXJuYWxGdW5jdGlvbjo6
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVy
CiAgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEucHJvcGVydHlOYW1lcy0+bmFt
ZSwganNTdHJpbmcoJmdsb2JhbERhdGEsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmlu
ZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQogCi1JbnRlcm5hbEZ1
bmN0aW9uOjp+SW50ZXJuYWxGdW5jdGlvbigpCi17Ci19Ci0KLXZvaWQgSW50ZXJuYWxGdW5jdGlv
bjo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCi17Ci0gICAganNDYXN0PEludGVybmFsRnVuY3Rpb24q
PihjZWxsKS0+fkludGVybmFsRnVuY3Rpb24oKTsKLX0KLQogY29uc3QgVVN0cmluZyYgSW50ZXJu
YWxGdW5jdGlvbjo6bmFtZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0dXJuIGFzU3RyaW5n
KGdldERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0
eU5hbWVzLT5uYW1lKSktPnRyeUdldFZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKaW5kZXggMDM5ZTU2MC4uYWE1Y2ZlOSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaApA
QCAtMzEsNiArMzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIEZ1bmN0aW9uUHJv
dG90eXBlOwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKKwogICAgIGNsYXNzIEludGVy
bmFsRnVuY3Rpb24gOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgcHVibGljOgogICAg
ICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKQEAgLTU2LDE1ICs1OSwxNCBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0
YSYsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpOwogCi0gICAgICAgIHZpcnR1YWwgfkludGVybmFs
RnVuY3Rpb24oKTsKLSAgICAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKLQogICAg
ICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgdm9pZCB2dGFibGVBbmNob3IoKTsKICAgICB9
OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKICAgICBJbnRlcm5hbEZ1bmN0aW9u
KiBhc0ludGVybmFsRnVuY3Rpb24oSlNWYWx1ZSk7CiAKICAgICBpbmxpbmUgSW50ZXJuYWxGdW5j
dGlvbiogYXNJbnRlcm5hbEZ1bmN0aW9uKEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAppbmRleCBkYjZiNTA3Li41Y2E4MmY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAK
QEAgLTY2LDYgKzY2LDE1IEBAIHZvaWQgSlNBY3RpdmF0aW9uOjpmaW5hbGl6ZShKU0NlbGwqIGNl
bGwpCiAgICAgc3RhdGljX2Nhc3Q8U2hhcmVkU3ltYm9sVGFibGUqPihqc0Nhc3Q8SlNBY3RpdmF0
aW9uKj4oY2VsbCktPm1fc3ltYm9sVGFibGUpLT5kZXJlZigpOwogfQogCitKU0FjdGl2YXRpb246
On5KU0FjdGl2YXRpb24oKQoreworfQorCit2b2lkIEpTQWN0aXZhdGlvbjo6ZGVzdHJveShKU0Nl
bGwqIGNlbGwpCit7CisgICAganNDYXN0PEpTQWN0aXZhdGlvbio+KGNlbGwpLT5+SlNBY3RpdmF0
aW9uKCk7Cit9CisKIHZvaWQgSlNBY3RpdmF0aW9uOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2Vs
bCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNBY3RpdmF0aW9uKiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTQWN0aXZhdGlvbio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FjdGl2YXRpb24uaAppbmRleCAyZDY0NDk1Li5iNTZkYmFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaApAQCAtNTMsNiArNTMsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBhY3RpdmF0aW9uOwogICAgICAg
ICB9CiAKKyAgICAgICAgdmlydHVhbCB+SlNBY3RpdmF0aW9uKCk7CisgICAgICAgIHN0YXRpYyB2
b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAgICAgICAgIHN0YXRpYyB2b2lkIGZpbmFsaXplKEpTQ2Vs
bCopOwogCiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZp
c2l0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXgg
MmE1NWI4MC4uNjU0NDBiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5jcHAKQEAgLTI4Niw3ICsyODYsNyBAQCBKU0FycmF5Ojp+SlNBcnJheSgpCiAKIHZvaWQgSlNB
cnJheTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiB7Ci0gICAganNDYXN0PEpTQXJyYXkqPihjZWxs
KS0+fkpTQXJyYXkoKTsKKyAgICBqc0Nhc3Q8SlNBcnJheSo+KGNlbGwpLT5KU0FycmF5Ojp+SlNB
cnJheSgpOwogfQogCiBib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xv
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24u
Y3BwCmluZGV4IDU0ZjM0NDYuLjBlNWE5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcApAQCAtMzEsNiArMzEsNyBAQAogbmFtZXNw
YWNlIEpTQyB7CiAKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNCb3VuZEZ1bmN0aW9uKTsK
K0FTU0VSVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKEpTQm91bmRGdW5jdGlvbik7CiAKIGNvbnN0
IENsYXNzSW5mbyBKU0JvdW5kRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6
OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0JvdW5kRnVuY3Rpb24pIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKaW5k
ZXggYzYwZDdkYi4uOTVkYWY2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCb3VuZEZ1bmN0aW9uLmgKQEAgLTMzLDYgKzMzLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25DYWxsKEV4ZWNTdGF0ZSop
OwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZEZ1bmN0aW9uQ29uc3RydWN0KEV4
ZWNTdGF0ZSopOwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKKwogY2xhc3MgSlNCb3Vu
ZEZ1bmN0aW9uIDogcHVibGljIEpTRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSlNG
dW5jdGlvbiBCYXNlOwpAQCAtNjgsNiArNzEsOCBAQCBwcml2YXRlOgogICAgIFdyaXRlQmFycmll
cjxVbmtub3duPiBtX2JvdW5kQXJnczsKIH07CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKU0Z1bmN0aW9uX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggOWE0YTkwNy4u
MjZlMjY4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKQEAgLTExMywxNCArMTEzLDExIEBAIHZvaWQgSlNGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24o
RXhlY1N0YXRlKiBleGVjLCBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsCiAgICAgcHV0
RGlyZWN0T2Zmc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUtPmdsb2JhbE9i
amVjdC0+ZnVuY3Rpb25OYW1lT2Zmc2V0KCksIGV4ZWN1dGFibGUtPm5hbWVWYWx1ZSgpKTsKIH0K
IAotSlNGdW5jdGlvbjo6fkpTRnVuY3Rpb24oKQotewotICAgIEFTU0VSVChjbGFzc0luZm8oKS0+
aXNTdWJDbGFzc09mKCZKU0Z1bmN0aW9uOjpzX2luZm8pKTsKLX0KLQogdm9pZCBKU0Z1bmN0aW9u
OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKIHsKLSAgICBqc0Nhc3Q8SlNGdW5jdGlvbio+KGNlbGwp
LT5+SlNGdW5jdGlvbigpOworICAgIEpTRnVuY3Rpb24qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNG
dW5jdGlvbio+KGNlbGwpOworICAgIEFTU0VSVCh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKS0+aXNT
dWJDbGFzc09mKCZKU0Z1bmN0aW9uOjpzX2luZm8pKTsKKyAgICB0aGlzT2JqZWN0LT5KU0Z1bmN0
aW9uOjp+SlNGdW5jdGlvbigpOwogfQogCiB2b2lkIEpTRnVuY3Rpb246OnZ0YWJsZUFuY2hvcigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggYzFlMmZh
OS4uMTA5Njk2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24u
aApAQCAtNDUsNiArNDUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHZvaWQgY3JlYXRlRGVz
Y3JpcHRvckZvclRocm93aW5nUHJvcGVydHkoRXhlY1N0YXRlKiwgUHJvcGVydHlEZXNjcmlwdG9y
JiwgY29uc3QgY2hhciogbWVzc2FnZSk7CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgor
CiAgICAgY2xhc3MgSlNGdW5jdGlvbiA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICAg
ICAgZnJpZW5kIGNsYXNzIEpJVDsKICAgICAgICAgZnJpZW5kIGNsYXNzIERGRzo6U3BlY3VsYXRp
dmVKSVQ7CkBAIC02NSw3ICs2OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIH5KU0Z1
bmN0aW9uKCk7CiAgICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCB2dGFibGVBbmNob3IoKTsgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2Ug
b3B0aW1pemF0aW9ucyBubyBsb25nZXIgcmVseSBvbiB0ZXN0aW5nIHZ0YWJsZXMKIApAQCAtMTU3
LDYgKzE1OSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXcml0ZUJhcnJpZXI8U2NvcGVD
aGFpbk5vZGU+IG1fc2NvcGVDaGFpbjsKICAgICB9OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisKICAgICBKU0Z1bmN0aW9uKiBhc0Z1bmN0aW9uKEpTVmFsdWUpOwogCiAgICAgaW5s
aW5lIEpTRnVuY3Rpb24qIGFzRnVuY3Rpb24oSlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAzNDI5ODVjLi45
Y2RkZWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCkBAIC0xMjIsNiArMTIyLDExIEBAIEpTR2xvYmFsT2JqZWN0Ojp+SlNHbG9iYWxP
YmplY3QoKQogICAgIH0KIH0KIAordm9pZCBKU0dsb2JhbE9iamVjdDo6ZGVzdHJveShKU0NlbGwq
IGNlbGwpCit7CisgICAganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oY2VsbCktPn5KU0dsb2JhbE9i
amVjdCgpOworfQorCiB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KEpTT2JqZWN0KiB0aGlzVmFs
dWUpCiB7CiAgICAgQVNTRVJUKEpTTG9jazo6Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRl
eCAzZjkzY2Q4Li5kNDkwNjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE5NCw2ICsxOTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+SlNHbG9iYWxPYmplY3QoKTsKKyAgICAgICAg
c3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAgICAgICBzdGF0aWMgdm9pZCB2aXNp
dENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKaW5kZXggZDkwYzY4
Yy4uMzA4NGYzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dGF0aWNTY29wZU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdGF0aWNTY29wZU9iamVjdC5jcHAKQEAgLTM0LDYgKzM0LDExIEBAIEFTU0VSVF9DTEFTU19G
SVRTX0lOX0NFTEwoSlNTdGF0aWNTY29wZU9iamVjdCk7CiAKIGNvbnN0IENsYXNzSW5mbyBKU1N0
YXRpY1Njb3BlT2JqZWN0OjpzX2luZm8gPSB7ICJPYmplY3QiLCAmQmFzZTo6c19pbmZvLCAwLCAw
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU3RhdGljU2NvcGVPYmplY3QpIH07CiAKK3ZvaWQgSlNT
dGF0aWNTY29wZU9iamVjdDo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCit7CisgICAganNDYXN0PEpT
U3RhdGljU2NvcGVPYmplY3QqPihjZWxsKS0+SlNTdGF0aWNTY29wZU9iamVjdDo6fkpTU3RhdGlj
U2NvcGVPYmplY3QoKTsKK30KKwogdm9pZCBKU1N0YXRpY1Njb3BlT2JqZWN0Ojp2aXNpdENoaWxk
cmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNTdGF0aWNT
Y29wZU9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1N0YXRpY1Njb3BlT2JqZWN0Kj4oY2Vs
bCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Nj
b3BlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3Bl
T2JqZWN0LmgKaW5kZXggMjNhM2FjYS4uZGUwYjgxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaApAQCAtNjcsNyArNjcsOSBA
QCBuYW1lc3BhY2UgSlNDewogICAgICAgICAgICAgOiBKU1ZhcmlhYmxlT2JqZWN0KGV4ZWMtPmds
b2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnN0YXRpY1Njb3BlU3RydWN0dXJlLmdldCgp
LCAmbV9zeW1ib2xUYWJsZSwgcmVpbnRlcnByZXRfY2FzdDxSZWdpc3Rlcio+KCZtX3JlZ2lzdGVy
U3RvcmUgKyAxKSkKICAgICAgICAgewogICAgICAgICB9Ci0gICAgICAgIAorCisgICAgICAgIHN0
YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CisKICAgICAgICAgU3ltYm9sVGFibGUgbV9zeW1i
b2xUYWJsZTsKICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1fcmVnaXN0ZXJTdG9yZTsK
ICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9i
amVjdC5jcHAKaW5kZXggZjc3YjhlOS4uOGM2M2ZkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuY3BwCkBAIC0yNSwxNiArMjUsMTIgQEAK
IG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTV3JhcHBlck9i
amVjdCk7CitBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihKU1dyYXBwZXJPYmplY3QpOwog
Ci1KU1dyYXBwZXJPYmplY3Q6On5KU1dyYXBwZXJPYmplY3QoKQordm9pZCBKU1dyYXBwZXJPYmpl
Y3Q6OnZ0YWJsZUFuY2hvcigpCiB7CiB9CiAKLXZvaWQgSlNXcmFwcGVyT2JqZWN0OjpkZXN0cm95
KEpTQ2VsbCogY2VsbCkKLXsKLSAgICBqc0Nhc3Q8SlNXcmFwcGVyT2JqZWN0Kj4oY2VsbCktPn5K
U1dyYXBwZXJPYmplY3QoKTsKLX0KLQogdm9pZCBKU1dyYXBwZXJPYmplY3Q6OnZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU1dyYXBwZXJP
YmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNXcmFwcGVyT2JqZWN0Kj4oY2VsbCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCmluZGV4IGUz
YTkwYzQuLmViOWVhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTV3JhcHBlck9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
V3JhcHBlck9iamVjdC5oCkBAIC0yNiw2ICsyNiw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKKwogICAgIC8vIFRoaXMgY2xhc3MgaXMgdXNlZCBh
cyBhIGJhc2UgZm9yIGNsYXNzZXMgc3VjaCBhcyBTdHJpbmcsCiAgICAgLy8gTnVtYmVyLCBCb29s
ZWFuIGFuZCBEYXRlIHdoaWNoIGFyZSB3cmFwcGVycyBmb3IgcHJpbWl0aXZlIHR5cGVzLgogICAg
IGNsYXNzIEpTV3JhcHBlck9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKQEAgLTQ2
LDEzICs0OSwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgdm9pZCB2aXNp
dENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKLSAgICAgICAgdmlydHVhbCB+SlNX
cmFwcGVyT2JqZWN0KCk7Ci0gICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7Ci0g
ICAgICAgIAogICAgIHByaXZhdGU6CiAgICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiBtX2lu
dGVybmFsVmFsdWU7CisgICAgICAgIHZpcnR1YWwgdm9pZCB2dGFibGVBbmNob3IoKTsKICAgICB9
OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKICAgICBpbmxpbmUgSlNXcmFwcGVy
T2JqZWN0OjpKU1dyYXBwZXJPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0
cnVjdHVyZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGRkZTkyNzguLmI2YWZmOTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9y
Q29uc3RydWN0b3IuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogQVNT
RVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChOYXRpdmVFcnJvckNvbnN0cnVjdG9yKTsKK0FTU0VSVF9I
QVNfVFJJVklBTF9ERVNUUlVDVE9SKE5hdGl2ZUVycm9yQ29uc3RydWN0b3IpOwogCiBjb25zdCBD
bGFzc0luZm8gTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAm
SW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE5hdGl2
ZUVycm9yQ29uc3RydWN0b3IpIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaAppbmRleCA5ODMyMmYxLi41ZThkYTUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNv
bnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJy
b3JDb25zdHJ1Y3Rvci5oCkBAIC0zMCw2ICszMCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNs
YXNzIEZ1bmN0aW9uUHJvdG90eXBlOwogICAgIGNsYXNzIE5hdGl2ZUVycm9yUHJvdG90eXBlOwog
CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKKwogICAgIGNsYXNzIE5hdGl2ZUVycm9yQ29u
c3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgcHVibGljOgogICAgICAg
ICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKQEAgLTc1LDYgKzc4LDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZXJyb3JTdHJ1Y3R1
cmU7CiAgICAgfTsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiB9IC8vIG5hbWVz
cGFjZSBKU0MKIAogI2VuZGlmIC8vIE5hdGl2ZUVycm9yQ29uc3RydWN0b3JfaApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCmluZGV4
IDA4NGM2M2YuLmU4NjNlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTQyLDYgKzQyLDggQEAgc3RhdGljIEpTVmFs
dWUgbnVtYmVyQ29uc3RydWN0b3JNaW5WYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJ
ZGVudGlmaWVyJikKIAogbmFtZXNwYWNlIEpTQyB7CiAKK0FTU0VSVF9IQVNfVFJJVklBTF9ERVNU
UlVDVE9SKE51bWJlckNvbnN0cnVjdG9yKTsKKwogY29uc3QgQ2xhc3NJbmZvIE51bWJlckNvbnN0
cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8s
IDAsIEV4ZWNTdGF0ZTo6bnVtYmVyQ29uc3RydWN0b3JUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJM
RShOdW1iZXJDb25zdHJ1Y3RvcikgfTsKIAogLyogU291cmNlIGZvciBOdW1iZXJDb25zdHJ1Y3Rv
ci5sdXQuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0
cnVjdG9yLmgKaW5kZXggMGI5YzIwNy4uYzYxYzA4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBAIC0yNyw2ICsyNyw5IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgTnVtYmVyUHJvdG90eXBlOwogCisjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
bm9uLXZpcnR1YWwtZHRvciIKKwogICAgIGNsYXNzIE51bWJlckNvbnN0cnVjdG9yIDogcHVibGlj
IEludGVybmFsRnVuY3Rpb24gewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBJbnRlcm5h
bEZ1bmN0aW9uIEJhc2U7CkBAIC02MSw2ICs2NCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB9
OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKIH0gLy8gbmFtZXNwYWNlIEpTQwog
CiAjZW5kaWYgLy8gTnVtYmVyQ29uc3RydWN0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKaW5kZXggYjc1MTA1My4uMWZlYTI1NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChO
dW1iZXJPYmplY3QpOworQVNTRVJUX0hBU19UUklWSUFMX0RFU1RSVUNUT1IoTnVtYmVyT2JqZWN0
KTsKIAogY29uc3QgQ2xhc3NJbmZvIE51bWJlck9iamVjdDo6c19pbmZvID0geyAiTnVtYmVyIiwg
JkpTV3JhcHBlck9iamVjdDo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE51bWJl
ck9iamVjdCkgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmpl
Y3QuaAppbmRleCBhNWY0NGY1Li5iN2Q2YjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJPYmplY3QuaApAQCAtMjUsNiArMjUsOSBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCisKICAgICBjbGFzcyBOdW1iZXJPYmpl
Y3QgOiBwdWJsaWMgSlNXcmFwcGVyT2JqZWN0IHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIE51
bWJlck9iamVjdChKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKQEAgLTQ4LDYgKzUxLDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KICAgICB9OwogCisjcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisKICAgICBOdW1iZXJPYmplY3QqIGNvbnN0cnVjdE51bWJlcihFeGVjU3RhdGUq
LCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4
IDNiY2I5YmIuLjQ2MTJiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVtYmVyUHJvdG90eXBlLmNwcApAQCAtNjksNiArNjksNyBAQCBjb25zdCBDbGFzc0luZm8g
TnVtYmVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJOdW1iZXIiLCAmTnVtYmVyT2JqZWN0OjpzX2lu
Zm8sIDAsCiAqLwogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKE51bWJlclByb3RvdHlwZSk7
CitBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihOdW1iZXJQcm90b3R5cGUpOwogCiBOdW1i
ZXJQcm90b3R5cGU6Ok51bWJlclByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgIDogTnVtYmVyT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0
dXJlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJv
dG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUu
aAppbmRleCAwNWJiZTI3Li42NGUzOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJQcm90b3R5cGUuaApAQCAtMjUsNiArMjUsOSBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCisKICAgICBjbGFzcyBOdW1iZXJQ
cm90b3R5cGUgOiBwdWJsaWMgTnVtYmVyT2JqZWN0IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5
cGVkZWYgTnVtYmVyT2JqZWN0IEJhc2U7CkBAIC01Myw2ICs1Niw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3Qq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAg
ICAgfTsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIAogI2VuZGlmIC8vIE51bWJlclByb3RvdHlwZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNTk1MmNlOC4uNjVk
MjhjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENv
bnN0cnVjdG9yLmNwcApAQCAtNTUsNiArNTUsOCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcklzRXh0ZW5zaWJsZShFeGVjU3RhdGUqKTsKIAog
bmFtZXNwYWNlIEpTQyB7CiAKK0FTU0VSVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKE9iamVjdENv
bnN0cnVjdG9yKTsKKwogY29uc3QgQ2xhc3NJbmZvIE9iamVjdENvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6
b2JqZWN0Q29uc3RydWN0b3JUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShPYmplY3RDb25zdHJ1
Y3RvcikgfTsKIAogLyogU291cmNlIGZvciBPYmplY3RDb25zdHJ1Y3Rvci5sdXQuaApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXgg
NGUwYWZhOS4uODRjNjI0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC0yNyw2ICsyNyw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgY2xhc3MgT2JqZWN0UHJvdG90eXBlOwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRv
ciIKKwogICAgIGNsYXNzIE9iamVjdENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rp
b24gewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7
CkBAIC01OCw2ICs2MSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgQ2FsbFR5
cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB9OwogCisjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gT2Jq
ZWN0Q29uc3RydWN0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwQ29uc3RydWN0b3IuY3BwCmluZGV4IDAzZDJmZDIuLmEyODczNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKQEAg
LTExNSw2ICsxMTUsMTEgQEAgdm9pZCBSZWdFeHBDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24o
RXhlY1N0YXRlKiBleGVjLCBSZWdFeHBQcm90b3R5cGUqIHJlZ0V4cFAKICAgICBwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5sZW5ndGgsIGpzTnVtYmVyKDIpLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7
CiB9CiAKK3ZvaWQgUmVnRXhwQ29uc3RydWN0b3I6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQorewor
ICAgIGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KGNlbGwpLT5SZWdFeHBDb25zdHJ1Y3Rvcjo6
flJlZ0V4cENvbnN0cnVjdG9yKCk7Cit9CisKIFJlZ0V4cE1hdGNoZXNBcnJheTo6UmVnRXhwTWF0
Y2hlc0FycmF5KEV4ZWNTdGF0ZSogZXhlYykKICAgICA6IEpTQXJyYXkoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4cE1hdGNoZXNBcnJheVN0cnVj
dHVyZSgpKQogewpAQCAtMTQwLDYgKzE0NSwxMSBAQCBSZWdFeHBNYXRjaGVzQXJyYXk6On5SZWdF
eHBNYXRjaGVzQXJyYXkoKQogICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxSZWdFeHBDb25zdHJ1Y3Rv
clByaXZhdGUqPihzdWJjbGFzc0RhdGEoKSk7CiB9CiAKK3ZvaWQgUmVnRXhwTWF0Y2hlc0FycmF5
OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBqc0Nhc3Q8UmVnRXhwTWF0Y2hlc0FycmF5
Kj4oY2VsbCktPlJlZ0V4cE1hdGNoZXNBcnJheTo6flJlZ0V4cE1hdGNoZXNBcnJheSgpOworfQor
CiB2b2lkIFJlZ0V4cE1hdGNoZXNBcnJheTo6ZmlsbEFycmF5SW5zdGFuY2UoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIFJlZ0V4cENvbnN0cnVjdG9yUHJpdmF0ZSogZCA9IHN0YXRpY19jYXN0PFJl
Z0V4cENvbnN0cnVjdG9yUHJpdmF0ZSo+KHN1YmNsYXNzRGF0YSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4IDVmOTMwZWIu
LmY0ZmUyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuaApAQCAtNTUsNiArNTUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
dW5zaWduZWQgbGFzdE92ZWN0b3JJbmRleCA6IDE7CiAgICAgfTsKIAorI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12
aXJ0dWFsLWR0b3IiCisKICAgICBjbGFzcyBSZWdFeHBDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5j
dGlvbiBCYXNlOwpAQCAtOTgsMTIgKzEwMSwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIFJlZ0V4cENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKik7CisgICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAgICAgICAgIHN0
YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0
YSYpOwogICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmKTsKIAogICAgICAgICBPd25QdHI8UmVnRXhwQ29uc3RydWN0b3JQcml2YXRlPiBkOwogICAg
IH07CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwogICAgIFJlZ0V4cENvbnN0cnVj
dG9yKiBhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWUpOwogCiAgICAgSlNPYmplY3QqIGNvbnN0
cnVjdFJlZ0V4cChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IEFyZ0xpc3QmLCBi
b29sIGNhbGxBc0NvbnN0cnVjdG9yID0gZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaAppbmRleCAxY2M4OThlLi4xYzExN2Iw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVz
QXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVz
QXJyYXkuaApAQCAtMzcsNyArMzcsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJl
Z0V4cC0+ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBjdG9yUHJpdmF0ZSk7CiAg
ICAgICAgICAgICByZXR1cm4gcmVnRXhwOwogICAgICAgICB9Ci0gICAgICAgIHZpcnR1YWwgflJl
Z0V4cE1hdGNoZXNBcnJheSgpOworICAgICAgICB+UmVnRXhwTWF0Y2hlc0FycmF5KCk7CisgICAg
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKICAgICAgICAgc3RhdGljIEpTX0VY
UE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKICAgICAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAppbmRleCA3ZGQyMjJjLi40NTUz
ZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5j
cHAKQEAgLTc1LDEzICs3NSw5IEBAIHZvaWQgUmVnRXhwT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZv
KSk7CiB9CiAKLVJlZ0V4cE9iamVjdDo6flJlZ0V4cE9iamVjdCgpCi17Ci19Ci0KIHZvaWQgUmVn
RXhwT2JqZWN0OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKIHsKLSAgICBqc0Nhc3Q8UmVnRXhwT2Jq
ZWN0Kj4oY2VsbCktPn5SZWdFeHBPYmplY3QoKTsKKyAgICBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4o
Y2VsbCktPlJlZ0V4cE9iamVjdDo6flJlZ0V4cE9iamVjdCgpOwogfQogCiB2b2lkIFJlZ0V4cE9i
amVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAppbmRleCA4Y2I2
ZDZhLi5lNWU0NGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBP
YmplY3QuaApAQCAtMjYsNiArMjYsOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKICAgICAKKyNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdub24tdmlydHVhbC1kdG9yIgorCiAgICAgY2xhc3MgUmVnRXhwT2JqZWN0IDogcHVibGlj
IEpTTm9uRmluYWxPYmplY3QgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBKU05vbkZp
bmFsT2JqZWN0IEJhc2U7CkBAIC00NCw5ICs0Nyw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAgICAgcmV0dXJuIG9iamVjdDsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgflJlZ0V4
cE9iamVjdCgpOwotICAgICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwotCiAgICAg
ICAgIHZvaWQgc2V0UmVnRXhwKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUmVnRXhwKiByKSB7
IGQtPnJlZ0V4cC5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgcik7IH0KICAgICAgICAgUmVnRXhwKiBy
ZWdFeHAoKSBjb25zdCB7IHJldHVybiBkLT5yZWdFeHAuZ2V0KCk7IH0KIApAQCAtODAsNiArODAs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIFJlZ0V4cE9iamVj
dChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFJlZ0V4cCopOwogICAgICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0Kik7CisgICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ry
b3koSlNDZWxsKik7CisKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hp
bGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKQEAgLTEwNSw2ICsxMDcsOCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgT3duUHRyPFJlZ0V4cE9iamVjdERhdGE+IGQ7CiAgICAgfTsKIAor
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiAgICAgUmVnRXhwT2JqZWN0KiBhc1JlZ0V4
cE9iamVjdChKU1ZhbHVlKTsKIAogICAgIGlubGluZSBSZWdFeHBPYmplY3QqIGFzUmVnRXhwT2Jq
ZWN0KEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cFByb3RvdHlwZS5oCmluZGV4IDI1NTVlNTIuLjdiNDE5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCkBAIC0yNiw2ICsyNiw5IEBA
CiAKIG5hbWVzcGFjZSBKU0MgewogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKKwogICAg
IGNsYXNzIFJlZ0V4cFByb3RvdHlwZSA6IHB1YmxpYyBSZWdFeHBPYmplY3QgewogICAgIHB1Ymxp
YzoKICAgICAgICAgdHlwZWRlZiBSZWdFeHBPYmplY3QgQmFzZTsKQEAgLTUzLDYgKzU2LDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKICAgICB9OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKIH0g
Ly8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gUmVnRXhwUHJvdG90eXBlX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRl
eCA5NjU3MGIyLi5kMmY3NWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC00Niw2ICs0Niw3IEBAIGNvbnN0IENsYXNz
SW5mbyBTdHJpbmdDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxG
dW5jdGlvbjo6c19pCiAqLwogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKFN0cmluZ0NvbnN0
cnVjdG9yKTsKK0FTU0VSVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKFN0cmluZ0NvbnN0cnVjdG9y
KTsKIAogU3RyaW5nQ29uc3RydWN0b3I6OlN0cmluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5j
dGlvbihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCmluZGV4IDlmYjI5YjEuLjJiNjdlZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3Iu
aApAQCAtMjcsNiArMjcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIFN0cmluZ1By
b3RvdHlwZTsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCisKICAgICBjbGFzcyBTdHJp
bmdDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwpAQCAtNTgsNiArNjEsOCBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwogICAgIH07CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTdHJpbmdDb25zdHJ1Y3Rvcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAppbmRleCAzZWVkMjY3
Li5hMzZjZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09i
amVjdC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfQ0xB
U1NfRklUU19JTl9DRUxMKFN0cmluZ09iamVjdCk7CitBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJV
Q1RPUihTdHJpbmdPYmplY3QpOwogCiBjb25zdCBDbGFzc0luZm8gU3RyaW5nT2JqZWN0OjpzX2lu
Zm8gPSB7ICJTdHJpbmciLCAmSlNXcmFwcGVyT2JqZWN0OjpzX2luZm8sIDAsIDAsIENSRUFURV9N
RVRIT0RfVEFCTEUoU3RyaW5nT2JqZWN0KSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IGQ2NWVjYzUuLjljNDgwOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC0yNiw2ICsyNiw5IEBA
CiAKIG5hbWVzcGFjZSBKU0MgewogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKKwogICAg
IGNsYXNzIFN0cmluZ09iamVjdCA6IHB1YmxpYyBKU1dyYXBwZXJPYmplY3QgewogICAgIHB1Ymxp
YzoKICAgICAgICAgdHlwZWRlZiBKU1dyYXBwZXJPYmplY3QgQmFzZTsKQEAgLTcxLDYgKzc0LDgg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFN0cmluZ09iamVjdChKU0dsb2JhbERhdGEmLCBT
dHJ1Y3R1cmUqKTsKICAgICB9OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKICAg
ICBTdHJpbmdPYmplY3QqIGFzU3RyaW5nT2JqZWN0KEpTVmFsdWUpOwogCiAgICAgaW5saW5lIFN0
cmluZ09iamVjdCogYXNTdHJpbmdPYmplY3QoSlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDNkZTg5NTMu
LjliZjE4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmNwcApAQCAtNDUsNiArNDUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV1RGOwogbmFt
ZXNwYWNlIEpTQyB7CiAKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoU3RyaW5nUHJvdG90eXBl
KTsKK0FTU0VSVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKFN0cmluZ1Byb3RvdHlwZSk7CiAKIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RvU3RyaW5n
KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5n
UHJvdG9GdW5jQ2hhckF0KEV4ZWNTdGF0ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAppbmRleCAxNDEyMmZjLi44Zjk2NzUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaApAQCAtMjUs
NiArMjUsOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0
b3IiCisKICAgICBjbGFzcyBPYmplY3RQcm90b3R5cGU7CiAKICAgICBjbGFzcyBTdHJpbmdQcm90
b3R5cGUgOiBwdWJsaWMgU3RyaW5nT2JqZWN0IHsKQEAgLTU4LDYgKzYxLDggQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICB9OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gU3RyaW5nUHJvdG90eXBlX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KaW5kZXggYWQzOTU5OC4uY2YzYTUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTI2
NSw4ICsyNjUsNiBAQCBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZTlzZXRDbGllbnRFUE5TXzE4
SWNvbkRhdGFiYXNlQ2xpZW50RQogX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2VDMUV2CiBfX1pO
N1dlYkNvcmUxMkpTRE9NV3JhcHBlcjM0dmlydHVhbEZ1bmN0aW9uVG9QcmV2ZW50V2Vha1Z0YWJs
ZUV2CiBfX1pON1dlYkNvcmUxMkpTRE9NV3JhcHBlcjZzX2luZm9FCi1fX1pON1dlYkNvcmUxMkpT
RE9NV3JhcHBlcjdkZXN0cm95RVBOM0pTQzZKU0NlbGxFCi1fX1pON1dlYkNvcmUxMkpTRE9NV3Jh
cHBlckQyRXYKIF9fWk43V2ViQ29yZTEyUG9wdXBNZW51TWFjQzFFUE5TXzE1UG9wdXBNZW51Q2xp
ZW50RQogX19aTjdXZWJDb3JlMTJQcmludENvbnRleHQxMnBhZ2VQcm9wZXJ0eUVQTlNfNUZyYW1l
RVBLY2kKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTNudW1iZXJPZlBhZ2VzRVBOU181RnJh
bWVFUktOU185RmxvYXRTaXplRQpAQCAtMTczMCw3ICsxNzI4LDkgQEAgX19aTjNKU0MxM1J1bnRp
bWVNZXRob2QxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzEwSWRlbnRp
ZmllckUKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzZK
U0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90
RQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNf
OEpTT2JqZWN0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5
RGVzY3JpcHRvckUKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kNnNfaW5mb0UKK19fWk4zSlNDMTNS
dW50aW1lTWV0aG9kN2Rlc3Ryb3lFUE5TXzZKU0NlbGxFCiBfX1pOM0pTQzEzUnVudGltZU1ldGhv
ZEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRVJOM1dURjZWZWN0b3JJUE5T
XzhCaW5kaW5nczZNZXRob2RFTG0wRUVFCitfX1pOM0pTQzEzUnVudGltZU1ldGhvZEQyRXYKIF9f
Wk4zSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0RDFFdgogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRp
bWVPYmplY3QxMWdldENhbGxEYXRhRVBOU182SlNDZWxsRVJOU184Q2FsbERhdGFFCiBfX1pOM0pT
QzhCaW5kaW5nczEzUnVudGltZU9iamVjdDEyZGVmYXVsdFZhbHVlRVBLTlNfOEpTT2JqZWN0RVBO
U185RXhlY1N0YXRlRU5TXzIyUHJlZmVycmVkUHJpbWl0aXZlVHlwZUUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCmluZGV4IDU5YmQ5ZjIuLjM2MjA2MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtMzgsNiAr
MzgsMTUgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitE
T01Db25zdHJ1Y3Rvck9iamVjdDo6fkRPTUNvbnN0cnVjdG9yT2JqZWN0KCkKK3sKK30KKwordm9p
ZCBET01Db25zdHJ1Y3Rvck9iamVjdDo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCit7CisgICAganND
YXN0PERPTUNvbnN0cnVjdG9yT2JqZWN0Kj4oY2VsbCktPn5ET01Db25zdHJ1Y3Rvck9iamVjdCgp
OworfQorCiBjb25zdCBKU0M6Okhhc2hUYWJsZSogZ2V0SGFzaFRhYmxlRm9yR2xvYmFsRGF0YShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IEpTQzo6SGFzaFRhYmxlKiBzdGF0aWNUYWJs
ZSkKIHsKICAgICByZXR1cm4gRE9NT2JqZWN0SGFzaFRhYmxlTWFwOjptYXBGb3IoZ2xvYmFsRGF0
YSkuZ2V0KHN0YXRpY1RhYmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmgKaW5kZXggZDgxODQ3Yy4uZjhlZjIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKQEAgLTY4LDYgKzY4LDkgQEAgZW51bSBQYXJhbWV0ZXJNaXNzaW5n
UG9saWN5IHsKICAgICAgICAgICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2Jq
ZWN0KQogICAgICAgICB7CiAgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIH5ET01Db25zdHJ1
Y3Rvck9iamVjdCgpOworICAgICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogICAg
IH07CiAKICAgICAvLyBDb25zdHJ1Y3RvcnMgdXNpbmcgdGhpcyBiYXNlIGNsYXNzIGRlcGVuZCBv
biBiZWluZyBpbiBhIERvY3VtZW50IGFuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggZTY4YmNhMS4uYTg2YTg4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC02NSw2ICs2NSwx
NSBAQCB2b2lkIEpTRE9NV2luZG93QmFzZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0RPTVdpbmRvd1NoZWxsKgogICAgIGFkZFN0YXRpY0dsb2JhbHMoc3RhdGlj
R2xvYmFscywgV1RGX0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CiB9CiAKK0pTRE9NV2lu
ZG93QmFzZTo6fkpTRE9NV2luZG93QmFzZSgpCit7Cit9CisKK3ZvaWQgSlNET01XaW5kb3dCYXNl
OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4o
Y2VsbCktPn5KU0RPTVdpbmRvd0Jhc2UoKTsKK30KKwogdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OnVw
ZGF0ZURvY3VtZW50KCkKIHsKICAgICBBU1NFUlQobV9pbXBsLT5kb2N1bWVudCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggOTFmM2Y3YS4u
ZDdlMmVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmgKQEAgLTQwLDYgKzQwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBKU0RPTVdp
bmRvd0Jhc2UoSlNDOjpKU0dsb2JhbERhdGEmLCBKU0M6OlN0cnVjdHVyZSosIFBhc3NSZWZQdHI8
RE9NV2luZG93PiwgSlNET01XaW5kb3dTaGVsbCopOwogICAgICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTQzo6SlNHbG9iYWxEYXRhJiwgSlNET01XaW5kb3dTaGVsbCopOwogCisgICAgICAgIHZp
cnR1YWwgfkpTRE9NV2luZG93QmFzZSgpOworICAgICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpT
Q2VsbCopOworCiAgICAgcHVibGljOgogICAgICAgICB2b2lkIHVwZGF0ZURvY3VtZW50KCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5k
ZXggMjVkMzg0YS4uNWQwYzVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTYxLDYgKzYxLDExIEBAIEpTRE9NV2luZG93U2hlbGw6
On5KU0RPTVdpbmRvd1NoZWxsKCkKIHsKIH0KIAordm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpkZXN0
cm95KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBqc0Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KGNlbGwp
LT5+SlNET01XaW5kb3dTaGVsbCgpOworfQorCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnNldFdp
bmRvdyhQYXNzUmVmUHRyPERPTVdpbmRvdz4gZG9tV2luZG93KQogewogICAgIC8vIFJlcGxhY2lu
ZyBKU0RPTVdpbmRvdyB2aWEgdGVsbGluZyBKU0RPTVdpbmRvd1NoZWxsIHRvIHVzZSB0aGUgc2Ft
ZSBET01XaW5kb3cgaXQgYWxyZWFkeSB1c2VzIG1ha2VzIG5vIHNlbnNlLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4IDQzYjk2ZTIuLmFhNTNl
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hl
bGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgK
QEAgLTQyLDYgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAg
ICAgSlNET01XaW5kb3dTaGVsbChQYXNzUmVmUHRyPERPTVdpbmRvdz4sIEpTQzo6U3RydWN0dXJl
KiwgRE9NV3JhcHBlcldvcmxkKik7CiAgICAgICAgIHZpcnR1YWwgfkpTRE9NV2luZG93U2hlbGwo
KTsKKyAgICAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAgICAgICBKU0RP
TVdpbmRvdyogd2luZG93KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3cq
PihtX3Vud3JhcHBlZE9iamVjdC5nZXQoKSk7IH0KICAgICAgICAgdm9pZCBzZXRXaW5kb3coSlND
OjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTRE9NV2luZG93KiB3aW5kb3cpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmNwcAppbmRleCBlODA0NjA2Li4yYmI2
OGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5jcHAKQEAg
LTMyLDE2ICszMiw5IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY29uc3QgQ2xhc3NJbmZvIEpTRE9NV3JhcHBlcjo6c19pbmZvID0geyAiSlNET01XcmFw
cGVyIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RPTVdyYXBw
ZXIpIH07Ci0KLUpTRE9NV3JhcHBlcjo6fkpTRE9NV3JhcHBlcigpCi17Ci19CitBU1NFUlRfSEFT
X1RSSVZJQUxfREVTVFJVQ1RPUihKU0RPTVdyYXBwZXIpOwogCi12b2lkIEpTRE9NV3JhcHBlcjo6
ZGVzdHJveShKU0NlbGwqIGNlbGwpCi17Ci0gICAganNDYXN0PEpTRE9NV3JhcHBlcio+KGNlbGwp
LT5+SlNET01XcmFwcGVyKCk7Ci19Citjb25zdCBDbGFzc0luZm8gSlNET01XcmFwcGVyOjpzX2lu
Zm8gPSB7ICJKU0RPTVdyYXBwZXIiLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTRE9NV3JhcHBlcikgfTsKIAogdm9pZCBKU0RPTVdyYXBwZXI6OnZpcnR1YWxGdW5j
dGlvblRvUHJldmVudFdlYWtWdGFibGUoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdyYXBwZXIuaAppbmRleCBiYTJiNDI3Li40Njc0YzIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaApAQCAtMjksNiArMjksOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKKyNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24t
dmlydHVhbC1kdG9yIgorCiBjbGFzcyBKU0RPTVdyYXBwZXIgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KCkgY29uc3QKQEAgLTYyLDExICs2NSwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIG5lZWRp
bmcgdG8gcmVhY2ggdGhyb3VnaCB0aGUgZnJhbWUgdG8gZ2V0IHRvIHRoZSBEb2N1bWVudCouICBT
ZWUgYnVnIDI3NjQwLgogICAgICAgICAvLyBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwogICAgIH0KLQotICAgIHZpcnR1YWwgfkpTRE9NV3JhcHBlcigpOwot
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiB9OwogCisjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEpTRE9N
V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEJhc2UuY3BwCmluZGV4IDkyYjc5ZjQuLmJiNDI2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwCkBAIC02NCw2ICs2NCwx
MSBAQCBKU1dvcmtlckNvbnRleHRCYXNlOjp+SlNXb3JrZXJDb250ZXh0QmFzZSgpCiB7CiB9CiAK
K3ZvaWQgSlNXb3JrZXJDb250ZXh0QmFzZTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCit7CisgICAg
anNDYXN0PEpTV29ya2VyQ29udGV4dEJhc2UqPihjZWxsKS0+fkpTV29ya2VyQ29udGV4dEJhc2Uo
KTsKK30KKwogU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogSlNXb3JrZXJDb250ZXh0QmFzZTo6c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW1wbC5nZXQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJh
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaApp
bmRleCBkODE3MWMxLi42NjJmYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0QmFzZS5oCkBAIC00Miw2ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdHlwZWRlZiBKU0RPTUdsb2JhbE9iamVjdCBCYXNlOwogICAgIHB1Ymxp
YzoKICAgICAgICAgdmlydHVhbCB+SlNXb3JrZXJDb250ZXh0QmFzZSgpOworICAgICAgICBzdGF0
aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEpT
Qzo6Q2xhc3NJbmZvIHNfaW5mbzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAzMDdiZDczLi4yZjQwNGVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpA
QCAtNzM2LDYgKzczNiw5IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIEFkZENsYXNzRm9yd2Fy
ZElmTmVlZGVkKCJKU0RPTVdpbmRvd1NoZWxsIikgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdp
bmRvdyI7CiAgICAgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQoIkpTRGljdGlvbmFyeSIpIGlmIElz
Q29uc3RydWN0b3JUZW1wbGF0ZSgkZGF0YU5vZGUsICJFdmVudCIpOwogCisgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoXG4iKTsKKyAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgXCItV25v
bi12aXJ0dWFsLWR0b3JcIlxuXG4iKTsKKwogICAgICMgQ2xhc3MgZGVjbGFyYXRpb24KICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3MgJGNsYXNzTmFtZSA6IHB1YmxpYyAkcGFyZW50Q2xh
c3NOYW1lIHtcbiIpOwogCkBAIC0xMTAyLDYgKzExMDUsOCBAQCBzdWIgR2VuZXJhdGVIZWFkZXIK
IAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9O1xuXG4iKTsKIAorICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wXG5cbiIpOworCiAgICAgaWYg
KCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifSkgewog
ICAgICAgICAkaGVhZGVySW5jbHVkZXN7IkpTRE9NQmluZGluZy5oIn0gPSAxOwogICAgICAgICBH
ZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24oXEBoZWFkZXJDb250ZW50LCAkY2xhc3NOYW1l
LCAkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lKTsKQEAgLTEzNzIsNyArMTM3NywxMCBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG51c2luZyBu
YW1lc3BhY2UgSlNDO1xuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIm5hbWVzcGFjZSBX
ZWJDb3JlIHtcblxuIik7CiAKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIkFTU0VSVF9DTEFTU19G
SVRTX0lOX0NFTEwoJGNsYXNzTmFtZSk7XG5cbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAi
QVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTCgkY2xhc3NOYW1lKTtcbiIpOworICAgIGlmICgkaW50
ZXJmYWNlTmFtZSBuZSAiRE9NV2luZG93IiAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSXNXb3JrZXJDb250ZXh0In0pIHsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJB
U1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUigkY2xhc3NOYW1lKTtcblxuIik7CisgICAgfQog
CiAgICAgbXkgJG51bUF0dHJpYnV0ZXMgPSBHZW5lcmF0ZUF0dHJpYnV0ZXNIYXNoVGFibGUoJG9i
amVjdCwgJGRhdGFOb2RlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2Mv
Q1J1bnRpbWVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmpl
Y3QuY3BwCmluZGV4IDQwMjM4M2UuLjZhZGI1NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
Yy9DUnVudGltZU9iamVjdC5jcHAKQEAgLTUyLDYgKzUyLDExIEBAIENSdW50aW1lT2JqZWN0Ojp+
Q1J1bnRpbWVPYmplY3QoKQogewogfQogCit2b2lkIENSdW50aW1lT2JqZWN0OjpkZXN0cm95KEpT
Q2VsbCogY2VsbCkKK3sKKyAgICBqc0Nhc3Q8Q1J1bnRpbWVPYmplY3QqPihjZWxsKS0+fkNSdW50
aW1lT2JqZWN0KCk7Cit9CisKIENJbnN0YW5jZSogQ1J1bnRpbWVPYmplY3Q6OmdldEludGVybmFs
Q0luc3RhbmNlKCkgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0luc3RhbmNlKj4o
Z2V0SW50ZXJuYWxJbnN0YW5jZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9jL0NSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9i
amVjdC5oCmluZGV4IGJlZWRkYmIuLjJmNWNiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2Mv
Q1J1bnRpbWVPYmplY3QuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
dmlydHVhbCB+Q1J1bnRpbWVPYmplY3QoKTsKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2Vs
bCopOwogCiAgICAgQ0luc3RhbmNlKiBnZXRJbnRlcm5hbENJbnN0YW5jZSgpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5j
cHAKaW5kZXggOWQ1MTdlMy4uODRhM2VmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmNwcApAQCAtNDYsMTAgKzQ2LDYgQEAgdm9p
ZCBKYXZhUnVudGltZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCi1KYXZhUnVudGlt
ZU9iamVjdDo6fkphdmFSdW50aW1lT2JqZWN0KCkKLXsKLX0KLQogSmF2YUluc3RhbmNlKiBKYXZh
UnVudGltZU9iamVjdDo6Z2V0SW50ZXJuYWxKYXZhSW5zdGFuY2UoKSBjb25zdAogewogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxKYXZhSW5zdGFuY2UqPihnZXRJbnRlcm5hbEluc3RhbmNlKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmgK
aW5kZXggZWJlZGQ3Ni4uODQ5YTAwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
am5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oCkBAIC00OCw4ICs0OCw2IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5KYXZhUnVudGltZU9i
amVjdCgpOwotCiAgICAgSmF2YUluc3RhbmNlKiBnZXRJbnRlcm5hbEphdmFJbnN0YW5jZSgpIGNv
bnN0OwogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggYTliN2ZhNy4uZDVkMGI4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcApAQCAtOTgwLDYgKzk4MCwxMSBAQCBRdFJ1
bnRpbWVNZXRob2Q6On5RdFJ1bnRpbWVNZXRob2QoKQogICAgIGRlbGV0ZSBkX3B0cjsKIH0KIAor
dm9pZCBRdFJ1bnRpbWVNZXRob2Q6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQoreworICAgIGpzQ2Fz
dDxRdFJ1bnRpbWVNZXRob2QqPihjZWxsKS0+flF0UnVudGltZU1ldGhvZCgpOworfQorCiAvLyA9
PT09PT09PT09PT09PT0KIAogUXRSdW50aW1lTWV0aG9kRGF0YTo6flF0UnVudGltZU1ldGhvZERh
dGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKaW5kZXggNjI5Yzc5Ni4uNDll
MDhlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCkBAIC0xMzQsNiArMTM0
LDcgQEAgcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwogCiAgICAg
dmlydHVhbCB+UXRSdW50aW1lTWV0aG9kKCk7CisgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0Nl
bGwqKTsKIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggZGUzYWMwYi4uN2E4MmQyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtNTQsNiArNTQsMTEgQEAgUnVu
dGltZUFycmF5Ojp+UnVudGltZUFycmF5KCkKICAgICBkZWxldGUgZ2V0Q29uY3JldGVBcnJheSgp
OwogfQogCit2b2lkIFJ1bnRpbWVBcnJheTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCit7CisgICAg
anNDYXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwpLT5+UnVudGltZUFycmF5KCk7Cit9CisKIEpTVmFs
dWUgUnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSBzbG90QmFz
ZSwgY29uc3QgSWRlbnRpZmllciYpCiB7CiAgICAgUnVudGltZUFycmF5KiB0aGlzT2JqID0gc3Rh
dGljX2Nhc3Q8UnVudGltZUFycmF5Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IDc4NjBkMzEuLjZkZjUyZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtNDgsNiArNDgsNyBAQCBwdWJsaWM6CiAKICAg
ICB0eXBlZGVmIEJpbmRpbmdzOjpBcnJheSBCaW5kaW5nc0FycmF5OwogICAgIHZpcnR1YWwgflJ1
bnRpbWVBcnJheSgpOworICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKICAgICBz
dGF0aWMgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJv
cGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwogICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAppbmRl
eCA5YWEzZTRmLi4wMGEzZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhv
ZC5jcHAKQEAgLTU0LDYgKzU0LDE1IEBAIHZvaWQgUnVudGltZU1ldGhvZDo6dnRhYmxlQW5jaG9y
KCkKIHsKIH0KIAorUnVudGltZU1ldGhvZDo6flJ1bnRpbWVNZXRob2QoKQoreworfQorCit2b2lk
IFJ1bnRpbWVNZXRob2Q6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQoreworICAgIGpzQ2FzdDxSdW50
aW1lTWV0aG9kKj4oY2VsbCktPn5SdW50aW1lTWV0aG9kKCk7Cit9CisKIHZvaWQgUnVudGltZU1l
dGhvZDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBp
ZGVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCmluZGV4IDQwZWRhMTMu
LmY2ZTVhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhv
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCkBAIC0zOCw2
ICszOCw4IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKIAog
ICAgIHZpcnR1YWwgdm9pZCB2dGFibGVBbmNob3IoKTsKKyAgICB2aXJ0dWFsIH5SdW50aW1lTWV0
aG9kKCk7CisgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAgIHN0YXRpYyBS
dW50aW1lTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwg
QmluZGluZ3M6Ok1ldGhvZExpc3QmIG1ldGhvZExpc3QpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3Bw
CmluZGV4IGQzZDEwMGEuLjg5ODE0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAKQEAgLTM5LDYgKzM5
LDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitB
U1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihKU05QTWV0aG9kKTsKKwogY29uc3QgQ2xhc3NJ
bmZvIEpTTlBNZXRob2Q6OnNfaW5mbyA9IHsgIk5QTWV0aG9kIiwgJkludGVybmFsRnVuY3Rpb246
OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU05QTWV0aG9kKSB9OwogCiBKU05Q
TWV0aG9kOjpKU05QTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBOUElkZW50aWZpZXIgbnBJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKaW5k
ZXggZmYwOTYxYy4uN2YxNDU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCkBAIC0zNCw2ICszNCw5IEBAIHR5
cGVkZWYgdm9pZCogTlBJZGVudGlmaWVyOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV25vbi12aXJ0dWFsLWR0b3IiCisKIC8vIEEgSlNPYmplY3QgdGhhdCB3cmFwcyBhbiBOUE1l
dGhvZC4KIGNsYXNzIEpTTlBNZXRob2QgOiBwdWJsaWMgSlNDOjpJbnRlcm5hbEZ1bmN0aW9uIHsK
IHB1YmxpYzoKQEAgLTY3LDYgKzcwLDggQEAgcHJpdmF0ZToKICAgICBOUElkZW50aWZpZXIgbV9u
cElkZW50aWZpZXI7CiB9OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKLS0gCjEuNy40LjQKCg==
</data>
<flag name="review"
          id="118728"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>