<?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>104796</bug_id>
          
          <creation_ts>2012-12-12 04:26:20 -0800</creation_ts>
          <short_desc>Web Inspector: Native Memory Instrumentation: remove fake root MemoryObjectInfo.</short_desc>
          <delta_ts>2012-12-12 08:07:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>104660</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>apavlov</cc>
    
    <cc>benjamin</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>789449</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-12-12 04:26:20 -0800</bug_when>
    <thetext>It was not a good idea to introduce a fake root MemoryObjectInfo.
It makes a problem when we visit an object without its own MemoryObjectType.

Example: RenderBox has a global pointer to a hash map.
HashMap doesn&apos;t have its own object type because it is a generic container.
It will inherit object type from the fake root memory object info.
The same could happen for another container in another class with other MemoryObjectType.

This fact forces me to create custom process method for root objects
because they need to have their own MemoryObjectInfo with customisable memory object type.

patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789452</commentid>
    <comment_count>1</comment_count>
      <attachid>179023</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-12-12 04:30:59 -0800</bug_when>
    <thetext>Created attachment 179023
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789512</commentid>
    <comment_count>2</comment_count>
      <attachid>179034</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-12-12 07:24:49 -0800</bug_when>
    <thetext>Created attachment 179034
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789524</commentid>
    <comment_count>3</comment_count>
      <attachid>179039</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-12-12 07:34:30 -0800</bug_when>
    <thetext>Created attachment 179039
with fixed def file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789526</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-12 07:36:46 -0800</bug_when>
    <thetext>Attachment 179039 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/ChangeLog:20:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789562</commentid>
    <comment_count>5</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-12-12 08:07:44 -0800</bug_when>
    <thetext>Committed r137468: &lt;http://trac.webkit.org/changeset/137468&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179023</attachid>
            <date>2012-12-12 04:30:59 -0800</date>
            <delta_ts>2012-12-12 07:24:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104796-20121212162819.patch</filename>
            <type>text/plain</type>
            <size>17641</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZGIzOGFiNGI0MjNlOTllZDM4NzY4NWM0YTQ4YmJmM2FmNmZjYTA5Li5hOGRlMTUxODlkNDBhNjk2
N2FmNmY4YmZiYzczNjBmN2YzNzM5ZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMi0xMi0xMiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTmF0aXZlIE1lbW9yeSBJbnN0cnVtZW50
YXRpb246IHJlbW92ZSBmYWtlIHJvb3QgTWVtb3J5T2JqZWN0SW5mby4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDc5NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IHdhcyBub3QgYSBnb29kIGlkZWEg
dG8gaW50cm9kdWNlIGEgZmFrZSByb290IE1lbW9yeU9iamVjdEluZm8uCisgICAgICAgIEl0IG1h
a2VzIGEgcHJvYmxlbSB3aGVuIHdlIHZpc2l0IGFuIG9iamVjdCB3aXRob3V0IGl0cyBvd24gTWVt
b3J5T2JqZWN0VHlwZS4KKworICAgICAgICBFeGFtcGxlOiBSZW5kZXJCb3ggaGFzIGEgZ2xvYmFs
IHBvaW50ZXIgdG8gYSBoYXNoIG1hcC4KKyAgICAgICAgSGFzaE1hcCBkb2Vzbid0IGhhdmUgaXRz
IG93biBvYmplY3QgdHlwZSBiZWNhdXNlIGl0IGlzIGEgZ2VuZXJpYyBjb250YWluZXIuCisgICAg
ICAgIEl0IHdpbGwgaW5oZXJpdCBvYmplY3QgdHlwZSBmcm9tIHRoZSBmYWtlIHJvb3QgbWVtb3J5
IG9iamVjdCBpbmZvLgorICAgICAgICBUaGUgc2FtZSBjb3VsZCBoYXBwZW4gZm9yIGFub3RoZXIg
Y29udGFpbmVyIGluIGFub3RoZXIgY2xhc3Mgd2l0aCBvdGhlciBNZW1vcnlPYmplY3RUeXBlLgor
CisgICAgICAgIFRoaXMgZmFjdCBmb3JjZXMgbWUgdG8gY3JlYXRlIGN1c3RvbSBwcm9jZXNzIG1l
dGhvZCBmb3Igcm9vdCBvYmplY3RzCisgICAgICAgIGJlY2F1c2UgdGhleSBuZWVkIHRvIGhhdmUg
dGhlaXIgb3duIE1lbW9yeU9iamVjdEluZm8gd2l0aCBjdXN0b21pc2FibGUgbWVtb3J5IG9iamVj
dCB0eXBlLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmRlZjoKKwogMjAxMi0xMi0xMSAgR2Fib3IgQmFsbGFiYXMgIDxnYWJv
cmJAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIEltcGxlbWVudCBhZGQ2NCBmb3IgQVJNIHRy
YWRpdGlvbmFsIGFzc2VtYmxlciBhZnRlciByMTM2NjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU2ZTg0YWMzNWU3YzZmOWYw
ODM0MTEwYzMyNTE5ODdjMjk4N2VhM2UuLmRhZjcyYjIzZDM3MzdiODY0Mzg3NGU2MGQzOWQyMWU4
NWNmYjEzMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTItMTItMTIgIElseWEgVGlraG9ub3Zz
a3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5hdGl2
ZSBNZW1vcnkgSW5zdHJ1bWVudGF0aW9uOiByZW1vdmUgZmFrZSByb290IE1lbW9yeU9iamVjdElu
Zm8uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQ3
OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCB3
YXMgbm90IGEgZ29vZCBpZGVhIHRvIGludHJvZHVjZSBhIGZha2Ugcm9vdCBNZW1vcnlPYmplY3RJ
bmZvLgorICAgICAgICBJdCBtYWtlcyBhIHByb2JsZW0gd2hlbiB3ZSB2aXNpdCBhbiBvYmplY3Qg
d2l0aG91dCBpdHMgb3duIE1lbW9yeU9iamVjdFR5cGUuCisKKyAgICAgICAgRXhhbXBsZTogUmVu
ZGVyQm94IGhhcyBhIGdsb2JhbCBwb2ludGVyIHRvIGEgaGFzaCBtYXAuCisgICAgICAgIEhhc2hN
YXAgZG9lc24ndCBoYXZlIGl0cyBvd24gb2JqZWN0IHR5cGUgYmVjYXVzZSBpdCBpcyBhIGdlbmVy
aWMgY29udGFpbmVyLgorICAgICAgICBJdCB3aWxsIGluaGVyaXQgb2JqZWN0IHR5cGUgZnJvbSB0
aGUgZmFrZSByb290IG1lbW9yeSBvYmplY3QgaW5mby4KKyAgICAgICAgVGhlIHNhbWUgY291bGQg
aGFwcGVuIGZvciBhbm90aGVyIGNvbnRhaW5lciBpbiBhbm90aGVyIGNsYXNzIHdpdGggb3RoZXIg
TWVtb3J5T2JqZWN0VHlwZS4KKworICAgICAgICBUaGlzIGZhY3QgZm9yY2VzIG1lIHRvIGNyZWF0
ZSBjdXN0b20gcHJvY2VzcyBtZXRob2QgZm9yIHJvb3Qgb2JqZWN0cworICAgICAgICBiZWNhdXNl
IHRoZXkgbmVlZCB0byBoYXZlIHRoZWlyIG93biBNZW1vcnlPYmplY3RJbmZvIHdpdGggY3VzdG9t
aXNhYmxlIG1lbW9yeSBvYmplY3QgdHlwZS4KKworICAgICAgICAqIHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb24uY3BwOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Ok1lbW9y
eUluc3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6
SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U6Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlKToKKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpSb290T2JqZWN0QmFzZTo6Um9vdE9iamVj
dEJhc2UpOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0
aW9uOjpSb290T2JqZWN0QmFzZTo6cHJvY2Vzcyk6CisgICAgICAgICogd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZFJv
b3RPYmplY3QpOgorICAgICAgICAoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKElu
c3RydW1lbnRlZFBvaW50ZXJCYXNlKToKKyAgICAgICAgKFJvb3RPYmplY3RCYXNlKToKKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpSb290T2JqZWN0QmFzZTo6flJvb3RPYmpl
Y3RCYXNlKToKKyAgICAgICAgKEluc3RydW1lbnRlZFBvaW50ZXIpOgorICAgICAgICAoUm9vdE9i
amVjdCk6CisgICAgICAgIChPd25pbmdUcmFpdHMpOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0
cnVtZW50YXRpb246Ok93bmluZ1RyYWl0czo6YWRkUm9vdE9iamVjdCk6CisgICAgICAgIChXVEY6
Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbCk6CisgICAgICAgIChXVEY6Ojo6
SW5zdHJ1bWVudGVkUG9pbnRlcik6CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjo6OlJv
b3RPYmplY3QpOgorICAgICAgICAoV1RGOjo6OmNhbGxSZXBvcnRNZW1vcnlVc2FnZSk6CisKIDIw
MTItMTItMTIgIFNlcmdpbyBNYXJ0aW5zICA8c2VyZ2lvLm1hcnRpbnNAa2RhYi5jb20+CiAKICAg
ICAgICAgRml4IFFOWCBRdCBidWlsZCBieSBlbmFibGluZyBKSVQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IDMwNmFhMWM1Y2U5
OWNmYjliNDhiNmQ5NmZhMDFiMGM4ODBiMjFhMGIuLmU1NmIzNzExZjFmYjE2NTMwNTZjYzU1N2Qx
M2NiN2VjNGU0ODQ0YzUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZGVmCkBAIC0xMiw3ICsxMiw3IEBAIEVYUE9SVFMKICAgICA/PzBEcm9w
QWxsTG9ja3NASlNMb2NrQEpTQ0BAUUFFQFBBVkpTR2xvYmFsRGF0YUAyQEBaCiAgICAgPz8wRHlu
YW1pY0dsb2JhbE9iamVjdFNjb3BlQEpTQ0BAUUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVkpTR2xv
YmFsT2JqZWN0QDFAQFogCiAgICAgPz8wRXJyb3JIYW5kbGluZ01vZGVASW50ZXJwcmV0ZXJASlND
QEBRQUVAUEFWRXhlY1N0YXRlQDJAQFoKLSAgICA/PzBJbnN0cnVtZW50ZWRQb2ludGVyQmFzZUBN
ZW1vcnlJbnN0cnVtZW50YXRpb25AV1RGQEBRQUVAUEFWTWVtb3J5T2JqZWN0SW5mb0AyQFBCWEBa
CisgICAgPz8wSW5zdHJ1bWVudGVkUG9pbnRlckJhc2VATWVtb3J5SW5zdHJ1bWVudGF0aW9uQFdU
RkBAUUFFQFBCRFBCWEBaCiAgICAgPz8wSW50ZXJuYWxGdW5jdGlvbkBKU0NAQElBRUBQQVZKU0ds
b2JhbE9iamVjdEAxQFBBVlN0cnVjdHVyZUAxQEBaCiAgICAgPz8wSlNHbG9iYWxPYmplY3RASlND
QEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWU3RydWN0dXJlQDFAUEJVR2xvYmFsT2JqZWN0TWV0
aG9kVGFibGVAMUBAWgogICAgID8/MEpTTG9ja0hvbGRlckBKU0NAQFFBRUBBQVZKU0dsb2JhbERh
dGFAMUBAWgpAQCAtMjUsNiArMjUsNyBAQCBFWFBPUlRTCiAgICAgPz8wUGFyYWxsZWxFbnZpcm9u
bWVudEBXVEZAQFFBRUBQNkFYUEFYQFpJSEBaCiAgICAgPz8wUmVmQ291bnRlZExlYWtDb3VudGVy
QFdURkBAUUFFQFBCREBaCiAgICAgPz8wUmVnRXhwT2JqZWN0QEpTQ0BASUFFQFBBVkpTR2xvYmFs
T2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAUEFWUmVnRXhwQDFAQFoKKyAgICA/PzBSb290T2JqZWN0
QmFzZUBNZW1vcnlJbnN0cnVtZW50YXRpb25AV1RGQEBRQUVAUEJEUEJYQFoKICAgICA/PzBTSEEx
QFdURkBAUUFFQFhaCiAgICAgPz8wU3RyaW5nT2JqZWN0QEpTQ0BASUFFQEFBVkpTR2xvYmFsRGF0
YUAxQFBBVlN0cnVjdHVyZUAxQEBaCiAgICAgPz8wU3RyaW5nUHJpbnRTdHJlYW1AV1RGQEBRQUVA
WFoKQEAgLTMwNiw2ICszMDcsNyBAQCBFWFBPUlRTCiAgICAgP3BhcnNlRG91YmxlRnJvbUxvbmdT
dHJpbmdASW50ZXJuYWxAV1RGQEBZQU5QQl9XSUFBSUBaCiAgICAgP3Bvc2l0aXZlSW5maW5pdGVU
aW1lQE1lZGlhVGltZUBXVEZAQFNBQUJWMTJAWFogCiAgICAgP3Byb2Nlc3NASW5zdHJ1bWVudGVk
UG9pbnRlckJhc2VATWVtb3J5SW5zdHJ1bWVudGF0aW9uQFdURkBAUUFFWFBBVjIzQEBaCisgICAg
P3Byb2Nlc3NAUm9vdE9iamVjdEJhc2VATWVtb3J5SW5zdHJ1bWVudGF0aW9uQFdURkBAUUFFWFBB
VjIzQEBaCiAgICAgP3Byb2ZpbGVyQExlZ2FjeVByb2ZpbGVyQEpTQ0BAU0FQQVYxMkBYWgogICAg
ID9wcm90ZWN0QEhlYXBASlNDQEBRQUVYVkpTVmFsdWVAMkBAWgogICAgID9wcm90ZWN0ZWRHbG9i
YWxPYmplY3RDb3VudEBIZWFwQEpTQ0BAUUFFSVhaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmNwcAppbmRleCAxYjU2NmJiZGJhNTNhMTRhNmQzNzIzNGUyNzJiZTY4YWM4YzQ2
ZDMzLi4wYzFmZTdjZDBlYzAwMmEwNTgzN2IzOWYwNGYyMzk4OTQ0ODgxMDkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTQyLDcgKzQyLDYgQEAgbmFtZXNw
YWNlIFdURiB7CiAKIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9u
KE1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCogY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xp
ZW50KQotICAgICwgbV9yb290T2JqZWN0SW5mbyhhZG9wdFB0cihuZXcgTWVtb3J5T2JqZWN0SW5m
byh0aGlzLCAwLCAwKSkpCiB7CiB9CiAKQEAgLTczLDkgKzcyLDkgQEAgdm9pZCBNZW1vcnlJbnN0
cnVtZW50YXRpb246OnJlcG9ydExpbmtUb0J1ZmZlcihjb25zdCB2b2lkKiBvd25lciwgY29uc3Qg
dm9pZCogYnUKICAgICBtX2NsaWVudC0+cmVwb3J0TGVhZihvd25lciwgbWVtb3J5T2JqZWN0SW5m
bywgZWRnZU5hbWUpOwogfQogCi1NZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBv
aW50ZXJCYXNlOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvLCBjb25zdCB2b2lkKiBwb2ludGVyKQorTWVtb3J5SW5zdHJ1bWVudGF0aW9u
OjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZTo6SW5zdHJ1bWVudGVkUG9pbnRlckJhc2UoTWVtb3J5
T2JqZWN0VHlwZSBvYmplY3RUeXBlLCBjb25zdCB2b2lkKiBwb2ludGVyKQogICAgIDogbV9wb2lu
dGVyKHBvaW50ZXIpCi0gICAgLCBtX293bmVyT2JqZWN0VHlwZShtZW1vcnlPYmplY3RJbmZvLT5v
YmplY3RUeXBlKCkpCisgICAgLCBtX293bmVyT2JqZWN0VHlwZShvYmplY3RUeXBlKQogewogI2lm
IERFQlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCiAgICAgbV9jYWxsU3RhY2tTaXplID0gc19t
YXhDYWxsU3RhY2tTaXplOwpAQCAtMTA1LDYgKzEwNCwyMCBAQCB2b2lkIE1lbW9yeUluc3RydW1l
bnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U6OnByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVu
dGF0aQogICAgIH0KIH0KIAorTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpSb290T2JqZWN0QmFzZTo6
Um9vdE9iamVjdEJhc2UoTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlLCBjb25zdCB2b2lkKiBw
b2ludGVyKQorICAgIDogSW5zdHJ1bWVudGVkUG9pbnRlckJhc2Uob2JqZWN0VHlwZSwgcG9pbnRl
cikKK3sKK30KKwordm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OlJvb3RPYmplY3RCYXNlOjpw
cm9jZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9uKQorewor
ICAgIE1lbW9yeU9iamVjdEluZm8gbWVtb3J5T2JqZWN0SW5mbyhtZW1vcnlJbnN0cnVtZW50YXRp
b24sIG1fb3duZXJPYmplY3RUeXBlLCBtX3BvaW50ZXIpOworICAgIGNhbGxSZXBvcnRNZW1vcnlV
c2FnZSgmbWVtb3J5T2JqZWN0SW5mbyk7CisKKyAgICBBU1NFUlQobV9wb2ludGVyID09IG1lbW9y
eU9iamVjdEluZm8ucmVwb3J0ZWRQb2ludGVyKCkpOworICAgIG1lbW9yeUluc3RydW1lbnRhdGlv
bi0+bV9jbGllbnQtPnJlcG9ydE5vZGUobWVtb3J5T2JqZWN0SW5mbyk7Cit9CisKIHZvaWQgTWVt
b3J5Q2xhc3NJbmZvOjppbml0KGNvbnN0IHZvaWQqIG9iamVjdEFkZHJlc3MsIE1lbW9yeU9iamVj
dFR5cGUgb2JqZWN0VHlwZSwgc2l6ZV90IGFjdHVhbFNpemUpCiB7CiAgICAgbV9tZW1vcnlPYmpl
Y3RJbmZvLT5yZXBvcnRPYmplY3RJbmZvKG9iamVjdEFkZHJlc3MsIG9iamVjdFR5cGUsIGFjdHVh
bFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRleCBiOTQ0MTIx
NDI4YzFkY2Y0NGQ4MTE3ZDJiOWYwMDgxYWM1M2NmMDkzLi5lZjExNmJmOTRjOGZlMmU3NmJjNzUx
ZjJjN2MwODk1YWNlZjBhNmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24u
aApAQCAtNzAsMjUgKzcwLDI4IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhw
bGljaXQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uKE1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCop
OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5NZW1vcnlJbnN0cnVtZW50YXRpb24o
KTsKIAotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZFJvb3RPYmplY3QoY29uc3Qg
VCYgdCkKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRSb290T2JqZWN0KGNvbnN0
IFQmIHQsIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSA9IDApCiAgICAgewotICAgICAgICBh
ZGRPYmplY3QodCwgbV9yb290T2JqZWN0SW5mby5nZXQoKSwgMCk7CisgICAgICAgIE93bmluZ1Ry
YWl0czxUPjo6YWRkUm9vdE9iamVjdCh0aGlzLCB0LCBvYmplY3RUeXBlKTsKICAgICAgICAgcHJv
Y2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRSb290T2JqZWN0KGNvbnN0IE93blB0cjxUPiYsIE1lbW9y
eU9iamVjdFR5cGUgPSAwKTsgLy8gTGluayB0aW1lIGd1YXJkLgorICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPiB2b2lkIGFkZFJvb3RPYmplY3QoY29uc3QgUmVmUHRyPFQ+JiwgTWVtb3J5T2JqZWN0
VHlwZSA9IDApOyAvLyBMaW5rIHRpbWUgZ3VhcmQuCisKIHByb3RlY3RlZDoKICAgICBjbGFzcyBJ
bnN0cnVtZW50ZWRQb2ludGVyQmFzZSB7CiAgICAgcHVibGljOgotICAgICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgSW5zdHJ1bWVudGVkUG9pbnRlckJhc2UoTWVtb3J5T2JqZWN0SW5mbyosIGNvbnN0
IHZvaWQqIHBvaW50ZXIpOworICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgSW5zdHJ1bWVudGVk
UG9pbnRlckJhc2UoTWVtb3J5T2JqZWN0VHlwZSwgY29uc3Qgdm9pZCogcG9pbnRlcik7CiAgICAg
ICAgIHZpcnR1YWwgfkluc3RydW1lbnRlZFBvaW50ZXJCYXNlKCkgeyB9CiAgICAgICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIHByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKik7CiAKICAg
ICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsUmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopID0gMDsKICAgICAgICAgY29uc3Qgdm9pZCogbV9wb2ludGVyOwor
ICAgICAgICBjb25zdCBNZW1vcnlPYmplY3RUeXBlIG1fb3duZXJPYmplY3RUeXBlOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgY29uc3QgTWVtb3J5T2JqZWN0VHlwZSBtX293bmVyT2JqZWN0VHlw
ZTsKICNpZiBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgogICAgICAgICBzdGF0aWMgY29u
c3QgaW50IHNfbWF4Q2FsbFN0YWNrU2l6ZSA9IDMyOwogICAgICAgICB2b2lkKiBtX2NhbGxTdGFj
a1tzX21heENhbGxTdGFja1NpemVdOwpAQCAtOTYsNiArOTksMTMgQEAgcHJvdGVjdGVkOgogI2Vu
ZGlmCiAgICAgfTsKIAorICAgIGNsYXNzIFJvb3RPYmplY3RCYXNlIDogcHVibGljIEluc3RydW1l
bnRlZFBvaW50ZXJCYXNlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBSb290T2JqZWN0QmFzZShNZW1vcnlPYmplY3RUeXBlLCBjb25zdCB2b2lkKiBwb2ludGVyKTsK
KyAgICAgICAgdmlydHVhbCB+Um9vdE9iamVjdEJhc2UoKSB7IH0KKyAgICAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHZvaWQgcHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24qKTsKKyAgICB9Owor
CiBwcml2YXRlOgogICAgIHZvaWQgY291bnRPYmplY3RTaXplKGNvbnN0IHZvaWQqIG9iamVjdCwg
TWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlLCBzaXplX3Qgc2l6ZSkgeyBtX2NsaWVudC0+Y291
bnRPYmplY3RTaXplKG9iamVjdCwgb2JqZWN0VHlwZSwgc2l6ZSk7IH0KICAgICBib29sIHZpc2l0
ZWQoY29uc3Qgdm9pZCogcG9pbnRlcikgeyByZXR1cm4gbV9jbGllbnQtPnZpc2l0ZWQocG9pbnRl
cik7IH0KQEAgLTEwNSw2ICsxMTUsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRl
ZmVySW5zdHJ1bWVudGVkUG9pbnRlcihQYXNzT3duUHRyPEluc3RydW1lbnRlZFBvaW50ZXJCYXNl
PikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGVmZXJyZWRJbnN0cnVtZW50ZWRQb2lu
dGVycygpID0gMDsKKyAgICB2b2lkIHByb2Nlc3NSZWZlcmVuY2UoTWVtb3J5SW5zdHJ1bWVudGF0
aW9uKik7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUg
Z2V0T2JqZWN0VHlwZShNZW1vcnlPYmplY3RJbmZvKik7CiAKQEAgLTEzNSw3ICsxNDYsMTUgQEAg
cHJpdmF0ZToKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEluc3RydW1lbnRlZFBv
aW50ZXIgOiBwdWJsaWMgSW5zdHJ1bWVudGVkUG9pbnRlckJhc2UgewogICAgIHB1YmxpYzoKLSAg
ICAgICAgSW5zdHJ1bWVudGVkUG9pbnRlcihjb25zdCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RJ
bmZvKiBvd25lck9iamVjdEluZm8pOworICAgICAgICBJbnN0cnVtZW50ZWRQb2ludGVyKGNvbnN0
IFQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUpOworCisgICAgcHJvdGVjdGVkOgorICAgICAg
ICB2aXJ0dWFsIHZvaWQgY2FsbFJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBP
VkVSUklERTsKKyAgICB9OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUm9vdE9i
amVjdCA6IHB1YmxpYyBSb290T2JqZWN0QmFzZSB7CisgICAgcHVibGljOgorICAgICAgICBSb290
T2JqZWN0KGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUpOwogCiAgICAgcHJvdGVj
dGVkOgogICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbFJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qKSBPVkVSUklERTsKQEAgLTE1Nyw2ICsxNzYsMTEgQEAgcHJpdmF0ZToKICAgICAg
ICAgewogICAgICAgICAgICAgaW5zdHJ1bWVudGF0aW9uLT5hZGRPYmplY3RJbXBsKCZ0LCBvd25l
ck9iamVjdEluZm8sIGJ5UmVmZXJlbmNlLCBlZGdlTmFtZSk7CiAgICAgICAgIH0KKworICAgICAg
ICBzdGF0aWMgdm9pZCBhZGRSb290T2JqZWN0KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1
bWVudGF0aW9uLCBjb25zdCBUJiB0LCBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIFJvb3RPYmplY3Q8VD4oJnQsIG9iamVjdFR5cGUpLnByb2Nlc3Mo
aW5zdHJ1bWVudGF0aW9uKTsKKyAgICAgICAgfQogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgpAQCAtMTY1LDYgKzE4OSwxMiBAQCBwcml2YXRlOgogICAgICAgICB7CiAgICAgICAg
ICAgICBpbnN0cnVtZW50YXRpb24tPmFkZE9iamVjdEltcGwodCwgb3duZXJPYmplY3RJbmZvLCBi
eVBvaW50ZXIsIGVkZ2VOYW1lKTsKICAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyB2b2lkIGFk
ZFJvb3RPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0
IFQqIGNvbnN0JiB0LCBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICh0ICYmICFpbnN0cnVtZW50YXRpb24tPnZpc2l0ZWQodCkpCisgICAgICAg
ICAgICAgICAgSW5zdHJ1bWVudGVkUG9pbnRlcjxUPih0LCBvYmplY3RUeXBlKS5wcm9jZXNzKGlu
c3RydW1lbnRhdGlvbik7CisgICAgICAgIH0KICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IFQqLCBNZW1vcnlPYmplY3RJbmZvKiwgTWVt
b3J5T3duaW5nVHlwZSwgY29uc3QgY2hhciogZWRnZU5hbWUpOwpAQCAtMTcyLDcgKzIwMiw2IEBA
IHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNv
bnN0IFJlZlB0cjxUPiosIE1lbW9yeU9iamVjdEluZm8qLCBNZW1vcnlPd25pbmdUeXBlLCBjb25z
dCBjaGFyKiBlZGdlTmFtZSk7CiAKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQqIG1f
Y2xpZW50OwotICAgIE93blB0cjxNZW1vcnlPYmplY3RJbmZvPiBtX3Jvb3RPYmplY3RJbmZvOwog
fTsKIAogY2xhc3MgTWVtb3J5Q2xhc3NJbmZvIHsKQEAgLTIyMSw3ICsyNTAsNyBAQCB2b2lkIE1l
bW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbChjb25zdCBUKiBvYmplY3QsIE1lbW9y
eU9iamVjdEluZm8qIG93bgogICAgICAgICByZXBvcnRFZGdlKG93bmVyT2JqZWN0SW5mbywgb2Jq
ZWN0LCBlZGdlTmFtZSk7CiAgICAgICAgIGlmICghb2JqZWN0IHx8IHZpc2l0ZWQob2JqZWN0KSkK
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZGVmZXJJbnN0cnVtZW50ZWRQb2ludGVyKGFk
b3B0UHRyKG5ldyBJbnN0cnVtZW50ZWRQb2ludGVyPFQ+KG9iamVjdCwgb3duZXJPYmplY3RJbmZv
KSkpOworICAgICAgICBkZWZlckluc3RydW1lbnRlZFBvaW50ZXIoYWRvcHRQdHIobmV3IEluc3Ry
dW1lbnRlZFBvaW50ZXI8VD4ob2JqZWN0LCBnZXRPYmplY3RUeXBlKG93bmVyT2JqZWN0SW5mbykp
KSk7CiAgICAgfQogfQogCkBAIC0yNDIsOCArMjcxLDggQEAgdm9pZCBNZW1vcnlJbnN0cnVtZW50
YXRpb246OmFkZE9iamVjdEltcGwoY29uc3QgUmVmUHRyPFQ+KiBvYmplY3QsIE1lbW9yeU9iamVj
dEkKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLU1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5z
dHJ1bWVudGVkUG9pbnRlcjxUPjo6SW5zdHJ1bWVudGVkUG9pbnRlcihjb25zdCBUKiBwb2ludGVy
LCBNZW1vcnlPYmplY3RJbmZvKiBvd25lck9iamVjdEluZm8pCi0gICAgOiBJbnN0cnVtZW50ZWRQ
b2ludGVyQmFzZShvd25lck9iamVjdEluZm8sIHBvaW50ZXIpCitNZW1vcnlJbnN0cnVtZW50YXRp
b246Okluc3RydW1lbnRlZFBvaW50ZXI8VD46Okluc3RydW1lbnRlZFBvaW50ZXIoY29uc3QgVCog
cG9pbnRlciwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUpCisgICAgOiBJbnN0cnVt
ZW50ZWRQb2ludGVyQmFzZShvd25lck9iamVjdFR5cGUsIHBvaW50ZXIpCiB7CiB9CiAKQEAgLTI1
Myw2ICsyODIsMTggQEAgdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBv
aW50ZXI8VD46OmNhbGxSZXBvcnRNZW1vcnlVc2FnZShNZW1vcnkKICAgICByZXBvcnRNZW1vcnlV
c2FnZShzdGF0aWNfY2FzdDxjb25zdCBUKj4obV9wb2ludGVyKSwgbWVtb3J5T2JqZWN0SW5mbyk7
CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitNZW1vcnlJbnN0cnVtZW50YXRpb246OlJvb3RP
YmplY3Q8VD46OlJvb3RPYmplY3QoY29uc3QgVCogcG9pbnRlciwgTWVtb3J5T2JqZWN0VHlwZSBv
d25lck9iamVjdFR5cGUpCisgICAgOiBSb290T2JqZWN0QmFzZShvd25lck9iamVjdFR5cGUsIHBv
aW50ZXIpCit7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIE1lbW9yeUluc3RydW1l
bnRhdGlvbjo6Um9vdE9iamVjdDxUPjo6Y2FsbFJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qIG1lbW9yeU9iamVjdEluZm8pCit7CisgICAgcmVwb3J0TWVtb3J5VXNhZ2Uoc3RhdGlj
X2Nhc3Q8Y29uc3QgVCo+KG1fcG9pbnRlciksIG1lbW9yeU9iamVjdEluZm8pOworfQorCiAvLyBM
aW5rIHRpbWUgZ3VhcmQgZm9yIGNsYXNzZXMgd2l0aCBleHRlcm5hbCBtZW1vcnkgaW5zdHJ1bWVu
dGF0aW9uLgogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PiBjbGFz
cyBWZWN0b3I7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+IHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5PiosIE1l
bW9yeU9iamVjdEluZm8qKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBkZmNkZDcyMWVjYWI3NjYzOTliZGZjZDBmODFjNzI5ZDM1MzU0OWI3Li5k
MzU1YzRlNmY0Y2UyMDYxYjBhOWUxZDQ2MzQ4YjU4OWY2MTJjODZiIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTIt
MTItMTIgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE5hdGl2ZSBNZW1vcnkgSW5zdHJ1bWVudGF0aW9uOiByZW1vdmUgZmFr
ZSByb290IE1lbW9yeU9iamVjdEluZm8uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDQ3OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJdCB3YXMgbm90IGEgZ29vZCBpZGVhIHRvIGludHJvZHVjZSBhIGZh
a2Ugcm9vdCBNZW1vcnlPYmplY3RJbmZvLgorICAgICAgICBJdCBtYWtlcyBhIHByb2JsZW0gd2hl
biB3ZSB2aXNpdCBhbiBvYmplY3Qgd2l0aG91dCBpdHMgb3duIE1lbW9yeU9iamVjdFR5cGUuCisK
KyAgICAgICAgRXhhbXBsZTogUmVuZGVyQm94IGhhcyBhIGdsb2JhbCBwb2ludGVyIHRvIGEgaGFz
aCBtYXAuCisgICAgICAgIEhhc2hNYXAgZG9lc24ndCBoYXZlIGl0cyBvd24gb2JqZWN0IHR5cGUg
YmVjYXVzZSBpdCBpcyBhIGdlbmVyaWMgY29udGFpbmVyLgorICAgICAgICBJdCB3aWxsIGluaGVy
aXQgb2JqZWN0IHR5cGUgZnJvbSB0aGUgZmFrZSByb290IG1lbW9yeSBvYmplY3QgaW5mby4KKyAg
ICAgICAgVGhlIHNhbWUgY291bGQgaGFwcGVuIGZvciBhbm90aGVyIGNvbnRhaW5lciBpbiBhbm90
aGVyIGNsYXNzIHdpdGggb3RoZXIgTWVtb3J5T2JqZWN0VHlwZS4KKworICAgICAgICBUaGlzIGZh
Y3QgZm9yY2VzIG1lIHRvIGNyZWF0ZSBjdXN0b20gcHJvY2VzcyBtZXRob2QgZm9yIHJvb3Qgb2Jq
ZWN0cworICAgICAgICBiZWNhdXNlIHRoZXkgbmVlZCB0byBoYXZlIHRoZWlyIG93biBNZW1vcnlP
YmplY3RJbmZvIHdpdGggY3VzdG9taXNhYmxlIG1lbW9yeSBvYmplY3QgdHlwZS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3Bw
OgorCiAyMDEyLTEyLTEyICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAK
ICAgICAgICAgW0dUS10gUmVtb3ZlIHRoZSBsYXN0IG9mIHVubmVjZXNzYXJ5IGNvbmZpZ3VyYXRp
b24gb3B0aW9ucyBpbiBjb25maWd1cmUuYWMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKaW5kZXggZmM1
NWJlMDM4MWFlMzI4YTAyN2Q1YzEwOGNlNzI4MjI0ZGRjOGY1Ny4uNzExM2RiZTM1ZmVlOTBlZGFl
YjEzZDUxYmU3ZjFmOTAzZjA2MjdmZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKQEAgLTIyMSwz
OCArMjIxLDYgQEAgVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBwdHJWc1JlZikKICAg
ICB9CiB9CiAKLVRFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgb3duUHRyKQotewotICAg
IEluc3RydW1lbnRhdGlvblRlc3RIZWxwZXIgaGVscGVyOwotICAgIE93blB0cjxJbnN0cnVtZW50
ZWQ+IGluc3RydW1lbnRlZChhZG9wdFB0cihuZXcgSW5zdHJ1bWVudGVkKSk7Ci0gICAgaGVscGVy
LmFkZFJvb3RPYmplY3QoaW5zdHJ1bWVudGVkKTsKLSAgICBFWFBFQ1RfRVEoc2l6ZW9mKEluc3Ry
dW1lbnRlZCkgKyBzaXplb2YoTm90SW5zdHJ1bWVudGVkKSwgaGVscGVyLnJlcG9ydGVkU2l6ZUZv
ckFsbFR5cGVzKCkpOwotICAgIEVYUEVDVF9FUSgydSwgaGVscGVyLnZpc2l0ZWRPYmplY3RzKCkp
OwotfQotCi1jbGFzcyBJbnN0cnVtZW50ZWRSZWZQdHIgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnN0
cnVtZW50ZWRSZWZQdHI+IHsKLXB1YmxpYzoKLSAgICBJbnN0cnVtZW50ZWRSZWZQdHIoKSA6IG1f
bm90SW5zdHJ1bWVudGVkKG5ldyBOb3RJbnN0cnVtZW50ZWQpIHsgfQotICAgIHZpcnR1YWwgfklu
c3RydW1lbnRlZFJlZlB0cigpIHsgZGVsZXRlIG1fbm90SW5zdHJ1bWVudGVkOyB9Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8SW5zdHJ1bWVudGVkUmVmUHRyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgSW5zdHJ1bWVudGVkUmVmUHRyKCkpOyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
LSAgICB7Ci0gICAgICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFRlc3RUeXBlKTsKLSAgICAgICAgaW5mby5hZGRNZW1iZXIobV9ub3RJbnN0cnVtZW50ZWQp
OwotICAgIH0KLSAgICBOb3RJbnN0cnVtZW50ZWQqIG1fbm90SW5zdHJ1bWVudGVkOwotfTsKLQot
VEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCByZWZQdHIpCi17Ci0gICAgSW5zdHJ1bWVu
dGF0aW9uVGVzdEhlbHBlciBoZWxwZXI7Ci0gICAgUmVmUHRyPEluc3RydW1lbnRlZFJlZlB0cj4g
aW5zdHJ1bWVudGVkUmVmUHRyKGFkb3B0UmVmKG5ldyBJbnN0cnVtZW50ZWRSZWZQdHIpKTsKLSAg
ICBoZWxwZXIuYWRkUm9vdE9iamVjdChpbnN0cnVtZW50ZWRSZWZQdHIpOwotICAgIEVYUEVDVF9F
UShzaXplb2YoSW5zdHJ1bWVudGVkUmVmUHRyKSArIHNpemVvZihOb3RJbnN0cnVtZW50ZWQpLCBo
ZWxwZXIucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDJ1LCBoZWxw
ZXIudmlzaXRlZE9iamVjdHMoKSk7Ci19Ci0KIGNsYXNzIEluc3RydW1lbnRlZFdpdGhPd25QdHIg
OiBwdWJsaWMgSW5zdHJ1bWVudGVkIHsKIHB1YmxpYzoKICAgICBJbnN0cnVtZW50ZWRXaXRoT3du
UHRyKCkgOiBtX25vdEluc3RydW1lbnRlZE93blB0cihhZG9wdFB0cihuZXcgTm90SW5zdHJ1bWVu
dGVkKSkgeyB9CkBAIC0zMDIsNyArMjcwLDcgQEAgVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25U
ZXN0LCBvd25lclR5cGVQcm9wYWdhdGlvbikKIHsKICAgICBJbnN0cnVtZW50YXRpb25UZXN0SGVs
cGVyIGhlbHBlcjsKICAgICBPd25QdHI8SW5zdHJ1bWVudGVkRE9NPiBpbnN0cnVtZW50ZWRET00o
YWRvcHRQdHIobmV3IEluc3RydW1lbnRlZERPTSkpOwotICAgIGhlbHBlci5hZGRSb290T2JqZWN0
KGluc3RydW1lbnRlZERPTSk7CisgICAgaGVscGVyLmFkZFJvb3RPYmplY3QoaW5zdHJ1bWVudGVk
RE9NLmdldCgpKTsKICAgICBFWFBFQ1RfRVEoc2l6ZW9mKEluc3RydW1lbnRlZERPTSkgKyBzaXpl
b2YoSW5zdHJ1bWVudGVkVW5kZWZpbmVkKSwgaGVscGVyLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVz
KCkpOwogICAgIEVYUEVDVF9FUShzaXplb2YoSW5zdHJ1bWVudGVkRE9NKSArIHNpemVvZihJbnN0
cnVtZW50ZWRVbmRlZmluZWQpLCBoZWxwZXIudG90YWxTaXplKFRlc3RUeXBlKSk7CiAgICAgRVhQ
RUNUX0VRKDJ1LCBoZWxwZXIudmlzaXRlZE9iamVjdHMoKSk7CkBAIC05MDEsNyArODY5LDcgQEAg
VEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBkb05vdFJlcG9ydEVkZ2VUd2ljZSkKIAog
ICAgIENvdW50TGlua3NGcm9tSW5zdHJ1bWVudGVkT2JqZWN0IGNsaWVudDsKICAgICBJbnN0cnVt
ZW50YXRpb25UZXN0SW1wbCBpbnN0cnVtZW50YXRpb24oJmNsaWVudCk7Ci0gICAgaW5zdHJ1bWVu
dGF0aW9uLmFkZFJvb3RPYmplY3QoaW5zdGFuY2UpOworICAgIGluc3RydW1lbnRhdGlvbi5hZGRS
b290T2JqZWN0KGluc3RhbmNlLmdldCgpKTsKICAgICBFWFBFQ1RfRVEoMSwgY2xpZW50LmxpbmtD
b3VudCgpKTsKIH0KIH0gLy8gbmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179034</attachid>
            <date>2012-12-12 07:24:49 -0800</date>
            <delta_ts>2012-12-12 07:34:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104796-20121212192209.patch</filename>
            <type>text/plain</type>
            <size>23209</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZGIzOGFiNGI0MjNlOTllZDM4NzY4NWM0YTQ4YmJmM2FmNmZjYTA5Li5hOGRlMTUxODlkNDBhNjk2
N2FmNmY4YmZiYzczNjBmN2YzNzM5ZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMi0xMi0xMiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTmF0aXZlIE1lbW9yeSBJbnN0cnVtZW50
YXRpb246IHJlbW92ZSBmYWtlIHJvb3QgTWVtb3J5T2JqZWN0SW5mby4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDc5NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IHdhcyBub3QgYSBnb29kIGlkZWEg
dG8gaW50cm9kdWNlIGEgZmFrZSByb290IE1lbW9yeU9iamVjdEluZm8uCisgICAgICAgIEl0IG1h
a2VzIGEgcHJvYmxlbSB3aGVuIHdlIHZpc2l0IGFuIG9iamVjdCB3aXRob3V0IGl0cyBvd24gTWVt
b3J5T2JqZWN0VHlwZS4KKworICAgICAgICBFeGFtcGxlOiBSZW5kZXJCb3ggaGFzIGEgZ2xvYmFs
IHBvaW50ZXIgdG8gYSBoYXNoIG1hcC4KKyAgICAgICAgSGFzaE1hcCBkb2Vzbid0IGhhdmUgaXRz
IG93biBvYmplY3QgdHlwZSBiZWNhdXNlIGl0IGlzIGEgZ2VuZXJpYyBjb250YWluZXIuCisgICAg
ICAgIEl0IHdpbGwgaW5oZXJpdCBvYmplY3QgdHlwZSBmcm9tIHRoZSBmYWtlIHJvb3QgbWVtb3J5
IG9iamVjdCBpbmZvLgorICAgICAgICBUaGUgc2FtZSBjb3VsZCBoYXBwZW4gZm9yIGFub3RoZXIg
Y29udGFpbmVyIGluIGFub3RoZXIgY2xhc3Mgd2l0aCBvdGhlciBNZW1vcnlPYmplY3RUeXBlLgor
CisgICAgICAgIFRoaXMgZmFjdCBmb3JjZXMgbWUgdG8gY3JlYXRlIGN1c3RvbSBwcm9jZXNzIG1l
dGhvZCBmb3Igcm9vdCBvYmplY3RzCisgICAgICAgIGJlY2F1c2UgdGhleSBuZWVkIHRvIGhhdmUg
dGhlaXIgb3duIE1lbW9yeU9iamVjdEluZm8gd2l0aCBjdXN0b21pc2FibGUgbWVtb3J5IG9iamVj
dCB0eXBlLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmRlZjoKKwogMjAxMi0xMi0xMSAgR2Fib3IgQmFsbGFiYXMgIDxnYWJv
cmJAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIEltcGxlbWVudCBhZGQ2NCBmb3IgQVJNIHRy
YWRpdGlvbmFsIGFzc2VtYmxlciBhZnRlciByMTM2NjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU2ZTg0YWMzNWU3YzZmOWYw
ODM0MTEwYzMyNTE5ODdjMjk4N2VhM2UuLjViMjI3ZDRlYmRiOTNiYmU4ZGNmYWI4Nzk5MjYwYTk4
NGVhMjE4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTItMTItMTIgIElseWEgVGlraG9ub3Zz
a3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5hdGl2
ZSBNZW1vcnkgSW5zdHJ1bWVudGF0aW9uOiByZW1vdmUgZmFrZSByb290IE1lbW9yeU9iamVjdElu
Zm8uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQ3
OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCB3
YXMgbm90IGEgZ29vZCBpZGVhIHRvIGludHJvZHVjZSBhIGZha2Ugcm9vdCBNZW1vcnlPYmplY3RJ
bmZvLgorICAgICAgICBJdCBtYWtlcyBhIHByb2JsZW0gd2hlbiB3ZSB2aXNpdCBhbiBvYmplY3Qg
d2l0aG91dCBpdHMgb3duIE1lbW9yeU9iamVjdFR5cGUuCisKKyAgICAgICAgRXhhbXBsZTogUmVu
ZGVyQm94IGhhcyBhIGdsb2JhbCBwb2ludGVyIHRvIGEgaGFzaCBtYXAuCisgICAgICAgIEhhc2hN
YXAgZG9lc24ndCBoYXZlIGl0cyBvd24gb2JqZWN0IHR5cGUgYmVjYXVzZSBpdCBpcyBhIGdlbmVy
aWMgY29udGFpbmVyLgorICAgICAgICBJdCB3aWxsIGluaGVyaXQgb2JqZWN0IHR5cGUgZnJvbSB0
aGUgZmFrZSByb290IG1lbW9yeSBvYmplY3QgaW5mby4KKyAgICAgICAgVGhlIHNhbWUgY291bGQg
aGFwcGVuIGZvciBhbm90aGVyIGNvbnRhaW5lciBpbiBhbm90aGVyIGNsYXNzIHdpdGggb3RoZXIg
TWVtb3J5T2JqZWN0VHlwZS4KKworICAgICAgICBUaGlzIGZhY3QgZm9yY2VzIG1lIHRvIGNyZWF0
ZSBjdXN0b20gcHJvY2VzcyBtZXRob2QgZm9yIHJvb3Qgb2JqZWN0cworICAgICAgICBiZWNhdXNl
IHRoZXkgbmVlZCB0byBoYXZlIHRoZWlyIG93biBNZW1vcnlPYmplY3RJbmZvIHdpdGggY3VzdG9t
aXNhYmxlIG1lbW9yeSBvYmplY3QgdHlwZS4KKworICAgICAgICAqIHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb24uY3BwOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Ok1lbW9y
eUluc3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6
V3JhcHBlckJhc2U6OldyYXBwZXJCYXNlKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjpXcmFwcGVyQmFzZTo6cHJvY2Vzcyk6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3Ry
dW1lbnRhdGlvbjo6V3JhcHBlckJhc2U6OnByb2Nlc3NSb290T2JqZWN0UmVmKToKKyAgICAgICAg
KFdURik6CisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAo
V1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZFJvb3RPYmplY3QpOgorICAgICAgICAoTWVt
b3J5SW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdyYXBwZXJCYXNlKToKKyAgICAgICAgKFdU
Rjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpXcmFwcGVyQmFzZTo6fldyYXBwZXJCYXNlKToKKyAg
ICAgICAgKFdyYXBwZXIpOgorICAgICAgICAoT3duaW5nVHJhaXRzKToKKyAgICAgICAgKFdURjo6
TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdUcmFpdHM6OmFkZFJvb3RPYmplY3QpOgorICAg
ICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVjdEltcGwpOgorICAgICAg
ICAoV1RGOjo6OldyYXBwZXIpOgorICAgICAgICAoV1RGOjo6OmNhbGxSZXBvcnRNZW1vcnlVc2Fn
ZSk6CisKIDIwMTItMTItMTIgIFNlcmdpbyBNYXJ0aW5zICA8c2VyZ2lvLm1hcnRpbnNAa2RhYi5j
b20+CiAKICAgICAgICAgRml4IFFOWCBRdCBidWlsZCBieSBlbmFibGluZyBKSVQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggMWY5NTgxMTA5MTEzYzVlNmRjYjc2MTIyZDdiNTc0NzYxNThhMzJhNS4uY2FiMWYxNTU4
ZWRjZDU0MzQwMDRlZTA0NzYwNzFhZDE0YmIzZTZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDEyLTEyLTEyICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBOYXRpdmUgTWVtb3J5IEluc3RydW1lbnRhdGlvbjog
cmVtb3ZlIGZha2Ugcm9vdCBNZW1vcnlPYmplY3RJbmZvLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0Nzk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQgd2FzIG5vdCBhIGdvb2QgaWRlYSB0byBpbnRy
b2R1Y2UgYSBmYWtlIHJvb3QgTWVtb3J5T2JqZWN0SW5mby4KKyAgICAgICAgSXQgbWFrZXMgYSBw
cm9ibGVtIHdoZW4gd2UgdmlzaXQgYW4gb2JqZWN0IHdpdGhvdXQgaXRzIG93biBNZW1vcnlPYmpl
Y3RUeXBlLgorCisgICAgICAgIEV4YW1wbGU6IFJlbmRlckJveCBoYXMgYSBnbG9iYWwgcG9pbnRl
ciB0byBhIGhhc2ggbWFwLgorICAgICAgICBIYXNoTWFwIGRvZXNuJ3QgaGF2ZSBpdHMgb3duIG9i
amVjdCB0eXBlIGJlY2F1c2UgaXQgaXMgYSBnZW5lcmljIGNvbnRhaW5lci4KKyAgICAgICAgSXQg
d2lsbCBpbmhlcml0IG9iamVjdCB0eXBlIGZyb20gdGhlIGZha2Ugcm9vdCBtZW1vcnkgb2JqZWN0
IGluZm8uCisgICAgICAgIFRoZSBzYW1lIGNvdWxkIGhhcHBlbiBmb3IgYW5vdGhlciBjb250YWlu
ZXIgaW4gYW5vdGhlciBjbGFzcyB3aXRoIG90aGVyIE1lbW9yeU9iamVjdFR5cGUuCisKKyAgICAg
ICAgVGhpcyBmYWN0IGZvcmNlcyBtZSB0byBjcmVhdGUgY3VzdG9tIHByb2Nlc3MgbWV0aG9kIGZv
ciByb290IG9iamVjdHMKKyAgICAgICAgYmVjYXVzZSB0aGV5IG5lZWQgdG8gaGF2ZSB0aGVpciBv
d24gTWVtb3J5T2JqZWN0SW5mbyB3aXRoIGN1c3RvbWlzYWJsZSBtZW1vcnkgb2JqZWN0IHR5cGUu
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsOjpwcm9jZXNzRGVmZXJy
ZWRPYmplY3RzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbkltcGw6
OmRlZmVyT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbklt
cGw6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uSW1wbC5oOgorICAgICAgICAoTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCk6CisK
IDIwMTItMTItMTIgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAg
ICAgICBbR1RLXSBSZW1vdmUgdGhlIGxhc3Qgb2YgdW5uZWNlc3NhcnkgY29uZmlndXJhdGlvbiBv
cHRpb25zIGluIGNvbmZpZ3VyZS5hYwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCAzMDZhYTFjNWNlOTljZmI5YjQ4YjZkOTZmYTAx
YjBjODgwYjIxYTBiLi40YTM3MjQzZmI1ZjBmNmZmYjExMjhkY2JlYTZjNjNhNGYyNmMwMjYyIDEw
MDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRl
ZgpAQCAtMTIsNyArMTIsNiBAQCBFWFBPUlRTCiAgICAgPz8wRHJvcEFsbExvY2tzQEpTTG9ja0BK
U0NAQFFBRUBQQVZKU0dsb2JhbERhdGFAMkBAWgogICAgID8/MER5bmFtaWNHbG9iYWxPYmplY3RT
Y29wZUBKU0NAQFFBRUBBQVZKU0dsb2JhbERhdGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQEBaIAog
ICAgID8/MEVycm9ySGFuZGxpbmdNb2RlQEludGVycHJldGVyQEpTQ0BAUUFFQFBBVkV4ZWNTdGF0
ZUAyQEBaCi0gICAgPz8wSW5zdHJ1bWVudGVkUG9pbnRlckJhc2VATWVtb3J5SW5zdHJ1bWVudGF0
aW9uQFdURkBAUUFFQFBBVk1lbW9yeU9iamVjdEluZm9AMkBQQlhAWgogICAgID8/MEludGVybmFs
RnVuY3Rpb25ASlNDQEBJQUVAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZTdHJ1Y3R1cmVAMUBAWgog
ICAgID8/MEpTR2xvYmFsT2JqZWN0QEpTQ0BASUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVj
dHVyZUAxQFBCVUdsb2JhbE9iamVjdE1ldGhvZFRhYmxlQDFAQFoKICAgICA/PzBKU0xvY2tIb2xk
ZXJASlNDQEBRQUVAQUFWSlNHbG9iYWxEYXRhQDFAQFoKQEAgLTI1LDEyICsyNCwxNCBAQCBFWFBP
UlRTCiAgICAgPz8wUGFyYWxsZWxFbnZpcm9ubWVudEBXVEZAQFFBRUBQNkFYUEFYQFpJSEBaCiAg
ICAgPz8wUmVmQ291bnRlZExlYWtDb3VudGVyQFdURkBAUUFFQFBCREBaCiAgICAgPz8wUmVnRXhw
T2JqZWN0QEpTQ0BASUFFQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAUEFWUmVn
RXhwQDFAQFoKKyAgICA/PzBSb290T2JqZWN0QmFzZUBNZW1vcnlJbnN0cnVtZW50YXRpb25AV1RG
QEBRQUVAUEJEUEJYQFoKICAgICA/PzBTSEExQFdURkBAUUFFQFhaCiAgICAgPz8wU3RyaW5nT2Jq
ZWN0QEpTQ0BASUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVjdHVyZUAxQEBaCiAgICAgPz8w
U3RyaW5nUHJpbnRTdHJlYW1AV1RGQEBRQUVAWFoKICAgICA/PzBTdHJ1Y3R1cmVASlNDQEBBQUVA
QUFWSlNHbG9iYWxEYXRhQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBWSlNWYWx1ZUAxQEFCVlR5cGVJ
bmZvQDFAUEJVQ2xhc3NJbmZvQDFARUhAWgogICAgID8/MFRocmVhZENvbmRpdGlvbkBXVEZAQFFB
RUBYWgogICAgID8/MFdURlRocmVhZERhdGFAV1RGQEBRQUVAWFoKKyAgICA/PzBXcmFwcGVyQmFz
ZUBNZW1vcnlJbnN0cnVtZW50YXRpb25AV1RGQEBRQUVAUEJEUEJYQFoKICAgICA/PzBZYXJyUGF0
dGVybkBZYXJyQEpTQ0BAUUFFQEFCVlN0cmluZ0BXVEZAQF9OMVBBUEJEQFoKICAgICA/PzFBcnJh
eUJ1ZmZlclZpZXdAV1RGQEBVQUVAWFoKICAgICA/PzFDbGllbnREYXRhQEpTR2xvYmFsRGF0YUBK
U0NAQFVBRUBYWgpAQCAtMzA1LDcgKzMwNiw4IEBAIEVYUE9SVFMKICAgICA/cGFyc2VEYXRlRnJv
bU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVyc0BXVEZAQFlBTlBCREBaCiAgICAgP3BhcnNlRG91Ymxl
RnJvbUxvbmdTdHJpbmdASW50ZXJuYWxAV1RGQEBZQU5QQl9XSUFBSUBaCiAgICAgP3Bvc2l0aXZl
SW5maW5pdGVUaW1lQE1lZGlhVGltZUBXVEZAQFNBQUJWMTJAWFogCi0gICAgP3Byb2Nlc3NASW5z
dHJ1bWVudGVkUG9pbnRlckJhc2VATWVtb3J5SW5zdHJ1bWVudGF0aW9uQFdURkBAUUFFWFBBVjIz
QEBaCisgICAgP3Byb2Nlc3NAV3JhcHBlckJhc2VATWVtb3J5SW5zdHJ1bWVudGF0aW9uQFdURkBA
UUFFWFBBVjIzQEBaCisgICAgP3Byb2Nlc3NSb290T2JqZWN0UmVmQFdyYXBwZXJCYXNlQE1lbW9y
eUluc3RydW1lbnRhdGlvbkBXVEZAQFFBRVhQQVYyM0BAWgogICAgID9wcm9maWxlckBMZWdhY3lQ
cm9maWxlckBKU0NAQFNBUEFWMTJAWFoKICAgICA/cHJvdGVjdEBIZWFwQEpTQ0BAUUFFWFZKU1Zh
bHVlQDJAQFoKICAgICA/cHJvdGVjdGVkR2xvYmFsT2JqZWN0Q291bnRASGVhcEBKU0NAQFFBRUlY
WgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBi
L1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMWI1NjZiYmRi
YTUzYTE0YTZkMzcyMzRlMjcyYmU2OGFjOGM0NmQzMy4uYWY4YjkyNDU2MDY3MmY0ZjAyYTcxMjI1
YzFiOGU3MDAzMWZjNjFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24u
Y3BwCkBAIC00Miw3ICs0Miw2IEBAIG5hbWVzcGFjZSBXVEYgewogCiBNZW1vcnlJbnN0cnVtZW50
YXRpb246Ok1lbW9yeUluc3RydW1lbnRhdGlvbihNZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQq
IGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1fcm9vdE9iamVjdEluZm8o
YWRvcHRQdHIobmV3IE1lbW9yeU9iamVjdEluZm8odGhpcywgMCwgMCkpKQogewogfQogCkBAIC03
Myw5ICs3Miw5IEBAIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpyZXBvcnRMaW5rVG9CdWZm
ZXIoY29uc3Qgdm9pZCogb3duZXIsIGNvbnN0IHZvaWQqIGJ1CiAgICAgbV9jbGllbnQtPnJlcG9y
dExlYWYob3duZXIsIG1lbW9yeU9iamVjdEluZm8sIGVkZ2VOYW1lKTsKIH0KIAotTWVtb3J5SW5z
dHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZTo6SW5zdHJ1bWVudGVkUG9pbnRl
ckJhc2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbywgY29uc3Qgdm9pZCogcG9p
bnRlcikKK01lbW9yeUluc3RydW1lbnRhdGlvbjo6V3JhcHBlckJhc2U6OldyYXBwZXJCYXNlKE1l
bW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSwgY29uc3Qgdm9pZCogcG9pbnRlcikKICAgICA6IG1f
cG9pbnRlcihwb2ludGVyKQotICAgICwgbV9vd25lck9iamVjdFR5cGUobWVtb3J5T2JqZWN0SW5m
by0+b2JqZWN0VHlwZSgpKQorICAgICwgbV9vd25lck9iamVjdFR5cGUob2JqZWN0VHlwZSkKIHsK
ICNpZiBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgogICAgIG1fY2FsbFN0YWNrU2l6ZSA9
IHNfbWF4Q2FsbFN0YWNrU2l6ZTsKQEAgLTgzLDcgKzgyLDcgQEAgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZTo6SW5zdHJ1bWVudGVkUG9pbnRlckJhc2UoTWVt
b3J5T2IKICNlbmRpZgogfQogCi12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVu
dGVkUG9pbnRlckJhc2U6OnByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtZW1vcnlJbnN0
cnVtZW50YXRpb24pCit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6V3JhcHBlckJhc2U6OnBy
b2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtZW1vcnlJbnN0cnVtZW50YXRpb24pCiB7CiAg
ICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlPYmplY3RJbmZvKG1lbW9yeUluc3RydW1lbnRhdGlv
biwgbV9vd25lck9iamVjdFR5cGUsIG1fcG9pbnRlcik7CiAgICAgY2FsbFJlcG9ydE1lbW9yeVVz
YWdlKCZtZW1vcnlPYmplY3RJbmZvKTsKQEAgLTEwNSw2ICsxMDQsMTUgQEAgdm9pZCBNZW1vcnlJ
bnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlOjpwcm9jZXNzKE1lbW9yeUlu
c3RydW1lbnRhdGkKICAgICB9CiB9CiAKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpXcmFw
cGVyQmFzZTo6cHJvY2Vzc1Jvb3RPYmplY3RSZWYoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtZW1v
cnlJbnN0cnVtZW50YXRpb24pCit7CisgICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlPYmplY3RJ
bmZvKG1lbW9yeUluc3RydW1lbnRhdGlvbiwgbV9vd25lck9iamVjdFR5cGUsIG1fcG9pbnRlcik7
CisgICAgY2FsbFJlcG9ydE1lbW9yeVVzYWdlKCZtZW1vcnlPYmplY3RJbmZvKTsKKworICAgIEFT
U0VSVChtX3BvaW50ZXIgPT0gbWVtb3J5T2JqZWN0SW5mby5yZXBvcnRlZFBvaW50ZXIoKSk7Cisg
ICAgbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5tX2NsaWVudC0+cmVwb3J0Tm9kZShtZW1vcnlPYmpl
Y3RJbmZvKTsKK30KKwogdm9pZCBNZW1vcnlDbGFzc0luZm86OmluaXQoY29uc3Qgdm9pZCogb2Jq
ZWN0QWRkcmVzcywgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlLCBzaXplX3QgYWN0dWFsU2l6
ZSkKIHsKICAgICBtX21lbW9yeU9iamVjdEluZm8tPnJlcG9ydE9iamVjdEluZm8ob2JqZWN0QWRk
cmVzcywgb2JqZWN0VHlwZSwgYWN0dWFsU2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvbi5oCmluZGV4IGI5NDQxMjE0MjhjMWRjZjQ0ZDgxMTdkMmI5ZjAwODFhYzUzY2YwOTMu
LjFhNmM1ZWFiMWMzYjc4M2Y4MWFkZTgyMjE0NTU5N2Y5MjczYTVhNGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L01lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC03MCwyNSArNzAsMjkgQEAgcHVibGljOgogICAg
IFdURl9FWFBPUlRfUFJJVkFURSBleHBsaWNpdCBNZW1vcnlJbnN0cnVtZW50YXRpb24oTWVtb3J5
SW5zdHJ1bWVudGF0aW9uQ2xpZW50Kik7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwg
fk1lbW9yeUluc3RydW1lbnRhdGlvbigpOwogCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZv
aWQgYWRkUm9vdE9iamVjdChjb25zdCBUJiB0KQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2
b2lkIGFkZFJvb3RPYmplY3QoY29uc3QgVCYgdCwgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBl
ID0gMCkKICAgICB7Ci0gICAgICAgIGFkZE9iamVjdCh0LCBtX3Jvb3RPYmplY3RJbmZvLmdldCgp
LCAwKTsKLSAgICAgICAgcHJvY2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMoKTsKKyAg
ICAgICAgT3duaW5nVHJhaXRzPFQ+OjphZGRSb290T2JqZWN0KHRoaXMsIHQsIG9iamVjdFR5cGUp
OworICAgICAgICBwcm9jZXNzRGVmZXJyZWRPYmplY3RzKCk7CiAgICAgfQogCisgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IHZvaWQgYWRkUm9vdE9iamVjdChjb25zdCBPd25QdHI8VD4mLCBNZW1v
cnlPYmplY3RUeXBlID0gMCk7IC8vIExpbmsgdGltZSBndWFyZC4KKyAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4gdm9pZCBhZGRSb290T2JqZWN0KGNvbnN0IFJlZlB0cjxUPiYsIE1lbW9yeU9iamVj
dFR5cGUgPSAwKTsgLy8gTGluayB0aW1lIGd1YXJkLgorCiBwcm90ZWN0ZWQ6Ci0gICAgY2xhc3Mg
SW5zdHJ1bWVudGVkUG9pbnRlckJhc2UgeworICAgIGNsYXNzIFdyYXBwZXJCYXNlIHsKICAgICBw
dWJsaWM6Ci0gICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSBJbnN0cnVtZW50ZWRQb2ludGVyQmFz
ZShNZW1vcnlPYmplY3RJbmZvKiwgY29uc3Qgdm9pZCogcG9pbnRlcik7Ci0gICAgICAgIHZpcnR1
YWwgfkluc3RydW1lbnRlZFBvaW50ZXJCYXNlKCkgeyB9CisgICAgICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBXcmFwcGVyQmFzZShNZW1vcnlPYmplY3RUeXBlLCBjb25zdCB2b2lkKiBwb2ludGVyKTsK
KyAgICAgICAgdmlydHVhbCB+V3JhcHBlckJhc2UoKSB7IH0KICAgICAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgcHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24qKTsKKyAgICAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgcHJvY2Vzc1Jvb3RPYmplY3RSZWYoTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uKik7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsUmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopID0gMDsKICAgICAgICAgY29uc3Qgdm9p
ZCogbV9wb2ludGVyOworICAgICAgICBjb25zdCBNZW1vcnlPYmplY3RUeXBlIG1fb3duZXJPYmpl
Y3RUeXBlOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgY29uc3QgTWVtb3J5T2JqZWN0VHlwZSBt
X293bmVyT2JqZWN0VHlwZTsKICNpZiBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgogICAg
ICAgICBzdGF0aWMgY29uc3QgaW50IHNfbWF4Q2FsbFN0YWNrU2l6ZSA9IDMyOwogICAgICAgICB2
b2lkKiBtX2NhbGxTdGFja1tzX21heENhbGxTdGFja1NpemVdOwpAQCAtMTAzLDggKzEwNyw4IEBA
IHByaXZhdGU6CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCByZXBvcnRFZGdlKE1lbW9y
eU9iamVjdEluZm8qIG93bmVyT2JqZWN0SW5mbywgY29uc3Qgdm9pZCogdGFyZ2V0LCBjb25zdCBj
aGFyKiBlZGdlTmFtZSk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVmZXJJbnN0cnVtZW50ZWRQb2lu
dGVyKFBhc3NPd25QdHI8SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U+KSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHByb2Nlc3NEZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkZWZlck9iamVjdChQYXNzT3duUHRyPFdyYXBwZXJCYXNlPikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBwcm9jZXNzRGVmZXJyZWRPYmplY3RzKCkgPSAwOwogCiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIGdldE9iamVjdFR5cGUoTWVtb3J5
T2JqZWN0SW5mbyopOwogCkBAIC0xMzMsOSArMTM3LDkgQEAgcHJpdmF0ZToKICAgICB9CiAgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGNhbGxSZXBvcnRPYmplY3RJbmZvKE1lbW9y
eU9iamVjdEluZm8qLCBjb25zdCB2b2lkKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlLCBzaXpl
X3Qgb2JqZWN0U2l6ZSk7CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBJbnN0cnVt
ZW50ZWRQb2ludGVyIDogcHVibGljIEluc3RydW1lbnRlZFBvaW50ZXJCYXNlIHsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBXcmFwcGVyIDogcHVibGljIFdyYXBwZXJCYXNlIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIEluc3RydW1lbnRlZFBvaW50ZXIoY29uc3QgVCogcG9pbnRlciwg
TWVtb3J5T2JqZWN0SW5mbyogb3duZXJPYmplY3RJbmZvKTsKKyAgICAgICAgV3JhcHBlcihjb25z
dCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlKTsKIAogICAgIHByb3RlY3RlZDoKICAgICAg
ICAgdmlydHVhbCB2b2lkIGNhbGxSZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
T1ZFUlJJREU7CkBAIC0xNTcsNiArMTYxLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHsKICAgICAg
ICAgICAgIGluc3RydW1lbnRhdGlvbi0+YWRkT2JqZWN0SW1wbCgmdCwgb3duZXJPYmplY3RJbmZv
LCBieVJlZmVyZW5jZSwgZWRnZU5hbWUpOwogICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIHZv
aWQgYWRkUm9vdE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwg
Y29uc3QgVCYgdCwgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlKQorICAgICAgICB7CisgICAg
ICAgICAgICBXcmFwcGVyPFQ+KCZ0LCBvYmplY3RUeXBlKS5wcm9jZXNzUm9vdE9iamVjdFJlZihp
bnN0cnVtZW50YXRpb24pOworICAgICAgICB9CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+CkBAIC0xNjUsNiArMTc0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIHsKICAgICAgICAg
ICAgIGluc3RydW1lbnRhdGlvbi0+YWRkT2JqZWN0SW1wbCh0LCBvd25lck9iamVjdEluZm8sIGJ5
UG9pbnRlciwgZWRnZU5hbWUpOwogICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIHZvaWQgYWRk
Um9vdE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3Qg
VCogY29uc3QmIHQsIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSkKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKHQgJiYgIWluc3RydW1lbnRhdGlvbi0+dmlzaXRlZCh0KSkKKyAgICAgICAg
ICAgICAgICBXcmFwcGVyPFQ+KHQsIG9iamVjdFR5cGUpLnByb2Nlc3MoaW5zdHJ1bWVudGF0aW9u
KTsKKyAgICAgICAgfQogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFk
ZE9iamVjdEltcGwoY29uc3QgVCosIE1lbW9yeU9iamVjdEluZm8qLCBNZW1vcnlPd25pbmdUeXBl
LCBjb25zdCBjaGFyKiBlZGdlTmFtZSk7CkBAIC0xNzIsNyArMTg3LDYgQEAgcHJpdmF0ZToKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVjdEltcGwoY29uc3QgUmVmUHRyPFQ+
KiwgTWVtb3J5T2JqZWN0SW5mbyosIE1lbW9yeU93bmluZ1R5cGUsIGNvbnN0IGNoYXIqIGVkZ2VO
YW1lKTsKIAogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCogbV9jbGllbnQ7Ci0gICAg
T3duUHRyPE1lbW9yeU9iamVjdEluZm8+IG1fcm9vdE9iamVjdEluZm87CiB9OwogCiBjbGFzcyBN
ZW1vcnlDbGFzc0luZm8gewpAQCAtMjIxLDcgKzIzNSw3IEBAIHZvaWQgTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjphZGRPYmplY3RJbXBsKGNvbnN0IFQqIG9iamVjdCwgTWVtb3J5T2JqZWN0SW5mbyog
b3duCiAgICAgICAgIHJlcG9ydEVkZ2Uob3duZXJPYmplY3RJbmZvLCBvYmplY3QsIGVkZ2VOYW1l
KTsKICAgICAgICAgaWYgKCFvYmplY3QgfHwgdmlzaXRlZChvYmplY3QpKQogICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBkZWZlckluc3RydW1lbnRlZFBvaW50ZXIoYWRvcHRQdHIobmV3IElu
c3RydW1lbnRlZFBvaW50ZXI8VD4ob2JqZWN0LCBvd25lck9iamVjdEluZm8pKSk7CisgICAgICAg
IGRlZmVyT2JqZWN0KGFkb3B0UHRyKG5ldyBXcmFwcGVyPFQ+KG9iamVjdCwgZ2V0T2JqZWN0VHlw
ZShvd25lck9iamVjdEluZm8pKSkpOwogICAgIH0KIH0KIApAQCAtMjQyLDEzICsyNTYsMTMgQEAg
dm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVjdEltcGwoY29uc3QgUmVmUHRyPFQ+
KiBvYmplY3QsIE1lbW9yeU9iamVjdEkKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLU1lbW9y
eUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlcjxUPjo6SW5zdHJ1bWVudGVkUG9p
bnRlcihjb25zdCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RJbmZvKiBvd25lck9iamVjdEluZm8p
Ci0gICAgOiBJbnN0cnVtZW50ZWRQb2ludGVyQmFzZShvd25lck9iamVjdEluZm8sIHBvaW50ZXIp
CitNZW1vcnlJbnN0cnVtZW50YXRpb246OldyYXBwZXI8VD46OldyYXBwZXIoY29uc3QgVCogcG9p
bnRlciwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUpCisgICAgOiBXcmFwcGVyQmFz
ZShvd25lck9iamVjdFR5cGUsIHBvaW50ZXIpCiB7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
Ci12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlcjxUPjo6Y2Fs
bFJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCit2
b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6V3JhcHBlcjxUPjo6Y2FsbFJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCiB7CiAgICAgcmVwb3J0TWVt
b3J5VXNhZ2Uoc3RhdGljX2Nhc3Q8Y29uc3QgVCo+KG1fcG9pbnRlciksIG1lbW9yeU9iamVjdElu
Zm8pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL01lbW9yeUluc3Ry
dW1lbnRhdGlvbkltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL01lbW9yeUluc3Ry
dW1lbnRhdGlvbkltcGwuY3BwCmluZGV4IGEzZDYyMTM1MjE3ZTVhZmE3ODExYTMxMDU4MzBiNDg0
NTY4ZWJmNzAuLjUzMzgyODg2MTVkYWVhN2NkZmVlYjU0NTI0ZDBjZjVkNmQ1Y2VkNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9NZW1vcnlJbnN0cnVtZW50YXRpb25JbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
SW1wbC5jcHAKQEAgLTEwMywyNCArMTAzLDI0IEBAIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9u
Q2xpZW50SW1wbDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5CiAg
ICAgaW5mby5hZGRNZW1iZXIobV9jb3VudGVkT2JqZWN0cyk7CiB9CiAKLXZvaWQgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uSW1wbDo6cHJvY2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMoKQor
dm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsOjpwcm9jZXNzRGVmZXJyZWRPYmplY3RzKCkK
IHsKLSAgICB3aGlsZSAoIW1fZGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycy5pc0VtcHR5KCkp
IHsKLSAgICAgICAgT3duUHRyPEluc3RydW1lbnRlZFBvaW50ZXJCYXNlPiBwb2ludGVyID0gbV9k
ZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzLmxhc3QoKS5yZWxlYXNlKCk7Ci0gICAgICAgIG1f
ZGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycy5yZW1vdmVMYXN0KCk7CisgICAgd2hpbGUgKCFt
X2RlZmVycmVkT2JqZWN0cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgT3duUHRyPFdyYXBwZXJCYXNl
PiBwb2ludGVyID0gbV9kZWZlcnJlZE9iamVjdHMubGFzdCgpLnJlbGVhc2UoKTsKKyAgICAgICAg
bV9kZWZlcnJlZE9iamVjdHMucmVtb3ZlTGFzdCgpOwogICAgICAgICBwb2ludGVyLT5wcm9jZXNz
KHRoaXMpOwogICAgIH0KIH0KIAotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsOjpkZWZl
ckluc3RydW1lbnRlZFBvaW50ZXIoUGFzc093blB0cjxJbnN0cnVtZW50ZWRQb2ludGVyQmFzZT4g
cG9pbnRlcikKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbDo6ZGVmZXJPYmplY3QoUGFz
c093blB0cjxXcmFwcGVyQmFzZT4gcG9pbnRlcikKIHsKLSAgICBtX2RlZmVycmVkSW5zdHJ1bWVu
dGVkUG9pbnRlcnMuYXBwZW5kKHBvaW50ZXIpOworICAgIG1fZGVmZXJyZWRPYmplY3RzLmFwcGVu
ZChwb2ludGVyKTsKIH0KIAogdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsOjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewog
ICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVN
ZW1vcnlUeXBlczo6SW5zcGVjdG9yTWVtb3J5QWdlbnQpOwotICAgIGluZm8uYWRkTWVtYmVyKG1f
ZGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kZWZl
cnJlZE9iamVjdHMpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9NZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbC5oCmluZGV4IGU5Y2Q0NDU2MmE1OWJlZjQ5Njk1MTUw
ZmQ2ODAyYmFiNjZjODVlZGQuLjU1ZDljZDk5ZjFjNTE2NGJiMDZiMDdhMzYxMjExMjIzMDhmZmIz
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9NZW1vcnlJbnN0cnVtZW50
YXRpb25JbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL01lbW9yeUluc3RydW1l
bnRhdGlvbkltcGwuaApAQCAtMTEwLDEwICsxMTAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcml2YXRlOgotICAg
IHZpcnR1YWwgdm9pZCBkZWZlckluc3RydW1lbnRlZFBvaW50ZXIoUGFzc093blB0cjxJbnN0cnVt
ZW50ZWRQb2ludGVyQmFzZT4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGVm
ZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
ZWZlck9iamVjdChQYXNzT3duUHRyPFdyYXBwZXJCYXNlPikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHByb2Nlc3NEZWZlcnJlZE9iamVjdHMoKSBPVkVSUklERTsKIAotICAgIFZlY3RvcjxP
d25QdHI8SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U+ID4gbV9kZWZlcnJlZEluc3RydW1lbnRlZFBv
aW50ZXJzOworICAgIFZlY3RvcjxPd25QdHI8V3JhcHBlckJhc2U+ID4gbV9kZWZlcnJlZE9iamVj
dHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGZjZGQ3MjFlY2FiNzY2Mzk5YmRmY2QwZjgx
YzcyOWQzNTM1NDliNy4uZDM1NWM0ZTZmNGNlMjA2MWIwYTllMWQ0NjM0OGI1ODlmNjEyYzg2YiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDEyLTEyLTEyICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBOYXRpdmUgTWVtb3J5IEluc3RydW1lbnRh
dGlvbjogcmVtb3ZlIGZha2Ugcm9vdCBNZW1vcnlPYmplY3RJbmZvLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0Nzk2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQgd2FzIG5vdCBhIGdvb2QgaWRlYSB0
byBpbnRyb2R1Y2UgYSBmYWtlIHJvb3QgTWVtb3J5T2JqZWN0SW5mby4KKyAgICAgICAgSXQgbWFr
ZXMgYSBwcm9ibGVtIHdoZW4gd2UgdmlzaXQgYW4gb2JqZWN0IHdpdGhvdXQgaXRzIG93biBNZW1v
cnlPYmplY3RUeXBlLgorCisgICAgICAgIEV4YW1wbGU6IFJlbmRlckJveCBoYXMgYSBnbG9iYWwg
cG9pbnRlciB0byBhIGhhc2ggbWFwLgorICAgICAgICBIYXNoTWFwIGRvZXNuJ3QgaGF2ZSBpdHMg
b3duIG9iamVjdCB0eXBlIGJlY2F1c2UgaXQgaXMgYSBnZW5lcmljIGNvbnRhaW5lci4KKyAgICAg
ICAgSXQgd2lsbCBpbmhlcml0IG9iamVjdCB0eXBlIGZyb20gdGhlIGZha2Ugcm9vdCBtZW1vcnkg
b2JqZWN0IGluZm8uCisgICAgICAgIFRoZSBzYW1lIGNvdWxkIGhhcHBlbiBmb3IgYW5vdGhlciBj
b250YWluZXIgaW4gYW5vdGhlciBjbGFzcyB3aXRoIG90aGVyIE1lbW9yeU9iamVjdFR5cGUuCisK
KyAgICAgICAgVGhpcyBmYWN0IGZvcmNlcyBtZSB0byBjcmVhdGUgY3VzdG9tIHByb2Nlc3MgbWV0
aG9kIGZvciByb290IG9iamVjdHMKKyAgICAgICAgYmVjYXVzZSB0aGV5IG5lZWQgdG8gaGF2ZSB0
aGVpciBvd24gTWVtb3J5T2JqZWN0SW5mbyB3aXRoIGN1c3RvbWlzYWJsZSBtZW1vcnkgb2JqZWN0
IHR5cGUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25UZXN0LmNwcDoKKwogMjAxMi0xMi0xMiAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJz
ZWtAZ21haWwuY29tPgogCiAgICAgICAgIFtHVEtdIFJlbW92ZSB0aGUgbGFzdCBvZiB1bm5lY2Vz
c2FyeSBjb25maWd1cmF0aW9uIG9wdGlvbnMgaW4gY29uZmlndXJlLmFjCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01lbW9yeUluc3RydW1lbnRhdGlvblRl
c3QuY3BwCmluZGV4IGZjNTViZTAzODFhZTMyOGEwMjdkNWMxMDhjZTcyODIyNGRkYzhmNTcuLjBl
MGM5YWM0MDEwMmVkOTZhNjBmYmI1N2ZkNGViNjYwYjkyZWVkYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01lbW9yeUluc3RydW1lbnRhdGlvblRl
c3QuY3BwCkBAIC0xMjQsOCArMTI0LDggQEAgcHVibGljOgogICAgICAgICA6IE1lbW9yeUluc3Ry
dW1lbnRhdGlvbihjbGllbnQpCiAgICAgICAgICwgbV9jbGllbnQoY2xpZW50KSB7IH0KIAotICAg
IHZpcnR1YWwgdm9pZCBwcm9jZXNzRGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycygpOwotICAg
IHZpcnR1YWwgdm9pZCBkZWZlckluc3RydW1lbnRlZFBvaW50ZXIoUGFzc093blB0cjxJbnN0cnVt
ZW50ZWRQb2ludGVyQmFzZT4pOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGVmZXJyZWRPYmpl
Y3RzKCk7CisgICAgdmlydHVhbCB2b2lkIGRlZmVyT2JqZWN0KFBhc3NPd25QdHI8V3JhcHBlckJh
c2U+KTsKIAogICAgIHNpemVfdCB2aXNpdGVkT2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1fY2xp
ZW50LT52aXNpdGVkT2JqZWN0cygpOyB9CiAgICAgc2l6ZV90IHJlcG9ydGVkU2l6ZUZvckFsbFR5
cGVzKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQtPnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCk7
IH0KQEAgLTEzMyw3ICsxMzMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVGVzdENsaWVudCogbV9jbGllbnQ7Ci0gICAgVmVjdG9yPE93blB0cjxJbnN0
cnVtZW50ZWRQb2ludGVyQmFzZT4gPiBtX2RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnM7Cisg
ICAgVmVjdG9yPE93blB0cjxXcmFwcGVyQmFzZT4gPiBtX2RlZmVycmVkT2JqZWN0czsKIH07CiAK
IGNsYXNzIEluc3RydW1lbnRhdGlvblRlc3RIZWxwZXIgOiBwdWJsaWMgSW5zdHJ1bWVudGF0aW9u
VGVzdEltcGwgewpAQCAtMTQ0LDE4ICsxNDQsMTggQEAgcHJpdmF0ZToKICAgICBNZW1vcnlJbnN0
cnVtZW50YXRpb25UZXN0Q2xpZW50IG1fY2xpZW50OwogfTsKIAotdm9pZCBJbnN0cnVtZW50YXRp
b25UZXN0SW1wbDo6cHJvY2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMoKQordm9pZCBJ
bnN0cnVtZW50YXRpb25UZXN0SW1wbDo6cHJvY2Vzc0RlZmVycmVkT2JqZWN0cygpCiB7Ci0gICAg
d2hpbGUgKCFtX2RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIE93blB0cjxJbnN0cnVtZW50ZWRQb2ludGVyQmFzZT4gcG9pbnRlciA9IG1fZGVmZXJyZWRJ
bnN0cnVtZW50ZWRQb2ludGVycy5sYXN0KCkucmVsZWFzZSgpOwotICAgICAgICBtX2RlZmVycmVk
SW5zdHJ1bWVudGVkUG9pbnRlcnMucmVtb3ZlTGFzdCgpOworICAgIHdoaWxlICghbV9kZWZlcnJl
ZE9iamVjdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIE93blB0cjxXcmFwcGVyQmFzZT4gcG9pbnRl
ciA9IG1fZGVmZXJyZWRPYmplY3RzLmxhc3QoKS5yZWxlYXNlKCk7CisgICAgICAgIG1fZGVmZXJy
ZWRPYmplY3RzLnJlbW92ZUxhc3QoKTsKICAgICAgICAgcG9pbnRlci0+cHJvY2Vzcyh0aGlzKTsK
ICAgICB9CiB9CiAKLXZvaWQgSW5zdHJ1bWVudGF0aW9uVGVzdEltcGw6OmRlZmVySW5zdHJ1bWVu
dGVkUG9pbnRlcihQYXNzT3duUHRyPEluc3RydW1lbnRlZFBvaW50ZXJCYXNlPiBwb2ludGVyKQor
dm9pZCBJbnN0cnVtZW50YXRpb25UZXN0SW1wbDo6ZGVmZXJPYmplY3QoUGFzc093blB0cjxXcmFw
cGVyQmFzZT4gcG9pbnRlcikKIHsKLSAgICBtX2RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMu
YXBwZW5kKHBvaW50ZXIpOworICAgIG1fZGVmZXJyZWRPYmplY3RzLmFwcGVuZChwb2ludGVyKTsK
IH0KIAogY2xhc3MgTm90SW5zdHJ1bWVudGVkIHsKQEAgLTIyMSwzOCArMjIxLDYgQEAgVEVTVChN
ZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBwdHJWc1JlZikKICAgICB9CiB9CiAKLVRFU1QoTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgb3duUHRyKQotewotICAgIEluc3RydW1lbnRhdGlvblRl
c3RIZWxwZXIgaGVscGVyOwotICAgIE93blB0cjxJbnN0cnVtZW50ZWQ+IGluc3RydW1lbnRlZChh
ZG9wdFB0cihuZXcgSW5zdHJ1bWVudGVkKSk7Ci0gICAgaGVscGVyLmFkZFJvb3RPYmplY3QoaW5z
dHJ1bWVudGVkKTsKLSAgICBFWFBFQ1RfRVEoc2l6ZW9mKEluc3RydW1lbnRlZCkgKyBzaXplb2Yo
Tm90SW5zdHJ1bWVudGVkKSwgaGVscGVyLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOwotICAg
IEVYUEVDVF9FUSgydSwgaGVscGVyLnZpc2l0ZWRPYmplY3RzKCkpOwotfQotCi1jbGFzcyBJbnN0
cnVtZW50ZWRSZWZQdHIgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnN0cnVtZW50ZWRSZWZQdHI+IHsK
LXB1YmxpYzoKLSAgICBJbnN0cnVtZW50ZWRSZWZQdHIoKSA6IG1fbm90SW5zdHJ1bWVudGVkKG5l
dyBOb3RJbnN0cnVtZW50ZWQpIHsgfQotICAgIHZpcnR1YWwgfkluc3RydW1lbnRlZFJlZlB0cigp
IHsgZGVsZXRlIG1fbm90SW5zdHJ1bWVudGVkOyB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5z
dHJ1bWVudGVkUmVmUHRyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgSW5zdHJ1bWVu
dGVkUmVmUHRyKCkpOyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKLSAgICB7Ci0gICAgICAgIE1l
bW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFRlc3RUeXBlKTsKLSAg
ICAgICAgaW5mby5hZGRNZW1iZXIobV9ub3RJbnN0cnVtZW50ZWQpOwotICAgIH0KLSAgICBOb3RJ
bnN0cnVtZW50ZWQqIG1fbm90SW5zdHJ1bWVudGVkOwotfTsKLQotVEVTVChNZW1vcnlJbnN0cnVt
ZW50YXRpb25UZXN0LCByZWZQdHIpCi17Ci0gICAgSW5zdHJ1bWVudGF0aW9uVGVzdEhlbHBlciBo
ZWxwZXI7Ci0gICAgUmVmUHRyPEluc3RydW1lbnRlZFJlZlB0cj4gaW5zdHJ1bWVudGVkUmVmUHRy
KGFkb3B0UmVmKG5ldyBJbnN0cnVtZW50ZWRSZWZQdHIpKTsKLSAgICBoZWxwZXIuYWRkUm9vdE9i
amVjdChpbnN0cnVtZW50ZWRSZWZQdHIpOwotICAgIEVYUEVDVF9FUShzaXplb2YoSW5zdHJ1bWVu
dGVkUmVmUHRyKSArIHNpemVvZihOb3RJbnN0cnVtZW50ZWQpLCBoZWxwZXIucmVwb3J0ZWRTaXpl
Rm9yQWxsVHlwZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDJ1LCBoZWxwZXIudmlzaXRlZE9iamVjdHMo
KSk7Ci19Ci0KIGNsYXNzIEluc3RydW1lbnRlZFdpdGhPd25QdHIgOiBwdWJsaWMgSW5zdHJ1bWVu
dGVkIHsKIHB1YmxpYzoKICAgICBJbnN0cnVtZW50ZWRXaXRoT3duUHRyKCkgOiBtX25vdEluc3Ry
dW1lbnRlZE93blB0cihhZG9wdFB0cihuZXcgTm90SW5zdHJ1bWVudGVkKSkgeyB9CkBAIC0zMDIs
NyArMjcwLDcgQEAgVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBvd25lclR5cGVQcm9w
YWdhdGlvbikKIHsKICAgICBJbnN0cnVtZW50YXRpb25UZXN0SGVscGVyIGhlbHBlcjsKICAgICBP
d25QdHI8SW5zdHJ1bWVudGVkRE9NPiBpbnN0cnVtZW50ZWRET00oYWRvcHRQdHIobmV3IEluc3Ry
dW1lbnRlZERPTSkpOwotICAgIGhlbHBlci5hZGRSb290T2JqZWN0KGluc3RydW1lbnRlZERPTSk7
CisgICAgaGVscGVyLmFkZFJvb3RPYmplY3QoaW5zdHJ1bWVudGVkRE9NLmdldCgpKTsKICAgICBF
WFBFQ1RfRVEoc2l6ZW9mKEluc3RydW1lbnRlZERPTSkgKyBzaXplb2YoSW5zdHJ1bWVudGVkVW5k
ZWZpbmVkKSwgaGVscGVyLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOwogICAgIEVYUEVDVF9F
UShzaXplb2YoSW5zdHJ1bWVudGVkRE9NKSArIHNpemVvZihJbnN0cnVtZW50ZWRVbmRlZmluZWQp
LCBoZWxwZXIudG90YWxTaXplKFRlc3RUeXBlKSk7CiAgICAgRVhQRUNUX0VRKDJ1LCBoZWxwZXIu
dmlzaXRlZE9iamVjdHMoKSk7CkBAIC05MDEsNyArODY5LDcgQEAgVEVTVChNZW1vcnlJbnN0cnVt
ZW50YXRpb25UZXN0LCBkb05vdFJlcG9ydEVkZ2VUd2ljZSkKIAogICAgIENvdW50TGlua3NGcm9t
SW5zdHJ1bWVudGVkT2JqZWN0IGNsaWVudDsKICAgICBJbnN0cnVtZW50YXRpb25UZXN0SW1wbCBp
bnN0cnVtZW50YXRpb24oJmNsaWVudCk7Ci0gICAgaW5zdHJ1bWVudGF0aW9uLmFkZFJvb3RPYmpl
Y3QoaW5zdGFuY2UpOworICAgIGluc3RydW1lbnRhdGlvbi5hZGRSb290T2JqZWN0KGluc3RhbmNl
LmdldCgpKTsKICAgICBFWFBFQ1RfRVEoMSwgY2xpZW50LmxpbmtDb3VudCgpKTsKIH0KIH0gLy8g
bmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179039</attachid>
            <date>2012-12-12 07:34:30 -0800</date>
            <delta_ts>2012-12-12 07:48:58 -0800</delta_ts>
            <desc>with fixed def file</desc>
            <filename>bug-104796-20121212193150.patch</filename>
            <type>text/plain</type>
            <size>23517</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZGIzOGFiNGI0MjNlOTllZDM4NzY4NWM0YTQ4YmJmM2FmNmZjYTA5Li4xNWQ0ZDNjOTVlNWQ0NmMx
ZjYxOGY5NDczYjUwNjBmOTI5YTA1NjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxMi0xMi0xMiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTmF0aXZlIE1lbW9yeSBJbnN0cnVtZW50
YXRpb246IHJlbW92ZSBmYWtlIHJvb3QgTWVtb3J5T2JqZWN0SW5mby4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDc5NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IHdhcyBub3QgYSBnb29kIGlkZWEg
dG8gaW50cm9kdWNlIGEgZmFrZSByb290IE1lbW9yeU9iamVjdEluZm8uCisgICAgICAgIEl0IG1h
a2VzIGEgcHJvYmxlbSB3aGVuIHdlIHZpc2l0IGFuIG9iamVjdCB3aXRob3V0IGl0cyBvd24gTWVt
b3J5T2JqZWN0VHlwZS4KKworICAgICAgICBFeGFtcGxlOiBSZW5kZXJCb3ggaGFzIGEgZ2xvYmFs
IHBvaW50ZXIgdG8gYSBoYXNoIG1hcC4KKyAgICAgICAgSGFzaE1hcCBkb2Vzbid0IGhhdmUgaXRz
IG93biBvYmplY3QgdHlwZSBiZWNhdXNlIGl0IGlzIGEgZ2VuZXJpYyBjb250YWluZXIuCisgICAg
ICAgIEl0IHdpbGwgaW5oZXJpdCBvYmplY3QgdHlwZSBmcm9tIHRoZSBmYWtlIHJvb3QgbWVtb3J5
IG9iamVjdCBpbmZvLgorICAgICAgICBUaGUgc2FtZSBjb3VsZCBoYXBwZW4gZm9yIGFub3RoZXIg
Y29udGFpbmVyIGluIGFub3RoZXIgY2xhc3Mgd2l0aCBvdGhlciBNZW1vcnlPYmplY3RUeXBlLgor
CisgICAgICAgIFRoaXMgZmFjdCBmb3JjZXMgbWUgdG8gY3JlYXRlIGN1c3RvbSBwcm9jZXNzIG1l
dGhvZCBmb3Igcm9vdCBvYmplY3RzCisgICAgICAgIGJlY2F1c2UgdGhleSBuZWVkIHRvIGhhdmUg
dGhlaXIgb3duIE1lbW9yeU9iamVjdEluZm8gd2l0aCBjdXN0b21pc2FibGUgbWVtb3J5IG9iamVj
dCB0eXBlLgorCisgICAgICAgIERyaXZlIGJ5IGZpeDogSW5zdHJ1bWVudGVkUG9pbnRlciogd2Fz
IHJlcGxhY2VkIHdpdGggV3JhcHBlciogYmVjYXVzZSBhY3R1YWxseSBpdCBpcyB1c2luZworCWZv
ciBpbnN0cnVtZW50ZWQgYW5kIG5vdCBpbnN0cnVtZW50ZWQgb2JqZWN0IGNsYXNzZXMuCisKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZGVmOgorCiAyMDEyLTEyLTExICBHYWJvciBCYWxsYWJhcyAgPGdhYm9yYkBpbmYudS1zemVn
ZWQuaHU+CiAKICAgICAgICAgSW1wbGVtZW50IGFkZDY0IGZvciBBUk0gdHJhZGl0aW9uYWwgYXNz
ZW1ibGVyIGFmdGVyIHIxMzY2MDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNTZlODRhYzM1ZTdjNmY5ZjA4MzQxMTBjMzI1MTk4
N2MyOTg3ZWEzZS4uNTYxYmQzYWFkNzQ4ZDNjMzMwMWYxOGU3NDBhYWYzN2NiNmFmYWY0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0MiBAQAorMjAxMi0xMi0xMiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTmF0aXZlIE1lbW9yeSBJbnN0
cnVtZW50YXRpb246IHJlbW92ZSBmYWtlIHJvb3QgTWVtb3J5T2JqZWN0SW5mby4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDc5NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IHdhcyBub3QgYSBnb29k
IGlkZWEgdG8gaW50cm9kdWNlIGEgZmFrZSByb290IE1lbW9yeU9iamVjdEluZm8uCisgICAgICAg
IEl0IG1ha2VzIGEgcHJvYmxlbSB3aGVuIHdlIHZpc2l0IGFuIG9iamVjdCB3aXRob3V0IGl0cyBv
d24gTWVtb3J5T2JqZWN0VHlwZS4KKworICAgICAgICBFeGFtcGxlOiBSZW5kZXJCb3ggaGFzIGEg
Z2xvYmFsIHBvaW50ZXIgdG8gYSBoYXNoIG1hcC4KKyAgICAgICAgSGFzaE1hcCBkb2Vzbid0IGhh
dmUgaXRzIG93biBvYmplY3QgdHlwZSBiZWNhdXNlIGl0IGlzIGEgZ2VuZXJpYyBjb250YWluZXIu
CisgICAgICAgIEl0IHdpbGwgaW5oZXJpdCBvYmplY3QgdHlwZSBmcm9tIHRoZSBmYWtlIHJvb3Qg
bWVtb3J5IG9iamVjdCBpbmZvLgorICAgICAgICBUaGUgc2FtZSBjb3VsZCBoYXBwZW4gZm9yIGFu
b3RoZXIgY29udGFpbmVyIGluIGFub3RoZXIgY2xhc3Mgd2l0aCBvdGhlciBNZW1vcnlPYmplY3RU
eXBlLgorCisgICAgICAgIFRoaXMgZmFjdCBmb3JjZXMgbWUgdG8gY3JlYXRlIGN1c3RvbSBwcm9j
ZXNzIG1ldGhvZCBmb3Igcm9vdCBvYmplY3RzCisgICAgICAgIGJlY2F1c2UgdGhleSBuZWVkIHRv
IGhhdmUgdGhlaXIgb3duIE1lbW9yeU9iamVjdEluZm8gd2l0aCBjdXN0b21pc2FibGUgbWVtb3J5
IG9iamVjdCB0eXBlLgorCisgICAgICAgIERyaXZlIGJ5IGZpeDogSW5zdHJ1bWVudGVkUG9pbnRl
ciogd2FzIHJlcGxhY2VkIHdpdGggV3JhcHBlciogYmVjYXVzZSBhY3R1YWxseSBpdCBpcyB1c2lu
ZyAgICAgICAgCisgICAgICAgIGZvciBpbnN0cnVtZW50ZWQgYW5kIG5vdCBpbnN0cnVtZW50ZWQg
b2JqZWN0IGNsYXNzZXMuCisKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNw
cDoKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpNZW1vcnlJbnN0cnVtZW50
YXRpb24pOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OldyYXBwZXJCYXNl
OjpXcmFwcGVyQmFzZSk6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6V3Jh
cHBlckJhc2U6OnByb2Nlc3MpOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246
OldyYXBwZXJCYXNlOjpwcm9jZXNzUm9vdE9iamVjdFJlZik6CisgICAgICAgIChXVEYpOgorICAg
ICAgICAqIHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdURjo6TWVtb3J5
SW5zdHJ1bWVudGF0aW9uOjphZGRSb290T2JqZWN0KToKKyAgICAgICAgKE1lbW9yeUluc3RydW1l
bnRhdGlvbik6CisgICAgICAgIChXcmFwcGVyQmFzZSk6CisgICAgICAgIChXVEY6Ok1lbW9yeUlu
c3RydW1lbnRhdGlvbjo6V3JhcHBlckJhc2U6On5XcmFwcGVyQmFzZSk6CisgICAgICAgIChXcmFw
cGVyKToKKyAgICAgICAgKE93bmluZ1RyYWl0cyk6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3Ry
dW1lbnRhdGlvbjo6T3duaW5nVHJhaXRzOjphZGRSb290T2JqZWN0KToKKyAgICAgICAgKFdURjo6
TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBsKToKKyAgICAgICAgKFdURjo6OjpX
cmFwcGVyKToKKyAgICAgICAgKFdURjo6OjpjYWxsUmVwb3J0TWVtb3J5VXNhZ2UpOgorCiAyMDEy
LTEyLTEyICBTZXJnaW8gTWFydGlucyAgPHNlcmdpby5tYXJ0aW5zQGtkYWIuY29tPgogCiAgICAg
ICAgIEZpeCBRTlggUXQgYnVpbGQgYnkgZW5hYmxpbmcgSklULgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFmOTU4
MTEwOTExM2M1ZTZkY2I3NjEyMmQ3YjU3NDc2MTU4YTMyYTUuLjcwZWIyYjVlY2JkZGVkYmM5ODhk
OTg2YjkwNzlhMTNkMDAwYzA5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMi0x
Mi0xMiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogTmF0aXZlIE1lbW9yeSBJbnN0cnVtZW50YXRpb246IHJlbW92ZSBmYWtl
IHJvb3QgTWVtb3J5T2JqZWN0SW5mby4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNDc5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEl0IHdhcyBub3QgYSBnb29kIGlkZWEgdG8gaW50cm9kdWNlIGEgZmFr
ZSByb290IE1lbW9yeU9iamVjdEluZm8uCisgICAgICAgIEl0IG1ha2VzIGEgcHJvYmxlbSB3aGVu
IHdlIHZpc2l0IGFuIG9iamVjdCB3aXRob3V0IGl0cyBvd24gTWVtb3J5T2JqZWN0VHlwZS4KKwor
ICAgICAgICBFeGFtcGxlOiBSZW5kZXJCb3ggaGFzIGEgZ2xvYmFsIHBvaW50ZXIgdG8gYSBoYXNo
IG1hcC4KKyAgICAgICAgSGFzaE1hcCBkb2Vzbid0IGhhdmUgaXRzIG93biBvYmplY3QgdHlwZSBi
ZWNhdXNlIGl0IGlzIGEgZ2VuZXJpYyBjb250YWluZXIuCisgICAgICAgIEl0IHdpbGwgaW5oZXJp
dCBvYmplY3QgdHlwZSBmcm9tIHRoZSBmYWtlIHJvb3QgbWVtb3J5IG9iamVjdCBpbmZvLgorICAg
ICAgICBUaGUgc2FtZSBjb3VsZCBoYXBwZW4gZm9yIGFub3RoZXIgY29udGFpbmVyIGluIGFub3Ro
ZXIgY2xhc3Mgd2l0aCBvdGhlciBNZW1vcnlPYmplY3RUeXBlLgorCisgICAgICAgIFRoaXMgZmFj
dCBmb3JjZXMgbWUgdG8gY3JlYXRlIGN1c3RvbSBwcm9jZXNzIG1ldGhvZCBmb3Igcm9vdCBvYmpl
Y3RzCisgICAgICAgIGJlY2F1c2UgdGhleSBuZWVkIHRvIGhhdmUgdGhlaXIgb3duIE1lbW9yeU9i
amVjdEluZm8gd2l0aCBjdXN0b21pc2FibGUgbWVtb3J5IG9iamVjdCB0eXBlLgorCisgICAgICAg
IERyaXZlIGJ5IGZpeDogSW5zdHJ1bWVudGVkUG9pbnRlciogd2FzIHJlcGxhY2VkIHdpdGggV3Jh
cHBlciogYmVjYXVzZSBhY3R1YWxseSBpdCBpcyB1c2luZyAgICAgICAgCisgICAgICAgIGZvciBp
bnN0cnVtZW50ZWQgYW5kIG5vdCBpbnN0cnVtZW50ZWQgb2JqZWN0IGNsYXNzZXMuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsOjpwcm9jZXNzRGVmZXJyZWRPYmplY3Rz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbkltcGw6OmRlZmVyT2Jq
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbkltcGw6OnJlcG9y
dE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
SW1wbC5oOgorICAgICAgICAoTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCk6CisKIDIwMTItMTIt
MTIgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RL
XSBSZW1vdmUgdGhlIGxhc3Qgb2YgdW5uZWNlc3NhcnkgY29uZmlndXJhdGlvbiBvcHRpb25zIGlu
IGNvbmZpZ3VyZS5hYwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmRlZgppbmRleCAzMDZhYTFjNWNlOTljZmI5YjQ4YjZkOTZmYTAxYjBjODgwYjIx
YTBiLi45OWE2MWY0OGQwMGFmOTk4NGE2ZGI4ZTc5ZDFhODJhZjY2Y2E5ZDU2IDEwMDc1NQotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMTIs
NyArMTIsNiBAQCBFWFBPUlRTCiAgICAgPz8wRHJvcEFsbExvY2tzQEpTTG9ja0BKU0NAQFFBRUBQ
QVZKU0dsb2JhbERhdGFAMkBAWgogICAgID8/MER5bmFtaWNHbG9iYWxPYmplY3RTY29wZUBKU0NA
QFFBRUBBQVZKU0dsb2JhbERhdGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQEBaIAogICAgID8/MEVy
cm9ySGFuZGxpbmdNb2RlQEludGVycHJldGVyQEpTQ0BAUUFFQFBBVkV4ZWNTdGF0ZUAyQEBaCi0g
ICAgPz8wSW5zdHJ1bWVudGVkUG9pbnRlckJhc2VATWVtb3J5SW5zdHJ1bWVudGF0aW9uQFdURkBA
UUFFQFBBVk1lbW9yeU9iamVjdEluZm9AMkBQQlhAWgogICAgID8/MEludGVybmFsRnVuY3Rpb25A
SlNDQEBJQUVAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZTdHJ1Y3R1cmVAMUBAWgogICAgID8/MEpT
R2xvYmFsT2JqZWN0QEpTQ0BASUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVjdHVyZUAxQFBC
VUdsb2JhbE9iamVjdE1ldGhvZFRhYmxlQDFAQFoKICAgICA/PzBKU0xvY2tIb2xkZXJASlNDQEBR
QUVAQUFWSlNHbG9iYWxEYXRhQDFAQFoKQEAgLTMxLDYgKzMwLDcgQEAgRVhQT1JUUwogICAgID8/
MFN0cnVjdHVyZUBKU0NAQEFBRUBBQVZKU0dsb2JhbERhdGFAMUBQQVZKU0dsb2JhbE9iamVjdEAx
QFZKU1ZhbHVlQDFAQUJWVHlwZUluZm9AMUBQQlVDbGFzc0luZm9AMUBFSEBaCiAgICAgPz8wVGhy
ZWFkQ29uZGl0aW9uQFdURkBAUUFFQFhaCiAgICAgPz8wV1RGVGhyZWFkRGF0YUBXVEZAQFFBRUBY
WgorICAgID8/MFdyYXBwZXJCYXNlQE1lbW9yeUluc3RydW1lbnRhdGlvbkBXVEZAQFFBRUBQQkRQ
QlhAWgogICAgID8/MFlhcnJQYXR0ZXJuQFlhcnJASlNDQEBRQUVAQUJWU3RyaW5nQFdURkBAX04x
UEFQQkRAWgogICAgID8/MUFycmF5QnVmZmVyVmlld0BXVEZAQFVBRUBYWgogICAgID8/MUNsaWVu
dERhdGFASlNHbG9iYWxEYXRhQEpTQ0BAVUFFQFhaCkBAIC0zMDUsNyArMzA1LDggQEAgRVhQT1JU
UwogICAgID9wYXJzZURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzQFdURkBAWUFOUEJE
QFoKICAgICA/cGFyc2VEb3VibGVGcm9tTG9uZ1N0cmluZ0BJbnRlcm5hbEBXVEZAQFlBTlBCX1dJ
QUFJQFoKICAgICA/cG9zaXRpdmVJbmZpbml0ZVRpbWVATWVkaWFUaW1lQFdURkBAU0FBQlYxMkBY
WiAKLSAgICA/cHJvY2Vzc0BJbnN0cnVtZW50ZWRQb2ludGVyQmFzZUBNZW1vcnlJbnN0cnVtZW50
YXRpb25AV1RGQEBRQUVYUEFWMjNAQFoKKyAgICA/cHJvY2Vzc0BXcmFwcGVyQmFzZUBNZW1vcnlJ
bnN0cnVtZW50YXRpb25AV1RGQEBRQUVYUEFWMjNAQFoKKyAgICA/cHJvY2Vzc1Jvb3RPYmplY3RS
ZWZAV3JhcHBlckJhc2VATWVtb3J5SW5zdHJ1bWVudGF0aW9uQFdURkBAUUFFWFBBVjIzQEBaCiAg
ICAgP3Byb2ZpbGVyQExlZ2FjeVByb2ZpbGVyQEpTQ0BAU0FQQVYxMkBYWgogICAgID9wcm90ZWN0
QEhlYXBASlNDQEBRQUVYVkpTVmFsdWVAMkBAWgogICAgID9wcm90ZWN0ZWRHbG9iYWxPYmplY3RD
b3VudEBIZWFwQEpTQ0BAUUFFSVhaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmNwcAppbmRleCAxYjU2NmJiZGJhNTNhMTRhNmQzNzIzNGUyNzJiZTY4YWM4YzQ2ZDMzLi5hZjhi
OTI0NTYwNjcyZjRmMDJhNzEyMjVjMWI4ZTcwMDMxZmM2MWY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01l
bW9yeUluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTQyLDcgKzQyLDYgQEAgbmFtZXNwYWNlIFdURiB7
CiAKIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uKE1lbW9yeUlu
c3RydW1lbnRhdGlvbkNsaWVudCogY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQotICAg
ICwgbV9yb290T2JqZWN0SW5mbyhhZG9wdFB0cihuZXcgTWVtb3J5T2JqZWN0SW5mbyh0aGlzLCAw
LCAwKSkpCiB7CiB9CiAKQEAgLTczLDkgKzcyLDkgQEAgdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRp
b246OnJlcG9ydExpbmtUb0J1ZmZlcihjb25zdCB2b2lkKiBvd25lciwgY29uc3Qgdm9pZCogYnUK
ICAgICBtX2NsaWVudC0+cmVwb3J0TGVhZihvd25lciwgbWVtb3J5T2JqZWN0SW5mbywgZWRnZU5h
bWUpOwogfQogCi1NZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXJCYXNl
OjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvLCBjb25zdCB2b2lkKiBwb2ludGVyKQorTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpXcmFwcGVy
QmFzZTo6V3JhcHBlckJhc2UoTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlLCBjb25zdCB2b2lk
KiBwb2ludGVyKQogICAgIDogbV9wb2ludGVyKHBvaW50ZXIpCi0gICAgLCBtX293bmVyT2JqZWN0
VHlwZShtZW1vcnlPYmplY3RJbmZvLT5vYmplY3RUeXBlKCkpCisgICAgLCBtX293bmVyT2JqZWN0
VHlwZShvYmplY3RUeXBlKQogewogI2lmIERFQlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCiAg
ICAgbV9jYWxsU3RhY2tTaXplID0gc19tYXhDYWxsU3RhY2tTaXplOwpAQCAtODMsNyArODIsNyBA
QCBNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlOjpJbnN0cnVt
ZW50ZWRQb2ludGVyQmFzZShNZW1vcnlPYgogI2VuZGlmCiB9CiAKLXZvaWQgTWVtb3J5SW5zdHJ1
bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZTo6cHJvY2VzcyhNZW1vcnlJbnN0cnVt
ZW50YXRpb24qIG1lbW9yeUluc3RydW1lbnRhdGlvbikKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uOjpXcmFwcGVyQmFzZTo6cHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUlu
c3RydW1lbnRhdGlvbikKIHsKICAgICBNZW1vcnlPYmplY3RJbmZvIG1lbW9yeU9iamVjdEluZm8o
bWVtb3J5SW5zdHJ1bWVudGF0aW9uLCBtX293bmVyT2JqZWN0VHlwZSwgbV9wb2ludGVyKTsKICAg
ICBjYWxsUmVwb3J0TWVtb3J5VXNhZ2UoJm1lbW9yeU9iamVjdEluZm8pOwpAQCAtMTA1LDYgKzEw
NCwxNSBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlckJh
c2U6OnByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0aQogICAgIH0KIH0KIAordm9pZCBNZW1vcnlJ
bnN0cnVtZW50YXRpb246OldyYXBwZXJCYXNlOjpwcm9jZXNzUm9vdE9iamVjdFJlZihNZW1vcnlJ
bnN0cnVtZW50YXRpb24qIG1lbW9yeUluc3RydW1lbnRhdGlvbikKK3sKKyAgICBNZW1vcnlPYmpl
Y3RJbmZvIG1lbW9yeU9iamVjdEluZm8obWVtb3J5SW5zdHJ1bWVudGF0aW9uLCBtX293bmVyT2Jq
ZWN0VHlwZSwgbV9wb2ludGVyKTsKKyAgICBjYWxsUmVwb3J0TWVtb3J5VXNhZ2UoJm1lbW9yeU9i
amVjdEluZm8pOworCisgICAgQVNTRVJUKG1fcG9pbnRlciA9PSBtZW1vcnlPYmplY3RJbmZvLnJl
cG9ydGVkUG9pbnRlcigpKTsKKyAgICBtZW1vcnlJbnN0cnVtZW50YXRpb24tPm1fY2xpZW50LT5y
ZXBvcnROb2RlKG1lbW9yeU9iamVjdEluZm8pOworfQorCiB2b2lkIE1lbW9yeUNsYXNzSW5mbzo6
aW5pdChjb25zdCB2b2lkKiBvYmplY3RBZGRyZXNzLCBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5
cGUsIHNpemVfdCBhY3R1YWxTaXplKQogewogICAgIG1fbWVtb3J5T2JqZWN0SW5mby0+cmVwb3J0
T2JqZWN0SW5mbyhvYmplY3RBZGRyZXNzLCBvYmplY3RUeXBlLCBhY3R1YWxTaXplKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dU
Ri93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggYjk0NDEyMTQyOGMxZGNmNDRkODEx
N2QyYjlmMDA4MWFjNTNjZjA5My4uMWE2YzVlYWIxYzNiNzgzZjgxYWRlODIyMTQ1NTk3ZjkyNzNh
NWE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgK
KysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTcwLDI1ICs3
MCwyOSBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IE1lbW9yeUlu
c3RydW1lbnRhdGlvbihNZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQqKTsKICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdmlydHVhbCB+TWVtb3J5SW5zdHJ1bWVudGF0aW9uKCk7CiAKLSAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRSb290T2JqZWN0KGNvbnN0IFQmIHQpCisgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgYWRkUm9vdE9iamVjdChjb25zdCBUJiB0LCBNZW1vcnlP
YmplY3RUeXBlIG9iamVjdFR5cGUgPSAwKQogICAgIHsKLSAgICAgICAgYWRkT2JqZWN0KHQsIG1f
cm9vdE9iamVjdEluZm8uZ2V0KCksIDApOwotICAgICAgICBwcm9jZXNzRGVmZXJyZWRJbnN0cnVt
ZW50ZWRQb2ludGVycygpOworICAgICAgICBPd25pbmdUcmFpdHM8VD46OmFkZFJvb3RPYmplY3Qo
dGhpcywgdCwgb2JqZWN0VHlwZSk7CisgICAgICAgIHByb2Nlc3NEZWZlcnJlZE9iamVjdHMoKTsK
ICAgICB9CiAKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRSb290T2JqZWN0KGNv
bnN0IE93blB0cjxUPiYsIE1lbW9yeU9iamVjdFR5cGUgPSAwKTsgLy8gTGluayB0aW1lIGd1YXJk
LgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZFJvb3RPYmplY3QoY29uc3QgUmVm
UHRyPFQ+JiwgTWVtb3J5T2JqZWN0VHlwZSA9IDApOyAvLyBMaW5rIHRpbWUgZ3VhcmQuCisKIHBy
b3RlY3RlZDoKLSAgICBjbGFzcyBJbnN0cnVtZW50ZWRQb2ludGVyQmFzZSB7CisgICAgY2xhc3Mg
V3JhcHBlckJhc2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIElu
c3RydW1lbnRlZFBvaW50ZXJCYXNlKE1lbW9yeU9iamVjdEluZm8qLCBjb25zdCB2b2lkKiBwb2lu
dGVyKTsKLSAgICAgICAgdmlydHVhbCB+SW5zdHJ1bWVudGVkUG9pbnRlckJhc2UoKSB7IH0KKyAg
ICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFdyYXBwZXJCYXNlKE1lbW9yeU9iamVjdFR5cGUsIGNv
bnN0IHZvaWQqIHBvaW50ZXIpOworICAgICAgICB2aXJ0dWFsIH5XcmFwcGVyQmFzZSgpIHsgfQog
ICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBwcm9jZXNzKE1lbW9yeUluc3RydW1lbnRh
dGlvbiopOworICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBwcm9jZXNzUm9vdE9iamVj
dFJlZihNZW1vcnlJbnN0cnVtZW50YXRpb24qKTsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAg
dmlydHVhbCB2b2lkIGNhbGxSZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgPSAw
OwogICAgICAgICBjb25zdCB2b2lkKiBtX3BvaW50ZXI7CisgICAgICAgIGNvbnN0IE1lbW9yeU9i
amVjdFR5cGUgbV9vd25lck9iamVjdFR5cGU7CiAKICAgICBwcml2YXRlOgotICAgICAgICBjb25z
dCBNZW1vcnlPYmplY3RUeXBlIG1fb3duZXJPYmplY3RUeXBlOwogI2lmIERFQlVHX1BPSU5URVJf
SU5TVFJVTUVOVEFUSU9OCiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgc19tYXhDYWxsU3RhY2tT
aXplID0gMzI7CiAgICAgICAgIHZvaWQqIG1fY2FsbFN0YWNrW3NfbWF4Q2FsbFN0YWNrU2l6ZV07
CkBAIC0xMDMsOCArMTA3LDggQEAgcHJpdmF0ZToKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIHJlcG9ydEVkZ2UoTWVtb3J5T2JqZWN0SW5mbyogb3duZXJPYmplY3RJbmZvLCBjb25zdCB2
b2lkKiB0YXJnZXQsIGNvbnN0IGNoYXIqIGVkZ2VOYW1lKTsKIAotICAgIHZpcnR1YWwgdm9pZCBk
ZWZlckluc3RydW1lbnRlZFBvaW50ZXIoUGFzc093blB0cjxJbnN0cnVtZW50ZWRQb2ludGVyQmFz
ZT4pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVkUG9p
bnRlcnMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlZmVyT2JqZWN0KFBhc3NPd25QdHI8V3Jh
cHBlckJhc2U+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEZWZlcnJlZE9iamVjdHMo
KSA9IDA7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUg
Z2V0T2JqZWN0VHlwZShNZW1vcnlPYmplY3RJbmZvKik7CiAKQEAgLTEzMyw5ICsxMzcsOSBAQCBw
cml2YXRlOgogICAgIH0KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgY2FsbFJl
cG9ydE9iamVjdEluZm8oTWVtb3J5T2JqZWN0SW5mbyosIGNvbnN0IHZvaWQqIHBvaW50ZXIsIE1l
bW9yeU9iamVjdFR5cGUsIHNpemVfdCBvYmplY3RTaXplKTsKIAotICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGNsYXNzIEluc3RydW1lbnRlZFBvaW50ZXIgOiBwdWJsaWMgSW5zdHJ1bWVudGVkUG9p
bnRlckJhc2UgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdyYXBwZXIgOiBwdWJs
aWMgV3JhcHBlckJhc2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgSW5zdHJ1bWVudGVkUG9pbnRl
cihjb25zdCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RJbmZvKiBvd25lck9iamVjdEluZm8pOwor
ICAgICAgICBXcmFwcGVyKGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUpOwogCiAg
ICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbFJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qKSBPVkVSUklERTsKQEAgLTE1Nyw2ICsxNjEsMTEgQEAgcHJpdmF0
ZToKICAgICAgICAgewogICAgICAgICAgICAgaW5zdHJ1bWVudGF0aW9uLT5hZGRPYmplY3RJbXBs
KCZ0LCBvd25lck9iamVjdEluZm8sIGJ5UmVmZXJlbmNlLCBlZGdlTmFtZSk7CiAgICAgICAgIH0K
KworICAgICAgICBzdGF0aWMgdm9pZCBhZGRSb290T2JqZWN0KE1lbW9yeUluc3RydW1lbnRhdGlv
biogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUJiB0LCBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5
cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIFdyYXBwZXI8VD4oJnQsIG9iamVjdFR5cGUpLnBy
b2Nlc3NSb290T2JqZWN0UmVmKGluc3RydW1lbnRhdGlvbik7CisgICAgICAgIH0KICAgICB9Owog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAgLTE2NSw2ICsxNzQsMTIgQEAgcHJpdmF0ZToK
ICAgICAgICAgewogICAgICAgICAgICAgaW5zdHJ1bWVudGF0aW9uLT5hZGRPYmplY3RJbXBsKHQs
IG93bmVyT2JqZWN0SW5mbywgYnlQb2ludGVyLCBlZGdlTmFtZSk7CiAgICAgICAgIH0KKworICAg
ICAgICBzdGF0aWMgdm9pZCBhZGRSb290T2JqZWN0KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5z
dHJ1bWVudGF0aW9uLCBjb25zdCBUKiBjb25zdCYgdCwgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RU
eXBlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodCAmJiAhaW5zdHJ1bWVudGF0aW9uLT52
aXNpdGVkKHQpKQorICAgICAgICAgICAgICAgIFdyYXBwZXI8VD4odCwgb2JqZWN0VHlwZSkucHJv
Y2VzcyhpbnN0cnVtZW50YXRpb24pOworICAgICAgICB9CiAgICAgfTsKIAogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0SW1wbChjb25zdCBUKiwgTWVtb3J5T2JqZWN0SW5m
byosIE1lbW9yeU93bmluZ1R5cGUsIGNvbnN0IGNoYXIqIGVkZ2VOYW1lKTsKQEAgLTE3Miw3ICsx
ODcsNiBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0
SW1wbChjb25zdCBSZWZQdHI8VD4qLCBNZW1vcnlPYmplY3RJbmZvKiwgTWVtb3J5T3duaW5nVHlw
ZSwgY29uc3QgY2hhciogZWRnZU5hbWUpOwogCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xp
ZW50KiBtX2NsaWVudDsKLSAgICBPd25QdHI8TWVtb3J5T2JqZWN0SW5mbz4gbV9yb290T2JqZWN0
SW5mbzsKIH07CiAKIGNsYXNzIE1lbW9yeUNsYXNzSW5mbyB7CkBAIC0yMjEsNyArMjM1LDcgQEAg
dm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVjdEltcGwoY29uc3QgVCogb2JqZWN0
LCBNZW1vcnlPYmplY3RJbmZvKiBvd24KICAgICAgICAgcmVwb3J0RWRnZShvd25lck9iamVjdElu
Zm8sIG9iamVjdCwgZWRnZU5hbWUpOwogICAgICAgICBpZiAoIW9iamVjdCB8fCB2aXNpdGVkKG9i
amVjdCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGRlZmVySW5zdHJ1bWVudGVkUG9p
bnRlcihhZG9wdFB0cihuZXcgSW5zdHJ1bWVudGVkUG9pbnRlcjxUPihvYmplY3QsIG93bmVyT2Jq
ZWN0SW5mbykpKTsKKyAgICAgICAgZGVmZXJPYmplY3QoYWRvcHRQdHIobmV3IFdyYXBwZXI8VD4o
b2JqZWN0LCBnZXRPYmplY3RUeXBlKG93bmVyT2JqZWN0SW5mbykpKSk7CiAgICAgfQogfQogCkBA
IC0yNDIsMTMgKzI1NiwxMyBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0
SW1wbChjb25zdCBSZWZQdHI8VD4qIG9iamVjdCwgTWVtb3J5T2JqZWN0SQogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgotTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVy
PFQ+OjpJbnN0cnVtZW50ZWRQb2ludGVyKGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdElu
Zm8qIG93bmVyT2JqZWN0SW5mbykKLSAgICA6IEluc3RydW1lbnRlZFBvaW50ZXJCYXNlKG93bmVy
T2JqZWN0SW5mbywgcG9pbnRlcikKK01lbW9yeUluc3RydW1lbnRhdGlvbjo6V3JhcHBlcjxUPjo6
V3JhcHBlcihjb25zdCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlw
ZSkKKyAgICA6IFdyYXBwZXJCYXNlKG93bmVyT2JqZWN0VHlwZSwgcG9pbnRlcikKIHsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgVD4KLXZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpJbnN0cnVt
ZW50ZWRQb2ludGVyPFQ+OjpjYWxsUmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpXcmFwcGVyPFQ+
OjpjYWxsUmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykKIHsKICAgICByZXBvcnRNZW1vcnlVc2FnZShzdGF0aWNfY2FzdDxjb25zdCBUKj4obV9wb2lu
dGVyKSwgbWVtb3J5T2JqZWN0SW5mbyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbC5jcHAKaW5kZXggYTNkNjIxMzUyMTdl
NWFmYTc4MTFhMzEwNTgzMGI0ODQ1NjhlYmY3MC4uNTMzODI4ODYxNWRhZWE3Y2RmZWViNTQ1MjRk
MGNmNWQ2ZDVjZWQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL01lbW9y
eUluc3RydW1lbnRhdGlvbkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9N
ZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsLmNwcApAQCAtMTAzLDI0ICsxMDMsMjQgQEAgdm9pZCBN
ZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnRJbXBsOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnkKICAgICBpbmZvLmFkZE1lbWJlcihtX2NvdW50ZWRPYmplY3RzKTsK
IH0KIAotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsOjpwcm9jZXNzRGVmZXJyZWRJbnN0
cnVtZW50ZWRQb2ludGVycygpCit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGw6OnByb2Nl
c3NEZWZlcnJlZE9iamVjdHMoKQogewotICAgIHdoaWxlICghbV9kZWZlcnJlZEluc3RydW1lbnRl
ZFBvaW50ZXJzLmlzRW1wdHkoKSkgewotICAgICAgICBPd25QdHI8SW5zdHJ1bWVudGVkUG9pbnRl
ckJhc2U+IHBvaW50ZXIgPSBtX2RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMubGFzdCgpLnJl
bGVhc2UoKTsKLSAgICAgICAgbV9kZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzLnJlbW92ZUxh
c3QoKTsKKyAgICB3aGlsZSAoIW1fZGVmZXJyZWRPYmplY3RzLmlzRW1wdHkoKSkgeworICAgICAg
ICBPd25QdHI8V3JhcHBlckJhc2U+IHBvaW50ZXIgPSBtX2RlZmVycmVkT2JqZWN0cy5sYXN0KCku
cmVsZWFzZSgpOworICAgICAgICBtX2RlZmVycmVkT2JqZWN0cy5yZW1vdmVMYXN0KCk7CiAgICAg
ICAgIHBvaW50ZXItPnByb2Nlc3ModGhpcyk7CiAgICAgfQogfQogCi12b2lkIE1lbW9yeUluc3Ry
dW1lbnRhdGlvbkltcGw6OmRlZmVySW5zdHJ1bWVudGVkUG9pbnRlcihQYXNzT3duUHRyPEluc3Ry
dW1lbnRlZFBvaW50ZXJCYXNlPiBwb2ludGVyKQordm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25J
bXBsOjpkZWZlck9iamVjdChQYXNzT3duUHRyPFdyYXBwZXJCYXNlPiBwb2ludGVyKQogewotICAg
IG1fZGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycy5hcHBlbmQocG9pbnRlcik7CisgICAgbV9k
ZWZlcnJlZE9iamVjdHMuYXBwZW5kKHBvaW50ZXIpOwogfQogCiB2b2lkIE1lbW9yeUluc3RydW1l
bnRhdGlvbkltcGw6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JNZW1vcnlBZ2VudCk7Ci0g
ICAgaW5mby5hZGRNZW1iZXIobV9kZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2RlZmVycmVkT2JqZWN0cyk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL01lbW9yeUluc3RydW1lbnRhdGlvbkltcGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9NZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsLmgKaW5kZXggZTlj
ZDQ0NTYyYTU5YmVmNDk2OTUxNTBmZDY4MDJiYWI2NmM4NWVkZC4uNTVkOWNkOTlmMWM1MTY0YmIw
NmIwN2EzNjEyMTEyMjMwOGZmYjNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL01lbW9yeUluc3RydW1lbnRhdGlvbkltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbC5oCkBAIC0xMTAsMTAgKzExMCwxMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29u
c3Q7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGRlZmVySW5zdHJ1bWVudGVkUG9pbnRl
cihQYXNzT3duUHRyPEluc3RydW1lbnRlZFBvaW50ZXJCYXNlPikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHByb2Nlc3NEZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzKCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRlZmVyT2JqZWN0KFBhc3NPd25QdHI8V3JhcHBlckJhc2U+KSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RlZmVycmVkT2JqZWN0cygpIE9WRVJS
SURFOwogCi0gICAgVmVjdG9yPE93blB0cjxJbnN0cnVtZW50ZWRQb2ludGVyQmFzZT4gPiBtX2Rl
ZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnM7CisgICAgVmVjdG9yPE93blB0cjxXcmFwcGVyQmFz
ZT4gPiBtX2RlZmVycmVkT2JqZWN0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkZmNkZDcy
MWVjYWI3NjYzOTliZGZjZDBmODFjNzI5ZDM1MzU0OWI3Li5lYTE4Zjg1Y2VhZGYzYmE2OGUzYWE2
ZjFiOGY2ZGMwYjczMjU1ZWE2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMTItMTIgIElseWEgVGlraG9ub3Zz
a3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5hdGl2
ZSBNZW1vcnkgSW5zdHJ1bWVudGF0aW9uOiByZW1vdmUgZmFrZSByb290IE1lbW9yeU9iamVjdElu
Zm8uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQ3
OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCB3
YXMgbm90IGEgZ29vZCBpZGVhIHRvIGludHJvZHVjZSBhIGZha2Ugcm9vdCBNZW1vcnlPYmplY3RJ
bmZvLgorICAgICAgICBJdCBtYWtlcyBhIHByb2JsZW0gd2hlbiB3ZSB2aXNpdCBhbiBvYmplY3Qg
d2l0aG91dCBpdHMgb3duIE1lbW9yeU9iamVjdFR5cGUuCisKKyAgICAgICAgRXhhbXBsZTogUmVu
ZGVyQm94IGhhcyBhIGdsb2JhbCBwb2ludGVyIHRvIGEgaGFzaCBtYXAuCisgICAgICAgIEhhc2hN
YXAgZG9lc24ndCBoYXZlIGl0cyBvd24gb2JqZWN0IHR5cGUgYmVjYXVzZSBpdCBpcyBhIGdlbmVy
aWMgY29udGFpbmVyLgorICAgICAgICBJdCB3aWxsIGluaGVyaXQgb2JqZWN0IHR5cGUgZnJvbSB0
aGUgZmFrZSByb290IG1lbW9yeSBvYmplY3QgaW5mby4KKyAgICAgICAgVGhlIHNhbWUgY291bGQg
aGFwcGVuIGZvciBhbm90aGVyIGNvbnRhaW5lciBpbiBhbm90aGVyIGNsYXNzIHdpdGggb3RoZXIg
TWVtb3J5T2JqZWN0VHlwZS4KKworICAgICAgICBUaGlzIGZhY3QgZm9yY2VzIG1lIHRvIGNyZWF0
ZSBjdXN0b20gcHJvY2VzcyBtZXRob2QgZm9yIHJvb3Qgb2JqZWN0cworICAgICAgICBiZWNhdXNl
IHRoZXkgbmVlZCB0byBoYXZlIHRoZWlyIG93biBNZW1vcnlPYmplY3RJbmZvIHdpdGggY3VzdG9t
aXNhYmxlIG1lbW9yeSBvYmplY3QgdHlwZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwOgorCisgICAgICAgIERyaXZlIGJ5
IGZpeDogSW5zdHJ1bWVudGVkUG9pbnRlciogd2FzIHJlcGxhY2VkIHdpdGggV3JhcHBlciogYmVj
YXVzZSBhY3R1YWxseSBpdCBpcyB1c2luZyAgICAgICAgCisgICAgICAgIGZvciBpbnN0cnVtZW50
ZWQgYW5kIG5vdCBpbnN0cnVtZW50ZWQgb2JqZWN0IGNsYXNzZXMuCit4CiAyMDEyLTEyLTEyICBa
YW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS10gUmVt
b3ZlIHRoZSBsYXN0IG9mIHVubmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpbiBjb25m
aWd1cmUuYWMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01lbW9y
eUluc3RydW1lbnRhdGlvblRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKaW5kZXggZmM1NWJlMDM4MWFlMzI4YTAyN2Q1
YzEwOGNlNzI4MjI0ZGRjOGY1Ny4uMGUwYzlhYzQwMTAyZWQ5NmE2MGZiYjU3ZmQ0ZWI2NjBiOTJl
ZWRiNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKQEAgLTEyNCw4ICsxMjQsOCBAQCBwdWJsaWM6
CiAgICAgICAgIDogTWVtb3J5SW5zdHJ1bWVudGF0aW9uKGNsaWVudCkKICAgICAgICAgLCBtX2Ns
aWVudChjbGllbnQpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEZWZlcnJlZEluc3Ry
dW1lbnRlZFBvaW50ZXJzKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRlZmVySW5zdHJ1bWVudGVkUG9p
bnRlcihQYXNzT3duUHRyPEluc3RydW1lbnRlZFBvaW50ZXJCYXNlPik7CisgICAgdmlydHVhbCB2
b2lkIHByb2Nlc3NEZWZlcnJlZE9iamVjdHMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVmZXJPYmpl
Y3QoUGFzc093blB0cjxXcmFwcGVyQmFzZT4pOwogCiAgICAgc2l6ZV90IHZpc2l0ZWRPYmplY3Rz
KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQtPnZpc2l0ZWRPYmplY3RzKCk7IH0KICAgICBzaXpl
X3QgcmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudC0+cmVw
b3J0ZWRTaXplRm9yQWxsVHlwZXMoKTsgfQpAQCAtMTMzLDcgKzEzMyw3IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0Q2xpZW50KiBtX2NsaWVudDsK
LSAgICBWZWN0b3I8T3duUHRyPEluc3RydW1lbnRlZFBvaW50ZXJCYXNlPiA+IG1fZGVmZXJyZWRJ
bnN0cnVtZW50ZWRQb2ludGVyczsKKyAgICBWZWN0b3I8T3duUHRyPFdyYXBwZXJCYXNlPiA+IG1f
ZGVmZXJyZWRPYmplY3RzOwogfTsKIAogY2xhc3MgSW5zdHJ1bWVudGF0aW9uVGVzdEhlbHBlciA6
IHB1YmxpYyBJbnN0cnVtZW50YXRpb25UZXN0SW1wbCB7CkBAIC0xNDQsMTggKzE0NCwxOCBAQCBw
cml2YXRlOgogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3RDbGllbnQgbV9jbGllbnQ7CiB9
OwogCi12b2lkIEluc3RydW1lbnRhdGlvblRlc3RJbXBsOjpwcm9jZXNzRGVmZXJyZWRJbnN0cnVt
ZW50ZWRQb2ludGVycygpCit2b2lkIEluc3RydW1lbnRhdGlvblRlc3RJbXBsOjpwcm9jZXNzRGVm
ZXJyZWRPYmplY3RzKCkKIHsKLSAgICB3aGlsZSAoIW1fZGVmZXJyZWRJbnN0cnVtZW50ZWRQb2lu
dGVycy5pc0VtcHR5KCkpIHsKLSAgICAgICAgT3duUHRyPEluc3RydW1lbnRlZFBvaW50ZXJCYXNl
PiBwb2ludGVyID0gbV9kZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzLmxhc3QoKS5yZWxlYXNl
KCk7Ci0gICAgICAgIG1fZGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycy5yZW1vdmVMYXN0KCk7
CisgICAgd2hpbGUgKCFtX2RlZmVycmVkT2JqZWN0cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgT3du
UHRyPFdyYXBwZXJCYXNlPiBwb2ludGVyID0gbV9kZWZlcnJlZE9iamVjdHMubGFzdCgpLnJlbGVh
c2UoKTsKKyAgICAgICAgbV9kZWZlcnJlZE9iamVjdHMucmVtb3ZlTGFzdCgpOwogICAgICAgICBw
b2ludGVyLT5wcm9jZXNzKHRoaXMpOwogICAgIH0KIH0KIAotdm9pZCBJbnN0cnVtZW50YXRpb25U
ZXN0SW1wbDo6ZGVmZXJJbnN0cnVtZW50ZWRQb2ludGVyKFBhc3NPd25QdHI8SW5zdHJ1bWVudGVk
UG9pbnRlckJhc2U+IHBvaW50ZXIpCit2b2lkIEluc3RydW1lbnRhdGlvblRlc3RJbXBsOjpkZWZl
ck9iamVjdChQYXNzT3duUHRyPFdyYXBwZXJCYXNlPiBwb2ludGVyKQogewotICAgIG1fZGVmZXJy
ZWRJbnN0cnVtZW50ZWRQb2ludGVycy5hcHBlbmQocG9pbnRlcik7CisgICAgbV9kZWZlcnJlZE9i
amVjdHMuYXBwZW5kKHBvaW50ZXIpOwogfQogCiBjbGFzcyBOb3RJbnN0cnVtZW50ZWQgewpAQCAt
MjIxLDM4ICsyMjEsNiBAQCBURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHB0clZzUmVm
KQogICAgIH0KIH0KIAotVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBvd25QdHIpCi17
Ci0gICAgSW5zdHJ1bWVudGF0aW9uVGVzdEhlbHBlciBoZWxwZXI7Ci0gICAgT3duUHRyPEluc3Ry
dW1lbnRlZD4gaW5zdHJ1bWVudGVkKGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50ZWQpKTsKLSAgICBo
ZWxwZXIuYWRkUm9vdE9iamVjdChpbnN0cnVtZW50ZWQpOwotICAgIEVYUEVDVF9FUShzaXplb2Yo
SW5zdHJ1bWVudGVkKSArIHNpemVvZihOb3RJbnN0cnVtZW50ZWQpLCBoZWxwZXIucmVwb3J0ZWRT
aXplRm9yQWxsVHlwZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDJ1LCBoZWxwZXIudmlzaXRlZE9iamVj
dHMoKSk7Ci19Ci0KLWNsYXNzIEluc3RydW1lbnRlZFJlZlB0ciA6IHB1YmxpYyBSZWZDb3VudGVk
PEluc3RydW1lbnRlZFJlZlB0cj4gewotcHVibGljOgotICAgIEluc3RydW1lbnRlZFJlZlB0cigp
IDogbV9ub3RJbnN0cnVtZW50ZWQobmV3IE5vdEluc3RydW1lbnRlZCkgeyB9Ci0gICAgdmlydHVh
bCB+SW5zdHJ1bWVudGVkUmVmUHRyKCkgeyBkZWxldGUgbV9ub3RJbnN0cnVtZW50ZWQ7IH0KLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJbnN0cnVtZW50ZWRSZWZQdHI+IGNyZWF0ZSgpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBJbnN0cnVtZW50ZWRSZWZQdHIoKSk7IH0KLQotICAgIHZpcnR1YWwgdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBj
b25zdAotICAgIHsKLSAgICAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5m
bywgdGhpcywgVGVzdFR5cGUpOwotICAgICAgICBpbmZvLmFkZE1lbWJlcihtX25vdEluc3RydW1l
bnRlZCk7Ci0gICAgfQotICAgIE5vdEluc3RydW1lbnRlZCogbV9ub3RJbnN0cnVtZW50ZWQ7Ci19
OwotCi1URVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHJlZlB0cikKLXsKLSAgICBJbnN0
cnVtZW50YXRpb25UZXN0SGVscGVyIGhlbHBlcjsKLSAgICBSZWZQdHI8SW5zdHJ1bWVudGVkUmVm
UHRyPiBpbnN0cnVtZW50ZWRSZWZQdHIoYWRvcHRSZWYobmV3IEluc3RydW1lbnRlZFJlZlB0cikp
OwotICAgIGhlbHBlci5hZGRSb290T2JqZWN0KGluc3RydW1lbnRlZFJlZlB0cik7Ci0gICAgRVhQ
RUNUX0VRKHNpemVvZihJbnN0cnVtZW50ZWRSZWZQdHIpICsgc2l6ZW9mKE5vdEluc3RydW1lbnRl
ZCksIGhlbHBlci5yZXBvcnRlZFNpemVGb3JBbGxUeXBlcygpKTsKLSAgICBFWFBFQ1RfRVEoMnUs
IGhlbHBlci52aXNpdGVkT2JqZWN0cygpKTsKLX0KLQogY2xhc3MgSW5zdHJ1bWVudGVkV2l0aE93
blB0ciA6IHB1YmxpYyBJbnN0cnVtZW50ZWQgewogcHVibGljOgogICAgIEluc3RydW1lbnRlZFdp
dGhPd25QdHIoKSA6IG1fbm90SW5zdHJ1bWVudGVkT3duUHRyKGFkb3B0UHRyKG5ldyBOb3RJbnN0
cnVtZW50ZWQpKSB7IH0KQEAgLTMwMiw3ICsyNzAsNyBAQCBURVNUKE1lbW9yeUluc3RydW1lbnRh
dGlvblRlc3QsIG93bmVyVHlwZVByb3BhZ2F0aW9uKQogewogICAgIEluc3RydW1lbnRhdGlvblRl
c3RIZWxwZXIgaGVscGVyOwogICAgIE93blB0cjxJbnN0cnVtZW50ZWRET00+IGluc3RydW1lbnRl
ZERPTShhZG9wdFB0cihuZXcgSW5zdHJ1bWVudGVkRE9NKSk7Ci0gICAgaGVscGVyLmFkZFJvb3RP
YmplY3QoaW5zdHJ1bWVudGVkRE9NKTsKKyAgICBoZWxwZXIuYWRkUm9vdE9iamVjdChpbnN0cnVt
ZW50ZWRET00uZ2V0KCkpOwogICAgIEVYUEVDVF9FUShzaXplb2YoSW5zdHJ1bWVudGVkRE9NKSAr
IHNpemVvZihJbnN0cnVtZW50ZWRVbmRlZmluZWQpLCBoZWxwZXIucmVwb3J0ZWRTaXplRm9yQWxs
VHlwZXMoKSk7CiAgICAgRVhQRUNUX0VRKHNpemVvZihJbnN0cnVtZW50ZWRET00pICsgc2l6ZW9m
KEluc3RydW1lbnRlZFVuZGVmaW5lZCksIGhlbHBlci50b3RhbFNpemUoVGVzdFR5cGUpKTsKICAg
ICBFWFBFQ1RfRVEoMnUsIGhlbHBlci52aXNpdGVkT2JqZWN0cygpKTsKQEAgLTkwMSw3ICs4Njks
NyBAQCBURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGRvTm90UmVwb3J0RWRnZVR3aWNl
KQogCiAgICAgQ291bnRMaW5rc0Zyb21JbnN0cnVtZW50ZWRPYmplY3QgY2xpZW50OwogICAgIElu
c3RydW1lbnRhdGlvblRlc3RJbXBsIGluc3RydW1lbnRhdGlvbigmY2xpZW50KTsKLSAgICBpbnN0
cnVtZW50YXRpb24uYWRkUm9vdE9iamVjdChpbnN0YW5jZSk7CisgICAgaW5zdHJ1bWVudGF0aW9u
LmFkZFJvb3RPYmplY3QoaW5zdGFuY2UuZ2V0KCkpOwogICAgIEVYUEVDVF9FUSgxLCBjbGllbnQu
bGlua0NvdW50KCkpOwogfQogfSAvLyBuYW1lc3BhY2UK
</data>
<flag name="review"
          id="195751"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>