<?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>119702</bug_id>
          
          <creation_ts>2013-08-12 15:29:52 -0700</creation_ts>
          <short_desc>Stop making unnecessary copy of CodeBlock Identifier Vector</short_desc>
          <delta_ts>2013-08-12 15:48:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>916427</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-08-12 15:29:52 -0700</bug_when>
    <thetext>Stop making unnecessary copy of CodeBlock Identifier Vector</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916429</commentid>
    <comment_count>1</comment_count>
      <attachid>208567</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-08-12 15:32:48 -0700</bug_when>
    <thetext>Created attachment 208567
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916433</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-08-12 15:38:06 -0700</bug_when>
    <thetext>Committed r153962: &lt;http://trac.webkit.org/changeset/153962&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916436</commentid>
    <comment_count>3</comment_count>
      <attachid>208567</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-08-12 15:48:07 -0700</bug_when>
    <thetext>Comment on attachment 208567
Patch

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

&gt; Source/JavaScriptCore/bytecode/CodeBlock.h:1090
&gt; +    Vector&lt;Identifier&gt; m_additionalIdentifiers;

Can we call this m_dfgIdentifiers? Would be even better to put this in rare data, since most code blocks are not DFG compiled.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208567</attachid>
            <date>2013-08-12 15:32:48 -0700</date>
            <delta_ts>2013-08-12 15:48:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119702-20130812153545.patch</filename>
            <type>text/plain</type>
            <size>26988</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzOTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MTc2NmYzMmVhODQ0ZjlhZDcyMWJiZTQ4M2VjYjA0YTJlYjYzNTUyLi42MTI0NDJlNzc2N2U4MjYy
ZmExMmI0ZWJiYzNkOTkzNjU5NmMxMzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAxMy0wOC0xMiAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFN0b3AgbWFraW5nIHVubmVjZXNzYXJ5IGNvcHkgb2YgQ29kZUJsb2NrIElkZW50
aWZpZXIgVmVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTk3MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNYWtlIENvZGVCbG9jayBzaW1wbHkgdXNlIGEgc2VwYXJhdGUgVmVjdG9yIGZvciBhZGRp
dGlvbmFsIElkZW50aWZpZXJzCisgICAgICAgIGFuZCB1c2UgdGhlIFVubGlua2VkQ29kZUJsb2Nr
IGZvciB0aGUgaW5pdGlhbCBzZXQgb2YgaWRlbnRpZmllcnMuCisKKyAgICAgICAgKiBieXRlY29k
ZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnByaW50R2V0QnlJZE9w
KToKKyAgICAgICAgKEpTQzo6ZHVtcFN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OmR1bXBDaGFp
bik6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJpbnRHZXRCeUlkQ2FjaGVTdGF0dXMpOgor
ICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnByaW50UHV0QnlJZE9wKToKKyAgICAgICAgKEpTQzo6
Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OkNvZGVC
bG9jayk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c2hyaW5rVG9GaXQpOgorICAgICAgICAq
IGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Om51bWJlck9m
SWRlbnRpZmllcnMpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Om51bWJlck9mQWRkaXRpb25h
bElkZW50aWZpZXJzKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjphZGRBZGRpdGlvbmFsSWRl
bnRpZmllcik6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6aWRlbnRpZmllcik6CisgICAgICAg
ICogZGZnL0RGR0Rlc2lyZWRJZGVudGlmaWVycy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RGVz
aXJlZElkZW50aWZpZXJzOjpyZWFsbHlBZGQpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAg
ICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3Bf
Z2V0X2FyZ3VtZW50c19sZW5ndGgpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5j
cHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQpOgorICAgICAgICAoSlND
OjpKSVQ6OmNvbXBpbGVHZXRCeUlkSG90UGF0aCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNs
b3dfb3BfZ2V0X2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlR2V0QnlJZFNsb3dD
YXNlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9wdXRfYnlfaWQpOgorICAgICAg
ICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUdldEJ5SWRIb3RQ
YXRoKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlR2V0QnlJZFNsb3dDYXNlKToKKyAgICAg
ICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElP
Tik6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpM
TEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorCiAyMDEzLTA4LTA4ICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXN0b3JpbmcgdXNlIG9mIFN0YWNrSXRlcmF0
b3IgaW5zdGVhZCBvZiBJbnRlcnByZXRlcjo6Z2V0U3RhY2t0cmFjZSgpLgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCAyZDdmMjdiMDM4MzRkMmFj
M2ZlNGVhMDc4OTZiM2UwMmIzZjljYTBhLi40ZTcwMjJhY2Q5ZGM5Y2Y2OWQwNGMzODgyY2MxNDVm
NjA2ZGQ3MDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcApAQCAtMjgzLDEyICsyODMsMTIgQEAgdm9pZCBDb2RlQmxvY2s6OnByaW50R2V0QnlJZE9w
KFByaW50U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywgaW50IGxvY2F0aW9uLAogICAgIGlu
dCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5k
OwogICAgIGludCBpZDAgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICBvdXQucHJpbnRmKCJbJTRk
XSAlc1x0ICVzLCAlcywgJXMiLCBsb2NhdGlvbiwgb3AsIHJlZ2lzdGVyTmFtZShyMCkuZGF0YSgp
LCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSwgaWROYW1lKGlkMCwgbV9pZGVudGlmaWVyc1tpZDBd
KS5kYXRhKCkpOworICAgIG91dC5wcmludGYoIlslNGRdICVzXHQgJXMsICVzLCAlcyIsIGxvY2F0
aW9uLCBvcCwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgp
LCBpZE5hbWUoaWQwLCBpZGVudGlmaWVyKGlkMCkpLmRhdGEoKSk7CiAgICAgaXQgKz0gNDsgLy8g
SW5jcmVtZW50IHVwIHRvIHRoZSB2YWx1ZSBwcm9maWxlci4KIH0KIAogI2lmIEVOQUJMRShKSVQp
IHx8IEVOQUJMRShMTElOVCkgLy8gdW51c2VkIGluIHNvbWUgY29uZmlndXJhdGlvbnMKLXN0YXRp
YyB2b2lkIGR1bXBTdHJ1Y3R1cmUoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgY2hhciogbmFtZSwg
RXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSWRlbnRpZmllciYgaWRlbnQp
CitzdGF0aWMgdm9pZCBkdW1wU3RydWN0dXJlKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IGNoYXIq
IG5hbWUsIEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50
aWZpZXImIGlkZW50KQogewogICAgIGlmICghc3RydWN0dXJlKQogICAgICAgICByZXR1cm47CkBA
IC0zMDIsNyArMzAyLDcgQEAgc3RhdGljIHZvaWQgZHVtcFN0cnVjdHVyZShQcmludFN0cmVhbSYg
b3V0LCBjb25zdCBjaGFyKiBuYW1lLCBFeGVjU3RhdGUqIGV4ZWMsIFMKICNlbmRpZgogCiAjaWYg
RU5BQkxFKEpJVCkgLy8gdW51c2VkIHdoZW4gbm90IEVOQUJMRShKSVQpLCBsZWFkaW5nIHRvIHNp
bGx5IHdhcm5pbmdzCi1zdGF0aWMgdm9pZCBkdW1wQ2hhaW4oUHJpbnRTdHJlYW0mIG91dCwgRXhl
Y1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4sIElkZW50aWZpZXImIGlkZW50KQor
c3RhdGljIHZvaWQgZHVtcENoYWluKFByaW50U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywg
U3RydWN0dXJlQ2hhaW4qIGNoYWluLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCkKIHsKICAgICBv
dXQucHJpbnRmKCJjaGFpbiA9ICVwOiBbIiwgY2hhaW4pOwogICAgIGJvb2wgZmlyc3QgPSB0cnVl
OwpAQCAtMzIzLDcgKzMyMyw3IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludEdldEJ5SWRDYWNoZVN0
YXR1cyhQcmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4ZWMsIGludCBsCiB7CiAgICAgSW5z
dHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gaW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGxvY2F0aW9u
OwogCi0gICAgSWRlbnRpZmllciYgaWRlbnQgPSBpZGVudGlmaWVyKGluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZCk7CisgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBpZGVudGlmaWVyKGluc3Ry
dWN0aW9uWzNdLnUub3BlcmFuZCk7CiAgICAgCiAgICAgVU5VU0VEX1BBUkFNKGlkZW50KTsgLy8g
dGVsbCB0aGUgY29tcGlsZXIgdG8gc2h1dCB1cCBpbiBjZXJ0YWluIHBsYXRmb3JtIGNvbmZpZ3Vy
YXRpb25zLgogICAgIApAQCAtNDcwLDcgKzQ3MCw3IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludFB1
dEJ5SWRPcChQcmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqLCBpbnQgbG9jYXRpb24sIGNvbnN0
CiAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgaW50IGlkMCA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgIG91dC5wcmlu
dGYoIlslNGRdICVzXHQgJXMsICVzLCAlcyIsIGxvY2F0aW9uLCBvcCwgcmVnaXN0ZXJOYW1lKHIw
KS5kYXRhKCksIGlkTmFtZShpZDAsIG1faWRlbnRpZmllcnNbaWQwXSkuZGF0YSgpLCByZWdpc3Rl
ck5hbWUocjEpLmRhdGEoKSk7CisgICAgb3V0LnByaW50ZigiWyU0ZF0gJXNcdCAlcywgJXMsICVz
IiwgbG9jYXRpb24sIG9wLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgaWROYW1lKGlkMCwgaWRl
bnRpZmllcihpZDApKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpKTsKICAgICBpdCAr
PSA1OwogfQogCkBAIC01MTAsMTMgKzUxMCwxMyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVj
b2RlKFByaW50U3RyZWFtJiBvdXQpCiAgICAgZm9yIChjb25zdCBJbnN0cnVjdGlvbiogaXQgPSBi
ZWdpbjsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICBkdW1wQnl0ZWNvZGUob3V0LCBleGVjLCBi
ZWdpbiwgaXQpOwogCi0gICAgaWYgKCFtX2lkZW50aWZpZXJzLmlzRW1wdHkoKSkgeworICAgIGlm
IChudW1iZXJPZklkZW50aWZpZXJzKCkpIHsKICAgICAgICAgb3V0LnByaW50ZigiXG5JZGVudGlm
aWVyczpcbiIpOwogICAgICAgICBzaXplX3QgaSA9IDA7CiAgICAgICAgIGRvIHsKLSAgICAgICAg
ICAgIG91dC5wcmludGYoIiAgaWQldSA9ICVzXG4iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaSks
IG1faWRlbnRpZmllcnNbaV0uc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBv
dXQucHJpbnRmKCIgIGlkJXUgPSAlc1xuIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGkpLCBpZGVu
dGlmaWVyKGkpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgKytpOwotICAg
ICAgICB9IHdoaWxlIChpICE9IG1faWRlbnRpZmllcnMuc2l6ZSgpKTsKKyAgICAgICAgfSB3aGls
ZSAoaSAhPSBudW1iZXJPZklkZW50aWZpZXJzKCkpOwogICAgIH0KIAogICAgIGlmICghbV9jb25z
dGFudFJlZ2lzdGVycy5pc0VtcHR5KCkpIHsKQEAgLTk3MiwxNCArOTcyLDE0IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0mIG91dCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJbnN0cnVjdGlvCiAgICAgICAgICAgICBpbnQgaWQwID0gKCsraXQpLT51Lm9wZXJhbmQ7
CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGlu
dCByMiA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0g
cHV0X2dldHRlcl9zZXR0ZXJcdCAlcywgJXMsICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5h
bWUocjApLmRhdGEoKSwgaWROYW1lKGlkMCwgbV9pZGVudGlmaWVyc1tpZDBdKS5kYXRhKCksIHJl
Z2lzdGVyTmFtZShyMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjIpLmRhdGEoKSk7CisgICAgICAg
ICAgICBvdXQucHJpbnRmKCJbJTRkXSBwdXRfZ2V0dGVyX3NldHRlclx0ICVzLCAlcywgJXMsICVz
IiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShyMCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBpZGVudGlm
aWVyKGlkMCkpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShy
MikuZGF0YSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfZGVsX2J5X2lkOiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsK
ICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50
IGlkMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0g
ZGVsX2J5X2lkXHQgJXMsICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUocjApLmRhdGEo
KSwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCksIGlkTmFtZShpZDAsIG1faWRlbnRpZmllcnNbaWQw
XSkuZGF0YSgpKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGRlbF9ieV9pZFx0ICVz
LCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFt
ZShyMSkuZGF0YSgpLCBpZE5hbWUoaWQwLCBpZGVudGlmaWVyKGlkMCkpLmRhdGEoKSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2dldF9ieV92YWw6IHsK
QEAgLTEyNDYsNyArMTI0Niw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRT
dHJlYW0mIG91dCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJbnN0cnVjdGlvCiAgICAgICAgICAg
ICBpbnQgaWQwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytp
dCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSAoKytpdCkt
PnUub3BlcmFuZDsKLSAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHB1c2hfbmFtZV9zY29w
ZSBcdCVzLCAlcywgJXUiLCBsb2NhdGlvbiwgaWROYW1lKGlkMCwgbV9pZGVudGlmaWVyc1tpZDBd
KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpLCBhdHRyaWJ1dGVzKTsKKyAgICAgICAg
ICAgIG91dC5wcmludGYoIlslNGRdIHB1c2hfbmFtZV9zY29wZSBcdCVzLCAlcywgJXUiLCBsb2Nh
dGlvbiwgaWROYW1lKGlkMCwgaWRlbnRpZmllcihpZDApKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShy
MSkuZGF0YSgpLCBhdHRyaWJ1dGVzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2Ugb3BfY2F0Y2g6IHsKQEAgLTEyOTMsNyArMTI5Myw3IEBAIHZvaWQgQ29kZUJs
b2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0mIG91dCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJbnN0cnVjdGlvCiAgICAgICAgICAgICBpbnQgaWQwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICArK2l0OyAvLyBSZXNvbHZlVHlwZQogICAgICAgICAgICAgKytpdDsgLy8gZGVw
dGgKLSAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHJlc29sdmVfc2NvcGVcdCAlcywgJXMi
LCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIGlkTmFtZShpZDAsIG1faWRlbnRp
ZmllcnNbaWQwXSkuZGF0YSgpKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHJlc29s
dmVfc2NvcGVcdCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIGlk
TmFtZShpZDAsIGlkZW50aWZpZXIoaWQwKSkuZGF0YSgpKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2Zyb21fc2NvcGU6IHsKQEAgLTEzMDQsNyAr
MTMwNCw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0mIG91dCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJbnN0cnVjdGlvCiAgICAgICAgICAgICArK2l0OyAvLyBT
dHJ1Y3R1cmUKICAgICAgICAgICAgICsraXQ7IC8vIE9wZXJhbmQKICAgICAgICAgICAgICsraXQ7
IC8vIFNraXAgdmFsdWUgcHJvZmlsZS4KLSAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGdl
dF9mcm9tX3Njb3BlXHQgJXMsICVzLCAlcywgJWQiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKHIw
KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpLCBpZE5hbWUoaWQwLCBtX2lkZW50aWZp
ZXJzW2lkMF0pLmRhdGEoKSwgcmVzb2x2ZU1vZGVBbmRUeXBlKTsKKyAgICAgICAgICAgIG91dC5w
cmludGYoIlslNGRdIGdldF9mcm9tX3Njb3BlXHQgJXMsICVzLCAlcywgJWQiLCBsb2NhdGlvbiwg
cmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpLCBpZE5hbWUo
aWQwLCBpZGVudGlmaWVyKGlkMCkpLmRhdGEoKSwgcmVzb2x2ZU1vZGVBbmRUeXBlKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X3RvX3Njb3BlOiB7
CkBAIC0xMzE0LDcgKzEzMTQsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50
U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSW5zdHJ1Y3RpbwogICAgICAgICAg
ICAgaW50IHJlc29sdmVNb2RlQW5kVHlwZSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAg
ICAgKytpdDsgLy8gU3RydWN0dXJlCiAgICAgICAgICAgICArK2l0OyAvLyBPcGVyYW5kCi0gICAg
ICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBwdXRfdG9fc2NvcGVcdCAlcywgJXMsICVzLCAlZCIs
IGxvY2F0aW9uLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgaWROYW1lKGlkMCwgbV9pZGVudGlm
aWVyc1tpZDBdKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpLCByZXNvbHZlTW9kZUFu
ZFR5cGUpOworICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcHV0X3RvX3Njb3BlXHQgJXMs
ICVzLCAlcywgJWQiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIGlkTmFtZShp
ZDAsIGlkZW50aWZpZXIoaWQwKSkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSwgcmVz
b2x2ZU1vZGVBbmRUeXBlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAjaWYgRU5B
QkxFKExMSU5UX0NfTE9PUCkKQEAgLTE0OTEsNyArMTQ5MSw3IEBAIENvZGVCbG9jazo6Q29kZUJs
b2NrKENvcHlQYXJzZWRCbG9ja1RhZywgQ29kZUJsb2NrJiBvdGhlcikKICAgICAsIG1fc291cmNl
T2Zmc2V0KG90aGVyLm1fc291cmNlT2Zmc2V0KQogICAgICwgbV9maXJzdExpbmVDb2x1bW5PZmZz
ZXQob3RoZXIubV9maXJzdExpbmVDb2x1bW5PZmZzZXQpCiAgICAgLCBtX2NvZGVUeXBlKG90aGVy
Lm1fY29kZVR5cGUpCi0gICAgLCBtX2lkZW50aWZpZXJzKG90aGVyLm1faWRlbnRpZmllcnMpCisg
ICAgLCBtX2FkZGl0aW9uYWxJZGVudGlmaWVycyhvdGhlci5tX2FkZGl0aW9uYWxJZGVudGlmaWVy
cykKICAgICAsIG1fY29uc3RhbnRSZWdpc3RlcnMob3RoZXIubV9jb25zdGFudFJlZ2lzdGVycykK
ICAgICAsIG1fZnVuY3Rpb25EZWNscyhvdGhlci5tX2Z1bmN0aW9uRGVjbHMpCiAgICAgLCBtX2Z1
bmN0aW9uRXhwcnMob3RoZXIubV9mdW5jdGlvbkV4cHJzKQpAQCAtMTU1MSw3ICsxNTUxLDcgQEAg
Q29kZUJsb2NrOjpDb2RlQmxvY2soU2NyaXB0RXhlY3V0YWJsZSogb3duZXJFeGVjdXRhYmxlLCBV
bmxpbmtlZENvZGVCbG9jayogdW5saW4KICNpZiBEVU1QX0NPREVfQkxPQ0tfU1RBVElTVElDUwog
ICAgIGxpdmVDb2RlQmxvY2tTZXQuYWRkKHRoaXMpOwogI2VuZGlmCi0gICAgc2V0SWRlbnRpZmll
cnModW5saW5rZWRDb2RlQmxvY2stPmlkZW50aWZpZXJzKCkpOworCiAgICAgc2V0Q29uc3RhbnRS
ZWdpc3RlcnModW5saW5rZWRDb2RlQmxvY2stPmNvbnN0YW50UmVnaXN0ZXJzKCkpOwogICAgIGlm
ICh1bmxpbmtlZENvZGVCbG9jay0+dXNlc0dsb2JhbE9iamVjdCgpKQogICAgICAgICBtX2NvbnN0
YW50UmVnaXN0ZXJzW3VubGlua2VkQ29kZUJsb2NrLT5nbG9iYWxPYmplY3RSZWdpc3RlcigpXS5z
ZXQoKm1fdm0sIG93bmVyRXhlY3V0YWJsZSwgbV9nbG9iYWxPYmplY3QuZ2V0KCkpOwpAQCAtMTc2
NCw3ICsxNzY0LDcgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soU2NyaXB0RXhlY3V0YWJsZSogb3du
ZXJFeGVjdXRhYmxlLCBVbmxpbmtlZENvZGVCbG9jayogdW5saW4KICAgICAgICAgfQogCiAgICAg
ICAgIGNhc2Ugb3BfcmVzb2x2ZV9zY29wZTogewotICAgICAgICAgICAgSWRlbnRpZmllciYgaWRl
bnQgPSBpZGVudGlmaWVyKHBjW2kgKyAyXS51Lm9wZXJhbmQpOworICAgICAgICAgICAgY29uc3Qg
SWRlbnRpZmllciYgaWRlbnQgPSBpZGVudGlmaWVyKHBjW2kgKyAyXS51Lm9wZXJhbmQpOwogICAg
ICAgICAgICAgUmVzb2x2ZVR5cGUgdHlwZSA9IHN0YXRpY19jYXN0PFJlc29sdmVUeXBlPihwY1tp
ICsgM10udS5vcGVyYW5kKTsKIAogICAgICAgICAgICAgUmVzb2x2ZU9wIG9wID0gSlNTY29wZTo6
YWJzdHJhY3RSZXNvbHZlKG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIHNjb3BlLCBpZGVu
dCwgR2V0LCB0eXBlKTsKQEAgLTE3ODIsNyArMTc4Miw3IEBAIENvZGVCbG9jazo6Q29kZUJsb2Nr
KFNjcmlwdEV4ZWN1dGFibGUqIG93bmVyRXhlY3V0YWJsZSwgVW5saW5rZWRDb2RlQmxvY2sqIHVu
bGluCiAjZW5kaWYKIAogICAgICAgICAgICAgLy8gZ2V0X2Zyb21fc2NvcGUgZHN0LCBzY29wZSwg
aWQsIFJlc29sdmVNb2RlQW5kVHlwZSwgU3RydWN0dXJlLCBPcGVyYW5kCi0gICAgICAgICAgICBJ
ZGVudGlmaWVyJiBpZGVudCA9IGlkZW50aWZpZXIocGNbaSArIDNdLnUub3BlcmFuZCk7CisgICAg
ICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IGlkZW50aWZpZXIocGNbaSArIDNdLnUu
b3BlcmFuZCk7CiAgICAgICAgICAgICBSZXNvbHZlTW9kZUFuZFR5cGUgbW9kZUFuZFR5cGUgPSBS
ZXNvbHZlTW9kZUFuZFR5cGUocGNbaSArIDRdLnUub3BlcmFuZCk7CiAgICAgICAgICAgICBSZXNv
bHZlT3Agb3AgPSBKU1Njb3BlOjphYnN0cmFjdFJlc29sdmUobV9nbG9iYWxPYmplY3QtPmdsb2Jh
bEV4ZWMoKSwgc2NvcGUsIGlkZW50LCBHZXQsIG1vZGVBbmRUeXBlLnR5cGUoKSk7CiAKQEAgLTE3
OTUsNyArMTc5NSw3IEBAIENvZGVCbG9jazo6Q29kZUJsb2NrKFNjcmlwdEV4ZWN1dGFibGUqIG93
bmVyRXhlY3V0YWJsZSwgVW5saW5rZWRDb2RlQmxvY2sqIHVubGluCiAKICAgICAgICAgY2FzZSBv
cF9wdXRfdG9fc2NvcGU6IHsKICAgICAgICAgICAgIC8vIHB1dF90b19zY29wZSBzY29wZSwgaWQs
IHZhbHVlLCBSZXNvbHZlTW9kZUFuZFR5cGUsIFN0cnVjdHVyZSwgT3BlcmFuZAotICAgICAgICAg
ICAgSWRlbnRpZmllciYgaWRlbnQgPSBpZGVudGlmaWVyKHBjW2kgKyAyXS51Lm9wZXJhbmQpOwor
ICAgICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBpZGVudGlmaWVyKHBjW2kgKyAy
XS51Lm9wZXJhbmQpOwogICAgICAgICAgICAgUmVzb2x2ZU1vZGVBbmRUeXBlIG1vZGVBbmRUeXBl
ID0gUmVzb2x2ZU1vZGVBbmRUeXBlKHBjW2kgKyA0XS51Lm9wZXJhbmQpOwogICAgICAgICAgICAg
UmVzb2x2ZU9wIG9wID0gSlNTY29wZTo6YWJzdHJhY3RSZXNvbHZlKG1fZ2xvYmFsT2JqZWN0LT5n
bG9iYWxFeGVjKCksIHNjb3BlLCBpZGVudCwgUHV0LCBtb2RlQW5kVHlwZS50eXBlKCkpOwogCkBA
IC0yNDU0LDcgKzI0NTQsNyBAQCB2b2lkIENvZGVCbG9jazo6c2hyaW5rVG9GaXQoU2hyaW5rTW9k
ZSBzaHJpbmtNb2RlKQogI2VuZGlmCiAgICAgCiAgICAgaWYgKHNocmlua01vZGUgPT0gRWFybHlT
aHJpbmspIHsKLSAgICAgICAgbV9pZGVudGlmaWVycy5zaHJpbmtUb0ZpdCgpOworICAgICAgICBt
X2FkZGl0aW9uYWxJZGVudGlmaWVycy5zaHJpbmtUb0ZpdCgpOwogICAgICAgICBtX2Z1bmN0aW9u
RGVjbHMuc2hyaW5rVG9GaXQoKTsKICAgICAgICAgbV9mdW5jdGlvbkV4cHJzLnNocmlua1RvRml0
KCk7CiAgICAgICAgIG1fY29uc3RhbnRSZWdpc3RlcnMuc2hyaW5rVG9GaXQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCA1NTU4NjY3YzUxZDg5OGNj
NGZmY2U5MDk3Njk0MjkzNDA1MDkxN2M0Li44NzFhZjZjYzQzYTRiYmMyNmU2ZDRmNzcyMzE2MzEy
MDljMGJiYjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5o
CkBAIC02NTUsOSArNjU1LDE2IEBAIHB1YmxpYzoKIAogICAgIC8vIENvbnN0YW50IFBvb2wKIAot
ICAgIHNpemVfdCBudW1iZXJPZklkZW50aWZpZXJzKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlm
aWVycy5zaXplKCk7IH0KLSAgICB2b2lkIGFkZElkZW50aWZpZXIoY29uc3QgSWRlbnRpZmllciYg
aSkgeyByZXR1cm4gbV9pZGVudGlmaWVycy5hcHBlbmQoaSk7IH0KLSAgICBJZGVudGlmaWVyJiBp
ZGVudGlmaWVyKGludCBpbmRleCkgeyByZXR1cm4gbV9pZGVudGlmaWVyc1tpbmRleF07IH0KKyAg
ICBzaXplX3QgbnVtYmVyT2ZJZGVudGlmaWVycygpIGNvbnN0IHsgcmV0dXJuIG1fdW5saW5rZWRD
b2RlLT5udW1iZXJPZklkZW50aWZpZXJzKCkgKyBudW1iZXJPZkFkZGl0aW9uYWxJZGVudGlmaWVy
cygpOyB9CisgICAgc2l6ZV90IG51bWJlck9mQWRkaXRpb25hbElkZW50aWZpZXJzKCkgY29uc3Qg
eyByZXR1cm4gbV9hZGRpdGlvbmFsSWRlbnRpZmllcnMuc2l6ZSgpOyB9CisgICAgdm9pZCBhZGRB
ZGRpdGlvbmFsSWRlbnRpZmllcihjb25zdCBJZGVudGlmaWVyJiBpKSB7IHJldHVybiBtX2FkZGl0
aW9uYWxJZGVudGlmaWVycy5hcHBlbmQoaSk7IH0KKyAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dGlmaWVyKGludCBpbmRleCkgY29uc3QKKyAgICB7CisgICAgICAgIHNpemVfdCB1bmxpbmtlZElk
ZW50aWZpZXJzID0gbV91bmxpbmtlZENvZGUtPm51bWJlck9mSWRlbnRpZmllcnMoKTsKKyAgICAg
ICAgaWYgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbmRleCkgPCB1bmxpbmtlZElkZW50aWZpZXJz
KQorICAgICAgICAgICAgcmV0dXJuIG1fdW5saW5rZWRDb2RlLT5pZGVudGlmaWVyKGluZGV4KTsK
KyAgICAgICAgcmV0dXJuIG1fYWRkaXRpb25hbElkZW50aWZpZXJzW2luZGV4IC0gdW5saW5rZWRJ
ZGVudGlmaWVyc107CisgICAgfQogCiAgICAgc2l6ZV90IG51bWJlck9mQ29uc3RhbnRSZWdpc3Rl
cnMoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0YW50UmVnaXN0ZXJzLnNpemUoKTsgfQogICAgIHVu
c2lnbmVkIGFkZENvbnN0YW50KEpTVmFsdWUgdikKQEAgLTk2MywxMiArOTcwLDYgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHVwZGF0ZUFsbFByZWRpY3Rpb25zQW5kQ291bnRMaXZlbmVzcyhPcGVyYXRp
b25JblByb2dyZXNzLCB1bnNpZ25lZCYgbnVtYmVyT2ZMaXZlTm9uQXJndW1lbnRWYWx1ZVByb2Zp
bGVzLCB1bnNpZ25lZCYgbnVtYmVyT2ZTYW1wbGVzSW5Qcm9maWxlcyk7CiAjZW5kaWYKIAotICAg
IHZvaWQgc2V0SWRlbnRpZmllcnMoY29uc3QgVmVjdG9yPElkZW50aWZpZXI+JiBpZGVudGlmaWVy
cykKLSAgICB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKG1faWRlbnRpZmllcnMuaXNFbXB0eSgp
KTsKLSAgICAgICAgbV9pZGVudGlmaWVycy5hcHBlbmRWZWN0b3IoaWRlbnRpZmllcnMpOwotICAg
IH0KLQogICAgIHZvaWQgc2V0Q29uc3RhbnRSZWdpc3RlcnMoY29uc3QgVmVjdG9yPFdyaXRlQmFy
cmllcjxVbmtub3duPiA+JiBjb25zdGFudHMpCiAgICAgewogICAgICAgICBzaXplX3QgY291bnQg
PSBjb25zdGFudHMuc2l6ZSgpOwpAQCAtMTA4Niw3ICsxMDg3LDcgQEAgcHJpdmF0ZToKICAgICBT
ZWdtZW50ZWRWZWN0b3I8T2JqZWN0QWxsb2NhdGlvblByb2ZpbGUsIDg+IG1fb2JqZWN0QWxsb2Nh
dGlvblByb2ZpbGVzOwogCiAgICAgLy8gQ29uc3RhbnQgUG9vbAotICAgIFZlY3RvcjxJZGVudGlm
aWVyPiBtX2lkZW50aWZpZXJzOworICAgIFZlY3RvcjxJZGVudGlmaWVyPiBtX2FkZGl0aW9uYWxJ
ZGVudGlmaWVyczsKICAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoUmVnaXN0ZXIpID09IHNpemVv
ZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pLCBSZWdpc3Rlcl9tdXN0X2JlX3NhbWVfc2l6ZV9hc19X
cml0ZUJhcnJpZXJfVW5rbm93bik7CiAgICAgLy8gVE9ETzogVGhpcyBjb3VsZCBqdXN0IGJlIGEg
cG9pbnRlciB0byBtX3VubGlua2VkQ29kZUJsb2NrJ3MgZGF0YSwgYnV0IHRoZSBERkcgbXV0YXRl
cwogICAgIC8vIGl0LCBzbyB3ZSdyZSBzdHVjayB3aXRoIGl0IGZvciBub3cuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRJZGVudGlmaWVycy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRJZGVudGlmaWVycy5jcHAKaW5kZXgg
N2QyNGZmZGYwMTIyMzZiOWE2YjkyNDdjZmE2OGY3YmIxMmMzMTU2Ny4uMjc3YWZmNDE5OWYwZmY1
ZDc5MGQ4ODA4NjdhYTdkYmQ3YTI5ZjdkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEZXNpcmVkSWRlbnRpZmllcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRGVzaXJlZElkZW50aWZpZXJzLmNwcApAQCAtNjcsNyArNjcsNyBAQCB2b2lk
IERlc2lyZWRJZGVudGlmaWVyczo6cmVhbGx5QWRkKFZNJiB2bSkKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV9hZGRlZElkZW50aWZpZXJzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFN0
cmluZ0ltcGwqIHJlcCA9IG1fYWRkZWRJZGVudGlmaWVyc1tpXTsKICAgICAgICAgQVNTRVJUKHJl
cC0+aGFzQXRMZWFzdE9uZVJlZigpKTsKLSAgICAgICAgbV9jb2RlQmxvY2stPmFkZElkZW50aWZp
ZXIoSWRlbnRpZmllcigmdm0sIHJlcCkpOworICAgICAgICBtX2NvZGVCbG9jay0+YWRkQWRkaXRp
b25hbElkZW50aWZpZXIoSWRlbnRpZmllcigmdm0sIHJlcCkpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKaW5kZXggNmNiOTk2MWUwMGY3ZTBhNDEzMGVkYjkwNjY5NzA4MThjYzg2
MTNlNC4uN2VkYzQ5ODFkOTQ1Y2E0ZDhjOTAxMmE5MjQ0M2NmOWQyNmFlZGMzMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5oCkBAIC01MzgsOCArNTM4LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHZvaWQgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGludCB2aXJ0dWFsUmVnaXN0ZXJJ
bmRleCk7CiAgICAgICAgIHZvaWQgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGludCB2aXJ0
dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCB0YWcpOwogCi0gICAgICAgIHZvaWQgY29tcGls
ZUdldEJ5SWRIb3RQYXRoKElkZW50aWZpZXIqKTsKLSAgICAgICAgdm9pZCBjb21waWxlR2V0QnlJ
ZFNsb3dDYXNlKGludCByZXN1bHRWUmVnLCBpbnQgYmFzZVZSZWcsIElkZW50aWZpZXIqLCBWZWN0
b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CisgICAgICAgIHZvaWQgY29tcGlsZUdldEJ5
SWRIb3RQYXRoKGNvbnN0IElkZW50aWZpZXIqKTsKKyAgICAgICAgdm9pZCBjb21waWxlR2V0QnlJ
ZFNsb3dDYXNlKGludCByZXN1bHRWUmVnLCBpbnQgYmFzZVZSZWcsIGNvbnN0IElkZW50aWZpZXIq
LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgY29tcGls
ZUdldERpcmVjdE9mZnNldChSZWdpc3RlcklEIGJhc2UsIFJlZ2lzdGVySUQgcmVzdWx0VGFnLCBS
ZWdpc3RlcklEIHJlc3VsdFBheWxvYWQsIFByb3BlcnR5T2Zmc2V0IGNhY2hlZE9mZnNldCk7CiAg
ICAgICAgIHZvaWQgY29tcGlsZUdldERpcmVjdE9mZnNldChKU09iamVjdCogYmFzZSwgUmVnaXN0
ZXJJRCByZXN1bHRUYWcsIFJlZ2lzdGVySUQgcmVzdWx0UGF5bG9hZCwgUHJvcGVydHlPZmZzZXQg
Y2FjaGVkT2Zmc2V0KTsKICAgICAgICAgdm9pZCBjb21waWxlR2V0RGlyZWN0T2Zmc2V0KFJlZ2lz
dGVySUQgYmFzZSwgUmVnaXN0ZXJJRCByZXN1bHRUYWcsIFJlZ2lzdGVySUQgcmVzdWx0UGF5bG9h
ZCwgUmVnaXN0ZXJJRCBvZmZzZXQsIEZpbmFsT2JqZWN0TW9kZSA9IE1heUJlRmluYWwpOwpAQCAt
NjEyLDggKzYxMiw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGNvbXBpbGVCaW5h
cnlBcml0aE9wKE9wY29kZUlELCB1bnNpZ25lZCBkc3QsIHVuc2lnbmVkIHNyYzEsIHVuc2lnbmVk
IHNyYzIsIE9wZXJhbmRUeXBlcyBvcGkpOwogICAgICAgICB2b2lkIGNvbXBpbGVCaW5hcnlBcml0
aE9wU2xvd0Nhc2UoSW5zdHJ1Y3Rpb24qLCBPcGNvZGVJRCwgVmVjdG9yPFNsb3dDYXNlRW50cnk+
OjppdGVyYXRvciYsIHVuc2lnbmVkIGRzdCwgdW5zaWduZWQgc3JjMSwgdW5zaWduZWQgc3JjMiwg
T3BlcmFuZFR5cGVzLCBib29sIG9wMUhhc0ltbWVkaWF0ZUludEZhc3RDYXNlLCBib29sIG9wMkhh
c0ltbWVkaWF0ZUludEZhc3RDYXNlKTsKIAotICAgICAgICB2b2lkIGNvbXBpbGVHZXRCeUlkSG90
UGF0aChpbnQgYmFzZVZSZWcsIElkZW50aWZpZXIqKTsKLSAgICAgICAgdm9pZCBjb21waWxlR2V0
QnlJZFNsb3dDYXNlKGludCByZXN1bHRWUmVnLCBpbnQgYmFzZVZSZWcsIElkZW50aWZpZXIqLCBW
ZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CisgICAgICAgIHZvaWQgY29tcGlsZUdl
dEJ5SWRIb3RQYXRoKGludCBiYXNlVlJlZywgY29uc3QgSWRlbnRpZmllciopOworICAgICAgICB2
b2lkIGNvbXBpbGVHZXRCeUlkU2xvd0Nhc2UoaW50IHJlc3VsdFZSZWcsIGludCBiYXNlVlJlZywg
Y29uc3QgSWRlbnRpZmllciosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAg
ICAgICAgdm9pZCBjb21waWxlR2V0RGlyZWN0T2Zmc2V0KFJlZ2lzdGVySUQgYmFzZSwgUmVnaXN0
ZXJJRCByZXN1bHQsIFByb3BlcnR5T2Zmc2V0IGNhY2hlZE9mZnNldCk7CiAgICAgICAgIHZvaWQg
Y29tcGlsZUdldERpcmVjdE9mZnNldChKU09iamVjdCogYmFzZSwgUmVnaXN0ZXJJRCByZXN1bHQs
IFByb3BlcnR5T2Zmc2V0IGNhY2hlZE9mZnNldCk7CiAgICAgICAgIHZvaWQgY29tcGlsZUdldERp
cmVjdE9mZnNldChSZWdpc3RlcklEIGJhc2UsIFJlZ2lzdGVySUQgcmVzdWx0LCBSZWdpc3RlcklE
IG9mZnNldCwgUmVnaXN0ZXJJRCBzY3JhdGNoLCBGaW5hbE9iamVjdE1vZGUgPSBNYXlCZUZpbmFs
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDZjZGE5MWQ1
M2Y5NjUzMGE0YTIxNDZiZTZlYzVlNmQyM2VmZTZjMGIuLjkxMTBjOGY3MjFhYmM4NjkxNDU2NTU5
MDAxM2FjOGZiOWJjODIyY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
LmNwcApAQCAtMTA5Myw3ICsxMDkzLDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9hcmd1
bWVudHNfbGVuZ3RoKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3QKICAgICBs
aW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgdW5zaWduZWQgZHN0ID0gY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZDsKICAgICB1bnNpZ25lZCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZDsKLSAgICBJZGVudGlmaWVyKiBpZGVudCA9ICYobV9jb2RlQmxvY2stPmlkZW50
aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOworICAgIGNvbnN0IElkZW50
aWZpZXIqIGlkZW50ID0gJihtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kKSk7CiAgICAgCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihiYXNl
LCByZWdUMCk7CiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX2dldF9ieV9p
ZF9nZW5lcmljKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJv
cGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAKaW5kZXggODUzZmQ2MTUwNjQ0NWMwZjg4ZGU0NzI2M2QwMzQ4YjEzNTkwZWFjOS4u
Zjc4YTc5NDUwOTJlMzlhNGEwNzNmNDkzYzgwYWZmMjU1MzIxYTAwYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTUxOCw3ICs1MTgs
NyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKIHsKICAgICB1bnNpZ25lZCByZXN1bHRWUmVnID0gY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZDsKICAgICB1bnNpZ25lZCBiYXNlVlJlZyA9IGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQ7Ci0gICAgSWRlbnRpZmllciogaWRlbnQgPSAmKG1fY29kZUJsb2NrLT5p
ZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKKyAgICBjb25zdCBJ
ZGVudGlmaWVyKiBpZGVudCA9ICYobV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3Ry
dWN0aW9uWzNdLnUub3BlcmFuZCkpOwogCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihiYXNl
VlJlZywgcmVnVDApOwogICAgIGNvbXBpbGVHZXRCeUlkSG90UGF0aChiYXNlVlJlZywgaWRlbnQp
OwpAQCAtNTI2LDcgKzUyNiw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZChJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVz
dWx0VlJlZyk7CiB9CiAKLXZvaWQgSklUOjpjb21waWxlR2V0QnlJZEhvdFBhdGgoaW50IGJhc2VW
UmVnLCBJZGVudGlmaWVyKiBpZGVudCkKK3ZvaWQgSklUOjpjb21waWxlR2V0QnlJZEhvdFBhdGgo
aW50IGJhc2VWUmVnLCBjb25zdCBJZGVudGlmaWVyKiBpZGVudCkKIHsKICAgICAvLyBBcyBmb3Ig
cHV0X2J5X2lkLCBnZXRfYnlfaWQgcmVxdWlyZXMgdGhlIG9mZnNldCBvZiB0aGUgU3RydWN0dXJl
IGFuZCB0aGUgb2Zmc2V0IG9mIHRoZSBhY2Nlc3MgdG8gYmUgcGF0Y2hlZC4KICAgICAvLyBBZGRp
dGlvbmFsbHksIGZvciBnZXRfYnlfaWQgd2UgbmVlZCBwYXRjaCB0aGUgb2Zmc2V0IG9mIHRoZSBi
cmFuY2ggdG8gdGhlIHNsb3cgY2FzZSAod2UgcGF0Y2ggdGhpcyB0byBqdW1wCkBAIC01NjIsMTMg
KzU2MiwxMyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X2lkKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZQogewogICAgIHVuc2lnbmVkIHJlc3Vs
dFZSZWcgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIHVuc2lnbmVkIGJh
c2VWUmVnID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBJZGVudGlmaWVy
KiBpZGVudCA9ICYobV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzNd
LnUub3BlcmFuZCkpOworICAgIGNvbnN0IElkZW50aWZpZXIqIGlkZW50ID0gJihtX2NvZGVCbG9j
ay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CiAKICAgICBj
b21waWxlR2V0QnlJZFNsb3dDYXNlKHJlc3VsdFZSZWcsIGJhc2VWUmVnLCBpZGVudCwgaXRlcik7
CiAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShyZWdUNCk7CiB9CiAKLXZvaWQgSklUOjpjb21w
aWxlR2V0QnlJZFNsb3dDYXNlKGludCByZXN1bHRWUmVnLCBpbnQgYmFzZVZSZWcsIElkZW50aWZp
ZXIqIGlkZW50LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQordm9pZCBK
SVQ6OmNvbXBpbGVHZXRCeUlkU2xvd0Nhc2UoaW50IHJlc3VsdFZSZWcsIGludCBiYXNlVlJlZywg
Y29uc3QgSWRlbnRpZmllciogaWRlbnQsIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3Im
IGl0ZXIpCiB7CiAgICAgLy8gQXMgZm9yIHRoZSBob3QgcGF0aCBvZiBnZXRfYnlfaWQsIGFib3Zl
LCB3ZSBlbnN1cmUgdGhhdCB3ZSBjYW4gdXNlIGFuIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBvZmZz
ZXQKICAgICAvLyBzbyB0aGF0IHdlIG9ubHkgbmVlZCB0cmFjayBvbmUgcG9pbnRlciBpbnRvIHRo
ZSBzbG93IGNhc2UgY29kZSAtIHdlIHRyYWNrIGEgcG9pbnRlciB0byB0aGUgbG9jYXRpb24KQEAg
LTYyOCw3ICs2MjgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKIHZvaWQgSklUOjplbWl0U2xvd19vcF9wdXRfYnlfaWQoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVy
YXRvciYgaXRlcikKIHsKICAgICB1bnNpZ25lZCBiYXNlVlJlZyA9IGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQ7Ci0gICAgSWRlbnRpZmllciogaWRlbnQgPSAmKG1fY29kZUJsb2NrLT5p
ZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKKyAgICBjb25zdCBJ
ZGVudGlmaWVyKiBpZGVudCA9ICYobV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZCkpOwogICAgIHVuc2lnbmVkIGRpcmVjdCA9IGN1cnJlbnRJbnN0
cnVjdGlvbls4XS51Lm9wZXJhbmQ7CiAKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVy
LCBiYXNlVlJlZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBy
b3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9w
ZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCBmZjNiOTBjZTMyMTM2ZWZkYjgzZGRlYmZlNDYzNjk3
Y2Y5ZjQ4Yzk4Li5hZTE5NDVlMjNmNDdiNTM5MjU1ZjZiYWE5YzA4ODVkMzA5YTFiMjNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82
NC5jcHAKQEAgLTQ2MCw3ICs0NjAsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQ7Ci0gICAgSWRlbnRpZmllciogaWRlbnQgPSAmKG1fY29kZUJsb2NrLT5p
ZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKKyAgICBjb25zdCBJ
ZGVudGlmaWVyKiBpZGVudCA9ICYobV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3Ry
dWN0aW9uWzNdLnUub3BlcmFuZCkpOwogICAgIAogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1QxLCBy
ZWdUMCk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKQEAg
LTQ3MCw3ICs0NzAsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBtYXAobV9ieXRlY29kZU9mZnNldCArIE9QQ09ERV9M
RU5HVEgob3BfZ2V0X2J5X2lkKSwgZHN0LCByZWdUMSwgcmVnVDApOwogfQogCi12b2lkIEpJVDo6
Y29tcGlsZUdldEJ5SWRIb3RQYXRoKElkZW50aWZpZXIqIGlkZW50KQordm9pZCBKSVQ6OmNvbXBp
bGVHZXRCeUlkSG90UGF0aChjb25zdCBJZGVudGlmaWVyKiBpZGVudCkKIHsKICAgICAvLyBBcyBm
b3IgcHV0X2J5X2lkLCBnZXRfYnlfaWQgcmVxdWlyZXMgdGhlIG9mZnNldCBvZiB0aGUgU3RydWN0
dXJlIGFuZCB0aGUgb2Zmc2V0IG9mIHRoZSBhY2Nlc3MgdG8gYmUgcGF0Y2hlZC4KICAgICAvLyBB
ZGRpdGlvbmFsbHksIGZvciBnZXRfYnlfaWQgd2UgbmVlZCBwYXRjaCB0aGUgb2Zmc2V0IG9mIHRo
ZSBicmFuY2ggdG8gdGhlIHNsb3cgY2FzZSAod2UgcGF0Y2ggdGhpcyB0byBqdW1wCkBAIC01MTEs
NyArNTExLDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV9pZChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2UKICAgICBlbWl0VmFsdWVQcm9maWxp
bmdTaXRlKHJlZ1Q0KTsKIH0KIAotdm9pZCBKSVQ6OmNvbXBpbGVHZXRCeUlkU2xvd0Nhc2UoaW50
IGRzdCwgaW50IGJhc2UsIElkZW50aWZpZXIqIGlkZW50LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46
Oml0ZXJhdG9yJiBpdGVyKQordm9pZCBKSVQ6OmNvbXBpbGVHZXRCeUlkU2xvd0Nhc2UoaW50IGRz
dCwgaW50IGJhc2UsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50LCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIC8vIEFzIGZvciB0aGUgaG90IHBhdGggb2YgZ2V0
X2J5X2lkLCBhYm92ZSwgd2UgZW5zdXJlIHRoYXQgd2UgY2FuIHVzZSBhbiBhcmNoaXRlY3R1cmUg
c3BlY2lmaWMgb2Zmc2V0CiAgICAgLy8gc28gdGhhdCB3ZSBvbmx5IG5lZWQgdHJhY2sgb25lIHBv
aW50ZXIgaW50byB0aGUgc2xvdyBjYXNlIGNvZGUgLSB3ZSB0cmFjayBhIHBvaW50ZXIgdG8gdGhl
IGxvY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IDllOGQ5
NDdlM2VhODJhNjQyMjFmOTFkY2Y3OTM0ZWYwNTE0YWRkZTkuLjRjMmYxOWIwNGJlMmE4ZDhlMzc2
Yjg4NzFmNDFjYTVmMTQwYmE3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMu
Y3BwCkBAIC0yMTg2LDcgKzIxODYsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNW
YWx1ZSwgb3BfcmVzb2x2ZV9zY29wZSkKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzdGFja0ZyYW1l
LmNhbGxGcmFtZTsKICAgICBJbnN0cnVjdGlvbiogcGMgPSBzdGFja0ZyYW1lLmFyZ3NbMF0ucGMo
KTsKIAotICAgIElkZW50aWZpZXImIGlkZW50ID0gZXhlYy0+Y29kZUJsb2NrKCktPmlkZW50aWZp
ZXIocGNbMl0udS5vcGVyYW5kKTsKKyAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IGV4ZWMt
PmNvZGVCbG9jaygpLT5pZGVudGlmaWVyKHBjWzJdLnUub3BlcmFuZCk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Njb3BlOjpyZXNvbHZlKGV4ZWMsIGV4ZWMtPnNjb3BlKCksIGlkZW50
KSk7CiB9CiAKQEAgLTIxOTYsNyArMjE5Niw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29k
ZWRKU1ZhbHVlLCBvcF9nZXRfZnJvbV9zY29wZSkKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzdGFj
a0ZyYW1lLmNhbGxGcmFtZTsKICAgICBJbnN0cnVjdGlvbiogcGMgPSBzdGFja0ZyYW1lLmFyZ3Nb
MF0ucGMoKTsKIAotICAgIElkZW50aWZpZXImIGlkZW50ID0gZXhlYy0+Y29kZUJsb2NrKCktPmlk
ZW50aWZpZXIocGNbM10udS5vcGVyYW5kKTsKKyAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9
IGV4ZWMtPmNvZGVCbG9jaygpLT5pZGVudGlmaWVyKHBjWzNdLnUub3BlcmFuZCk7CiAgICAgSlNP
YmplY3QqIHNjb3BlID0ganNDYXN0PEpTT2JqZWN0Kj4oZXhlYy0+dW5jaGVja2VkUihwY1syXS51
Lm9wZXJhbmQpLmpzVmFsdWUoKSk7CiAgICAgUmVzb2x2ZU1vZGVBbmRUeXBlIG1vZGVBbmRUeXBl
KHBjWzRdLnUub3BlcmFuZCk7CiAKQEAgLTIyMjksNyArMjIyOSw3IEBAIERFRklORV9TVFVCX0ZV
TkNUSU9OKHZvaWQsIG9wX3B1dF90b19zY29wZSkKICAgICBJbnN0cnVjdGlvbiogcGMgPSBzdGFj
a0ZyYW1lLmFyZ3NbMF0ucGMoKTsKIAogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+
Y29kZUJsb2NrKCk7Ci0gICAgSWRlbnRpZmllciYgaWRlbnQgPSBjb2RlQmxvY2stPmlkZW50aWZp
ZXIocGNbMl0udS5vcGVyYW5kKTsKKyAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IGNvZGVC
bG9jay0+aWRlbnRpZmllcihwY1syXS51Lm9wZXJhbmQpOwogICAgIEpTT2JqZWN0KiBzY29wZSA9
IGpzQ2FzdDxKU09iamVjdCo+KGV4ZWMtPnVuY2hlY2tlZFIocGNbMV0udS5vcGVyYW5kKS5qc1Zh
bHVlKCkpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBleGVjLT5yKHBjWzNdLnUub3BlcmFuZCkuanNW
YWx1ZSgpOwogICAgIFJlc29sdmVNb2RlQW5kVHlwZSBtb2RlQW5kVHlwZSA9IFJlc29sdmVNb2Rl
QW5kVHlwZShwY1s0XS51Lm9wZXJhbmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggOWQxYzMwNGU1NDAyNWFlZmI0NDQwYzU4OWQ0ZmMx
NTg1NmMyOWIwZi4uZmZmOWNhNDVlZWIyYzE2OGNlZDlmMmVjYzVjNTZmNjA5OTI1ZTk5MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC01
MDMsNyArNTAzLDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2dldF9ieV9pZCkK
IHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+
Y29kZUJsb2NrKCk7Ci0gICAgSWRlbnRpZmllciYgaWRlbnQgPSBjb2RlQmxvY2stPmlkZW50aWZp
ZXIocGNbM10udS5vcGVyYW5kKTsKKyAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IGNvZGVC
bG9jay0+aWRlbnRpZmllcihwY1szXS51Lm9wZXJhbmQpOwogICAgIEpTVmFsdWUgYmFzZVZhbHVl
ID0gTExJTlRfT1BfQygyKS5qc1ZhbHVlKCk7CiAgICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZVZh
bHVlKTsKIApAQCAtNTU3LDcgKzU1Nyw3IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9nZXRfYXJndW1lbnRzX2xlbmd0aCkKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIENvZGVC
bG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7Ci0gICAgSWRlbnRpZmllciYgaWRl
bnQgPSBjb2RlQmxvY2stPmlkZW50aWZpZXIocGNbM10udS5vcGVyYW5kKTsKKyAgICBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudCA9IGNvZGVCbG9jay0+aWRlbnRpZmllcihwY1szXS51Lm9wZXJhbmQp
OwogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gTExJTlRfT1AoMikuanNWYWx1ZSgpOwogICAgIFBy
b3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSk7CiAgICAgTExJTlRfUkVUVVJOKGJhc2VWYWx1ZS5n
ZXQoZXhlYywgaWRlbnQsIHNsb3QpKTsKQEAgLTU2Nyw3ICs1NjcsNyBAQCBMTElOVF9TTE9XX1BB
VEhfREVDTChzbG93X3BhdGhfcHV0X2J5X2lkKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKLSAgICBJZGVudGlmaWVy
JiBpZGVudCA9IGNvZGVCbG9jay0+aWRlbnRpZmllcihwY1syXS51Lm9wZXJhbmQpOworICAgIGNv
bnN0IElkZW50aWZpZXImIGlkZW50ID0gY29kZUJsb2NrLT5pZGVudGlmaWVyKHBjWzJdLnUub3Bl
cmFuZCk7CiAgICAgCiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBMTElOVF9PUF9DKDEpLmpzVmFs
dWUoKTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChjb2RlQmxvY2stPmlzU3RyaWN0TW9kZSgp
KTsKQEAgLTEyNjgsMTQgKzEyNjgsMTQgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0wodGhyb3dfZnJv
bV9uYXRpdmVfY2FsbCkKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9yZXNvbHZlX3Nj
b3BlKQogewogICAgIExMSU5UX0JFR0lOKCk7Ci0gICAgSWRlbnRpZmllciYgaWRlbnQgPSBleGVj
LT5jb2RlQmxvY2soKS0+aWRlbnRpZmllcihwY1syXS51Lm9wZXJhbmQpOworICAgIGNvbnN0IElk
ZW50aWZpZXImIGlkZW50ID0gZXhlYy0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIocGNbMl0udS5v
cGVyYW5kKTsKICAgICBMTElOVF9SRVRVUk4oSlNTY29wZTo6cmVzb2x2ZShleGVjLCBleGVjLT5z
Y29wZSgpLCBpZGVudCkpOwogfQogCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0
X2Zyb21fc2NvcGUpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKLSAgICBJZGVudGlmaWVyJiBpZGVu
dCA9IGV4ZWMtPmNvZGVCbG9jaygpLT5pZGVudGlmaWVyKHBjWzNdLnUub3BlcmFuZCk7CisgICAg
Y29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBleGVjLT5jb2RlQmxvY2soKS0+aWRlbnRpZmllcihw
Y1szXS51Lm9wZXJhbmQpOwogICAgIEpTT2JqZWN0KiBzY29wZSA9IGpzQ2FzdDxKU09iamVjdCo+
KExMSU5UX09QKDIpLmpzVmFsdWUoKSk7CiAgICAgUmVzb2x2ZU1vZGVBbmRUeXBlIG1vZGVBbmRU
eXBlKHBjWzRdLnUub3BlcmFuZCk7CiAKQEAgLTEzMDMsNyArMTMwMyw3IEBAIExMSU5UX1NMT1df
UEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfdG9fc2NvcGUpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsK
ICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9jaygpOwotICAgIElkZW50
aWZpZXImIGlkZW50ID0gY29kZUJsb2NrLT5pZGVudGlmaWVyKHBjWzJdLnUub3BlcmFuZCk7Cisg
ICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBjb2RlQmxvY2stPmlkZW50aWZpZXIocGNbMl0u
dS5vcGVyYW5kKTsKICAgICBKU09iamVjdCogc2NvcGUgPSBqc0Nhc3Q8SlNPYmplY3QqPihMTElO
VF9PUCgxKS5qc1ZhbHVlKCkpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBMTElOVF9PUF9DKDMpLmpz
VmFsdWUoKTsKICAgICBSZXNvbHZlTW9kZUFuZFR5cGUgbW9kZUFuZFR5cGUgPSBSZXNvbHZlTW9k
ZUFuZFR5cGUocGNbNF0udS5vcGVyYW5kKTsK
</data>
<flag name="review"
          id="230480"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>