<?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>95857</bug_id>
          
          <creation_ts>2012-09-05 08:19:09 -0700</creation_ts>
          <short_desc>[EFL][WK2] Provide implementation for WebProcess functions</short_desc>
          <delta_ts>2012-09-05 16:04:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>
          
          <blocked>61838</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>712076</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-05 08:19:09 -0700</bug_when>
    <thetext>We currently have an empty implementation for WebProcessMain functions. We should implement those to unskip more tests in WK2 EFL.
A lot of this code seems SOUP specific so we should share as much code as possible with GTK port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712084</commentid>
    <comment_count>1</comment_count>
      <attachid>162257</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-05 08:37:05 -0700</bug_when>
    <thetext>Created attachment 162257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712146</commentid>
    <comment_count>2</comment_count>
      <attachid>162257</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-05 09:39:10 -0700</bug_when>
    <thetext>Comment on attachment 162257
Patch

Green bubbles, could someone please cq+?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712147</commentid>
    <comment_count>3</comment_count>
      <attachid>162257</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-05 09:41:24 -0700</bug_when>
    <thetext>Comment on attachment 162257
Patch

Needs rebasing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712152</commentid>
    <comment_count>4</comment_count>
      <attachid>162270</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-05 09:46:41 -0700</bug_when>
    <thetext>Created attachment 162270
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712154</commentid>
    <comment_count>5</comment_count>
      <attachid>162271</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-05 09:48:52 -0700</bug_when>
    <thetext>Created attachment 162271
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712625</commentid>
    <comment_count>6</comment_count>
      <attachid>162271</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-05 16:04:16 -0700</bug_when>
    <thetext>Comment on attachment 162271
Patch for landing

Clearing flags on attachment: 162271

Committed r127655: &lt;http://trac.webkit.org/changeset/127655&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712626</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-05 16:04:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162257</attachid>
            <date>2012-09-05 08:37:05 -0700</date>
            <delta_ts>2012-09-05 09:46:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>95857_webprocessmain.patch</filename>
            <type>text/plain</type>
            <size>26096</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NzA0OTljLi4xNWIxZWYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDkt
MDUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXVtXSzJdIFByb3ZpZGUgaW1wbGVtZW50YXRpb24gZm9yIFdlYlByb2Nlc3MgZnVu
Y3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NTg1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVu
c2tpcCBzZXZlcmFsIHRlc3QgY2FzZXMgdGhhdCBhcmUgbm93IHBhc3Npbmcgb24KKyAgICAgICAg
V0syIEVGTCBzaW5jZSBXZWJQcm9jZXNzIHBsYXRmb3JtIGZ1bmN0aW9ucyBoYXZlIGJlZW4KKyAg
ICAgICAgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBl
Y3RhdGlvbnM6CisKIDIwMTItMDktMDUgIERvbWluaWsgUsO2dHRzY2hlcyAgPGRvbWluaWsucm90
dHNjaGVzQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBVbnJldmlld2VkIGdhcmRlbmluZy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBl
MWY4YzhlLi5iZjZiN2ZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0
RXhwZWN0YXRpb25zCkBAIC0yMjcsMTUgKzIyNyw4IEBAIEJVR1dLRUZMIDogZmFzdC9ibG9jay9m
bG9hdC9mbG9hdC1pbi1mbG9hdC1oaXQtdGVzdGluZy5odG1sID0gVEVYVAogQlVHV0tFRkwgOiBm
YXN0L2Nzcy9iaWRpLW92ZXJyaWRlLWluLWFub255bW91cy1ibG9jay5odG1sID0gVEVYVAogQlVH
V0tFRkwgOiBmYXN0L2Nzcy9yZWxhdGl2ZS1wb3NpdGlvbmVkLWJsb2NrLWNyYXNoLmh0bWwgPSBU
RVhUCiBCVUdXS0VGTCA6IGZhc3QvZG9tL1dpbmRvdy9tb3ppbGxhLWZvY3VzLWJsdXIuaHRtbCA9
IFRFWFQKLUJVR1dLRUZMIDogZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0
aW9uLWJhY2suaHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogZmFzdC9kb20vZnJhbWUtbG9hZGluZy12
aWEtZG9jdW1lbnQtd3JpdGUuaHRtbCA9IFRFWFQKLUJVR1dLRUZMIDogZmFzdC9ldmVudHMvbm9k
ZS1ldmVudC1hbmNob3ItbG9jay5odG1sID0gVEVYVAotQlVHV0tFRkwgOiBmYXN0L2V2ZW50cy9w
YWdlaGlkZS10aW1lb3V0Lmh0bWwgPSBURVhUCi1CVUdXS0VGTCA6IGZhc3QvZXZlbnRzL3BhZ2Vo
aWRlLXhoci1vcGVuLmh0bWwgPSBURVhUCi1CVUdXS0VGTCA6IGZhc3QvZXZlbnRzL3BhZ2VzaG93
LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdpdGgtZnJhbWVzLmh0bWwgPSBURVhUCi1CVUdXS0VG
TCA6IGZhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLmh0bWwgPSBU
RVhUCiBCVUdXS0VGTCA6IGZhc3QvZXZlbnRzL3Njcm9sbC1hZnRlci1jbGljay1vbi10YWItaW5k
ZXguaHRtbCA9IFRFWFQKLUJVR1dLRUZMIDogZmFzdC9ldmVudHMvc3VzcGVuZC10aW1lcnMuaHRt
bCA9IFRFWFQKIEJVR1dLRUZMIDogZmFzdC9mb3Jtcy9hdXRvY29tcGxldGUtb2ZmLXdpdGgtZGVm
YXVsdC12YWx1ZS1kb2VzLW5vdC1jbGVhci5odG1sID0gVEVYVAogQlVHV0tFRkwgOiBmYXN0L2Zv
cm1zL2xlZ2VuZC1hY2Nlc3Mta2V5Lmh0bWwgPSBURVhUCiBCVUdXS0VGTCA6IGZhc3QvZm9ybXMv
bGlzdGJveC1kZXNlbGVjdC1zY3JvbGwuaHRtbCA9IFRFWFQKQEAgLTI0NSw4ICsyMzgsNiBAQCBC
VUdXS0VGTCA6IGZhc3QvZm9ybXMvc2VsZWN0LW11bHRpcGxlLWVsZW1lbnRzLXdpdGgtbW91c2Ut
ZHJhZy13aXRoLW9wdGlvbnMtbGVzcwogQlVHV0tFRkwgOiBmYXN0L2Zvcm1zL3NlbGVjdC13cml0
aW5nLWRpcmVjdGlvbi1uYXR1cmFsLmh0bWwgPSBURVhUCiBCVUdXS0VGTCA6IGZhc3QvZm9ybXMv
dmFsaWRhdGlvbi1tZXNzYWdlLWluLXJlbGF0aXZlLWJvZHkuaHRtbCA9IFRFWFQKIEJVR1dLRUZM
IDogZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtdGlueS5odG1sID0gVEVYVAotQlVHV0tF
RkwgOiBmYXN0L2hhcm5lc3MvdXNlLXBhZ2UtY2FjaGUuaHRtbCA9IFRFWFQKLUJVR1dLRUZMIDog
ZmFzdC9oaXN0b3J5L3RpbWVkLXJlZnJlc2gtaW4tY2FjaGVkLWZyYW1lLmh0bWwgPSBURVhUCiBC
VUdXS0VGTCA6IGZhc3QvcmVwYWludC9maXhlZC1tb3ZlLWFmdGVyLWtleWJvYXJkLXNjcm9sbC5o
dG1sID0gVEVYVAogQlVHV0tFRkwgOiBmYXN0L3JlcGxhY2VkL25vLWZvY3VzLXJpbmctZW1iZWQu
aHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogZmFzdC9yZXBsYWNlZC9uby1mb2N1cy1yaW5nLW9iamVj
dC5odG1sID0gVEVYVApAQCAtMjU3LDcgKzI0OCw2IEBAIEJVR1dLRUZMIDogaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpZGViYXItd2lkdGguaHRtbCA9IFRFWFQKIEJVR1dL
RUZMIDogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtbWFpbi1jb29raWVzLnBocCA9IFRF
WFQKIEJVR1dLRUZMIDogaHR0cC90ZXN0cy9taXNjL2FjaWQzLmh0bWwgPSBURVhUCiBCVUdXS0VG
TCA6IGh0dHAvdGVzdHMvbWlzYy9vYmplY3QtZW1iZWRkaW5nLXN2Zy1kZWxheWVkLXNpemUtbmVn
b3RpYXRpb24tMi5odG0gPSBURVhUCi1CVUdXS0VGTCA6IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9o
dHRwcy1pbi1wYWdlLWNhY2hlLmh0bWwgPSBURVhUCiBCVUdXS0VGTCA6IGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3Qvd29ya2Vycy9hYm9ydC1leGNlcHRpb24tYXNzZXJ0Lmh0bWwgPSBURVhUCiBC
VUdXS0VGTCA6IGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jb21wbGV0aW9ucy1vbi1jYWxs
LWZyYW1lLmh0bWwgPSBURVhUCiBCVUdXS0VGTCA6IGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtcGFuZWwuaHRtbCA9IFRFWFQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZmNiYmJhLi5mZjY4ODFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDktMDUgIENocmlzdG9waGUgRHVtZXog
IDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFByb3Zp
ZGUgaW1wbGVtZW50YXRpb24gZm9yIFdlYlByb2Nlc3MgZnVuY3Rpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTg1NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3Ig
Z2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKCkKKyAgICAgICAgaW4gRmlsZVN5c3RlbSB3aGljaCBp
cyByZXF1aXJlZCBieSBzb3VwLXJlbGF0ZWQKKyAgICAgICAgY29kZSBpbiBXZWJLaXQyLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxh
dGZvcm0vRmlsZVN5c3RlbS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZv
cm0vZWZsL0ZpbGVTeXN0ZW1FZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Vm9sdW1lRnJl
ZVNpemVGb3JQYXRoKToKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA5LTA1ICBUb3IgQXJu
ZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEJ1
aWxkIGZpeCBvbiBPUyBYCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxl
U3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKaW5kZXggYTZi
M2E2Ny4uZTFkNDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5
c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtMjE2
LDcgKzIxNiw3IEBAIFN0cmluZyBmaWxlbmFtZUZvckRpc3BsYXkoY29uc3QgU3RyaW5nJik7CiBD
U3RyaW5nIGFwcGxpY2F0aW9uRGlyZWN0b3J5UGF0aCgpOwogQ1N0cmluZyBzaGFyZWRSZXNvdXJj
ZXNQYXRoKCk7CiAjZW5kaWYKLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKQorI2lm
IFVTRShTT1VQKSB8fCBQTEFURk9STShRVCkKIHVpbnQ2NF90IGdldFZvbHVtZUZyZWVTaXplRm9y
UGF0aChjb25zdCBjaGFyKik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL0ZpbGVTeXN0ZW1FZmwuY3BwCmluZGV4IDQwNzg4MjIuLmNjOGM3ZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9GaWxlU3lzdGVtRWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAKQEAgLTQ2LDYgKzQ2LDcg
QEAKICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN5
cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3N0YXR2ZnMuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTEwNyw0ICsxMDgsMTMgQEAgVmVj
dG9yPFN0cmluZz4gbGlzdERpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmlu
ZyYgZmlsdGVyKQogICAgIHJldHVybiBtYXRjaGluZ0VudHJpZXM7CiB9CiAKK3VpbnQ2NF90IGdl
dFZvbHVtZUZyZWVTaXplRm9yUGF0aChjb25zdCBjaGFyKiBwYXRoKQoreworICAgIHN0cnVjdCBz
dGF0dmZzIGJ1ZjsKKyAgICBpZiAoc3RhdHZmcyhwYXRoLCAmYnVmKSA8IDApCisgICAgICAgIHJl
dHVybiAwOworCisgICAgcmV0dXJuIGJ1Zi5mX2JhdmFpbCAqIGJ1Zi5mX2JzaXplOworfQorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggY2I2MTM1OC4uNWY0MDA2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0
IEBACiAyMDEyLTA5LTA1ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRl
bC5jb20+CiAKKyAgICAgICAgW0VGTF1bV0syXSBQcm92aWRlIGltcGxlbWVudGF0aW9uIGZvciBX
ZWJQcm9jZXNzIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTU4NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWUgV2ViUHJvY2Vzc0d0ayB0byBXZWJQcm9jZXNzU291cCBhbmQgcmV1
c2UgaXQgaW4KKyAgICAgICAgRUZMIHBvcnQgc2luY2UgYWxsIHRoZSBjb2RlIGlzIHNvdXAtcmVs
YXRlZC4gV2Ugbm93CisgICAgICAgIGhhdmUgYSBwcm9wZXIgaW1wbGVtZW50YXRpb24gZm9yIHRo
ZSBXZWJQcm9jZXNzCisgICAgICAgIHBsYXRmb3JtIG1ldGhvZHMuCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAq
IFdlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NFZmwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc01haW5FZmwpOiBFbmFibGUgc291cCBjYWNoZSBmb3IgdGhlIHNvdXAgc2Vzc2lvbiBz
aW1pbGFybHkgdG8gR1RLIHBvcnQuCisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nl
c3NTb3VwLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dl
YlByb2Nlc3NHdGsuY3BwLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6Z2V0
Q2FjaGVEaXNrRnJlZVNpemUpOgorICAgICAgICAoV2ViS2l0OjpnZXRNZW1vcnlTaXplKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKToKKyAg
ICAgICAgKFdlYktpdDo6YnVpbGRBY2NlcHRMYW5ndWFnZXMpOgorICAgICAgICAoV2ViS2l0Ojpz
ZXRTb3VwU2Vzc2lvbkFjY2VwdExhbmd1YWdlKToKKyAgICAgICAgKFdlYktpdDo6bGFuZ3VhZ2VD
aGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtVGVybWlu
YXRlKToKKworMjAxMi0wOS0wNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpA
aW50ZWwuY29tPgorCiAgICAgICAgIFtFRkxdW1dLMl0gUHJvdmlkZSBpbXBsZW1lbnRhdGlvbiBm
b3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU4MjYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0K
aW5kZXggZDQxN2I1Zi4uZWQxNWQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFr
ZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBA
IC05MzcsNyArOTM3LDYgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJBdXRoRGlhbG9nLmNwcCBcCiAJU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9ndGsvV2ViQXV0aERpYWxvZy5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2d0ay9XZWJQcm9jZXNzR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lj
b25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHAgXApAQCAtMTA2OCw2ICsxMDY3LDcg
QEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291
cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5oIFwKKwlTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcCBcCiAJU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAzZGNmYmZhLi4wODZkNzg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtOTgsOSArOTgsNiBAQCBMSVNUKEFQUEVORCBX
ZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9lZmwvRG93bmxvYWRTb3Vw
RXJyb3JzRWZsLmNwcAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3Vw
LmNwcAogCi0gICAgV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc0VmbC5jcHAKLSAgICBXZWJQcm9j
ZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKLQogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvZWZsL0luamVjdGVkQnVuZGxlRWZsLmNwcAogCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9lZmwvV2ViQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwCkBAIC0xMTMsNiArMTEwLDkg
QEAgTElTVChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2Vm
bC9XZWJJbnNwZWN0b3JFZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2VmbC9XZWJQYWdl
RWZsLmNwcAogCisgICAgV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCisKKyAg
ICBXZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCiAgICAgV2ViUHJvY2Vzcy9zb3Vw
L1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291
cFJlcXVlc3RHZW5lcmljLmNwcAogICAgIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVz
dElucHV0U3RyZWFtLmNwcApAQCAtMTQ5LDYgKzE0OSw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJf
SU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7RUZMREVQU19JTkNMVURFX0RJUlN9CiAgICAgJHtF
RlJFRVRfSU5DTFVERV9ESVJTfQogICAgICR7RVZBU19JTkNMVURFX0RJUlN9CisgICAgJHtMSUJT
T1VQX0lOQ0xVREVfRElSU30KICAgICAke0xJQlhNTDJfSU5DTFVERV9ESVJ9CiAgICAgJHtMSUJY
U0xUX0lOQ0xVREVfRElSU30KICAgICAke1NRTElURV9JTkNMVURFX0RJUlN9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzRWZsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NFZmwuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjZTY5MjZmLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgTU9UT1JPTEEgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLXZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENh
Y2hlTW9kZWwpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJQcm9jZXNz
OjpwbGF0Zm9ybUNsZWFyUmVzb3VyY2VDYWNoZXMoUmVzb3VyY2VDYWNoZXNUb0NsZWFyKQotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12
b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtVGVybWluYXRlKCkKLXsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQ
cm9jZXNzTWFpbkVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9j
ZXNzTWFpbkVmbC5jcHAKaW5kZXggZDAzYWNmOS4uOTMxMjQ0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcApAQCAtMjYsMTUg
KzI2LDIwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01haW5F
ZmwuaCIKIAorI2RlZmluZSBMSUJTT1VQX1VTRV9VTlNUQUJMRV9SRVFVRVNUX0FQSQorCiAjaW5j
bHVkZSAiUHJveHlSZXNvbHZlclNvdXAuaCIKICNpbmNsdWRlICJXS0Jhc2UuaCIKICNpbmNsdWRl
IDxFY29yZS5oPgorI2luY2x1ZGUgPEVmcmVldC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJL
aXQyL1dlYlByb2Nlc3MuaD4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAtY2FjaGUuaD4KICNpbmNs
dWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4K
ICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICNpbmNsdWRlICJDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuaCIKQEAgLTgwLDYgKzg1LDEzIEBAIFdLX0VYUE9SVCBpbnQgV2ViUHJv
Y2Vzc01haW5FZmwoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgZ19vYmplY3RfdW5y
ZWYocmVzb2x2ZXJFZmwpOwogICAgIH0KIAorICAgIC8vIFNldCBTT1VQIGNhY2hlLgorICAgIFN0
cmluZyBzb3VwQ2FjaGVEaXJlY3RvcnkgPSBTdHJpbmc6OmZyb21VVEY4KGVmcmVldF9jYWNoZV9o
b21lX2dldCgpKSArICIvV2ViS2l0RWZsIjsKKyAgICBTb3VwQ2FjaGUqIHNvdXBDYWNoZSA9IHNv
dXBfY2FjaGVfbmV3KHNvdXBDYWNoZURpcmVjdG9yeS51dGY4KCkuZGF0YSgpLCBTT1VQX0NBQ0hF
X1NJTkdMRV9VU0VSKTsKKyAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUoc2Vzc2lvbiwgU09V
UF9TRVNTSU9OX0ZFQVRVUkUoc291cENhY2hlKSk7CisgICAgc291cF9jYWNoZV9sb2FkKHNvdXBD
YWNoZSk7CisgICAgZ19vYmplY3RfdW5yZWYoc291cENhY2hlKTsKKwogI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmluaXRGYWN0b3J5
KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dl
YlByb2Nlc3NHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vz
c0d0ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0Y2EyMDMuLjAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc0d0ay5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSwxODcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp
IDIwMTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBNT1RP
Uk9MQSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
Ci0KLSNkZWZpbmUgTElCU09VUF9VU0VfVU5TVEFCTEVfUkVRVUVTVF9BUEkKLQotI2luY2x1ZGUg
IldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVT
eXN0ZW0uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0xhbmd1YWdlLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9NZW1vcnlDYWNoZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VI
YW5kbGUuaD4KLSNpbmNsdWRlIDxsaWJzb3VwL3NvdXAtY2FjaGUuaD4KLSNpbmNsdWRlIDx3dGYv
Z29iamVjdC9HT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+Ci0KLSNpZiAhT1MoV0lORE9XUykKLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNlbmRpZgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotc3RhdGljIHVpbnQ2NF90IGdldENhY2hlRGlza0ZyZWVT
aXplKFNvdXBDYWNoZSogY2FjaGUpCi17Ci0gICAgQVNTRVJUKGNhY2hlKTsKLQotICAgIEdPd25Q
dHI8Y2hhcj4gY2FjaGVEaXI7Ci0gICAgZ19vYmplY3RfZ2V0KEdfT0JKRUNUKGNhY2hlKSwgImNh
Y2hlLWRpciIsICZjYWNoZURpci5vdXRQdHIoKSwgTlVMTCk7Ci0gICAgaWYgKCFjYWNoZURpcikK
LSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gV2ViQ29yZTo6Z2V0Vm9sdW1lRnJlZVNp
emVGb3JQYXRoKGNhY2hlRGlyLmdldCgpKTsKLX0KLQotc3RhdGljIHVpbnQ2NF90IGdldE1lbW9y
eVNpemUoKQotewotICAgIHN0YXRpYyB1aW50NjRfdCBrRGVmYXVsdE1lbW9yeVNpemUgPSA1MTI7
Ci0jaWYgIU9TKFdJTkRPV1MpCi0gICAgbG9uZyBwYWdlU2l6ZSA9IHN5c2NvbmYoX1NDX1BBR0VT
SVpFKTsKLSAgICBpZiAocGFnZVNpemUgPT0gLTEpCi0gICAgICAgIHJldHVybiBrRGVmYXVsdE1l
bW9yeVNpemU7Ci0KLSAgICBsb25nIHBoeXNQYWdlcyA9IHN5c2NvbmYoX1NDX1BIWVNfUEFHRVMp
OwotICAgIGlmIChwaHlzUGFnZXMgPT0gLTEpCi0gICAgICAgIHJldHVybiBrRGVmYXVsdE1lbW9y
eVNpemU7Ci0KLSAgICByZXR1cm4gKChwYWdlU2l6ZSAvIDEwMjQpICogcGh5c1BhZ2VzKSAvIDEw
MjQ7Ci0jZWxzZQotICAgIC8vIEZhbGxiYWNrIHRvIGRlZmF1bHQgZm9yIG90aGVyIHBsYXRmb3Jt
cy4KLSAgICByZXR1cm4ga0RlZmF1bHRNZW1vcnlTaXplOwotI2VuZGlmCi19Ci0KLXZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwgY2FjaGVNb2RlbCkKLXsK
LSAgICB1bnNpZ25lZCBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAwOwotICAgIHVuc2lnbmVkIGNhY2hl
TWluRGVhZENhcGFjaXR5ID0gMDsKLSAgICB1bnNpZ25lZCBjYWNoZU1heERlYWRDYXBhY2l0eSA9
IDA7Ci0gICAgZG91YmxlIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSAwOwotICAg
IHVuc2lnbmVkIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMDsKLQotICAgIHVuc2lnbmVkIGxvbmcgdXJs
Q2FjaGVNZW1vcnlDYXBhY2l0eSA9IDA7Ci0gICAgdW5zaWduZWQgbG9uZyB1cmxDYWNoZURpc2tD
YXBhY2l0eSA9IDA7Ci0KLSAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOwotICAgIFNvdXBDYWNoZSogY2FjaGUgPSBTT1VQ
X0NBQ0hFKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZUEVfQ0FDSEUp
KTsKLSAgICB1aW50NjRfdCBkaXNrRnJlZVNpemUgPSBnZXRDYWNoZURpc2tGcmVlU2l6ZShjYWNo
ZSkgLyAxMDI0IC8gMTAyNDsKLQotICAgIHVpbnQ2NF90IG1lbVNpemUgPSBnZXRNZW1vcnlTaXpl
KCk7Ci0gICAgY2FsY3VsYXRlQ2FjaGVTaXplcyhjYWNoZU1vZGVsLCBtZW1TaXplLCBkaXNrRnJl
ZVNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHksIGNhY2hl
TWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgZGVhZERlY29kZWREYXRhRGVs
ZXRpb25JbnRlcnZhbCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5
LCB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7Ci0KLSAgICBX
ZWJDb3JlOjptZW1vcnlDYWNoZSgpLT5zZXRDYXBhY2l0aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5
LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFjaXR5KTsKLSAgICBXZWJDb3Jl
OjptZW1vcnlDYWNoZSgpLT5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRlYWRE
ZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOwotICAgIFdlYkNvcmU6OnBhZ2VDYWNoZSgpLT5z
ZXRDYXBhY2l0eShwYWdlQ2FjaGVDYXBhY2l0eSk7Ci0KLSAgICBpZiAodXJsQ2FjaGVEaXNrQ2Fw
YWNpdHkgPiBzb3VwX2NhY2hlX2dldF9tYXhfc2l6ZShjYWNoZSkpCi0gICAgICAgIHNvdXBfY2Fj
aGVfc2V0X21heF9zaXplKGNhY2hlLCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7Ci19Ci0KLXZvaWQg
V2ViUHJvY2Vzczo6cGxhdGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKFJlc291cmNlQ2FjaGVzVG9D
bGVhciBjYWNoZXNUb0NsZWFyKQotewotICAgIGlmIChjYWNoZXNUb0NsZWFyID09IEluTWVtb3J5
UmVzb3VyY2VDYWNoZXNPbmx5KQotICAgICAgICByZXR1cm47Ci0KLSAgICBTb3VwU2Vzc2lvbiog
c2Vzc2lvbiA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOwotICAg
IHNvdXBfY2FjaGVfY2xlYXIoU09VUF9DQUNIRShzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vz
c2lvbiwgU09VUF9UWVBFX0NBQ0hFKSkpOwotfQotCi0vLyBUaGlzIGZ1bmN0aW9uIGlzIGJhc2Vk
IG9uIEVwaXBoYW55IGNvZGUgaW4gZXBoeS1lbWJlZC1wcmVmcy5jLgotc3RhdGljIENTdHJpbmcg
YnVpbGRBY2NlcHRMYW5ndWFnZXMoVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzKQotewotICAgIC8v
IElnbm9yZSAiQyIgbG9jYWxlLgotICAgIHNpemVfdCBwb3NpdGlvbiA9IGxhbmd1YWdlcy5maW5k
KCJjIik7Ci0gICAgaWYgKHBvc2l0aW9uICE9IG5vdEZvdW5kKQotICAgICAgICBsYW5ndWFnZXMu
cmVtb3ZlKHBvc2l0aW9uKTsKLQotICAgIC8vIEZhbGxiYWNrIHRvICJlbiIgaWYgdGhlIGxpc3Qg
aXMgZW1wdHkuCi0gICAgaWYgKGxhbmd1YWdlcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAi
ZW4iOwotCi0gICAgLy8gQ2FsY3VsYXRlIGRlbHRhcyBmb3IgdGhlIHF1YWxpdHkgdmFsdWVzLgot
ICAgIGludCBkZWx0YTsKLSAgICBpZiAobGFuZ3VhZ2VzLnNpemUoKSA8IDEwKQotICAgICAgICBk
ZWx0YSA9IDEwOwotICAgIGVsc2UgaWYgKGxhbmd1YWdlcy5zaXplKCkgPCAyMCkKLSAgICAgICAg
ZGVsdGEgPSA1OwotICAgIGVsc2UKLSAgICAgICAgZGVsdGEgPSAxOwotCi0gICAgLy8gU2V0IHF1
YWxpdHkgdmFsdWVzIGZvciBlYWNoIGxhbmd1YWdlLgotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxhbmd1YWdlcy5zaXplKCk7ICsraSkgewot
ICAgICAgICBpZiAoaSkKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsICIpOwotCi0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGxhbmd1YWdlc1tpXSk7Ci0KLSAgICAgICAgaW50IHF1YWxpdHkg
PSAxMDAgLSBpICogZGVsdGE7Ci0gICAgICAgIGlmIChxdWFsaXR5ID4gMCAmJiBxdWFsaXR5IDwg
MTAwKSB7Ci0gICAgICAgICAgICBjaGFyIGJ1ZmZlcls4XTsKLSAgICAgICAgICAgIGdfYXNjaWlf
Zm9ybWF0ZChidWZmZXIsIDgsICIlLjJmIiwgcXVhbGl0eSAvIDEwMC4wKTsKLSAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCI7cT0lcyIsIGJ1ZmZlcikpOwotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7Ci19Ci0K
LXN0YXRpYyB2b2lkIHNldFNvdXBTZXNzaW9uQWNjZXB0TGFuZ3VhZ2UoVmVjdG9yPFN0cmluZz4g
bGFuZ3VhZ2VzKQotewotICAgIGdfb2JqZWN0X3NldChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6
ZGVmYXVsdFNlc3Npb24oKSwgImFjY2VwdC1sYW5ndWFnZSIsIGJ1aWxkQWNjZXB0TGFuZ3VhZ2Vz
KGxhbmd1YWdlcykuZGF0YSgpLCBOVUxMKTsKLX0KLQotc3RhdGljIHZvaWQgbGFuZ3VhZ2VDaGFu
Z2VkKHZvaWQqKQotewotICAgIHNldFNvdXBTZXNzaW9uQWNjZXB0TGFuZ3VhZ2UoV2ViQ29yZTo6
dXNlclByZWZlcnJlZExhbmd1YWdlcygpKTsKLX0KLQotdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopCi17Ci0gICAgaWYgKCFwYXJh
bWV0ZXJzLmxhbmd1YWdlcy5pc0VtcHR5KCkpCi0gICAgICAgIHNldFNvdXBTZXNzaW9uQWNjZXB0
TGFuZ3VhZ2UocGFyYW1ldGVycy5sYW5ndWFnZXMpOwotCi0gICAgV2ViQ29yZTo6YWRkTGFuZ3Vh
Z2VDaGFuZ2VPYnNlcnZlcih0aGlzLCBsYW5ndWFnZUNoYW5nZWQpOwotfQotCi12b2lkIFdlYlBy
b2Nlc3M6OnBsYXRmb3JtVGVybWluYXRlKCkKLXsKLSAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9
IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOwotICAgIFNvdXBDYWNo
ZSogY2FjaGUgPSBTT1VQX0NBQ0hFKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBT
T1VQX1RZUEVfQ0FDSEUpKTsKLSAgICBzb3VwX2NhY2hlX2ZsdXNoKGNhY2hlKTsKLSAgICBzb3Vw
X2NhY2hlX2R1bXAoY2FjaGUpOwotCi0gICAgV2ViQ29yZTo6cmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VP
YnNlcnZlcih0aGlzKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjUyMzZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcApAQCAtMCwwICsxLDE4
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTEgTW90b3JvbGEgTW9iaWxpdHks
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBNT1RPUk9MQSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKKyNkZWZpbmUgTElCU09VUF9VU0Vf
VU5TVEFCTEVfUkVRVUVTVF9BUEkKKworI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0xhbmd1YWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRs
ZS5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291cC1jYWNoZS5oPgorI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB1aW50NjRfdCBnZXRDYWNoZURpc2tG
cmVlU2l6ZShTb3VwQ2FjaGUqIGNhY2hlKQoreworICAgIEFTU0VSVChjYWNoZSk7CisKKyAgICBH
T3duUHRyPGNoYXI+IGNhY2hlRGlyOworICAgIGdfb2JqZWN0X2dldChHX09CSkVDVChjYWNoZSks
ICJjYWNoZS1kaXIiLCAmY2FjaGVEaXIub3V0UHRyKCksIE5VTEwpOworICAgIGlmICghY2FjaGVE
aXIpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIFdlYkNvcmU6OmdldFZvbHVtZUZy
ZWVTaXplRm9yUGF0aChjYWNoZURpci5nZXQoKSk7Cit9CisKK3N0YXRpYyB1aW50NjRfdCBnZXRN
ZW1vcnlTaXplKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3Qga0RlZmF1bHRNZW1vcnlTaXplID0g
NTEyOworI2lmICFPUyhXSU5ET1dTKQorICAgIGxvbmcgcGFnZVNpemUgPSBzeXNjb25mKF9TQ19Q
QUdFU0laRSk7CisgICAgaWYgKHBhZ2VTaXplID09IC0xKQorICAgICAgICByZXR1cm4ga0RlZmF1
bHRNZW1vcnlTaXplOworCisgICAgbG9uZyBwaHlzUGFnZXMgPSBzeXNjb25mKF9TQ19QSFlTX1BB
R0VTKTsKKyAgICBpZiAocGh5c1BhZ2VzID09IC0xKQorICAgICAgICByZXR1cm4ga0RlZmF1bHRN
ZW1vcnlTaXplOworCisgICAgcmV0dXJuICgocGFnZVNpemUgLyAxMDI0KSAqIHBoeXNQYWdlcykg
LyAxMDI0OworI2Vsc2UKKyAgICAvLyBGYWxsYmFjayB0byBkZWZhdWx0IGZvciBvdGhlciBwbGF0
Zm9ybXMuCisgICAgcmV0dXJuIGtEZWZhdWx0TWVtb3J5U2l6ZTsKKyNlbmRpZgorfQorCit2b2lk
IFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwp
Cit7CisgICAgdW5zaWduZWQgY2FjaGVUb3RhbENhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBj
YWNoZU1pbkRlYWRDYXBhY2l0eSA9IDA7CisgICAgdW5zaWduZWQgY2FjaGVNYXhEZWFkQ2FwYWNp
dHkgPSAwOworICAgIGRvdWJsZSBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsID0gMDsK
KyAgICB1bnNpZ25lZCBwYWdlQ2FjaGVDYXBhY2l0eSA9IDA7CisKKyAgICB1bnNpZ25lZCBsb25n
IHVybENhY2hlTWVtb3J5Q2FwYWNpdHkgPSAwOworICAgIHVuc2lnbmVkIGxvbmcgdXJsQ2FjaGVE
aXNrQ2FwYWNpdHkgPSAwOworCisgICAgU291cFNlc3Npb24qIHNlc3Npb24gPSBXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsKKyAgICBTb3VwQ2FjaGUqIGNhY2hlID0g
U09VUF9DQUNIRShzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9UWVBFX0NB
Q0hFKSk7CisgICAgdWludDY0X3QgZGlza0ZyZWVTaXplID0gZ2V0Q2FjaGVEaXNrRnJlZVNpemUo
Y2FjaGUpIC8gMTAyNCAvIDEwMjQ7CisKKyAgICB1aW50NjRfdCBtZW1TaXplID0gZ2V0TWVtb3J5
U2l6ZSgpOworICAgIGNhbGN1bGF0ZUNhY2hlU2l6ZXMoY2FjaGVNb2RlbCwgbWVtU2l6ZSwgZGlz
a0ZyZWVTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVUb3RhbENhcGFjaXR5LCBj
YWNoZU1pbkRlYWRDYXBhY2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGRlYWREZWNvZGVkRGF0
YURlbGV0aW9uSW50ZXJ2YWwsCisgICAgICAgICAgICAgICAgICAgICAgICBwYWdlQ2FjaGVDYXBh
Y2l0eSwgdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSwgdXJsQ2FjaGVEaXNrQ2FwYWNpdHkpOworCisg
ICAgV2ViQ29yZTo6bWVtb3J5Q2FjaGUoKS0+c2V0Q2FwYWNpdGllcyhjYWNoZU1pbkRlYWRDYXBh
Y2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGNhY2hlVG90YWxDYXBhY2l0eSk7CisgICAgV2Vi
Q29yZTo6bWVtb3J5Q2FjaGUoKS0+c2V0RGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbChk
ZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKTsKKyAgICBXZWJDb3JlOjpwYWdlQ2FjaGUo
KS0+c2V0Q2FwYWNpdHkocGFnZUNhY2hlQ2FwYWNpdHkpOworCisgICAgaWYgKHVybENhY2hlRGlz
a0NhcGFjaXR5ID4gc291cF9jYWNoZV9nZXRfbWF4X3NpemUoY2FjaGUpKQorICAgICAgICBzb3Vw
X2NhY2hlX3NldF9tYXhfc2l6ZShjYWNoZSwgdXJsQ2FjaGVEaXNrQ2FwYWNpdHkpOworfQorCit2
b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtQ2xlYXJSZXNvdXJjZUNhY2hlcyhSZXNvdXJjZUNhY2hl
c1RvQ2xlYXIgY2FjaGVzVG9DbGVhcikKK3sKKyAgICBpZiAoY2FjaGVzVG9DbGVhciA9PSBJbk1l
bW9yeVJlc291cmNlQ2FjaGVzT25seSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU291cFNlc3Np
b24qIHNlc3Npb24gPSBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsK
KyAgICBzb3VwX2NhY2hlX2NsZWFyKFNPVVBfQ0FDSEUoc291cF9zZXNzaW9uX2dldF9mZWF0dXJl
KHNlc3Npb24sIFNPVVBfVFlQRV9DQUNIRSkpKTsKK30KKworLy8gVGhpcyBmdW5jdGlvbiBpcyBi
YXNlZCBvbiBFcGlwaGFueSBjb2RlIGluIGVwaHktZW1iZWQtcHJlZnMuYy4KK3N0YXRpYyBDU3Ry
aW5nIGJ1aWxkQWNjZXB0TGFuZ3VhZ2VzKFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcykKK3sKKyAg
ICAvLyBJZ25vcmUgIkMiIGxvY2FsZS4KKyAgICBzaXplX3QgcG9zaXRpb24gPSBsYW5ndWFnZXMu
ZmluZCgiYyIpOworICAgIGlmIChwb3NpdGlvbiAhPSBub3RGb3VuZCkKKyAgICAgICAgbGFuZ3Vh
Z2VzLnJlbW92ZShwb3NpdGlvbik7CisKKyAgICAvLyBGYWxsYmFjayB0byAiZW4iIGlmIHRoZSBs
aXN0IGlzIGVtcHR5LgorICAgIGlmIChsYW5ndWFnZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gImVuIjsKKworICAgIC8vIENhbGN1bGF0ZSBkZWx0YXMgZm9yIHRoZSBxdWFsaXR5IHZhbHVl
cy4KKyAgICBpbnQgZGVsdGE7CisgICAgaWYgKGxhbmd1YWdlcy5zaXplKCkgPCAxMCkKKyAgICAg
ICAgZGVsdGEgPSAxMDsKKyAgICBlbHNlIGlmIChsYW5ndWFnZXMuc2l6ZSgpIDwgMjApCisgICAg
ICAgIGRlbHRhID0gNTsKKyAgICBlbHNlCisgICAgICAgIGRlbHRhID0gMTsKKworICAgIC8vIFNl
dCBxdWFsaXR5IHZhbHVlcyBmb3IgZWFjaCBsYW5ndWFnZS4KKyAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYW5ndWFnZXMuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgaWYgKGkpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCAiKTsKKwor
ICAgICAgICBidWlsZGVyLmFwcGVuZChsYW5ndWFnZXNbaV0pOworCisgICAgICAgIGludCBxdWFs
aXR5ID0gMTAwIC0gaSAqIGRlbHRhOworICAgICAgICBpZiAocXVhbGl0eSA+IDAgJiYgcXVhbGl0
eSA8IDEwMCkgeworICAgICAgICAgICAgY2hhciBidWZmZXJbOF07CisgICAgICAgICAgICBnX2Fz
Y2lpX2Zvcm1hdGQoYnVmZmVyLCA4LCAiJS4yZiIsIHF1YWxpdHkgLyAxMDAuMCk7CisgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiO3E9JXMiLCBidWZmZXIpKTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOwor
fQorCitzdGF0aWMgdm9pZCBzZXRTb3VwU2Vzc2lvbkFjY2VwdExhbmd1YWdlKFZlY3RvcjxTdHJp
bmc+IGxhbmd1YWdlcykKK3sKKyAgICBnX29iamVjdF9zZXQoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmRlZmF1bHRTZXNzaW9uKCksICJhY2NlcHQtbGFuZ3VhZ2UiLCBidWlsZEFjY2VwdExhbmd1
YWdlcyhsYW5ndWFnZXMpLmRhdGEoKSwgTlVMTCk7Cit9CisKK3N0YXRpYyB2b2lkIGxhbmd1YWdl
Q2hhbmdlZCh2b2lkKikKK3sKKyAgICBzZXRTb3VwU2Vzc2lvbkFjY2VwdExhbmd1YWdlKFdlYkNv
cmU6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzczo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKQoreworICAgIGlmICgh
cGFyYW1ldGVycy5sYW5ndWFnZXMuaXNFbXB0eSgpKQorICAgICAgICBzZXRTb3VwU2Vzc2lvbkFj
Y2VwdExhbmd1YWdlKHBhcmFtZXRlcnMubGFuZ3VhZ2VzKTsKKworICAgIFdlYkNvcmU6OmFkZExh
bmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodGhpcywgbGFuZ3VhZ2VDaGFuZ2VkKTsKK30KKwordm9pZCBX
ZWJQcm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0ZSgpCit7CisgICAgU291cFNlc3Npb24qIHNlc3Np
b24gPSBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsKKyAgICBTb3Vw
Q2FjaGUqIGNhY2hlID0gU09VUF9DQUNIRShzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lv
biwgU09VUF9UWVBFX0NBQ0hFKSk7CisgICAgc291cF9jYWNoZV9mbHVzaChjYWNoZSk7CisgICAg
c291cF9jYWNoZV9kdW1wKGNhY2hlKTsKKworICAgIFdlYkNvcmU6OnJlbW92ZUxhbmd1YWdlQ2hh
bmdlT2JzZXJ2ZXIodGhpcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="173306"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162270</attachid>
            <date>2012-09-05 09:46:41 -0700</date>
            <delta_ts>2012-09-05 09:48:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>95857_webprocessmain.patch</filename>
            <type>text/plain</type>
            <size>26146</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2OWY0OTg4Li42OTNlNDA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTItMDkt
MDUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAorICAg
ICAgICBbRUZMXVtXSzJdIFByb3ZpZGUgaW1wbGVtZW50YXRpb24gZm9yIFdlYlByb2Nlc3MgZnVu
Y3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NTg1NworCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgor
CisgICAgICAgIFVuc2tpcCBzZXZlcmFsIHRlc3QgY2FzZXMgdGhhdCBhcmUgbm93IHBhc3Npbmcg
b24KKyAgICAgICAgV0syIEVGTCBzaW5jZSBXZWJQcm9jZXNzIHBsYXRmb3JtIGZ1bmN0aW9ucyBo
YXZlIGJlZW4KKyAgICAgICAgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwt
d2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKKzIwMTItMDktMDUgIENocmlzdG9waGUgRHVtZXogIDxj
aHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKwogICAgICAgICBbRUZMXVtXSzJdIFByb3ZpZGUg
aW1wbGVtZW50YXRpb24gZm9yIFRlc3RSdW5uZXI6OnBhdGhUb0xvY2FsUmVzb3VyY2UoKQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU4NDIKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDllN2Iy
YTcuLmEyODEzMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTIyNywxNCArMjI3LDcgQEAgQlVHV0tFRkwgOiBmYXN0L2Jsb2NrL2Zsb2F0
L2Zsb2F0LWluLWZsb2F0LWhpdC10ZXN0aW5nLmh0bWwgPSBURVhUCiBCVUdXS0VGTCA6IGZhc3Qv
Y3NzL2JpZGktb3ZlcnJpZGUtaW4tYW5vbnltb3VzLWJsb2NrLmh0bWwgPSBURVhUCiBCVUdXS0VG
TCA6IGZhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9uZWQtYmxvY2stY3Jhc2guaHRtbCA9IFRFWFQK
IEJVR1dLRUZMIDogZmFzdC9kb20vV2luZG93L21vemlsbGEtZm9jdXMtYmx1ci5odG1sID0gVEVY
VAotQlVHV0tFRkwgOiBmYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9uLW5hdmlnYXRpb24t
YmFjay5odG1sID0gVEVYVAotQlVHV0tFRkwgOiBmYXN0L2V2ZW50cy9ub2RlLWV2ZW50LWFuY2hv
ci1sb2NrLmh0bWwgPSBURVhUCi1CVUdXS0VGTCA6IGZhc3QvZXZlbnRzL3BhZ2VoaWRlLXRpbWVv
dXQuaHRtbCA9IFRFWFQKLUJVR1dLRUZMIDogZmFzdC9ldmVudHMvcGFnZWhpZGUteGhyLW9wZW4u
aHRtbCA9IFRFWFQKLUJVR1dLRUZMIDogZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24t
YmFjay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRtbCA9IFRFWFQKLUJVR1dLRUZMIDogZmFzdC9ldmVu
dHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQuaHRtbCA9IFRFWFQKIEJVR1dLRUZM
IDogZmFzdC9ldmVudHMvc2Nyb2xsLWFmdGVyLWNsaWNrLW9uLXRhYi1pbmRleC5odG1sID0gVEVY
VAotQlVHV0tFRkwgOiBmYXN0L2V2ZW50cy9zdXNwZW5kLXRpbWVycy5odG1sID0gVEVYVAogQlVH
V0tFRkwgOiBmYXN0L2Zvcm1zL2F1dG9jb21wbGV0ZS1vZmYtd2l0aC1kZWZhdWx0LXZhbHVlLWRv
ZXMtbm90LWNsZWFyLmh0bWwgPSBURVhUCiBCVUdXS0VGTCA6IGZhc3QvZm9ybXMvbGVnZW5kLWFj
Y2Vzcy1rZXkuaHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogZmFzdC9mb3Jtcy9saXN0Ym94LWRlc2Vs
ZWN0LXNjcm9sbC5odG1sID0gVEVYVApAQCAtMjQ0LDggKzIzNyw2IEBAIEJVR1dLRUZMIDogZmFz
dC9mb3Jtcy9zZWxlY3QtbXVsdGlwbGUtZWxlbWVudHMtd2l0aC1tb3VzZS1kcmFnLXdpdGgtb3B0
aW9ucy1sZXNzCiBCVUdXS0VGTCA6IGZhc3QvZm9ybXMvc2VsZWN0LXdyaXRpbmctZGlyZWN0aW9u
LW5hdHVyYWwuaHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1l
c3NhZ2UtaW4tcmVsYXRpdmUtYm9keS5odG1sID0gVEVYVAogQlVHV0tFRkwgOiBmYXN0L2ZyYW1l
cy9mbGF0dGVuaW5nL2lmcmFtZS10aW55Lmh0bWwgPSBURVhUCi1CVUdXS0VGTCA6IGZhc3QvaGFy
bmVzcy91c2UtcGFnZS1jYWNoZS5odG1sID0gVEVYVAotQlVHV0tFRkwgOiBmYXN0L2hpc3Rvcnkv
dGltZWQtcmVmcmVzaC1pbi1jYWNoZWQtZnJhbWUuaHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogZmFz
dC9yZXBhaW50L2ZpeGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLmh0bWwgPSBURVhUCiBC
VUdXS0VGTCA6IGZhc3QvcmVwbGFjZWQvbm8tZm9jdXMtcmluZy1lbWJlZC5odG1sID0gVEVYVAog
QlVHV0tFRkwgOiBmYXN0L3JlcGxhY2VkL25vLWZvY3VzLXJpbmctb2JqZWN0Lmh0bWwgPSBURVhU
CkBAIC0yNTYsNyArMjQ3LDYgQEAgQlVHV0tFRkwgOiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL25ldHdvcmstc2lkZWJhci13aWR0aC5odG1sID0gVEVYVAogQlVHV0tFRkwgOiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS1tYWluLWNvb2tpZXMucGhwID0gVEVYVAogQlVHV0tFRkwg
OiBodHRwL3Rlc3RzL21pc2MvYWNpZDMuaHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogaHR0cC90ZXN0
cy9taXNjL29iamVjdC1lbWJlZGRpbmctc3ZnLWRlbGF5ZWQtc2l6ZS1uZWdvdGlhdGlvbi0yLmh0
bSA9IFRFWFQKLUJVR1dLRUZMIDogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLWluLXBhZ2Ut
Y2FjaGUuaHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93
b3JrZXJzL2Fib3J0LWV4Y2VwdGlvbi1hc3NlcnQuaHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogaW5z
cGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNvbXBsZXRpb25zLW9uLWNhbGwtZnJhbWUuaHRtbCA9
IFRFWFQKIEJVR1dLRUZMIDogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1wYW5lbC5o
dG1sID0gVEVYVApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdhN2FjYjMuLjViYmE2YzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxMi0wOS0wNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUu
ZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gUHJvdmlkZSBpbXBsZW1lbnRh
dGlvbiBmb3IgV2ViUHJvY2VzcyBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk1ODU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0
aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgQWRkIGltcGxlbWVudGF0aW9uIGZvciBn
ZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoKQorICAgICAgICBpbiBGaWxlU3lzdGVtIHdoaWNoIGlz
IHJlcXVpcmVkIGJ5IHNvdXAtcmVsYXRlZAorICAgICAgICBjb2RlIGluIFdlYktpdDIuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvRmlsZVN5c3RlbUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRWb2x1bWVGcmVl
U2l6ZUZvclBhdGgpOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDktMDUgIEtldmluIEVs
bGlzICA8a2V2ZXJzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVuaWZ5IHNp
emUgb2YgcG9wdXAgbWVudSBmb3IgdG91Y2ggYW5kIG5vbi10b3VjaC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZpbGVTeXN0ZW0uaAppbmRleCBhNmIzYTY3Li5lMWQ0MmJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0yMTYsNyArMjE2LDcgQEAgU3RyaW5nIGZpbGVuYW1lRm9y
RGlzcGxheShjb25zdCBTdHJpbmcmKTsKIENTdHJpbmcgYXBwbGljYXRpb25EaXJlY3RvcnlQYXRo
KCk7CiBDU3RyaW5nIHNoYXJlZFJlc291cmNlc1BhdGgoKTsKICNlbmRpZgotI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oUVQpCisjaWYgVVNFKFNPVVApIHx8IFBMQVRGT1JNKFFUKQogdWlu
dDY0X3QgZ2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKGNvbnN0IGNoYXIqKTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAKaW5kZXggNDA3
ODgyMi4uY2M4YzdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Zp
bGVTeXN0ZW1FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9GaWxlU3lz
dGVtRWZsLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1
ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdHZm
cy5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IApAQCAtMTA3LDQgKzEwOCwxMyBAQCBWZWN0b3I8U3RyaW5nPiBsaXN0RGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBmaWx0ZXIpCiAgICAgcmV0dXJuIG1hdGNoaW5n
RW50cmllczsKIH0KIAordWludDY0X3QgZ2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKGNvbnN0IGNo
YXIqIHBhdGgpCit7CisgICAgc3RydWN0IHN0YXR2ZnMgYnVmOworICAgIGlmIChzdGF0dmZzKHBh
dGgsICZidWYpIDwgMCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gYnVmLmZfYmF2
YWlsICogYnVmLmZfYnNpemU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MGM1YjIwLi41NTMxOGVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTItMDktMDUgIENocmlzdG9waGUgRHVt
ZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFBy
b3ZpZGUgaW1wbGVtZW50YXRpb24gZm9yIFdlYlByb2Nlc3MgZnVuY3Rpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTg1NworCisgICAgICAgIFJl
dmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgorCisgICAgICAgIFJlbmFtZSBX
ZWJQcm9jZXNzR3RrIHRvIFdlYlByb2Nlc3NTb3VwIGFuZCByZXVzZSBpdCBpbgorICAgICAgICBF
RkwgcG9ydCBzaW5jZSBhbGwgdGhlIGNvZGUgaXMgc291cC1yZWxhdGVkLiBXZSBub3cKKyAgICAg
ICAgaGF2ZSBhIHByb3BlciBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIFdlYlByb2Nlc3MKKyAgICAg
ICAgcGxhdGZvcm0gbWV0aG9kcy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06Cisg
ICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogV2ViUHJvY2Vzcy9lZmwvV2Vi
UHJvY2Vzc0VmbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9lZmwvV2ViUHJv
Y2Vzc01haW5FZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzTWFpbkVmbCk6IEVu
YWJsZSBzb3VwIGNhY2hlIGZvciB0aGUgc291cCBzZXNzaW9uIHNpbWlsYXJseSB0byBHVEsgcG9y
dC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc0d0ay5jcHAuCisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpnZXRDYWNoZURpc2tGcmVlU2l6ZSk6
CisgICAgICAgIChXZWJLaXQ6OmdldE1lbW9yeVNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpwbGF0Zm9ybUNsZWFyUmVzb3VyY2VDYWNoZXMpOgorICAgICAgICAoV2ViS2l0OjpidWls
ZEFjY2VwdExhbmd1YWdlcyk6CisgICAgICAgIChXZWJLaXQ6OnNldFNvdXBTZXNzaW9uQWNjZXB0
TGFuZ3VhZ2UpOgorICAgICAgICAoV2ViS2l0OjpsYW5ndWFnZUNoYW5nZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1UZXJtaW5hdGUpOgorCiAyMDEyLTA5LTA1
ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBGcmVxdWVudCBj
cmFzaGVzIGluIFBsdWdpblZpZXc6OnNjcmlwdE9iamVjdCB1bmRlciBydW50aW1lT2JqZWN0Q3Vz
dG9tR2V0T3duUHJvcGVydHlTbG90CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBk
NDE3YjVmLi5lZDE1ZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTkzNyw3
ICs5MzcsNiBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvZ3RrL1dlYkF1dGhEaWFsb2cuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2d0ay9XZWJBdXRoRGlhbG9nLmggXAotCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Z3RrL1dlYlByb2Nlc3NHdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9X
ZWJQcm9jZXNzTWFpbkd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dl
YlByb2Nlc3NNYWluR3RrLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFi
YXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmNwcCBcCkBAIC0xMDY4LDYgKzEwNjcsNyBAQCB3ZWJr
aXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmggXAorCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmggXAogCVNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDNkY2ZiZmEuLjA4NmQ3ODkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC05OCw5ICs5OCw2IEBAIExJU1QoQVBQRU5EIFdlYktpdDJf
U09VUkNFUwogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNF
ZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCiAK
LSAgICBXZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzRWZsLmNwcAotICAgIFdlYlByb2Nlc3MvZWZs
L1dlYlByb2Nlc3NNYWluRWZsLmNwcAotCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9l
ZmwvSW5qZWN0ZWRCdW5kbGVFZmwuY3BwCiAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L2VmbC9XZWJDb250ZXh0TWVudUNsaWVudEVmbC5jcHAKQEAgLTExMyw2ICsxMTAsOSBAQCBMSVNU
KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYklu
c3BlY3RvckVmbC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3Bw
CiAKKyAgICBXZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKKworICAgIFdlYlBy
b2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKICAgICBXZWJQcm9jZXNzL3NvdXAvV2ViU291
cFJlcXVlc3RNYW5hZ2VyLmNwcAogICAgIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVz
dEdlbmVyaWMuY3BwCiAgICAgV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRT
dHJlYW0uY3BwCkBAIC0xNDksNiArMTQ5LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0Ml9JTkNMVURF
X0RJUkVDVE9SSUVTCiAgICAgJHtFRkxERVBTX0lOQ0xVREVfRElSU30KICAgICAke0VGUkVFVF9J
TkNMVURFX0RJUlN9CiAgICAgJHtFVkFTX0lOQ0xVREVfRElSU30KKyAgICAke0xJQlNPVVBfSU5D
TFVERV9ESVJTfQogICAgICR7TElCWE1MMl9JTkNMVURFX0RJUn0KICAgICAke0xJQlhTTFRfSU5D
TFVERV9ESVJTfQogICAgICR7U1FMSVRFX0lOQ0xVREVfRElSU30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NFZmwuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc0VmbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGNlNjkyNmYuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9lZmwvV2ViUHJvY2Vzc0VmbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBN
T1RPUk9MQSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBNT1RPUk9MQSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCi0KLSNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2Rl
bCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtQ2xlYXJSZXNvdXJjZUNhY2hlcyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmLCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1UZXJtaW5hdGUoKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NN
YWluRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWlu
RWZsLmNwcAppbmRleCBkMDNhY2Y5Li45MzEyNDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCkBAIC0yNiwxNSArMjYsMjAg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWFpbkVmbC5oIgog
CisjZGVmaW5lIExJQlNPVVBfVVNFX1VOU1RBQkxFX1JFUVVFU1RfQVBJCisKICNpbmNsdWRlICJQ
cm94eVJlc29sdmVyU291cC5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgPEVjb3Jl
Lmg+CisjaW5jbHVkZSA8RWZyZWV0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRs
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV2Vi
UHJvY2Vzcy5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291cC1jYWNoZS5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAj
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogI2luY2x1ZGUgIkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5oIgpAQCAtODAsNiArODUsMTMgQEAgV0tfRVhQT1JUIGludCBXZWJQcm9jZXNzTWFp
bkVmbChpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICBnX29iamVjdF91bnJlZihyZXNv
bHZlckVmbCk7CiAgICAgfQogCisgICAgLy8gU2V0IFNPVVAgY2FjaGUuCisgICAgU3RyaW5nIHNv
dXBDYWNoZURpcmVjdG9yeSA9IFN0cmluZzo6ZnJvbVVURjgoZWZyZWV0X2NhY2hlX2hvbWVfZ2V0
KCkpICsgIi9XZWJLaXRFZmwiOworICAgIFNvdXBDYWNoZSogc291cENhY2hlID0gc291cF9jYWNo
ZV9uZXcoc291cENhY2hlRGlyZWN0b3J5LnV0ZjgoKS5kYXRhKCksIFNPVVBfQ0FDSEVfU0lOR0xF
X1VTRVIpOworICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1NFU1NJ
T05fRkVBVFVSRShzb3VwQ2FjaGUpKTsKKyAgICBzb3VwX2NhY2hlX2xvYWQoc291cENhY2hlKTsK
KyAgICBnX29iamVjdF91bnJlZihzb3VwQ2FjaGUpOworCiAjaWYgVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTKQogICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6aW5pdEZhY3RvcnkoKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vz
c0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzR3RrLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRjYTIwMy4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzR3RrLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDE4NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMSBN
b3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLQotI2Rl
ZmluZSBMSUJTT1VQX1VTRV9VTlNUQUJMRV9SRVFVRVNUX0FQSQotCi0jaW5jbHVkZSAiV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lbW9y
eUNhY2hlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZUNhY2hlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5o
PgotI2luY2x1ZGUgPGxpYnNvdXAvc291cC1jYWNoZS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dPd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
LQotI2lmICFPUyhXSU5ET1dTKQotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2VuZGlmCi0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1zdGF0aWMgdWludDY0X3QgZ2V0Q2FjaGVEaXNrRnJlZVNpemUoU291
cENhY2hlKiBjYWNoZSkKLXsKLSAgICBBU1NFUlQoY2FjaGUpOwotCi0gICAgR093blB0cjxjaGFy
PiBjYWNoZURpcjsKLSAgICBnX29iamVjdF9nZXQoR19PQkpFQ1QoY2FjaGUpLCAiY2FjaGUtZGly
IiwgJmNhY2hlRGlyLm91dFB0cigpLCBOVUxMKTsKLSAgICBpZiAoIWNhY2hlRGlyKQotICAgICAg
ICByZXR1cm4gMDsKLQotICAgIHJldHVybiBXZWJDb3JlOjpnZXRWb2x1bWVGcmVlU2l6ZUZvclBh
dGgoY2FjaGVEaXIuZ2V0KCkpOwotfQotCi1zdGF0aWMgdWludDY0X3QgZ2V0TWVtb3J5U2l6ZSgp
Ci17Ci0gICAgc3RhdGljIHVpbnQ2NF90IGtEZWZhdWx0TWVtb3J5U2l6ZSA9IDUxMjsKLSNpZiAh
T1MoV0lORE9XUykKLSAgICBsb25nIHBhZ2VTaXplID0gc3lzY29uZihfU0NfUEFHRVNJWkUpOwot
ICAgIGlmIChwYWdlU2l6ZSA9PSAtMSkKLSAgICAgICAgcmV0dXJuIGtEZWZhdWx0TWVtb3J5U2l6
ZTsKLQotICAgIGxvbmcgcGh5c1BhZ2VzID0gc3lzY29uZihfU0NfUEhZU19QQUdFUyk7Ci0gICAg
aWYgKHBoeXNQYWdlcyA9PSAtMSkKLSAgICAgICAgcmV0dXJuIGtEZWZhdWx0TWVtb3J5U2l6ZTsK
LQotICAgIHJldHVybiAoKHBhZ2VTaXplIC8gMTAyNCkgKiBwaHlzUGFnZXMpIC8gMTAyNDsKLSNl
bHNlCi0gICAgLy8gRmFsbGJhY2sgdG8gZGVmYXVsdCBmb3Igb3RoZXIgcGxhdGZvcm1zLgotICAg
IHJldHVybiBrRGVmYXVsdE1lbW9yeVNpemU7Ci0jZW5kaWYKLX0KLQotdm9pZCBXZWJQcm9jZXNz
OjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQotewotICAgIHVu
c2lnbmVkIGNhY2hlVG90YWxDYXBhY2l0eSA9IDA7Ci0gICAgdW5zaWduZWQgY2FjaGVNaW5EZWFk
Q2FwYWNpdHkgPSAwOwotICAgIHVuc2lnbmVkIGNhY2hlTWF4RGVhZENhcGFjaXR5ID0gMDsKLSAg
ICBkb3VibGUgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCA9IDA7Ci0gICAgdW5zaWdu
ZWQgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOwotCi0gICAgdW5zaWduZWQgbG9uZyB1cmxDYWNoZU1l
bW9yeUNhcGFjaXR5ID0gMDsKLSAgICB1bnNpZ25lZCBsb25nIHVybENhY2hlRGlza0NhcGFjaXR5
ID0gMDsKLQotICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmRlZmF1bHRTZXNzaW9uKCk7Ci0gICAgU291cENhY2hlKiBjYWNoZSA9IFNPVVBfQ0FDSEUo
c291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9DQUNIRSkpOwotICAg
IHVpbnQ2NF90IGRpc2tGcmVlU2l6ZSA9IGdldENhY2hlRGlza0ZyZWVTaXplKGNhY2hlKSAvIDEw
MjQgLyAxMDI0OwotCi0gICAgdWludDY0X3QgbWVtU2l6ZSA9IGdldE1lbW9yeVNpemUoKTsKLSAg
ICBjYWxjdWxhdGVDYWNoZVNpemVzKGNhY2hlTW9kZWwsIG1lbVNpemUsIGRpc2tGcmVlU2l6ZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSwgY2FjaGVNaW5EZWFk
Q2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBkZWFkRGVjb2RlZERhdGFEZWxldGlvbklu
dGVydmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHksIHVybENh
Y2hlTWVtb3J5Q2FwYWNpdHksIHVybENhY2hlRGlza0NhcGFjaXR5KTsKLQotICAgIFdlYkNvcmU6
Om1lbW9yeUNhY2hlKCktPnNldENhcGFjaXRpZXMoY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hl
TWF4RGVhZENhcGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkpOwotICAgIFdlYkNvcmU6Om1lbW9y
eUNhY2hlKCktPnNldERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVhZERlY29kZWRE
YXRhRGVsZXRpb25JbnRlcnZhbCk7Ci0gICAgV2ViQ29yZTo6cGFnZUNhY2hlKCktPnNldENhcGFj
aXR5KHBhZ2VDYWNoZUNhcGFjaXR5KTsKLQotICAgIGlmICh1cmxDYWNoZURpc2tDYXBhY2l0eSA+
IHNvdXBfY2FjaGVfZ2V0X21heF9zaXplKGNhY2hlKSkKLSAgICAgICAgc291cF9jYWNoZV9zZXRf
bWF4X3NpemUoY2FjaGUsIHVybENhY2hlRGlza0NhcGFjaXR5KTsKLX0KLQotdm9pZCBXZWJQcm9j
ZXNzOjpwbGF0Zm9ybUNsZWFyUmVzb3VyY2VDYWNoZXMoUmVzb3VyY2VDYWNoZXNUb0NsZWFyIGNh
Y2hlc1RvQ2xlYXIpCi17Ci0gICAgaWYgKGNhY2hlc1RvQ2xlYXIgPT0gSW5NZW1vcnlSZXNvdXJj
ZUNhY2hlc09ubHkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9u
ID0gV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7Ci0gICAgc291cF9j
YWNoZV9jbGVhcihTT1VQX0NBQ0hFKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBT
T1VQX1RZUEVfQ0FDSEUpKSk7Ci19Ci0KLS8vIFRoaXMgZnVuY3Rpb24gaXMgYmFzZWQgb24gRXBp
cGhhbnkgY29kZSBpbiBlcGh5LWVtYmVkLXByZWZzLmMuCi1zdGF0aWMgQ1N0cmluZyBidWlsZEFj
Y2VwdExhbmd1YWdlcyhWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMpCi17Ci0gICAgLy8gSWdub3Jl
ICJDIiBsb2NhbGUuCi0gICAgc2l6ZV90IHBvc2l0aW9uID0gbGFuZ3VhZ2VzLmZpbmQoImMiKTsK
LSAgICBpZiAocG9zaXRpb24gIT0gbm90Rm91bmQpCi0gICAgICAgIGxhbmd1YWdlcy5yZW1vdmUo
cG9zaXRpb24pOwotCi0gICAgLy8gRmFsbGJhY2sgdG8gImVuIiBpZiB0aGUgbGlzdCBpcyBlbXB0
eS4KLSAgICBpZiAobGFuZ3VhZ2VzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuICJlbiI7Ci0K
LSAgICAvLyBDYWxjdWxhdGUgZGVsdGFzIGZvciB0aGUgcXVhbGl0eSB2YWx1ZXMuCi0gICAgaW50
IGRlbHRhOwotICAgIGlmIChsYW5ndWFnZXMuc2l6ZSgpIDwgMTApCi0gICAgICAgIGRlbHRhID0g
MTA7Ci0gICAgZWxzZSBpZiAobGFuZ3VhZ2VzLnNpemUoKSA8IDIwKQotICAgICAgICBkZWx0YSA9
IDU7Ci0gICAgZWxzZQotICAgICAgICBkZWx0YSA9IDE7Ci0KLSAgICAvLyBTZXQgcXVhbGl0eSB2
YWx1ZXMgZm9yIGVhY2ggbGFuZ3VhZ2UuCi0gICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGFuZ3VhZ2VzLnNpemUoKTsgKytpKSB7Ci0gICAgICAg
IGlmIChpKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7Ci0KLSAgICAgICAgYnVp
bGRlci5hcHBlbmQobGFuZ3VhZ2VzW2ldKTsKLQotICAgICAgICBpbnQgcXVhbGl0eSA9IDEwMCAt
IGkgKiBkZWx0YTsKLSAgICAgICAgaWYgKHF1YWxpdHkgPiAwICYmIHF1YWxpdHkgPCAxMDApIHsK
LSAgICAgICAgICAgIGNoYXIgYnVmZmVyWzhdOwotICAgICAgICAgICAgZ19hc2NpaV9mb3JtYXRk
KGJ1ZmZlciwgOCwgIiUuMmYiLCBxdWFsaXR5IC8gMTAwLjApOwotICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIjtxPSVzIiwgYnVmZmVyKSk7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKLX0KLQotc3RhdGlj
IHZvaWQgc2V0U291cFNlc3Npb25BY2NlcHRMYW5ndWFnZShWZWN0b3I8U3RyaW5nPiBsYW5ndWFn
ZXMpCi17Ci0gICAgZ19vYmplY3Rfc2V0KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0
U2Vzc2lvbigpLCAiYWNjZXB0LWxhbmd1YWdlIiwgYnVpbGRBY2NlcHRMYW5ndWFnZXMobGFuZ3Vh
Z2VzKS5kYXRhKCksIE5VTEwpOwotfQotCi1zdGF0aWMgdm9pZCBsYW5ndWFnZUNoYW5nZWQodm9p
ZCopCi17Ci0gICAgc2V0U291cFNlc3Npb25BY2NlcHRMYW5ndWFnZShXZWJDb3JlOjp1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCkpOwotfQotCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikKLXsKLSAgICBpZiAoIXBhcmFtZXRlcnMu
bGFuZ3VhZ2VzLmlzRW1wdHkoKSkKLSAgICAgICAgc2V0U291cFNlc3Npb25BY2NlcHRMYW5ndWFn
ZShwYXJhbWV0ZXJzLmxhbmd1YWdlcyk7Ci0KLSAgICBXZWJDb3JlOjphZGRMYW5ndWFnZUNoYW5n
ZU9ic2VydmVyKHRoaXMsIGxhbmd1YWdlQ2hhbmdlZCk7Ci19Ci0KLXZvaWQgV2ViUHJvY2Vzczo6
cGxhdGZvcm1UZXJtaW5hdGUoKQotewotICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7Ci0gICAgU291cENhY2hlKiBjYWNo
ZSA9IFNPVVBfQ0FDSEUoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQ
RV9DQUNIRSkpOwotICAgIHNvdXBfY2FjaGVfZmx1c2goY2FjaGUpOwotICAgIHNvdXBfY2FjaGVf
ZHVtcChjYWNoZSk7Ci0KLSAgICBXZWJDb3JlOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVy
KHRoaXMpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjM2NTIzNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCkBAIC0wLDAgKzEsMTgyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMSBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIE1PVE9ST0xBIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworI2RlZmluZSBMSUJTT1VQX1VTRV9VTlNUQUJM
RV9SRVFVRVNUX0FQSQorCisjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGFu
Z3VhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlQ2FjaGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Cisj
aW5jbHVkZSA8bGlic291cC9zb3VwLWNhY2hlLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093
blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHVpbnQ2NF90IGdldENhY2hlRGlza0ZyZWVTaXpl
KFNvdXBDYWNoZSogY2FjaGUpCit7CisgICAgQVNTRVJUKGNhY2hlKTsKKworICAgIEdPd25QdHI8
Y2hhcj4gY2FjaGVEaXI7CisgICAgZ19vYmplY3RfZ2V0KEdfT0JKRUNUKGNhY2hlKSwgImNhY2hl
LWRpciIsICZjYWNoZURpci5vdXRQdHIoKSwgTlVMTCk7CisgICAgaWYgKCFjYWNoZURpcikKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gV2ViQ29yZTo6Z2V0Vm9sdW1lRnJlZVNpemVG
b3JQYXRoKGNhY2hlRGlyLmdldCgpKTsKK30KKworc3RhdGljIHVpbnQ2NF90IGdldE1lbW9yeVNp
emUoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBrRGVmYXVsdE1lbW9yeVNpemUgPSA1MTI7Cisj
aWYgIU9TKFdJTkRPV1MpCisgICAgbG9uZyBwYWdlU2l6ZSA9IHN5c2NvbmYoX1NDX1BBR0VTSVpF
KTsKKyAgICBpZiAocGFnZVNpemUgPT0gLTEpCisgICAgICAgIHJldHVybiBrRGVmYXVsdE1lbW9y
eVNpemU7CisKKyAgICBsb25nIHBoeXNQYWdlcyA9IHN5c2NvbmYoX1NDX1BIWVNfUEFHRVMpOwor
ICAgIGlmIChwaHlzUGFnZXMgPT0gLTEpCisgICAgICAgIHJldHVybiBrRGVmYXVsdE1lbW9yeVNp
emU7CisKKyAgICByZXR1cm4gKChwYWdlU2l6ZSAvIDEwMjQpICogcGh5c1BhZ2VzKSAvIDEwMjQ7
CisjZWxzZQorICAgIC8vIEZhbGxiYWNrIHRvIGRlZmF1bHQgZm9yIG90aGVyIHBsYXRmb3Jtcy4K
KyAgICByZXR1cm4ga0RlZmF1bHRNZW1vcnlTaXplOworI2VuZGlmCit9CisKK3ZvaWQgV2ViUHJv
Y2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwgY2FjaGVNb2RlbCkKK3sKKyAg
ICB1bnNpZ25lZCBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAwOworICAgIHVuc2lnbmVkIGNhY2hlTWlu
RGVhZENhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBjYWNoZU1heERlYWRDYXBhY2l0eSA9IDA7
CisgICAgZG91YmxlIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSAwOworICAgIHVu
c2lnbmVkIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMDsKKworICAgIHVuc2lnbmVkIGxvbmcgdXJsQ2Fj
aGVNZW1vcnlDYXBhY2l0eSA9IDA7CisgICAgdW5zaWduZWQgbG9uZyB1cmxDYWNoZURpc2tDYXBh
Y2l0eSA9IDA7CisKKyAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOworICAgIFNvdXBDYWNoZSogY2FjaGUgPSBTT1VQX0NB
Q0hFKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZUEVfQ0FDSEUpKTsK
KyAgICB1aW50NjRfdCBkaXNrRnJlZVNpemUgPSBnZXRDYWNoZURpc2tGcmVlU2l6ZShjYWNoZSkg
LyAxMDI0IC8gMTAyNDsKKworICAgIHVpbnQ2NF90IG1lbVNpemUgPSBnZXRNZW1vcnlTaXplKCk7
CisgICAgY2FsY3VsYXRlQ2FjaGVTaXplcyhjYWNoZU1vZGVsLCBtZW1TaXplLCBkaXNrRnJlZVNp
emUsCisgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHksIGNhY2hlTWlu
RGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgZGVhZERlY29kZWREYXRhRGVsZXRp
b25JbnRlcnZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5LCB1
cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7CisKKyAgICBXZWJD
b3JlOjptZW1vcnlDYWNoZSgpLT5zZXRDYXBhY2l0aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBj
YWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFjaXR5KTsKKyAgICBXZWJDb3JlOjpt
ZW1vcnlDYWNoZSgpLT5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRlYWREZWNv
ZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOworICAgIFdlYkNvcmU6OnBhZ2VDYWNoZSgpLT5zZXRD
YXBhY2l0eShwYWdlQ2FjaGVDYXBhY2l0eSk7CisKKyAgICBpZiAodXJsQ2FjaGVEaXNrQ2FwYWNp
dHkgPiBzb3VwX2NhY2hlX2dldF9tYXhfc2l6ZShjYWNoZSkpCisgICAgICAgIHNvdXBfY2FjaGVf
c2V0X21heF9zaXplKGNhY2hlLCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7Cit9CisKK3ZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKFJlc291cmNlQ2FjaGVzVG9DbGVh
ciBjYWNoZXNUb0NsZWFyKQoreworICAgIGlmIChjYWNoZXNUb0NsZWFyID09IEluTWVtb3J5UmVz
b3VyY2VDYWNoZXNPbmx5KQorICAgICAgICByZXR1cm47CisKKyAgICBTb3VwU2Vzc2lvbiogc2Vz
c2lvbiA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOworICAgIHNv
dXBfY2FjaGVfY2xlYXIoU09VUF9DQUNIRShzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lv
biwgU09VUF9UWVBFX0NBQ0hFKSkpOworfQorCisvLyBUaGlzIGZ1bmN0aW9uIGlzIGJhc2VkIG9u
IEVwaXBoYW55IGNvZGUgaW4gZXBoeS1lbWJlZC1wcmVmcy5jLgorc3RhdGljIENTdHJpbmcgYnVp
bGRBY2NlcHRMYW5ndWFnZXMoVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzKQoreworICAgIC8vIEln
bm9yZSAiQyIgbG9jYWxlLgorICAgIHNpemVfdCBwb3NpdGlvbiA9IGxhbmd1YWdlcy5maW5kKCJj
Iik7CisgICAgaWYgKHBvc2l0aW9uICE9IG5vdEZvdW5kKQorICAgICAgICBsYW5ndWFnZXMucmVt
b3ZlKHBvc2l0aW9uKTsKKworICAgIC8vIEZhbGxiYWNrIHRvICJlbiIgaWYgdGhlIGxpc3QgaXMg
ZW1wdHkuCisgICAgaWYgKGxhbmd1YWdlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAiZW4i
OworCisgICAgLy8gQ2FsY3VsYXRlIGRlbHRhcyBmb3IgdGhlIHF1YWxpdHkgdmFsdWVzLgorICAg
IGludCBkZWx0YTsKKyAgICBpZiAobGFuZ3VhZ2VzLnNpemUoKSA8IDEwKQorICAgICAgICBkZWx0
YSA9IDEwOworICAgIGVsc2UgaWYgKGxhbmd1YWdlcy5zaXplKCkgPCAyMCkKKyAgICAgICAgZGVs
dGEgPSA1OworICAgIGVsc2UKKyAgICAgICAgZGVsdGEgPSAxOworCisgICAgLy8gU2V0IHF1YWxp
dHkgdmFsdWVzIGZvciBlYWNoIGxhbmd1YWdlLgorICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxhbmd1YWdlcy5zaXplKCk7ICsraSkgeworICAg
ICAgICBpZiAoaSkKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsICIpOworCisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGxhbmd1YWdlc1tpXSk7CisKKyAgICAgICAgaW50IHF1YWxpdHkgPSAx
MDAgLSBpICogZGVsdGE7CisgICAgICAgIGlmIChxdWFsaXR5ID4gMCAmJiBxdWFsaXR5IDwgMTAw
KSB7CisgICAgICAgICAgICBjaGFyIGJ1ZmZlcls4XTsKKyAgICAgICAgICAgIGdfYXNjaWlfZm9y
bWF0ZChidWZmZXIsIDgsICIlLjJmIiwgcXVhbGl0eSAvIDEwMC4wKTsKKyAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCI7cT0lcyIsIGJ1ZmZlcikpOworICAgICAgICB9
CisgICAgfQorCisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7Cit9CisKK3N0
YXRpYyB2b2lkIHNldFNvdXBTZXNzaW9uQWNjZXB0TGFuZ3VhZ2UoVmVjdG9yPFN0cmluZz4gbGFu
Z3VhZ2VzKQoreworICAgIGdfb2JqZWN0X3NldChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVm
YXVsdFNlc3Npb24oKSwgImFjY2VwdC1sYW5ndWFnZSIsIGJ1aWxkQWNjZXB0TGFuZ3VhZ2VzKGxh
bmd1YWdlcykuZGF0YSgpLCBOVUxMKTsKK30KKworc3RhdGljIHZvaWQgbGFuZ3VhZ2VDaGFuZ2Vk
KHZvaWQqKQoreworICAgIHNldFNvdXBTZXNzaW9uQWNjZXB0TGFuZ3VhZ2UoV2ViQ29yZTo6dXNl
clByZWZlcnJlZExhbmd1YWdlcygpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopCit7CisgICAgaWYgKCFwYXJhbWV0
ZXJzLmxhbmd1YWdlcy5pc0VtcHR5KCkpCisgICAgICAgIHNldFNvdXBTZXNzaW9uQWNjZXB0TGFu
Z3VhZ2UocGFyYW1ldGVycy5sYW5ndWFnZXMpOworCisgICAgV2ViQ29yZTo6YWRkTGFuZ3VhZ2VD
aGFuZ2VPYnNlcnZlcih0aGlzLCBsYW5ndWFnZUNoYW5nZWQpOworfQorCit2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtVGVybWluYXRlKCkKK3sKKyAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOworICAgIFNvdXBDYWNoZSog
Y2FjaGUgPSBTT1VQX0NBQ0hFKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQ
X1RZUEVfQ0FDSEUpKTsKKyAgICBzb3VwX2NhY2hlX2ZsdXNoKGNhY2hlKTsKKyAgICBzb3VwX2Nh
Y2hlX2R1bXAoY2FjaGUpOworCisgICAgV2ViQ29yZTo6cmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNl
cnZlcih0aGlzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162271</attachid>
            <date>2012-09-05 09:48:52 -0700</date>
            <delta_ts>2012-09-05 16:04:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>95857_webprocessmain.patch</filename>
            <type>text/plain</type>
            <size>26146</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2OWY0OTg4Li42OTNlNDA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTItMDkt
MDUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAorICAg
ICAgICBbRUZMXVtXSzJdIFByb3ZpZGUgaW1wbGVtZW50YXRpb24gZm9yIFdlYlByb2Nlc3MgZnVu
Y3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NTg1NworCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgor
CisgICAgICAgIFVuc2tpcCBzZXZlcmFsIHRlc3QgY2FzZXMgdGhhdCBhcmUgbm93IHBhc3Npbmcg
b24KKyAgICAgICAgV0syIEVGTCBzaW5jZSBXZWJQcm9jZXNzIHBsYXRmb3JtIGZ1bmN0aW9ucyBo
YXZlIGJlZW4KKyAgICAgICAgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwt
d2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKKzIwMTItMDktMDUgIENocmlzdG9waGUgRHVtZXogIDxj
aHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKwogICAgICAgICBbRUZMXVtXSzJdIFByb3ZpZGUg
aW1wbGVtZW50YXRpb24gZm9yIFRlc3RSdW5uZXI6OnBhdGhUb0xvY2FsUmVzb3VyY2UoKQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU4NDIKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDllN2Iy
YTcuLjg5NmU2ZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTIyNywxNCArMjI3LDggQEAgQlVHV0tFRkwgOiBmYXN0L2Jsb2NrL2Zsb2F0
L2Zsb2F0LWluLWZsb2F0LWhpdC10ZXN0aW5nLmh0bWwgPSBURVhUCiBCVUdXS0VGTCA6IGZhc3Qv
Y3NzL2JpZGktb3ZlcnJpZGUtaW4tYW5vbnltb3VzLWJsb2NrLmh0bWwgPSBURVhUCiBCVUdXS0VG
TCA6IGZhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9uZWQtYmxvY2stY3Jhc2guaHRtbCA9IFRFWFQK
IEJVR1dLRUZMIDogZmFzdC9kb20vV2luZG93L21vemlsbGEtZm9jdXMtYmx1ci5odG1sID0gVEVY
VAotQlVHV0tFRkwgOiBmYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9uLW5hdmlnYXRpb24t
YmFjay5odG1sID0gVEVYVAogQlVHV0tFRkwgOiBmYXN0L2V2ZW50cy9ub2RlLWV2ZW50LWFuY2hv
ci1sb2NrLmh0bWwgPSBURVhUCi1CVUdXS0VGTCA6IGZhc3QvZXZlbnRzL3BhZ2VoaWRlLXRpbWVv
dXQuaHRtbCA9IFRFWFQKLUJVR1dLRUZMIDogZmFzdC9ldmVudHMvcGFnZWhpZGUteGhyLW9wZW4u
aHRtbCA9IFRFWFQKLUJVR1dLRUZMIDogZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24t
YmFjay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRtbCA9IFRFWFQKLUJVR1dLRUZMIDogZmFzdC9ldmVu
dHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQuaHRtbCA9IFRFWFQKIEJVR1dLRUZM
IDogZmFzdC9ldmVudHMvc2Nyb2xsLWFmdGVyLWNsaWNrLW9uLXRhYi1pbmRleC5odG1sID0gVEVY
VAotQlVHV0tFRkwgOiBmYXN0L2V2ZW50cy9zdXNwZW5kLXRpbWVycy5odG1sID0gVEVYVAogQlVH
V0tFRkwgOiBmYXN0L2Zvcm1zL2F1dG9jb21wbGV0ZS1vZmYtd2l0aC1kZWZhdWx0LXZhbHVlLWRv
ZXMtbm90LWNsZWFyLmh0bWwgPSBURVhUCiBCVUdXS0VGTCA6IGZhc3QvZm9ybXMvbGVnZW5kLWFj
Y2Vzcy1rZXkuaHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogZmFzdC9mb3Jtcy9saXN0Ym94LWRlc2Vs
ZWN0LXNjcm9sbC5odG1sID0gVEVYVApAQCAtMjQ0LDggKzIzOCw2IEBAIEJVR1dLRUZMIDogZmFz
dC9mb3Jtcy9zZWxlY3QtbXVsdGlwbGUtZWxlbWVudHMtd2l0aC1tb3VzZS1kcmFnLXdpdGgtb3B0
aW9ucy1sZXNzCiBCVUdXS0VGTCA6IGZhc3QvZm9ybXMvc2VsZWN0LXdyaXRpbmctZGlyZWN0aW9u
LW5hdHVyYWwuaHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1l
c3NhZ2UtaW4tcmVsYXRpdmUtYm9keS5odG1sID0gVEVYVAogQlVHV0tFRkwgOiBmYXN0L2ZyYW1l
cy9mbGF0dGVuaW5nL2lmcmFtZS10aW55Lmh0bWwgPSBURVhUCi1CVUdXS0VGTCA6IGZhc3QvaGFy
bmVzcy91c2UtcGFnZS1jYWNoZS5odG1sID0gVEVYVAotQlVHV0tFRkwgOiBmYXN0L2hpc3Rvcnkv
dGltZWQtcmVmcmVzaC1pbi1jYWNoZWQtZnJhbWUuaHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogZmFz
dC9yZXBhaW50L2ZpeGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLmh0bWwgPSBURVhUCiBC
VUdXS0VGTCA6IGZhc3QvcmVwbGFjZWQvbm8tZm9jdXMtcmluZy1lbWJlZC5odG1sID0gVEVYVAog
QlVHV0tFRkwgOiBmYXN0L3JlcGxhY2VkL25vLWZvY3VzLXJpbmctb2JqZWN0Lmh0bWwgPSBURVhU
CkBAIC0yNTYsNyArMjQ4LDYgQEAgQlVHV0tFRkwgOiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL25ldHdvcmstc2lkZWJhci13aWR0aC5odG1sID0gVEVYVAogQlVHV0tFRkwgOiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS1tYWluLWNvb2tpZXMucGhwID0gVEVYVAogQlVHV0tFRkwg
OiBodHRwL3Rlc3RzL21pc2MvYWNpZDMuaHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogaHR0cC90ZXN0
cy9taXNjL29iamVjdC1lbWJlZGRpbmctc3ZnLWRlbGF5ZWQtc2l6ZS1uZWdvdGlhdGlvbi0yLmh0
bSA9IFRFWFQKLUJVR1dLRUZMIDogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLWluLXBhZ2Ut
Y2FjaGUuaHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93
b3JrZXJzL2Fib3J0LWV4Y2VwdGlvbi1hc3NlcnQuaHRtbCA9IFRFWFQKIEJVR1dLRUZMIDogaW5z
cGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNvbXBsZXRpb25zLW9uLWNhbGwtZnJhbWUuaHRtbCA9
IFRFWFQKIEJVR1dLRUZMIDogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1wYW5lbC5o
dG1sID0gVEVYVApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdhN2FjYjMuLjViYmE2YzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxMi0wOS0wNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUu
ZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gUHJvdmlkZSBpbXBsZW1lbnRh
dGlvbiBmb3IgV2ViUHJvY2VzcyBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk1ODU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0
aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgQWRkIGltcGxlbWVudGF0aW9uIGZvciBn
ZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoKQorICAgICAgICBpbiBGaWxlU3lzdGVtIHdoaWNoIGlz
IHJlcXVpcmVkIGJ5IHNvdXAtcmVsYXRlZAorICAgICAgICBjb2RlIGluIFdlYktpdDIuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvRmlsZVN5c3RlbUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRWb2x1bWVGcmVl
U2l6ZUZvclBhdGgpOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDktMDUgIEtldmluIEVs
bGlzICA8a2V2ZXJzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVuaWZ5IHNp
emUgb2YgcG9wdXAgbWVudSBmb3IgdG91Y2ggYW5kIG5vbi10b3VjaC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZpbGVTeXN0ZW0uaAppbmRleCBhNmIzYTY3Li5lMWQ0MmJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0yMTYsNyArMjE2LDcgQEAgU3RyaW5nIGZpbGVuYW1lRm9y
RGlzcGxheShjb25zdCBTdHJpbmcmKTsKIENTdHJpbmcgYXBwbGljYXRpb25EaXJlY3RvcnlQYXRo
KCk7CiBDU3RyaW5nIHNoYXJlZFJlc291cmNlc1BhdGgoKTsKICNlbmRpZgotI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oUVQpCisjaWYgVVNFKFNPVVApIHx8IFBMQVRGT1JNKFFUKQogdWlu
dDY0X3QgZ2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKGNvbnN0IGNoYXIqKTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAKaW5kZXggNDA3
ODgyMi4uY2M4YzdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Zp
bGVTeXN0ZW1FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9GaWxlU3lz
dGVtRWZsLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1
ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdHZm
cy5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IApAQCAtMTA3LDQgKzEwOCwxMyBAQCBWZWN0b3I8U3RyaW5nPiBsaXN0RGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBmaWx0ZXIpCiAgICAgcmV0dXJuIG1hdGNoaW5n
RW50cmllczsKIH0KIAordWludDY0X3QgZ2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKGNvbnN0IGNo
YXIqIHBhdGgpCit7CisgICAgc3RydWN0IHN0YXR2ZnMgYnVmOworICAgIGlmIChzdGF0dmZzKHBh
dGgsICZidWYpIDwgMCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gYnVmLmZfYmF2
YWlsICogYnVmLmZfYnNpemU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MGM1YjIwLi41NTMxOGVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTItMDktMDUgIENocmlzdG9waGUgRHVt
ZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFBy
b3ZpZGUgaW1wbGVtZW50YXRpb24gZm9yIFdlYlByb2Nlc3MgZnVuY3Rpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTg1NworCisgICAgICAgIFJl
dmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgorCisgICAgICAgIFJlbmFtZSBX
ZWJQcm9jZXNzR3RrIHRvIFdlYlByb2Nlc3NTb3VwIGFuZCByZXVzZSBpdCBpbgorICAgICAgICBF
RkwgcG9ydCBzaW5jZSBhbGwgdGhlIGNvZGUgaXMgc291cC1yZWxhdGVkLiBXZSBub3cKKyAgICAg
ICAgaGF2ZSBhIHByb3BlciBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIFdlYlByb2Nlc3MKKyAgICAg
ICAgcGxhdGZvcm0gbWV0aG9kcy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06Cisg
ICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogV2ViUHJvY2Vzcy9lZmwvV2Vi
UHJvY2Vzc0VmbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9lZmwvV2ViUHJv
Y2Vzc01haW5FZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzTWFpbkVmbCk6IEVu
YWJsZSBzb3VwIGNhY2hlIGZvciB0aGUgc291cCBzZXNzaW9uIHNpbWlsYXJseSB0byBHVEsgcG9y
dC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc0d0ay5jcHAuCisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpnZXRDYWNoZURpc2tGcmVlU2l6ZSk6
CisgICAgICAgIChXZWJLaXQ6OmdldE1lbW9yeVNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpwbGF0Zm9ybUNsZWFyUmVzb3VyY2VDYWNoZXMpOgorICAgICAgICAoV2ViS2l0OjpidWls
ZEFjY2VwdExhbmd1YWdlcyk6CisgICAgICAgIChXZWJLaXQ6OnNldFNvdXBTZXNzaW9uQWNjZXB0
TGFuZ3VhZ2UpOgorICAgICAgICAoV2ViS2l0OjpsYW5ndWFnZUNoYW5nZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1UZXJtaW5hdGUpOgorCiAyMDEyLTA5LTA1
ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBGcmVxdWVudCBj
cmFzaGVzIGluIFBsdWdpblZpZXc6OnNjcmlwdE9iamVjdCB1bmRlciBydW50aW1lT2JqZWN0Q3Vz
dG9tR2V0T3duUHJvcGVydHlTbG90CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBk
NDE3YjVmLi5lZDE1ZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTkzNyw3
ICs5MzcsNiBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvZ3RrL1dlYkF1dGhEaWFsb2cuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2d0ay9XZWJBdXRoRGlhbG9nLmggXAotCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Z3RrL1dlYlByb2Nlc3NHdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9X
ZWJQcm9jZXNzTWFpbkd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dl
YlByb2Nlc3NNYWluR3RrLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFi
YXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmNwcCBcCkBAIC0xMDY4LDYgKzEwNjcsNyBAQCB3ZWJr
aXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmggXAorCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmggXAogCVNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDNkY2ZiZmEuLjA4NmQ3ODkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC05OCw5ICs5OCw2IEBAIExJU1QoQVBQRU5EIFdlYktpdDJf
U09VUkNFUwogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNF
ZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCiAK
LSAgICBXZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzRWZsLmNwcAotICAgIFdlYlByb2Nlc3MvZWZs
L1dlYlByb2Nlc3NNYWluRWZsLmNwcAotCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9l
ZmwvSW5qZWN0ZWRCdW5kbGVFZmwuY3BwCiAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L2VmbC9XZWJDb250ZXh0TWVudUNsaWVudEVmbC5jcHAKQEAgLTExMyw2ICsxMTAsOSBAQCBMSVNU
KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYklu
c3BlY3RvckVmbC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3Bw
CiAKKyAgICBXZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKKworICAgIFdlYlBy
b2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKICAgICBXZWJQcm9jZXNzL3NvdXAvV2ViU291
cFJlcXVlc3RNYW5hZ2VyLmNwcAogICAgIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVz
dEdlbmVyaWMuY3BwCiAgICAgV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRT
dHJlYW0uY3BwCkBAIC0xNDksNiArMTQ5LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0Ml9JTkNMVURF
X0RJUkVDVE9SSUVTCiAgICAgJHtFRkxERVBTX0lOQ0xVREVfRElSU30KICAgICAke0VGUkVFVF9J
TkNMVURFX0RJUlN9CiAgICAgJHtFVkFTX0lOQ0xVREVfRElSU30KKyAgICAke0xJQlNPVVBfSU5D
TFVERV9ESVJTfQogICAgICR7TElCWE1MMl9JTkNMVURFX0RJUn0KICAgICAke0xJQlhTTFRfSU5D
TFVERV9ESVJTfQogICAgICR7U1FMSVRFX0lOQ0xVREVfRElSU30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NFZmwuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc0VmbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGNlNjkyNmYuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9lZmwvV2ViUHJvY2Vzc0VmbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBN
T1RPUk9MQSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBNT1RPUk9MQSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCi0KLSNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2Rl
bCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtQ2xlYXJSZXNvdXJjZUNhY2hlcyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmLCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1UZXJtaW5hdGUoKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NN
YWluRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWlu
RWZsLmNwcAppbmRleCBkMDNhY2Y5Li45MzEyNDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCkBAIC0yNiwxNSArMjYsMjAg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWFpbkVmbC5oIgog
CisjZGVmaW5lIExJQlNPVVBfVVNFX1VOU1RBQkxFX1JFUVVFU1RfQVBJCisKICNpbmNsdWRlICJQ
cm94eVJlc29sdmVyU291cC5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgPEVjb3Jl
Lmg+CisjaW5jbHVkZSA8RWZyZWV0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRs
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV2Vi
UHJvY2Vzcy5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291cC1jYWNoZS5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAj
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogI2luY2x1ZGUgIkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5oIgpAQCAtODAsNiArODUsMTMgQEAgV0tfRVhQT1JUIGludCBXZWJQcm9jZXNzTWFp
bkVmbChpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICBnX29iamVjdF91bnJlZihyZXNv
bHZlckVmbCk7CiAgICAgfQogCisgICAgLy8gU2V0IFNPVVAgY2FjaGUuCisgICAgU3RyaW5nIHNv
dXBDYWNoZURpcmVjdG9yeSA9IFN0cmluZzo6ZnJvbVVURjgoZWZyZWV0X2NhY2hlX2hvbWVfZ2V0
KCkpICsgIi9XZWJLaXRFZmwiOworICAgIFNvdXBDYWNoZSogc291cENhY2hlID0gc291cF9jYWNo
ZV9uZXcoc291cENhY2hlRGlyZWN0b3J5LnV0ZjgoKS5kYXRhKCksIFNPVVBfQ0FDSEVfU0lOR0xF
X1VTRVIpOworICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1NFU1NJ
T05fRkVBVFVSRShzb3VwQ2FjaGUpKTsKKyAgICBzb3VwX2NhY2hlX2xvYWQoc291cENhY2hlKTsK
KyAgICBnX29iamVjdF91bnJlZihzb3VwQ2FjaGUpOworCiAjaWYgVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTKQogICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6aW5pdEZhY3RvcnkoKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vz
c0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzR3RrLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRjYTIwMy4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzR3RrLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDE4NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMSBN
b3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLQotI2Rl
ZmluZSBMSUJTT1VQX1VTRV9VTlNUQUJMRV9SRVFVRVNUX0FQSQotCi0jaW5jbHVkZSAiV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lbW9y
eUNhY2hlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZUNhY2hlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5o
PgotI2luY2x1ZGUgPGxpYnNvdXAvc291cC1jYWNoZS5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dPd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
LQotI2lmICFPUyhXSU5ET1dTKQotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2VuZGlmCi0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1zdGF0aWMgdWludDY0X3QgZ2V0Q2FjaGVEaXNrRnJlZVNpemUoU291
cENhY2hlKiBjYWNoZSkKLXsKLSAgICBBU1NFUlQoY2FjaGUpOwotCi0gICAgR093blB0cjxjaGFy
PiBjYWNoZURpcjsKLSAgICBnX29iamVjdF9nZXQoR19PQkpFQ1QoY2FjaGUpLCAiY2FjaGUtZGly
IiwgJmNhY2hlRGlyLm91dFB0cigpLCBOVUxMKTsKLSAgICBpZiAoIWNhY2hlRGlyKQotICAgICAg
ICByZXR1cm4gMDsKLQotICAgIHJldHVybiBXZWJDb3JlOjpnZXRWb2x1bWVGcmVlU2l6ZUZvclBh
dGgoY2FjaGVEaXIuZ2V0KCkpOwotfQotCi1zdGF0aWMgdWludDY0X3QgZ2V0TWVtb3J5U2l6ZSgp
Ci17Ci0gICAgc3RhdGljIHVpbnQ2NF90IGtEZWZhdWx0TWVtb3J5U2l6ZSA9IDUxMjsKLSNpZiAh
T1MoV0lORE9XUykKLSAgICBsb25nIHBhZ2VTaXplID0gc3lzY29uZihfU0NfUEFHRVNJWkUpOwot
ICAgIGlmIChwYWdlU2l6ZSA9PSAtMSkKLSAgICAgICAgcmV0dXJuIGtEZWZhdWx0TWVtb3J5U2l6
ZTsKLQotICAgIGxvbmcgcGh5c1BhZ2VzID0gc3lzY29uZihfU0NfUEhZU19QQUdFUyk7Ci0gICAg
aWYgKHBoeXNQYWdlcyA9PSAtMSkKLSAgICAgICAgcmV0dXJuIGtEZWZhdWx0TWVtb3J5U2l6ZTsK
LQotICAgIHJldHVybiAoKHBhZ2VTaXplIC8gMTAyNCkgKiBwaHlzUGFnZXMpIC8gMTAyNDsKLSNl
bHNlCi0gICAgLy8gRmFsbGJhY2sgdG8gZGVmYXVsdCBmb3Igb3RoZXIgcGxhdGZvcm1zLgotICAg
IHJldHVybiBrRGVmYXVsdE1lbW9yeVNpemU7Ci0jZW5kaWYKLX0KLQotdm9pZCBXZWJQcm9jZXNz
OjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQotewotICAgIHVu
c2lnbmVkIGNhY2hlVG90YWxDYXBhY2l0eSA9IDA7Ci0gICAgdW5zaWduZWQgY2FjaGVNaW5EZWFk
Q2FwYWNpdHkgPSAwOwotICAgIHVuc2lnbmVkIGNhY2hlTWF4RGVhZENhcGFjaXR5ID0gMDsKLSAg
ICBkb3VibGUgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCA9IDA7Ci0gICAgdW5zaWdu
ZWQgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOwotCi0gICAgdW5zaWduZWQgbG9uZyB1cmxDYWNoZU1l
bW9yeUNhcGFjaXR5ID0gMDsKLSAgICB1bnNpZ25lZCBsb25nIHVybENhY2hlRGlza0NhcGFjaXR5
ID0gMDsKLQotICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmRlZmF1bHRTZXNzaW9uKCk7Ci0gICAgU291cENhY2hlKiBjYWNoZSA9IFNPVVBfQ0FDSEUo
c291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9DQUNIRSkpOwotICAg
IHVpbnQ2NF90IGRpc2tGcmVlU2l6ZSA9IGdldENhY2hlRGlza0ZyZWVTaXplKGNhY2hlKSAvIDEw
MjQgLyAxMDI0OwotCi0gICAgdWludDY0X3QgbWVtU2l6ZSA9IGdldE1lbW9yeVNpemUoKTsKLSAg
ICBjYWxjdWxhdGVDYWNoZVNpemVzKGNhY2hlTW9kZWwsIG1lbVNpemUsIGRpc2tGcmVlU2l6ZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSwgY2FjaGVNaW5EZWFk
Q2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBkZWFkRGVjb2RlZERhdGFEZWxldGlvbklu
dGVydmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHksIHVybENh
Y2hlTWVtb3J5Q2FwYWNpdHksIHVybENhY2hlRGlza0NhcGFjaXR5KTsKLQotICAgIFdlYkNvcmU6
Om1lbW9yeUNhY2hlKCktPnNldENhcGFjaXRpZXMoY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hl
TWF4RGVhZENhcGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkpOwotICAgIFdlYkNvcmU6Om1lbW9y
eUNhY2hlKCktPnNldERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVhZERlY29kZWRE
YXRhRGVsZXRpb25JbnRlcnZhbCk7Ci0gICAgV2ViQ29yZTo6cGFnZUNhY2hlKCktPnNldENhcGFj
aXR5KHBhZ2VDYWNoZUNhcGFjaXR5KTsKLQotICAgIGlmICh1cmxDYWNoZURpc2tDYXBhY2l0eSA+
IHNvdXBfY2FjaGVfZ2V0X21heF9zaXplKGNhY2hlKSkKLSAgICAgICAgc291cF9jYWNoZV9zZXRf
bWF4X3NpemUoY2FjaGUsIHVybENhY2hlRGlza0NhcGFjaXR5KTsKLX0KLQotdm9pZCBXZWJQcm9j
ZXNzOjpwbGF0Zm9ybUNsZWFyUmVzb3VyY2VDYWNoZXMoUmVzb3VyY2VDYWNoZXNUb0NsZWFyIGNh
Y2hlc1RvQ2xlYXIpCi17Ci0gICAgaWYgKGNhY2hlc1RvQ2xlYXIgPT0gSW5NZW1vcnlSZXNvdXJj
ZUNhY2hlc09ubHkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9u
ID0gV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7Ci0gICAgc291cF9j
YWNoZV9jbGVhcihTT1VQX0NBQ0hFKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBT
T1VQX1RZUEVfQ0FDSEUpKSk7Ci19Ci0KLS8vIFRoaXMgZnVuY3Rpb24gaXMgYmFzZWQgb24gRXBp
cGhhbnkgY29kZSBpbiBlcGh5LWVtYmVkLXByZWZzLmMuCi1zdGF0aWMgQ1N0cmluZyBidWlsZEFj
Y2VwdExhbmd1YWdlcyhWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMpCi17Ci0gICAgLy8gSWdub3Jl
ICJDIiBsb2NhbGUuCi0gICAgc2l6ZV90IHBvc2l0aW9uID0gbGFuZ3VhZ2VzLmZpbmQoImMiKTsK
LSAgICBpZiAocG9zaXRpb24gIT0gbm90Rm91bmQpCi0gICAgICAgIGxhbmd1YWdlcy5yZW1vdmUo
cG9zaXRpb24pOwotCi0gICAgLy8gRmFsbGJhY2sgdG8gImVuIiBpZiB0aGUgbGlzdCBpcyBlbXB0
eS4KLSAgICBpZiAobGFuZ3VhZ2VzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuICJlbiI7Ci0K
LSAgICAvLyBDYWxjdWxhdGUgZGVsdGFzIGZvciB0aGUgcXVhbGl0eSB2YWx1ZXMuCi0gICAgaW50
IGRlbHRhOwotICAgIGlmIChsYW5ndWFnZXMuc2l6ZSgpIDwgMTApCi0gICAgICAgIGRlbHRhID0g
MTA7Ci0gICAgZWxzZSBpZiAobGFuZ3VhZ2VzLnNpemUoKSA8IDIwKQotICAgICAgICBkZWx0YSA9
IDU7Ci0gICAgZWxzZQotICAgICAgICBkZWx0YSA9IDE7Ci0KLSAgICAvLyBTZXQgcXVhbGl0eSB2
YWx1ZXMgZm9yIGVhY2ggbGFuZ3VhZ2UuCi0gICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGFuZ3VhZ2VzLnNpemUoKTsgKytpKSB7Ci0gICAgICAg
IGlmIChpKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7Ci0KLSAgICAgICAgYnVp
bGRlci5hcHBlbmQobGFuZ3VhZ2VzW2ldKTsKLQotICAgICAgICBpbnQgcXVhbGl0eSA9IDEwMCAt
IGkgKiBkZWx0YTsKLSAgICAgICAgaWYgKHF1YWxpdHkgPiAwICYmIHF1YWxpdHkgPCAxMDApIHsK
LSAgICAgICAgICAgIGNoYXIgYnVmZmVyWzhdOwotICAgICAgICAgICAgZ19hc2NpaV9mb3JtYXRk
KGJ1ZmZlciwgOCwgIiUuMmYiLCBxdWFsaXR5IC8gMTAwLjApOwotICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIjtxPSVzIiwgYnVmZmVyKSk7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKLX0KLQotc3RhdGlj
IHZvaWQgc2V0U291cFNlc3Npb25BY2NlcHRMYW5ndWFnZShWZWN0b3I8U3RyaW5nPiBsYW5ndWFn
ZXMpCi17Ci0gICAgZ19vYmplY3Rfc2V0KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0
U2Vzc2lvbigpLCAiYWNjZXB0LWxhbmd1YWdlIiwgYnVpbGRBY2NlcHRMYW5ndWFnZXMobGFuZ3Vh
Z2VzKS5kYXRhKCksIE5VTEwpOwotfQotCi1zdGF0aWMgdm9pZCBsYW5ndWFnZUNoYW5nZWQodm9p
ZCopCi17Ci0gICAgc2V0U291cFNlc3Npb25BY2NlcHRMYW5ndWFnZShXZWJDb3JlOjp1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCkpOwotfQotCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikKLXsKLSAgICBpZiAoIXBhcmFtZXRlcnMu
bGFuZ3VhZ2VzLmlzRW1wdHkoKSkKLSAgICAgICAgc2V0U291cFNlc3Npb25BY2NlcHRMYW5ndWFn
ZShwYXJhbWV0ZXJzLmxhbmd1YWdlcyk7Ci0KLSAgICBXZWJDb3JlOjphZGRMYW5ndWFnZUNoYW5n
ZU9ic2VydmVyKHRoaXMsIGxhbmd1YWdlQ2hhbmdlZCk7Ci19Ci0KLXZvaWQgV2ViUHJvY2Vzczo6
cGxhdGZvcm1UZXJtaW5hdGUoKQotewotICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7Ci0gICAgU291cENhY2hlKiBjYWNo
ZSA9IFNPVVBfQ0FDSEUoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQ
RV9DQUNIRSkpOwotICAgIHNvdXBfY2FjaGVfZmx1c2goY2FjaGUpOwotICAgIHNvdXBfY2FjaGVf
ZHVtcChjYWNoZSk7Ci0KLSAgICBXZWJDb3JlOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVy
KHRoaXMpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjM2NTIzNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCkBAIC0wLDAgKzEsMTgyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMSBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIE1PVE9ST0xBIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworI2RlZmluZSBMSUJTT1VQX1VTRV9VTlNUQUJM
RV9SRVFVRVNUX0FQSQorCisjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGFu
Z3VhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlQ2FjaGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Cisj
aW5jbHVkZSA8bGlic291cC9zb3VwLWNhY2hlLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093
blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHVpbnQ2NF90IGdldENhY2hlRGlza0ZyZWVTaXpl
KFNvdXBDYWNoZSogY2FjaGUpCit7CisgICAgQVNTRVJUKGNhY2hlKTsKKworICAgIEdPd25QdHI8
Y2hhcj4gY2FjaGVEaXI7CisgICAgZ19vYmplY3RfZ2V0KEdfT0JKRUNUKGNhY2hlKSwgImNhY2hl
LWRpciIsICZjYWNoZURpci5vdXRQdHIoKSwgTlVMTCk7CisgICAgaWYgKCFjYWNoZURpcikKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gV2ViQ29yZTo6Z2V0Vm9sdW1lRnJlZVNpemVG
b3JQYXRoKGNhY2hlRGlyLmdldCgpKTsKK30KKworc3RhdGljIHVpbnQ2NF90IGdldE1lbW9yeVNp
emUoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBrRGVmYXVsdE1lbW9yeVNpemUgPSA1MTI7Cisj
aWYgIU9TKFdJTkRPV1MpCisgICAgbG9uZyBwYWdlU2l6ZSA9IHN5c2NvbmYoX1NDX1BBR0VTSVpF
KTsKKyAgICBpZiAocGFnZVNpemUgPT0gLTEpCisgICAgICAgIHJldHVybiBrRGVmYXVsdE1lbW9y
eVNpemU7CisKKyAgICBsb25nIHBoeXNQYWdlcyA9IHN5c2NvbmYoX1NDX1BIWVNfUEFHRVMpOwor
ICAgIGlmIChwaHlzUGFnZXMgPT0gLTEpCisgICAgICAgIHJldHVybiBrRGVmYXVsdE1lbW9yeVNp
emU7CisKKyAgICByZXR1cm4gKChwYWdlU2l6ZSAvIDEwMjQpICogcGh5c1BhZ2VzKSAvIDEwMjQ7
CisjZWxzZQorICAgIC8vIEZhbGxiYWNrIHRvIGRlZmF1bHQgZm9yIG90aGVyIHBsYXRmb3Jtcy4K
KyAgICByZXR1cm4ga0RlZmF1bHRNZW1vcnlTaXplOworI2VuZGlmCit9CisKK3ZvaWQgV2ViUHJv
Y2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwgY2FjaGVNb2RlbCkKK3sKKyAg
ICB1bnNpZ25lZCBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAwOworICAgIHVuc2lnbmVkIGNhY2hlTWlu
RGVhZENhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBjYWNoZU1heERlYWRDYXBhY2l0eSA9IDA7
CisgICAgZG91YmxlIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSAwOworICAgIHVu
c2lnbmVkIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMDsKKworICAgIHVuc2lnbmVkIGxvbmcgdXJsQ2Fj
aGVNZW1vcnlDYXBhY2l0eSA9IDA7CisgICAgdW5zaWduZWQgbG9uZyB1cmxDYWNoZURpc2tDYXBh
Y2l0eSA9IDA7CisKKyAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOworICAgIFNvdXBDYWNoZSogY2FjaGUgPSBTT1VQX0NB
Q0hFKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZUEVfQ0FDSEUpKTsK
KyAgICB1aW50NjRfdCBkaXNrRnJlZVNpemUgPSBnZXRDYWNoZURpc2tGcmVlU2l6ZShjYWNoZSkg
LyAxMDI0IC8gMTAyNDsKKworICAgIHVpbnQ2NF90IG1lbVNpemUgPSBnZXRNZW1vcnlTaXplKCk7
CisgICAgY2FsY3VsYXRlQ2FjaGVTaXplcyhjYWNoZU1vZGVsLCBtZW1TaXplLCBkaXNrRnJlZVNp
emUsCisgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHksIGNhY2hlTWlu
RGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgZGVhZERlY29kZWREYXRhRGVsZXRp
b25JbnRlcnZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5LCB1
cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7CisKKyAgICBXZWJD
b3JlOjptZW1vcnlDYWNoZSgpLT5zZXRDYXBhY2l0aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBj
YWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFjaXR5KTsKKyAgICBXZWJDb3JlOjpt
ZW1vcnlDYWNoZSgpLT5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRlYWREZWNv
ZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOworICAgIFdlYkNvcmU6OnBhZ2VDYWNoZSgpLT5zZXRD
YXBhY2l0eShwYWdlQ2FjaGVDYXBhY2l0eSk7CisKKyAgICBpZiAodXJsQ2FjaGVEaXNrQ2FwYWNp
dHkgPiBzb3VwX2NhY2hlX2dldF9tYXhfc2l6ZShjYWNoZSkpCisgICAgICAgIHNvdXBfY2FjaGVf
c2V0X21heF9zaXplKGNhY2hlLCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7Cit9CisKK3ZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKFJlc291cmNlQ2FjaGVzVG9DbGVh
ciBjYWNoZXNUb0NsZWFyKQoreworICAgIGlmIChjYWNoZXNUb0NsZWFyID09IEluTWVtb3J5UmVz
b3VyY2VDYWNoZXNPbmx5KQorICAgICAgICByZXR1cm47CisKKyAgICBTb3VwU2Vzc2lvbiogc2Vz
c2lvbiA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOworICAgIHNv
dXBfY2FjaGVfY2xlYXIoU09VUF9DQUNIRShzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lv
biwgU09VUF9UWVBFX0NBQ0hFKSkpOworfQorCisvLyBUaGlzIGZ1bmN0aW9uIGlzIGJhc2VkIG9u
IEVwaXBoYW55IGNvZGUgaW4gZXBoeS1lbWJlZC1wcmVmcy5jLgorc3RhdGljIENTdHJpbmcgYnVp
bGRBY2NlcHRMYW5ndWFnZXMoVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzKQoreworICAgIC8vIEln
bm9yZSAiQyIgbG9jYWxlLgorICAgIHNpemVfdCBwb3NpdGlvbiA9IGxhbmd1YWdlcy5maW5kKCJj
Iik7CisgICAgaWYgKHBvc2l0aW9uICE9IG5vdEZvdW5kKQorICAgICAgICBsYW5ndWFnZXMucmVt
b3ZlKHBvc2l0aW9uKTsKKworICAgIC8vIEZhbGxiYWNrIHRvICJlbiIgaWYgdGhlIGxpc3QgaXMg
ZW1wdHkuCisgICAgaWYgKGxhbmd1YWdlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAiZW4i
OworCisgICAgLy8gQ2FsY3VsYXRlIGRlbHRhcyBmb3IgdGhlIHF1YWxpdHkgdmFsdWVzLgorICAg
IGludCBkZWx0YTsKKyAgICBpZiAobGFuZ3VhZ2VzLnNpemUoKSA8IDEwKQorICAgICAgICBkZWx0
YSA9IDEwOworICAgIGVsc2UgaWYgKGxhbmd1YWdlcy5zaXplKCkgPCAyMCkKKyAgICAgICAgZGVs
dGEgPSA1OworICAgIGVsc2UKKyAgICAgICAgZGVsdGEgPSAxOworCisgICAgLy8gU2V0IHF1YWxp
dHkgdmFsdWVzIGZvciBlYWNoIGxhbmd1YWdlLgorICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxhbmd1YWdlcy5zaXplKCk7ICsraSkgeworICAg
ICAgICBpZiAoaSkKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsICIpOworCisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGxhbmd1YWdlc1tpXSk7CisKKyAgICAgICAgaW50IHF1YWxpdHkgPSAx
MDAgLSBpICogZGVsdGE7CisgICAgICAgIGlmIChxdWFsaXR5ID4gMCAmJiBxdWFsaXR5IDwgMTAw
KSB7CisgICAgICAgICAgICBjaGFyIGJ1ZmZlcls4XTsKKyAgICAgICAgICAgIGdfYXNjaWlfZm9y
bWF0ZChidWZmZXIsIDgsICIlLjJmIiwgcXVhbGl0eSAvIDEwMC4wKTsKKyAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCI7cT0lcyIsIGJ1ZmZlcikpOworICAgICAgICB9
CisgICAgfQorCisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7Cit9CisKK3N0
YXRpYyB2b2lkIHNldFNvdXBTZXNzaW9uQWNjZXB0TGFuZ3VhZ2UoVmVjdG9yPFN0cmluZz4gbGFu
Z3VhZ2VzKQoreworICAgIGdfb2JqZWN0X3NldChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVm
YXVsdFNlc3Npb24oKSwgImFjY2VwdC1sYW5ndWFnZSIsIGJ1aWxkQWNjZXB0TGFuZ3VhZ2VzKGxh
bmd1YWdlcykuZGF0YSgpLCBOVUxMKTsKK30KKworc3RhdGljIHZvaWQgbGFuZ3VhZ2VDaGFuZ2Vk
KHZvaWQqKQoreworICAgIHNldFNvdXBTZXNzaW9uQWNjZXB0TGFuZ3VhZ2UoV2ViQ29yZTo6dXNl
clByZWZlcnJlZExhbmd1YWdlcygpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopCit7CisgICAgaWYgKCFwYXJhbWV0
ZXJzLmxhbmd1YWdlcy5pc0VtcHR5KCkpCisgICAgICAgIHNldFNvdXBTZXNzaW9uQWNjZXB0TGFu
Z3VhZ2UocGFyYW1ldGVycy5sYW5ndWFnZXMpOworCisgICAgV2ViQ29yZTo6YWRkTGFuZ3VhZ2VD
aGFuZ2VPYnNlcnZlcih0aGlzLCBsYW5ndWFnZUNoYW5nZWQpOworfQorCit2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtVGVybWluYXRlKCkKK3sKKyAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOworICAgIFNvdXBDYWNoZSog
Y2FjaGUgPSBTT1VQX0NBQ0hFKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQ
X1RZUEVfQ0FDSEUpKTsKKyAgICBzb3VwX2NhY2hlX2ZsdXNoKGNhY2hlKTsKKyAgICBzb3VwX2Nh
Y2hlX2R1bXAoY2FjaGUpOworCisgICAgV2ViQ29yZTo6cmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNl
cnZlcih0aGlzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>