<div dir="ltr"><div class="" style=""><p style="margin:0px 0px 1.2em!important">Hi Brain, </p>
<p style="margin:0px 0px 1.2em!important">>I don’t know much about the Swift bug. A BUG() or crash in the kernel is generally always a kernel bug, regardless of what userspace is doing. It >certainly could be that whatever userspace is doing to trigger the kernel bug is a bug in the userspace application, but either way it shouldn’t cause the >kernel to crash. By the same token, if Swift is updated to fix the aforementioned bug and the kernel crash no longer reproduces, that doesn’t >necessarily mean the kernel bug is fixed (just potentially hidden).</p><p style="margin:0px 0px 1.2em!important">Understand. </p>
<p style="margin:0px 0px 1.2em!important">[Previous Message]</p>
<pre style="font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;background-color:rgb(248,248,248)">The valid inode has an inode number of 13668207561.
- The fsname for this inode is "sdb."
- The inode does appear to have a non-NULL if_data:
if_u1 = {
if_extents = 0xffff88084feaf5c0,
if_ext_irec = 0xffff88084feaf5c0,
if_data = 0xffff88084feaf5c0 "\004"
},
find <mntpath> -inum 13668207561
</code></pre><p style="margin:0px 0px 1.2em!important">Q1: Were you able to track down the directory inode mentioned in the previous message?</p>
<p style="margin:0px 0px 1.2em!important">Ans: Yes, it’s the directory/file as below. /srv/node/d224 is the mount point of /dev/sdb . This is the original location of the path. This folder includes the file 1436266052.71893.ts now. The .ts file is 0 size </p>
<pre style="font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;background-color:rgb(248,248,248)">
[root@r2obj01 ~]# find /srv/node/d224 -inum 13668207561
/srv/node/d224/objects/45382/b32/b146865bf8034bfc42570b747c341b32
[root@r2obj01 ~]# ls -lrt /srv/node/d224/objects/45382/b32/b146865bf8034bfc42570b747c341b32
-rw------- 1 swift swift 0 Jul 7 22:37 1436266052.71893.ts
</code></pre><p style="margin:0px 0px 1.2em!important">Q2: Is it some kind of internal directory used by the application (e.g., perhaps related to the quarantine mechanism mentioned in the bug)?</p>
<p style="margin:0px 0px 1.2em!important">Ans: Yes, it’s a directory which accessing by application. </p>
<pre style="font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;background-color:rgb(248,248,248)">
37 ffff8810718343c0 ffff88105b9d32c0 ffff8808745aa5e8 REG [eventpoll]
38 ffff8808713da780 ffff880010c9a900 ffff88096368a188 REG /srv/node/d224/quarantined/objects/b146865bf8034bfc42570b747c341b32/1436266042.57775.ts
39 ffff880871cb03c0 ffff880495a8b380 ffff8808a5e6c988 REG /srv/node/d224/tmp/tmpSpnrHg
40 ffff8808715b4540 ffff8804819c58c0 ffff8802381f8d88 DIR /srv/node/d224/quarantined/objects/b146865bf8034bfc42570b747c341b32
</code></pre><p style="margin:0px 0px 1.2em!important">The above operation in the swift-object-server was doing python function call to rename the file<i> /srv/node/d224/objects/45382/b32/b146865bf8034bfc42570b747c341b32/1436266042.57775.ts</i> as <i>/srv/node/d224/quarantined/objects/b146865bf8034bfc42570b747c341b32/1436266042.57775.ts</i></p>
<p style="margin:0px 0px 1.2em!important"></p><div class=""><p></p><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><div><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;font-size:12px;line-height:16.7999992370605px;white-space:pre">os.rename(old, new)</span></div></div></div></blockquote><p></p></div><p style="margin:0px 0px 1.2em!important"></p>
<p style="margin:0px 0px 1.2em!important">And it crashed at this point. In the Q1, we found the inum is pointing to the directory <span style="font-family:Consolas,Inconsolata,Courier,monospace;font-size:12px;line-height:15.6000003814697px;white-space:pre;background-color:rgb(248,248,248)">/srv/node/d224/objects/45382/b32/b146865bf8034bfc42570b747c341b32</span> . </p><p style="margin:0px 0px 1.2em!important">We found that multiple(over 10) DELETE from application against the target file at almost same moment. The DELETE is removing the original file in the directory and create new empty .ts file in this directory. I suspect that multiple os.rename on the same file in that directory will cause the kernel panic. </p><p style="margin:0px 0px 1.2em!important">And the file /srv/node/d224/quarantined/objects/b146865bf8034bfc42570b747c341b32/1436266042.57775.ts was not created.<br></p><p style="margin:0px 0px 1.2em!important">Regards // Hugo </p>
<div title="MDH:PGRpdj48Zm9udCBjb2xvcj0iIzk5OTk5OSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsi
PkhpIEJyYWluLCZuYnNwOzwvc3Bhbj48L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBjb2xvcj0iIzk5
OTk5OSI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsiPjxicj48L3NwYW4+PC9iPjwv
Zm9udD48L2Rpdj48Zm9udCBjb2xvcj0iIzk5OTk5OSI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZTogMTRweDsiPkkgZG9uJ3Qga25vdyBtdWNoIGFib3V0IHRoZSBTd2lmdCBidWcuIEEgQlVHKCkg
b3IgY3Jhc2ggaW4gdGhlIGtlcm5lbCBpcyZuYnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOiAxNHB4OyI+Z2VuZXJhbGx5IGFsd2F5cyBhIGtlcm5lbCBidWcsIHJlZ2FyZGxlc3Mgb2Yg
d2hhdCB1c2Vyc3BhY2UgaXMgZG9pbmcuIEl0Jm5ic3A7PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6IDE0cHg7Ij5jZXJ0YWlubHkgY291bGQgYmUgdGhhdCB3aGF0ZXZlciB1c2Vyc3BhY2Ug
aXMgZG9pbmcgdG8gdHJpZ2dlciB0aGUmbmJzcDs8L3NwYW4+PC9iPjwvZm9udD48YiBzdHlsZT0i
Y29sb3I6IHJnYigxNTMsIDE1MywgMTUzKTsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDE0cHg7
Ij5rZXJuZWwgYnVnIGlzIGEgYnVnIGluIHRoZSB1c2Vyc3BhY2UgYXBwbGljYXRpb24sIGJ1dCBl
aXRoZXIgd2F5IGl0Jm5ic3A7PC9zcGFuPjwvYj48YiBzdHlsZT0iY29sb3I6IHJnYigxNTMsIDE1
MywgMTUzKTsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDE0cHg7Ij5zaG91bGRuJ3QgY2F1c2Ug
dGhlIGtlcm5lbCB0byBjcmFzaC4gQnkgdGhlIHNhbWUgdG9rZW4sIGlmIFN3aWZ0IGlzJm5ic3A7
PC9zcGFuPjwvYj48YiBzdHlsZT0iY29sb3I6IHJnYigxNTMsIDE1MywgMTUzKTsiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6IDE0cHg7Ij51cGRhdGVkIHRvIGZpeCB0aGUgYWZvcmVtZW50aW9uZWQg
YnVnIGFuZCB0aGUga2VybmVsIGNyYXNoIG5vIGxvbmdlciZuYnNwOzwvc3Bhbj48L2I+PGIgc3R5
bGU9ImNvbG9yOiByZ2IoMTUzLCAxNTMsIDE1Myk7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAx
NHB4OyI+cmVwcm9kdWNlcywgdGhhdCBkb2Vzbid0IG5lY2Vzc2FyaWx5IG1lYW4gdGhlIGtlcm5l
bCBidWcgaXMgZml4ZWQgKGp1c3QmbmJzcDs8L3NwYW4+PC9iPjxiIHN0eWxlPSJjb2xvcjogcmdi
KDE1MywgMTUzLCAxNTMpOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsiPnBvdGVudGlh
bGx5IGhpZGRlbikuPC9zcGFuPjwvYj48ZGl2Pjxmb250IGNvbG9yPSIjOTk5OTk5Ij48Yj48YnI+
PC9iPjwvZm9udD48L2Rpdj48ZGl2PltQcmV2aW91cyBNZXNzYWdlXTwvZGl2PjxkaXY+PGJyPjwv
ZGl2PjxkaXY+YGBgPC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyI+VGhl
IHZhbGlkIGlub2RlIGhhcyBhbiBpbm9kZSBudW1iZXIgb2YgMTM2NjgyMDc1NjEuPC9zcGFuPjxi
ciBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsi
Pi0gVGhlIGZzbmFtZSBmb3IgdGhpcyBpbm9kZSBpcyAic2RiLiI8L3NwYW4+PGJyIHN0eWxlPSJm
b250LXNpemU6IDE0cHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyI+LSBUaGUgaW5v
ZGUgZG9lcyBhcHBlYXIgdG8gaGF2ZSBhIG5vbi1OVUxMIGlmX2RhdGE6PC9zcGFuPjwvZGl2Pjxk
aXY+PGJyIHN0eWxlPSJmb250LXNpemU6IDE0cHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAx
NHB4OyI+Jm5ic3A7ICZuYnNwOyBpZl91MSA9IHs8L3NwYW4+PGJyIHN0eWxlPSJmb250LXNpemU6
IDE0cHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyI+Jm5ic3A7ICZuYnNwOyAmbmJz
cDsgaWZfZXh0ZW50cyA9IDB4ZmZmZjg4MDg0ZmVhZjVjMCw8L3NwYW4+PGJyIHN0eWxlPSJmb250
LXNpemU6IDE0cHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyI+Jm5ic3A7ICZuYnNw
OyAmbmJzcDsgaWZfZXh0X2lyZWMgPSAweGZmZmY4ODA4NGZlYWY1YzAsPC9zcGFuPjxiciBzdHls
ZT0iZm9udC1zaXplOiAxNHB4OyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsiPiZuYnNw
OyAmbmJzcDsgJm5ic3A7IGlmX2RhdGEgPSAweGZmZmY4ODA4NGZlYWY1YzAgIlwwMDQiPC9zcGFu
PjxiciBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTRw
eDsiPiZuYnNwOyAmbmJzcDsgfSw8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOiAxNHB4OyI+PGJyPjwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LXNpemU6
IDE0cHg7Ij4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZmluZCAmbHQ7bW50cGF0aCZndDsg
LWludW0gMTM2NjgyMDc1NjE8L3NwYW4+PGZvbnQgY29sb3I9IiM5OTk5OTkiPjxiPjxicj48L2I+
PC9mb250PjwvZGl2PjxkaXY+YGBgPC9kaXY+PGRpdj48YnI+PC9kaXY+UTE6IFdlcmUgeW91IGFi
bGUgdG8gdHJhY2sgZG93biB0aGUgZGlyZWN0b3J5IGlub2RlIG1lbnRpb25lZCBpbiB0aGUgcHJl
dmlvdXMgbWVzc2FnZT88YnI+PGJyPkFuczogWWVzLCBpdCdzIHRoZSBkaXJlY3RvcnkvZmlsZSBh
cyBiZWxvdy4gL3Nydi9ub2RlL2QyMjQgaXMgdGhlIG1vdW50IHBvaW50IG9mIC9kZXYvc2RiIC4g
VGhpcyBpcyB0aGUgb3JpZ2luYWwgbG9jYXRpb24gb2YgdGhlIHBhdGguIFRoaXMgZm9sZGVyIGlu
Y2x1ZGVzIHRoZSBmaWxlwqA8c3BhbiBzdHlsZT0iZm9udC1zaXplOiB4LXNtYWxsOyI+MTQzNjI2
NjA1Mi43MTg5My50cyBub3cuIFRoZSAudHMgZmlsZSBpcyAwIHNpemUmbmJzcDs8L3NwYW4+PGJy
PjxkaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5gYGA8YnI+PC9kaXY+PC9kaXY+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZTogeC1zbWFsbDsiPltyb290QHIyb2JqMDEgfl0jIGZpbmQgL3Nydi9ub2RlL2Qy
MjQgLWludW0gMTM2NjgyMDc1NjE8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IHgt
c21hbGw7Ij4vc3J2L25vZGUvZDIyNC9vYmplY3RzLzQ1MzgyL2IzMi9iMTQ2ODY1YmY4MDM0YmZj
NDI1NzBiNzQ3YzM0MWIzMjwvc3Bhbj48ZGl2Pjxmb250IHNpemU9IjEiPjxicj48L2ZvbnQ+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZTogeC1zbWFsbDsiPltyb290QHIyb2JqMDEgfl0jIGxzIC1scnQg
L3Nydi9ub2RlL2QyMjQvb2JqZWN0cy80NTM4Mi9iMzIvYjE0Njg2NWJmODAzNGJmYzQyNTcwYjc0
N2MzNDFiMzI8L3NwYW4+PGJyPjxkaXY+PGRpdj48ZGl2Pjxmb250IHNpemU9IjEiPi1ydy0tLS0t
LS0gMSBzd2lmdCBzd2lmdCAwIEp1bCA3IDIyOjM3IDE0MzYyNjYwNTIuNzE4OTMudHM8L2ZvbnQ+
PC9kaXY+PC9kaXY+PC9kaXY+PGRpdj48ZGl2PjxkaXY+YGBgPGJyPjxkaXY+PGJyPjwvZGl2Pjxi
cj5RMjogSXMgaXQgc29tZSBraW5kIG9mIGludGVybmFsIGRpcmVjdG9yeSB1c2VkIGJ5IHRoZSBh
cHBsaWNhdGlvbiAoZS5nLiwgcGVyaGFwcyByZWxhdGVkIHRvIHRoZSBxdWFyYW50aW5lIG1lY2hh
bmlzbSBtZW50aW9uZWQgaW4gdGhlIGJ1Zyk/PGRpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkFuczog
WWVzLCBpdCdzIGEgZGlyZWN0b3J5IHdoaWNoIGFjY2Vzc2luZyBieSBhcHBsaWNhdGlvbi4mbmJz
cDs8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PjxkaXY+YGBgPC9kaXY+PC9kaXY+PC9kaXY+PC9k
aXY+PC9kaXY+PC9kaXY+PGZvbnQgc2l6ZT0iMSI+Jm5ic3A7MzcgZmZmZjg4MTA3MTgzNDNjMCBm
ZmZmODgxMDViOWQzMmMwIGZmZmY4ODA4NzQ1YWE1ZTggUkVHICZuYnNwO1tldmVudHBvbGxdPGJy
PiZuYnNwOzM4IGZmZmY4ODA4NzEzZGE3ODAgZmZmZjg4MDAxMGM5YTkwMCBmZmZmODgwOTYzNjhh
MTg4IFJFRyAvc3J2L25vZGUvZDIyNC9xdWFyYW50aW5lZC9vYmplY3RzL2IxNDY4NjViZjgwMzRi
ZmM0MjU3MGI3NDdjMzQxYjMyLzE0MzYyNjYwNDIuNTc3NzUudHM8YnI+Jm5ic3A7MzkgZmZmZjg4
MDg3MWNiMDNjMCBmZmZmODgwNDk1YThiMzgwIGZmZmY4ODA4YTVlNmM5ODggUkVHICZuYnNwOy9z
cnYvbm9kZS9kMjI0L3RtcC90bXBTcG5ySGc8YnI+PC9mb250PjxkaXY+PGRpdj48ZGl2Pjxmb250
IHNpemU9IjEiPiZuYnNwOzQwIGZmZmY4ODA4NzE1YjQ1NDAgZmZmZjg4MDQ4MTljNThjMCBmZmZm
ODgwMjM4MWY4ZDg4IERJUiAmbmJzcDsvc3J2L25vZGUvZDIyNC9xdWFyYW50aW5lZC9vYmplY3Rz
L2IxNDY4NjViZjgwMzRiZmM0MjU3MGI3NDdjMzQxYjMyPC9mb250PjwvZGl2PjwvZGl2PjwvZGl2
PjxkaXY+PGRpdj5gYGA8YnI+PC9kaXY+PGRpdj5UaGUgYWJvdmUgb3BlcmF0aW9uIGluIHRoZSBz
d2lmdC1vYmplY3Qtc2VydmVyIHdhcyBkb2luZyBweXRob24gZnVuY3Rpb24gY2FsbCB0byByZW5h
bWUgdGhlIGZpbGUgYDxzcGFuIHN0eWxlPSJmb250LXNpemU6IHgtc21hbGw7Ij4vc3J2L25vZGUv
ZDIyNC9vYmplY3RzLzQ1MzgyL2IzMi9iMTQ2ODY1YmY4MDM0YmZjNDI1NzBiNzQ3YzM0MWIzMi88
L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogeC1zbWFsbDsiPjE0MzYyNjYwNDIuNTc3NzUu
dHM8L3NwYW4+YCBhcyZuYnNwOzxzcGFuIHN0eWxlPSJmb250LXNpemU6IHgtc21hbGw7Ij4vc3J2
L25vZGUvZDIyNC9xdWFyYW50aW5lZC9vYmplY3RzL2IxNDY4NjViZjgwMzRiZmM0MjU3MGI3NDdj
MzQxYjMyLzE0MzYyNjYwNDIuNTc3NzUudHM8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOiB4LXNtYWxsOyI+PGJyPjwvc3Bhbj48L2Rpdj48YmxvY2tx
dW90ZSBzdHlsZT0ibWFyZ2luOiAwcHggMHB4IDBweCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRp
bmc6IDBweDsiPjxkaXY+PGRpdj48ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDUxLCA1MSwg
NTEpOyBmb250LWZhbWlseTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291
cmllciwgbW9ub3NwYWNlOyBmb250LXNpemU6IDEycHg7IGxpbmUtaGVpZ2h0OiAxNi43OTk5OTky
MzcwNjA1cHg7IHdoaXRlLXNwYWNlOiBwcmU7Ij5vcy5yZW5hbWUob2xkLCBuZXcpPC9zcGFuPjwv
ZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2Pjxicj48L2Rpdj48ZGl2PkFuZCBpdCBj
cmFzaGVkIGF0IHRoaXMgcG9pbnQuIEluIHRoZSBRMSwgd2UgZm91bmQgdGhlIGludW0gaXMgcG9p
bnRpbmcgdG8gdGhlIGZpbGUmbmJzcDs8c3BhbiBzdHlsZT0iZm9udC1zaXplOiB4LXNtYWxsOyI+
MTQzNjI2NjA1Mi43MTg5My50cyBpbnN0ZWFkIG9mJm5ic3A7PC9zcGFuPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6IHgtc21hbGw7Ij4xNDM2MjY2MDQyLjU3Nzc1LnRzIC4gSXQncyBhcm91bmQgMTAg
c2Vjb25kcyBzaGlmdC4gQW5kIHRoZSAmbmJzcDtmaWxlJm5ic3A7PC9zcGFuPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6IHgtc21hbGw7Ij4mbmJzcDs8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZTogeC1zbWFsbDsiPi9zcnYvbm9kZS9kMjI0L3F1YXJhbnRpbmVkL29iamVjdHMvYjE0Njg2NWJm
ODAzNGJmYzQyNTcwYjc0N2MzNDFiMzIvMTQzNjI2NjA0Mi41Nzc3NS50cyB3YXMgbm90IGNyZWF0
ZWQgaW4gc3VjY2Vzc2Z1bGx5LiZuYnNwOzwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJm
b250LXNpemU6IHgtc21hbGw7Ij5Gcm9tIG15IHBvaW50IG9mIHZpZXcsIHNlZW1zIGxpa2UgdGhl
IGFwcGxpY2F0aW9uIHRyaWVkIHRvIGNhbGwgb3MucmVuYW1lIG9mIGZpbGUmbmJzcDs8L3NwYW4+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogeC1zbWFsbDsiPjE0MzYyNjYwNDIuNTc3NzUudHMgYnV0
IGl0IGNhbid0IGZpbmQgaXQgc2luY2UgdGhlIGludW0gaXMgZm9yJm5ic3A7PC9zcGFuPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6IHgtc21hbGw7Ij4xNDM2MjY2MDUyLjcxODkzLnRzIC48L3NwYW4+
PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiB4LXNtYWxsOyI+PGJyPjwvc3Bhbj48
L2Rpdj48ZGl2Pjxicj48L2Rpdj4=" style="height:0px;width:0px;max-height:0px;max-width:0px;overflow:hidden;font-size:0em;padding:0px;margin:0px"></div></div></div>