Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Sep 2010 21:38:51 +0200 (CEST)
From:      Ingo Flaschberger <if@xip.at>
To:        Qing Li <qingli@freebsd.org>
Cc:        "Li, Qing" <qing.li@bluecoat.com>, net@freebsd.org
Subject:   Re: funny ECMP
Message-ID:  <alpine.LFD.2.00.1009161412180.5369@filebunker.xip.at>
In-Reply-To: <AANLkTikG4Fbcnu4qjSNSLCOdA%2BT0T7yyGMA5w7mmMHuA@mail.gmail.com>
References:  <alpine.LFD.2.00.1008230154280.29368@filebunker.xip.at> <B583FBF374231F4A89607B4D08578A4307F1FC70@bcs-mail03.internal.cacheflow.com> <alpine.LFD.2.00.1008240223240.12708@filebunker.xip.at> <alpine.LFD.2.00.1008242005160.12708@filebunker.xip.at> <B583FBF374231F4A89607B4D08578A4307F1FF22@bcs-mail03.internal.cacheflow.com> <alpine.LFD.2.00.1008242027390.12708@filebunker.xip.at> <B583FBF374231F4A89607B4D08578A4307F1FF79@bcs-mail03.internal.cacheflow.com> <alpine.LFD.2.00.1008242102410.12708@filebunker.xip.at> <B583FBF374231F4A89607B4D08578A4307F20002@bcs-mail03.internal.cacheflow.com> <alpine.LFD.2.00.1008242227350.12708@filebunker.xip.at> <B583FBF374231F4A89607B4D08578A4307F20038@bcs-mail03.internal.cacheflow.com> <alpine.LFD.2.00.1008261754140.15491@filebunker.xip.at> <alpine.LFD.2.00.1008262102150.15491@filebunker.xip.at> <alpine.LFD.2.00.1009110504340.5369@filebunker.xip.at> <AANLkTikG4Fbcnu4qjSNSLCOdA%2BT0T7yyGMA5w7mmMHuA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--168430090-1874193526-1284665933=:5369
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

Hi Qing,

version 4 o patch...
fixed deleting interface loopback routes.

Kind regards,
 	Ingo Flaschberger
--168430090-1874193526-1284665933=:5369
Content-Type: TEXT/plain; name=mpath_patch_if_v4.txt
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.LFD.2.00.1009162138510.5369@filebunker.xip.at>
Content-Description: 
Content-Disposition: attachment; filename=mpath_patch_if_v4.txt

ZGlmZiAtdSAtciAvdXNyX2RpZmYvc3JjL3N5cy9jb250cmliL2lwZmlsdGVy
L25ldGluZXQvaXBfcG9vbC5jIC9yb3V0ZXIvdXNyL3NyYy9zeXMvY29udHJp
Yi9pcGZpbHRlci9uZXRpbmV0L2lwX3Bvb2wuYw0KLS0tIC91c3JfZGlmZi9z
cmMvc3lzL2NvbnRyaWIvaXBmaWx0ZXIvbmV0aW5ldC9pcF9wb29sLmMJMjAw
Ny0xMC0xOCAyMTo0MjozOC4wMDAwMDAwMDAgKzAwMDANCisrKyAvcm91dGVy
L3Vzci9zcmMvc3lzL2NvbnRyaWIvaXBmaWx0ZXIvbmV0aW5ldC9pcF9wb29s
LmMJMjAxMC0wOS0xMSAwMTowMjozMS4wMDAwMDAwMDAgKzAwMDANCkBAIC02
MjAsNyArNjIwLDcgQEANCiANCiAJUkFESVhfTk9ERV9IRUFEX0xPQ0soaXBv
LT5pcG9faGVhZCk7DQogCWlwby0+aXBvX2hlYWQtPnJuaF9kZWxhZGRyKCZp
cGUtPmlwbl9hZGRyLCAmaXBlLT5pcG5fbWFzaywNCi0JCQkJICAgaXBvLT5p
cG9faGVhZCk7DQorCQkJCSAgIGlwby0+aXBvX2hlYWQsIE5VTEwpOw0KIAlS
QURJWF9OT0RFX0hFQURfVU5MT0NLKGlwby0+aXBvX2hlYWQpOw0KIA0KIAlp
cF9wb29sX25vZGVfZGVyZWYoaXBlKTsNCkBAIC03NTEsNyArNzUxLDcgQEAN
CiAJUkFESVhfTk9ERV9IRUFEX0xPQ0soaXBvLT5pcG9faGVhZCk7DQogCXdo
aWxlICgobiA9IGlwby0+aXBvX2xpc3QpICE9IE5VTEwpIHsNCiAJCWlwby0+
aXBvX2hlYWQtPnJuaF9kZWxhZGRyKCZuLT5pcG5fYWRkciwgJm4tPmlwbl9t
YXNrLA0KLQkJCQkJICAgaXBvLT5pcG9faGVhZCk7DQorCQkJCQkgICBpcG8t
Pmlwb19oZWFkLCBOVUxMKTsNCiANCiAJCSpuLT5pcG5fcG5leHQgPSBuLT5p
cG5fbmV4dDsNCiAJCWlmIChuLT5pcG5fbmV4dCkNCkBAIC05NjMsNyArOTYz
LDcgQEANCiAJc3RydWN0IHJhZGl4X25vZGVfaGVhZCAqcm5oID0gcDsNCiAJ
c3RydWN0IHJhZGl4X25vZGUgKmQ7DQogDQotCWQgPSBybmgtPnJuaF9kZWxh
ZGRyKG4tPnJuX2tleSwgTlVMTCwgcm5oKTsNCisJZCA9IHJuaC0+cm5oX2Rl
bGFkZHIobi0+cm5fa2V5LCBOVUxMLCBybmgsIE5VTEwpOw0KIAlpZiAoZCAh
PSBOVUxMKSB7DQogCQlGcmVlUyhkLCBtYXhfa2V5bGVuICsgMiAqIHNpemVv
ZiAoKmQpKTsNCiAJfQ0KZGlmZiAtdSAtciAvdXNyX2RpZmYvc3JjL3N5cy9j
b250cmliL3BmL25ldC9wZi5jIC9yb3V0ZXIvdXNyL3NyYy9zeXMvY29udHJp
Yi9wZi9uZXQvcGYuYw0KLS0tIC91c3JfZGlmZi9zcmMvc3lzL2NvbnRyaWIv
cGYvbmV0L3BmLmMJMjAxMC0wMS0yMyAwMDozMjoxOS4wMDAwMDAwMDAgKzAw
MDANCisrKyAvcm91dGVyL3Vzci9zcmMvc3lzL2NvbnRyaWIvcGYvbmV0L3Bm
LmMJMjAxMC0wOC0yNiAxNToxMjoxMi4wMDAwMDAwMDAgKzAwMDANCkBAIC05
OSw5ICs5OSw3IEBADQogI2luY2x1ZGUgPG5ldC9pZl90eXBlcy5oPg0KICNp
bmNsdWRlIDxuZXQvYnBmLmg+DQogI2luY2x1ZGUgPG5ldC9yb3V0ZS5oPg0K
LSNpZm5kZWYgX19GcmVlQlNEX18NCiAjaW5jbHVkZSA8bmV0L3JhZGl4X21w
YXRoLmg+DQotI2VuZGlmDQogDQogI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4N
CiAjaW5jbHVkZSA8bmV0aW5ldC9pbl92YXIuaD4NCkBAIC02MTY2LDkgKzYx
NjQsOSBAQA0KIAkJCWlmIChraWYtPnBmaWtfaWZwID09IGlmcCkNCiAJCQkJ
cmV0ID0gMTsNCiAjaWZkZWYgX19GcmVlQlNEX18gLyogTVVMVElQQVRIX1JP
VVRJTkcgKi8NCi0JCQlybiA9IE5VTEw7DQorCQkJcm4gPSBybl9tcGF0aF9u
ZXh0KHJuKTsgLyogWFhYIHdhcyBiZWZvcmU6IHJuID0gTlVMTDsgKi8NCiAj
ZWxzZQ0KLQkJCXJuID0gcm5fbXBhdGhfbmV4dChybik7DQorCQkJcm4gPSBy
bl9tcGF0aF9uZXh0KHJuLCAwKTsNCiAjZW5kaWYNCiAJCX0gd2hpbGUgKGNo
ZWNrX21wYXRoID09IDEgJiYgcm4gIT0gTlVMTCAmJiByZXQgPT0gMCk7DQog
CX0gZWxzZQ0KZGlmZiAtdSAtciAvdXNyX2RpZmYvc3JjL3N5cy9jb250cmli
L3BmL25ldC9wZl90YWJsZS5jIC9yb3V0ZXIvdXNyL3NyYy9zeXMvY29udHJp
Yi9wZi9uZXQvcGZfdGFibGUuYw0KLS0tIC91c3JfZGlmZi9zcmMvc3lzL2Nv
bnRyaWIvcGYvbmV0L3BmX3RhYmxlLmMJMjAwOS0wOC0wMyAwODoxMzowNi4w
MDAwMDAwMDAgKzAwMDANCisrKyAvcm91dGVyL3Vzci9zcmMvc3lzL2NvbnRy
aWIvcGYvbmV0L3BmX3RhYmxlLmMJMjAxMC0wOC0yNiAxMTo1MDozMS4wMDAw
MDAwMDAgKzAwMDANCkBAIC0xMTE0LDE3ICsxMTE0LDkgQEANCiAjZW5kaWYN
CiAJaWYgKEtFTlRSWV9ORVRXT1JLKGtlKSkgew0KIAkJcGZyX3ByZXBhcmVf
bmV0d29yaygmbWFzaywga2UtPnBmcmtlX2FmLCBrZS0+cGZya2VfbmV0KTsN
Ci0jaWZkZWYgX19GcmVlQlNEX18NCi0JCXJuID0gcm5fZGVsZXRlKCZrZS0+
cGZya2Vfc2EsICZtYXNrLCBoZWFkKTsNCi0jZWxzZQ0KIAkJcm4gPSBybl9k
ZWxldGUoJmtlLT5wZnJrZV9zYSwgJm1hc2ssIGhlYWQsIE5VTEwpOw0KLSNl
bmRpZg0KIAl9IGVsc2UNCi0jaWZkZWYgX19GcmVlQlNEX18NCi0JCXJuID0g
cm5fZGVsZXRlKCZrZS0+cGZya2Vfc2EsIE5VTEwsIGhlYWQpOw0KLSNlbHNl
DQogCQlybiA9IHJuX2RlbGV0ZSgma2UtPnBmcmtlX3NhLCBOVUxMLCBoZWFk
LCBOVUxMKTsNCi0jZW5kaWYNCiAJc3BseChzKTsNCiANCiAJaWYgKHJuID09
IE5VTEwpIHsNCmRpZmYgLXUgLXIgL3Vzcl9kaWZmL3NyYy9zeXMvbmV0L3Jh
ZGl4LmMgL3JvdXRlci91c3Ivc3JjL3N5cy9uZXQvcmFkaXguYw0KLS0tIC91
c3JfZGlmZi9zcmMvc3lzL25ldC9yYWRpeC5jCTIwMTAtMDQtMDIgMDU6MDI6
NTAuMDAwMDAwMDAwICswMDAwDQorKysgL3JvdXRlci91c3Ivc3JjL3N5cy9u
ZXQvcmFkaXguYwkyMDEwLTA5LTExIDAxOjEzOjM0LjAwMDAwMDAwMCArMDAw
MA0KQEAgLTYxNCw3ICs2MTQsNyBAQA0KIAlzdHJ1Y3QgcmFkaXhfbm9kZSB0
cmVlbm9kZXNbMl07DQogew0KIAljYWRkcl90IHYgPSAoY2FkZHJfdCl2X2Fy
ZywgbmV0bWFzayA9IChjYWRkcl90KW5fYXJnOw0KLQlyZWdpc3RlciBzdHJ1
Y3QgcmFkaXhfbm9kZSAqdCwgKnggPSAwLCAqdHQ7DQorCXJlZ2lzdGVyIHN0
cnVjdCByYWRpeF9ub2RlICp0LCAqeCA9IDAsICp4eCA9IDAsICp0dDsNCiAJ
c3RydWN0IHJhZGl4X25vZGUgKnNhdmVkX3R0LCAqdG9wID0gaGVhZC0+cm5o
X3RyZWV0b3A7DQogCXNob3J0IGIgPSAwLCBiX2xlYWYgPSAwOw0KIAlpbnQg
a2V5ZHVwbGljYXRlZDsNCkBAIC03MjMsMTIgKzcyMywxOSBAQA0KIAkJeCA9
IHQtPnJuX3JpZ2h0Ow0KIAkvKiBQcm9tb3RlIGdlbmVyYWwgcm91dGVzIGZy
b20gYmVsb3cgKi8NCiAJaWYgKHgtPnJuX2JpdCA8IDApIHsNCi0JICAgIGZv
ciAobXAgPSAmdC0+cm5fbWtsaXN0OyB4OyB4ID0geC0+cm5fZHVwZWRrZXkp
DQorCSAgICBmb3IgKG1wID0gJnQtPnJuX21rbGlzdDsgeDsgeHggPSB4LCB4
ID0geC0+cm5fZHVwZWRrZXkpIHsNCisJCWlmICh4eCAmJiB4eC0+cm5fbWts
aXN0ICYmIHh4LT5ybl9tYXNrID09IHgtPnJuX21hc2sgJiYNCisJCQkJeC0+
cm5fbWtsaXN0ID09IDApIHsNCisJCQkvKiBtdWx0aXBhdGggcm91dGUsIGJ1
bXAgcmVmY291bnQgb24gZmlyc3QgbWtsaXN0ICovDQorCQkJeC0+cm5fbWts
aXN0ID0geHgtPnJuX21rbGlzdDsNCisJCQl4LT5ybl9ta2xpc3QtPnJtX3Jl
ZnMrKzsNCisJCX0NCiAJCWlmICh4LT5ybl9tYXNrICYmICh4LT5ybl9iaXQg
Pj0gYl9sZWFmKSAmJiB4LT5ybl9ta2xpc3QgPT0gMCkgew0KIAkJCSptcCA9
IG0gPSBybl9uZXdfcmFkaXhfbWFzayh4LCAwKTsNCiAJCQlpZiAobSkNCiAJ
CQkJbXAgPSAmbS0+cm1fbWtsaXN0Ow0KIAkJfQ0KKwkgICAgfQ0KIAl9IGVs
c2UgaWYgKHgtPnJuX21rbGlzdCkgew0KIAkJLyoNCiAJCSAqIFNraXAgb3Zl
ciBtYXNrcyB3aG9zZSBpbmRleCBpcyA+IHRoYXQgb2YgbmV3IG5vZGUNCkBA
IC03NjAsMTEgKzc2NywzMCBAQA0KIAkJCWJyZWFrOw0KIAkJaWYgKG0tPnJt
X2ZsYWdzICYgUk5GX05PUk1BTCkgew0KIAkJCW1tYXNrID0gbS0+cm1fbGVh
Zi0+cm5fbWFzazsNCi0JCQlpZiAodHQtPnJuX2ZsYWdzICYgUk5GX05PUk1B
TCkgew0KLSNpZiAhZGVmaW5lZChSQURJWF9NUEFUSCkNCi0JCQkgICAgbG9n
KExPR19FUlIsDQotCQkJICAgICAgICAiTm9uLXVuaXF1ZSBub3JtYWwgcm91
dGUsIG1hc2sgbm90IGVudGVyZWRcbiIpOw0KKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChrZXlkdXBsaWNhdGVkKSB7DQorCQkJCWlmIChtLT5ybV9s
ZWFmLT5ybl9wYXJlbnQgPT0gdHQpDQorCQkJCQkvKiBuZXcgcm91dGUgaXMg
YmV0dHRlciAqLw0KKwkJCQkJbS0+cm1fbGVhZiA9IHR0Ow0KKyNpZmRlZiBE
SUFHTk9TVElDDQorCQkJCWVsc2Ugew0KKwkJCQkJZm9yICh0ID0gbS0+cm1f
bGVhZjsgdDsNCisJCQkJCQl0ID0gdC0+cm5fZHVwZWRrZXkpIHsNCisJCQkJ
CQkJYnJlYWs7DQorCQkJCQl9DQorCQkJCQlpZiAodCA9PSBOVUxMKSB7DQor
CQkJCQkJbG9nKExPR19FUlIsICJOb24tdW5pcXVlICINCisJCQkJCQkJIm5v
cm1hbCByb3V0ZSBvbiBkdXBlZGtleSwgIg0KKwkJCQkJCQkibWFzayBub3Qg
ZW50ZXJlZFxuIik7DQorCQkJCQkJcmV0dXJuIHR0Ow0KKwkJCQkJfQ0KKwkJ
CQl9DQogI2VuZGlmDQorCQkJCW0tPnJtX3JlZnMrKzsNCisJCQkJdHQtPnJu
X21rbGlzdCA9IG07DQorCQkJCXJldHVybiB0dDsNCisJCQkgfSBlbHNlIGlm
ICh0dC0+cm5fZmxhZ3MgJiBSTkZfTk9STUFMKSB7DQorCQkJCWxvZyhMT0df
RVJSLCAiTm9uLXVuaXF1ZSBub3JtYWwgcm91dGUsIg0KKwkJCQkJIiBtYXNr
IG5vdCBlbnRlcmVkXG4iKTsNCiAJCQkJcmV0dXJuIHR0Ow0KIAkJCX0NCiAJ
CX0gZWxzZQ0KQEAgLTc4Myw5ICs4MDksMTAgQEANCiB9DQogDQogc3RydWN0
IHJhZGl4X25vZGUgKg0KLXJuX2RlbGV0ZSh2X2FyZywgbmV0bWFza19hcmcs
IGhlYWQpDQorcm5fZGVsZXRlKHZfYXJnLCBuZXRtYXNrX2FyZywgaGVhZCwg
cm4pDQogCXZvaWQgKnZfYXJnLCAqbmV0bWFza19hcmc7DQogCXN0cnVjdCBy
YWRpeF9ub2RlX2hlYWQgKmhlYWQ7DQorCXN0cnVjdCByYWRpeF9ub2RlICpy
bjsNCiB7DQogCXJlZ2lzdGVyIHN0cnVjdCByYWRpeF9ub2RlICp0LCAqcCwg
KngsICp0dDsNCiAJc3RydWN0IHJhZGl4X21hc2sgKm0sICpzYXZlZF9tLCAq
Km1wOw0KQEAgLTgxNSwxMyArODQyLDM4IEBADQogCQkJaWYgKCh0dCA9IHR0
LT5ybl9kdXBlZGtleSkgPT0gMCkNCiAJCQkJcmV0dXJuICgwKTsNCiAJfQ0K
KyNpZmRlZiBSQURJWF9NUEFUSA0KKwlpZiAocm4pIHsNCisJCXdoaWxlICh0
dCAhPSBybikNCisJCQlpZiAoKHR0ID0gdHQtPnJuX2R1cGVka2V5KSA9PSAw
KQ0KKwkJCQlyZXR1cm4gKDApOw0KKwl9DQorI2VuZGlmDQorCQ0KIAlpZiAo
dHQtPnJuX21hc2sgPT0gMCB8fCAoc2F2ZWRfbSA9IG0gPSB0dC0+cm5fbWts
aXN0KSA9PSAwKQ0KIAkJZ290byBvbjE7DQogCWlmICh0dC0+cm5fZmxhZ3Mg
JiBSTkZfTk9STUFMKSB7DQotCQlpZiAobS0+cm1fbGVhZiAhPSB0dCB8fCBt
LT5ybV9yZWZzID4gMCkgew0KKwkJaWYgKG0tPnJtX2xlYWYgIT0gdHQgJiYg
bS0+cm1fcmVmcyA9PSAwKSB7DQogCQkJbG9nKExPR19FUlIsICJybl9kZWxl
dGU6IGluY29uc2lzdGVudCBhbm5vdGF0aW9uXG4iKTsNCiAJCQlyZXR1cm4g
MDsgIC8qIGRhbmdsaW5nIHJlZiBjb3VsZCBjYXVzZSBkaXNhc3RlciAqLw0K
IAkJfQ0KKwkJaWYgKG0tPnJtX2xlYWYgIT0gdHQpIHsNCisJCQlpZiAoLS1t
LT5ybV9yZWZzID49IDApDQorCQkJCWdvdG8gb24xOw0KKyAgICAgICAgICAg
ICAgICB9DQorCQkvKiB0dCBpcyBjdXJyZW50bHkgdGhlIGhlYWQgb2YgdGhl
IHBvc3NpYmxlIG11bHRpcGF0aCBjaGFpbiAqLw0KKwkJaWYgKG0tPnJtX3Jl
ZnMgPiAwKSB7DQorCQkJaWYgKHR0LT5ybl9kdXBlZGtleSA9PSBOVUxMIHx8
DQorCQkJICAgIHR0LT5ybl9kdXBlZGtleS0+cm5fbWtsaXN0ICE9IG0pIHsN
CisJCQkJbG9nKExPR19FUlIsICJybl9kZWxldGU6IGluY29uc2lzdGVudCAi
DQorCQkJCSAgICAiZHVwZWRrZXkgbGlzdFxuIik7DQorCQkJCXJldHVybiAo
MCk7DQorCQkJfQ0KKwkJCW0tPnJtX2xlYWYgPSB0dC0+cm5fZHVwZWRrZXk7
DQorCQkJLS1tLT5ybV9yZWZzOw0KKwkJCWdvdG8gb24xOw0KKwkJfQ0KKwkJ
LyogZWxzZSB0dCBpcyBsYXN0IGFuZCBvbmx5IHJvdXRlICovDQogCX0gZWxz
ZSB7DQogCQlpZiAobS0+cm1fbWFzayAhPSB0dC0+cm5fbWFzaykgew0KIAkJ
CWxvZyhMT0dfRVJSLCAicm5fZGVsZXRlOiBpbmNvbnNpc3RlbnQgYW5ub3Rh
dGlvblxuIik7DQpAQCAtODY5LDIxICs5MjEsMTcgQEANCiAJCSAqLw0KIAkJ
aWYgKHR0ID09IHNhdmVkX3R0KSB7DQogCQkJLyogcmVtb3ZlIGZyb20gaGVh
ZCBvZiBjaGFpbiAqLw0KLQkJCXggPSBkdXBlZGtleTsgeC0+cm5fcGFyZW50
ID0gdDsNCisJCQl4ID0gZHVwZWRrZXk7IA0KKwkJCXgtPnJuX3BhcmVudCA9
IHQ7DQogCQkJaWYgKHQtPnJuX2xlZnQgPT0gdHQpDQogCQkJCXQtPnJuX2xl
ZnQgPSB4Ow0KIAkJCWVsc2UNCiAJCQkJdC0+cm5fcmlnaHQgPSB4Ow0KIAkJ
fSBlbHNlIHsNCi0JCQkvKiBmaW5kIG5vZGUgaW4gZnJvbnQgb2YgdHQgb24g
dGhlIGNoYWluICovDQotCQkJZm9yICh4ID0gcCA9IHNhdmVkX3R0OyBwICYm
IHAtPnJuX2R1cGVka2V5ICE9IHR0OykNCi0JCQkJcCA9IHAtPnJuX2R1cGVk
a2V5Ow0KLQkJCWlmIChwKSB7DQotCQkJCXAtPnJuX2R1cGVka2V5ID0gdHQt
PnJuX2R1cGVka2V5Ow0KLQkJCQlpZiAodHQtPnJuX2R1cGVka2V5KQkJLyog
cGFyZW50ICovDQotCQkJCQl0dC0+cm5fZHVwZWRrZXktPnJuX3BhcmVudCA9
IHA7DQotCQkJCQkJCQkvKiBwYXJlbnQgKi8NCi0JCQl9IGVsc2UgbG9nKExP
R19FUlIsICJybl9kZWxldGU6IGNvdWxkbid0IGZpbmQgdXNcbiIpOw0KKwkJ
CXggPSBzYXZlZF90dDsNCisJCQl0LT5ybl9kdXBlZGtleSA9IHR0LT5ybl9k
dXBlZGtleTsNCisJCQlpZiAodHQtPnJuX2R1cGVka2V5KQ0KKwkJCQl0dC0+
cm5fZHVwZWRrZXktPnJuX3BhcmVudCA9IHQ7DQogCQl9DQogCQl0ID0gdHQg
KyAxOw0KIAkJaWYgICh0LT5ybl9mbGFncyAmIFJORl9BQ1RJVkUpIHsNCkBA
IC05MzEsMTQgKzk3OSwyMSBAQA0KIAkJCQlpZiAobSA9PSB4LT5ybl9ta2xp
c3QpIHsNCiAJCQkJCXN0cnVjdCByYWRpeF9tYXNrICptbSA9IG0tPnJtX21r
bGlzdDsNCiAJCQkJCXgtPnJuX21rbGlzdCA9IDA7DQotCQkJCQlpZiAoLS0o
bS0+cm1fcmVmcykgPCAwKQ0KKwkJCQkJaWYgKC0tKG0tPnJtX3JlZnMpIDwg
MCkgew0KIAkJCQkJCU1LRnJlZShtKTsNCisJCQkJCX0gZWxzZSBpZiAobS0+
cm1fZmxhZ3MgJiBSTkZfTk9STUFMKSB7DQorCQkJCQkJLyoNCisJCQkJCQkg
KiBkb24ndCBwcm9ncmVzcyBiZWNhdXNlIHRoaXMNCisJCQkJCQkgKiBhIG11
bHRpcGF0aCByb3V0ZS4gTmV4dA0KKwkJCQkJCSAqIHJvdXRlIHdpbGwgdXNl
IHRoZSBzYW1lIG0uDQorCQkJCQkJICovDQorCQkJCQkJbW0gPSBtOw0KKwkJ
CQkJfQ0KIAkJCQkJbSA9IG1tOw0KIAkJCQl9DQogCQkJaWYgKG0pDQogCQkJ
CWxvZyhMT0dfRVJSLA0KLQkJCQkgICAgInJuX2RlbGV0ZTogT3JwaGFuZWQg
TWFzayAlcCBhdCAlcFxuIiwNCi0JCQkJICAgIG0sIHgpOw0KKwkJCQkgICAg
InJuX2RlbGV0ZTogT3JwaGFuZWQgTWFzayAlcCBhdCAlcFxuIiwgbSwgeCk7
DQogCQl9DQogCX0NCiAJLyoNCkBAIC05OTAsMTEgKzEwNDUsOCBAQA0KIAkg
KiBybl9zZWFyY2hfbSBpcyBzb3J0LW9mLW9wZW4tY29kZWQgaGVyZS4gV2Ug
Y2Fubm90IHVzZSB0aGUNCiAJICogZnVuY3Rpb24gYmVjYXVzZSB3ZSBuZWVk
IHRvIGtlZXAgdHJhY2sgb2YgdGhlIGxhc3Qgbm9kZSBzZWVuLg0KIAkgKi8N
Ci0JLyogcHJpbnRmKCJhYm91dCB0byBzZWFyY2hcbiIpOyAqLw0KIAlmb3Ig
KHJuID0gaC0+cm5oX3RyZWV0b3A7IHJuLT5ybl9iaXQgPj0gMDsgKSB7DQog
CQlsYXN0ID0gcm47DQotCQkvKiBwcmludGYoInJuX2JpdCAlZCwgcm5fYm1h
c2sgJXgsIHhtW3JuX29mZnNldF0gJXhcbiIsDQotCQkgICAgICAgcm4tPnJu
X2JpdCwgcm4tPnJuX2JtYXNrLCB4bVtybi0+cm5fb2Zmc2V0XSk7ICovDQog
CQlpZiAoIShybi0+cm5fYm1hc2sgJiB4bVtybi0+cm5fb2Zmc2V0XSkpIHsN
CiAJCQlicmVhazsNCiAJCX0NCkBAIC0xMDA0LDcgKzEwNTYsNiBAQA0KIAkJ
CXJuID0gcm4tPnJuX2xlZnQ7DQogCQl9DQogCX0NCi0JLyogcHJpbnRmKCJk
b25lIHNlYXJjaGluZ1xuIik7ICovDQogDQogCS8qDQogCSAqIFR3byBjYXNl
czogZWl0aGVyIHdlIHN0ZXBwZWQgb2ZmIHRoZSBlbmQgb2Ygb3VyIG1hc2ss
DQpAQCAtMTAxNSw4ICsxMDY2LDYgQEANCiAJcm4gPSBsYXN0Ow0KIAlsYXN0
YiA9IHJuLT5ybl9iaXQ7DQogDQotCS8qIHByaW50Zigicm4gJXAsIGxhc3Ri
ICVkXG4iLCBybiwgbGFzdGIpOyovDQotDQogCS8qDQogCSAqIFRoaXMgZ2V0
cyBjb21wbGljYXRlZCBiZWNhdXNlIHdlIG1heSBkZWxldGUgdGhlIG5vZGUN
CiAJICogd2hpbGUgYXBwbHlpbmcgdGhlIGZ1bmN0aW9uIGYgdG8gaXQsIHNv
IHdlIG5lZWQgdG8gY2FsY3VsYXRlDQpAQCAtMTAyNiw3ICsxMDc1LDYgQEAN
CiAJCXJuID0gcm4tPnJuX2xlZnQ7DQogDQogCXdoaWxlICghc3RvcHBpbmcp
IHsNCi0JCS8qIHByaW50Zigibm9kZSAlcCAoJWQpXG4iLCBybiwgcm4tPnJu
X2JpdCk7ICovDQogCQliYXNlID0gcm47DQogCQkvKiBJZiBhdCByaWdodCBj
aGlsZCBnbyBiYWNrIHVwLCBvdGhlcndpc2UsIGdvIHJpZ2h0ICovDQogCQl3
aGlsZSAocm4tPnJuX3BhcmVudC0+cm5fcmlnaHQgPT0gcm4NCkBAIC0xMDM2
LDcgKzEwODQsNiBAQA0KIAkJCS8qIGlmIHdlbnQgdXAgYmV5b25kIGxhc3Qs
IHN0b3AgKi8NCiAJCQlpZiAocm4tPnJuX2JpdCA8PSBsYXN0Yikgew0KIAkJ
CQlzdG9wcGluZyA9IDE7DQotCQkJCS8qIHByaW50ZigidXAgdG9vIGZhclxu
Iik7ICovDQogCQkJCS8qDQogCQkJCSAqIFhYWCB3ZSBzaG91bGQganVtcCB0
byB0aGUgJ1Byb2Nlc3MgbGVhdmVzJw0KIAkJCQkgKiBwYXJ0LCBiZWNhdXNl
IHRoZSB2YWx1ZXMgb2YgJ3JuJyBhbmQgJ25leHQnDQpAQCAtMTA2Miw3ICsx
MTA5LDYgQEANCiAJCS8qIFByb2Nlc3MgbGVhdmVzICovDQogCQl3aGlsZSAo
KHJuID0gYmFzZSkgIT0gMCkgew0KIAkJCWJhc2UgPSBybi0+cm5fZHVwZWRr
ZXk7DQotCQkJLyogcHJpbnRmKCJsZWFmICVwXG4iLCBybik7ICovDQogCQkJ
aWYgKCEocm4tPnJuX2ZsYWdzICYgUk5GX1JPT1QpDQogCQkJICAgICYmIChl
cnJvciA9ICgqZikocm4sIHcpKSkNCiAJCQkJcmV0dXJuIChlcnJvcik7DQpA
QCAtMTA3MCw3ICsxMTE2LDYgQEANCiAJCXJuID0gbmV4dDsNCiANCiAJCWlm
IChybi0+cm5fZmxhZ3MgJiBSTkZfUk9PVCkgew0KLQkJCS8qIHByaW50Zigi
cm9vdCwgc3RvcHBpbmciKTsgKi8NCiAJCQlzdG9wcGluZyA9IDE7DQogCQl9
DQogDQpkaWZmIC11IC1yIC91c3JfZGlmZi9zcmMvc3lzL25ldC9yYWRpeC5o
IC9yb3V0ZXIvdXNyL3NyYy9zeXMvbmV0L3JhZGl4LmgNCi0tLSAvdXNyX2Rp
ZmYvc3JjL3N5cy9uZXQvcmFkaXguaAkyMDEwLTAzLTIzIDA5OjU4OjU5LjAw
MDAwMDAwMCArMDAwMA0KKysrIC9yb3V0ZXIvdXNyL3NyYy9zeXMvbmV0L3Jh
ZGl4LmgJMjAxMC0wOS0xMCAyMDoxNTo0Ni4wMDAwMDAwMDAgKzAwMDANCkBA
IC0xMTQsNyArMTE0LDcgQEANCiAJCSh2b2lkICp2LCB2b2lkICptYXNrLA0K
IAkJICAgICBzdHJ1Y3QgcmFkaXhfbm9kZV9oZWFkICpoZWFkLCBzdHJ1Y3Qg
cmFkaXhfbm9kZSBub2Rlc1tdKTsNCiAJc3RydWN0CXJhZGl4X25vZGUgKigq
cm5oX2RlbGFkZHIpCS8qIHJlbW92ZSBiYXNlZCBvbiBzb2NrYWRkciAqLw0K
LQkJKHZvaWQgKnYsIHZvaWQgKm1hc2ssIHN0cnVjdCByYWRpeF9ub2RlX2hl
YWQgKmhlYWQpOw0KKwkJKHZvaWQgKnYsIHZvaWQgKm1hc2ssIHN0cnVjdCBy
YWRpeF9ub2RlX2hlYWQgKmhlYWQsIHN0cnVjdCByYWRpeF9ub2RlICpybik7
DQogCXN0cnVjdAlyYWRpeF9ub2RlICooKnJuaF9kZWxwa3QpCS8qIHJlbW92
ZSBiYXNlZCBvbiBwYWNrZXQgaGRyICovDQogCQkodm9pZCAqdiwgdm9pZCAq
bWFzaywgc3RydWN0IHJhZGl4X25vZGVfaGVhZCAqaGVhZCk7DQogCXN0cnVj
dAlyYWRpeF9ub2RlICooKnJuaF9tYXRjaGFkZHIpCS8qIGxvY2F0ZSBiYXNl
ZCBvbiBzb2NrYWRkciAqLw0KQEAgLTE2OCw3ICsxNjgsNyBAQA0KIAkgKnJu
X2FkZG1hc2sodm9pZCAqLCBpbnQsIGludCksDQogCSAqcm5fYWRkcm91dGUg
KHZvaWQgKiwgdm9pZCAqLCBzdHJ1Y3QgcmFkaXhfbm9kZV9oZWFkICosDQog
CQkJc3RydWN0IHJhZGl4X25vZGUgWzJdKSwNCi0JICpybl9kZWxldGUodm9p
ZCAqLCB2b2lkICosIHN0cnVjdCByYWRpeF9ub2RlX2hlYWQgKiksDQorCSAq
cm5fZGVsZXRlKHZvaWQgKiwgdm9pZCAqLCBzdHJ1Y3QgcmFkaXhfbm9kZV9o
ZWFkICosIHN0cnVjdCByYWRpeF9ub2RlICopLA0KIAkgKnJuX2xvb2t1cCAo
dm9pZCAqdl9hcmcsIHZvaWQgKm1fYXJnLA0KIAkJICAgICAgICBzdHJ1Y3Qg
cmFkaXhfbm9kZV9oZWFkICpoZWFkKSwNCiAJICpybl9tYXRjaCh2b2lkICos
IHN0cnVjdCByYWRpeF9ub2RlX2hlYWQgKik7DQpkaWZmIC11IC1yIC91c3Jf
ZGlmZi9zcmMvc3lzL25ldC9yYWRpeF9tcGF0aC5jIC9yb3V0ZXIvdXNyL3Ny
Yy9zeXMvbmV0L3JhZGl4X21wYXRoLmMNCi0tLSAvdXNyX2RpZmYvc3JjL3N5
cy9uZXQvcmFkaXhfbXBhdGguYwkyMDEwLTA0LTAyIDA1OjAyOjUwLjAwMDAw
MDAwMCArMDAwMA0KKysrIC9yb3V0ZXIvdXNyL3NyYy9zeXMvbmV0L3JhZGl4
X21wYXRoLmMJMjAxMC0wOS0xNiAxOToyNDo0NS4wMDAwMDAwMDAgKzAwMDAN
CkBAIC0xMTIsNDYgKzExMiwxNCBAQA0KIAkJICogd2UgbmVlZCB0byBjb21w
YXJlIHRoZSBpbnRlcmZhY2UgYWRkcmVzcyBiZWNhdXNlDQogCQkgKiBydF9n
YXRld2F5IGlzIGEgc3BlY2lhbCBzb2NrYWRkX2RsIHN0cnVjdHVyZQ0KIAkJ
ICovDQotCQlpZiAocnQtPnJ0X2dhdGV3YXktPnNhX2ZhbWlseSA9PSBBRl9M
SU5LKSB7DQotCQkJaWYgKCFtZW1jbXAocnQtPnJ0X2lmYS0+aWZhX2FkZHIs
IGdhdGUsIGdhdGUtPnNhX2xlbikpDQorCQlpZiAocnQtPnJ0X2dhdGV3YXkt
PnNhX2xlbiA9PSBnYXRlLT5zYV9sZW4gJiYNCisJCQkhbWVtY21wKHJ0LT5y
dF9nYXRld2F5LCBnYXRlLCBnYXRlLT5zYV9sZW4pKQ0KIAkJCQlicmVhazsN
Ci0JCX0gZWxzZSB7DQotCQkJaWYgKHJ0LT5ydF9nYXRld2F5LT5zYV9sZW4g
PT0gZ2F0ZS0+c2FfbGVuICYmDQotCQkJICAgICFtZW1jbXAocnQtPnJ0X2dh
dGV3YXksIGdhdGUsIGdhdGUtPnNhX2xlbikpDQotCQkJCWJyZWFrOw0KLQkJ
fQ0KIAl9IHdoaWxlICgocm4gPSBybl9tcGF0aF9uZXh0KHJuKSkgIT0gTlVM
TCk7DQogDQogCXJldHVybiAoc3RydWN0IHJ0ZW50cnkgKilybjsNCiB9DQog
DQotLyogDQotICogZ28gdGhyb3VnaCB0aGUgY2hhaW4gYW5kIHVubGluayAi
cnQiIGZyb20gdGhlIGxpc3QNCi0gKiB0aGUgY2FsbGVyIHdpbGwgZnJlZSAi
cnQiDQotICovDQotaW50DQotcnRfbXBhdGhfZGVsZHVwKHN0cnVjdCBydGVu
dHJ5ICpoZWFkcnQsIHN0cnVjdCBydGVudHJ5ICpydCkNCi17DQotICAgICAg
ICBzdHJ1Y3QgcmFkaXhfbm9kZSAqdCwgKnR0Ow0KLQ0KLSAgICAgICAgaWYg
KCFoZWFkcnQgfHwgIXJ0KQ0KLSAgICAgICAgICAgIHJldHVybiAoMCk7DQot
ICAgICAgICB0ID0gKHN0cnVjdCByYWRpeF9ub2RlICopaGVhZHJ0Ow0KLSAg
ICAgICAgdHQgPSBybl9tcGF0aF9uZXh0KHQpOw0KLSAgICAgICAgd2hpbGUg
KHR0KSB7DQotICAgICAgICAgICAgaWYgKHR0ID09IChzdHJ1Y3QgcmFkaXhf
bm9kZSAqKXJ0KSB7DQotICAgICAgICAgICAgICAgIHQtPnJuX2R1cGVka2V5
ID0gdHQtPnJuX2R1cGVka2V5Ow0KLSAgICAgICAgICAgICAgICB0dC0+cm5f
ZHVwZWRrZXkgPSBOVUxMOw0KLSAgICAJICAgICAgICB0dC0+cm5fZmxhZ3Mg
Jj0gflJORl9BQ1RJVkU7DQotCSAgICAgICAgdHRbMV0ucm5fZmxhZ3MgJj0g
flJORl9BQ1RJVkU7DQotICAgICAgICAgICAgICAgIHJldHVybiAoMSk7DQot
ICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgIHQgPSB0dDsNCi0gICAgICAg
ICAgICB0dCA9IHJuX21wYXRoX25leHQoKHN0cnVjdCByYWRpeF9ub2RlICop
dCk7DQotICAgICAgICB9DQotICAgICAgICByZXR1cm4gKDApOw0KLX0NCi0N
CiAvKg0KICAqIGNoZWNrIGlmIHdlIGhhdmUgdGhlIHNhbWUga2V5L21hc2sv
Z2F0ZXdheSBvbiB0aGUgdGFibGUgYWxyZWFkeS4NCiAgKi8NCkBAIC0yNjIs
OSArMjMwLDEwIEBADQogcnRhbGxvY19tcGF0aF9maWIoc3RydWN0IHJvdXRl
ICpybywgdWludDMyX3QgaGFzaCwgdV9pbnQgZmlibnVtKQ0KIHsNCiAJc3Ry
dWN0IHJhZGl4X25vZGUgKnJuMCwgKnJuOw0KLQl1X2ludDMyX3QgbjsNCisJ
dV9pbnQzMl90IG4gPSAwOw0KIAlzdHJ1Y3QgcnRlbnRyeSAqcnQ7DQogCWlu
dDY0X3Qgd2VpZ2h0Ow0KKwlpbnQ2NF90IGxvd2VzdF93ZWlnaHQ7DQogDQog
CS8qDQogCSAqIFhYWCB3ZSBkb24ndCBhdHRlbXB0IHRvIGxvb2t1cCBjYWNo
ZWQgcm91dGUgYWdhaW47IHdoYXQgc2hvdWxkDQpAQCAtMjcyLDcgKzI0MSw3
IEBADQogCSAqLw0KIAlpZiAocm8tPnJvX3J0ICYmIHJvLT5yb19ydC0+cnRf
aWZwICYmIChyby0+cm9fcnQtPnJ0X2ZsYWdzICYgUlRGX1VQKQ0KIAkgICAg
JiYgUlRfTElOS19JU19VUChyby0+cm9fcnQtPnJ0X2lmcCkpDQotCQlyZXR1
cm47CQkJCSANCisJCXJldHVybjsNCiAJcm8tPnJvX3J0ID0gcnRhbGxvYzFf
ZmliKCZyby0+cm9fZHN0LCAxLCAwLCBmaWJudW0pOw0KIA0KIAkvKiBpZiB0
aGUgcm91dGUgZG9lcyBub3QgZXhpc3Qgb3IgaXQgaXMgbm90IG11bHRpcGF0
aCwgZG9uJ3QgY2FyZSAqLw0KQEAgLTI4NSwyMCArMjU0LDM0IEBADQogDQog
CS8qIGJleW9uZCBoZXJlLCB3ZSB1c2Ugcm4gYXMgdGhlIG1hc3RlciBjb3B5
ICovDQogCXJuMCA9IHJuID0gKHN0cnVjdCByYWRpeF9ub2RlICopcm8tPnJv
X3J0Ow0KLQluID0gcm5fbXBhdGhfY291bnQocm4wKTsNCi0NCisJDQorCS8q
IGZpbmQgbG93ZXN0IHdlaWdodCByb3V0ZSAqLw0KKwlmb3IgKCBydCA9IChz
dHJ1Y3QgcnRlbnRyeSAqKXJuLCB3ZWlnaHQgPSBydC0+cnRfcm14LnJteF93
ZWlnaHQ7IHJuICE9IE5VTEw7IHJuID0gcm5fbXBhdGhfbmV4dCggcm4pKSB7
DQorCQkvKiBYWFggY2hlY2sgaWYgcm91dGUgaXMgdXA/ICovDQorCQlydCA9
IChzdHJ1Y3QgcnRlbnRyeSAqKXJuOw0KKwkJaWYocnQtPnJ0X2ZsYWdzICYg
UlRGX1VQKSB7IA0KKwkJCWlmICh3ZWlnaHQgPiBydC0+cnRfcm14LnJteF93
ZWlnaHQpIHsNCisJCQkJd2VpZ2h0ID0gcnQtPnJ0X3JteC5ybXhfd2VpZ2h0
Ow0KKwkJCQluID0gMTsNCisJCQl9IGVsc2UgaWYgKHdlaWdodCA9PSBydC0+
cnRfcm14LnJteF93ZWlnaHQpDQorCQkJCW4rKzsNCisJCX0NCisJfQ0KKwls
b3dlc3Rfd2VpZ2h0ID0gd2VpZ2h0Ow0KKwkNCisJLyogc2VsZWN0IG5vdyBv
bmUgb2YgdGhlIGxvd2VzdCB3ZWlnaHQgcm91dGVzICovDQogCS8qIGd3IHNl
bGVjdGlvbiBieSBNb2R1bG8tTiBIYXNoIChSRkMyOTkxKSBYWFggbmVlZCBp
bXByb3ZlbWVudD8gKi8NCiAJaGFzaCArPSBoYXNoaml0dGVyOw0KIAloYXNo
ICU9IG47DQotCWZvciAod2VpZ2h0ID0gYWJzKChpbnQzMl90KWhhc2gpLCBy
dCA9IHJvLT5yb19ydDsNCi0JICAgICB3ZWlnaHQgPj0gcnQtPnJ0X3JteC5y
bXhfd2VpZ2h0ICYmIHJuOyANCi0JICAgICB3ZWlnaHQgLT0gcnQtPnJ0X3Jt
eC5ybXhfd2VpZ2h0KSB7DQotCQkNCi0JCS8qIHN0YXkgd2l0aGluIHRoZSBt
dWx0aXBhdGggcm91dGVzICovDQotCQlpZiAocm4tPnJuX2R1cGVka2V5ICYm
IHJuLT5ybl9tYXNrICE9IHJuLT5ybl9kdXBlZGtleS0+cm5fbWFzaykNCi0J
CQlicmVhazsNCi0JCXJuID0gcm4tPnJuX2R1cGVka2V5Ow0KKwlmb3IgKCBy
biA9IHJuMCwgbiA9IDA7IHJuICE9IE5VTEw7IHJuID0gcm5fbXBhdGhfbmV4
dCggcm4pKSB7DQogCQlydCA9IChzdHJ1Y3QgcnRlbnRyeSAqKXJuOw0KKwkJ
aWYocnQtPnJ0X2ZsYWdzICYgUlRGX1VQKSB7IA0KKwkJCWlmICggcnQtPnJ0
X3JteC5ybXhfd2VpZ2h0ID09IGxvd2VzdF93ZWlnaHQpIHsNCisJCQkJaWYg
KG4gPT0gaGFzaCkNCisJCQkJCWJyZWFrOw0KKwkJCQluKys7DQorCQkJfQ0K
KwkJfQ0KIAl9DQogCS8qIFhYWCB0cnkgZmlsbGluZyBydF9nd3JvdXRlIGFu
ZCBhdm9pZCB1bnJlYWNoYWJsZSBndyAgKi8NCiANCmRpZmYgLXUgLXIgL3Vz
cl9kaWZmL3NyYy9zeXMvbmV0L3JvdXRlLmMgL3JvdXRlci91c3Ivc3JjL3N5
cy9uZXQvcm91dGUuYw0KLS0tIC91c3JfZGlmZi9zcmMvc3lzL25ldC9yb3V0
ZS5jCTIwMTAtMDYtMTggMDM6MzE6MzMuMDAwMDAwMDAwICswMDAwDQorKysg
L3JvdXRlci91c3Ivc3JjL3N5cy9uZXQvcm91dGUuYwkyMDEwLTA5LTE2IDE5
OjEyOjE4LjAwMDAwMDAwMCArMDAwMA0KQEAgLTg3NSw3ICs4NzUsNyBAQA0K
IAkgKiBSZW1vdmUgdGhlIGl0ZW0gZnJvbSB0aGUgdHJlZTsgaXQgc2hvdWxk
IGJlIHRoZXJlLA0KIAkgKiBidXQgd2hlbiBjYWxsZXJzIGludm9rZSB1cyBi
bGluZGx5IGl0IG1heSBub3QgKHNpZ2gpLg0KIAkgKi8NCi0Jcm4gPSBybmgt
PnJuaF9kZWxhZGRyKHJ0X2tleShydCksIHJ0X21hc2socnQpLCBybmgpOw0K
KwlybiA9IHJuaC0+cm5oX2RlbGFkZHIocnRfa2V5KHJ0KSwgcnRfbWFzayhy
dCksIHJuaCwgTlVMTCk7DQogCWlmIChybiA9PSBOVUxMKSB7DQogCQllcnJv
ciA9IEVTUkNIOw0KIAkJZ290byBiYWQ7DQpAQCAtOTEzLDExMiArOTEzLDYg
QEANCiAJcmV0dXJuIChlcnJvcik7DQogfQ0KIA0KLSNpZmRlZiBSQURJWF9N
UEFUSA0KLXN0YXRpYyBpbnQNCi1ybl9tcGF0aF91cGRhdGUoaW50IHJlcSwg
c3RydWN0IHJ0X2FkZHJpbmZvICppbmZvLA0KLSAgICBzdHJ1Y3QgcmFkaXhf
bm9kZV9oZWFkICpybmgsIHN0cnVjdCBydGVudHJ5ICoqcmV0X25ydCkNCi17
DQotCS8qDQotCSAqIGlmIHdlIGdvdCBtdWx0aXBhdGggcm91dGVzLCB3ZSBy
ZXF1aXJlIHVzZXJzIHRvIHNwZWNpZnkNCi0JICogYSBtYXRjaGluZyBSVEFY
X0dBVEVXQVkuDQotCSAqLw0KLQlzdHJ1Y3QgcnRlbnRyeSAqcnQsICpydG8g
PSBOVUxMOw0KLQlyZWdpc3RlciBzdHJ1Y3QgcmFkaXhfbm9kZSAqcm47DQot
CWludCBlcnJvciA9IDA7DQotDQotCXJuID0gcm5oLT5ybmhfbWF0Y2hhZGRy
KGRzdCwgcm5oKTsNCi0JaWYgKHJuID09IE5VTEwpDQotCQlyZXR1cm4gKEVT
UkNIKTsNCi0JcnRvID0gcnQgPSBSTlRPUlQocm4pOw0KLQlydCA9IHJ0X21w
YXRoX21hdGNoZ2F0ZShydCwgZ2F0ZXdheSk7DQotCWlmIChydCA9PSBOVUxM
KQ0KLQkJcmV0dXJuIChFU1JDSCk7DQotCS8qDQotCSAqIHRoaXMgaXMgdGhl
IGZpcnN0IGVudHJ5IGluIHRoZSBjaGFpbg0KLQkgKi8NCi0JaWYgKHJ0byA9
PSBydCkgew0KLQkJcm4gPSBybl9tcGF0aF9uZXh0KChzdHJ1Y3QgcmFkaXhf
bm9kZSAqKXJ0KTsNCi0JCS8qDQotCQkgKiB0aGVyZSBpcyBhbm90aGVyIGVu
dHJ5LCBub3cgaXQncyBhY3RpdmUNCi0JCSAqLw0KLQkJaWYgKHJuKSB7DQot
CQkJcnRvID0gUk5UT1JUKHJuKTsNCi0JCQlSVF9MT0NLKHJ0byk7DQotCQkJ
cnRvLT5ydF9mbGFncyB8PSBSVEZfVVA7DQotCQkJUlRfVU5MT0NLKHJ0byk7
DQotCQl9IGVsc2UgaWYgKHJ0LT5ydF9mbGFncyAmIFJURl9HQVRFV0FZKSB7
DQotCQkJLyoNCi0JCQkgKiBGb3IgZ2F0ZXdheSByb3V0ZXMsIHdlIG5lZWQg
dG8gDQotCQkJICogbWFrZSBzdXJlIHRoYXQgd2Ugd2UgYXJlIGRlbGV0aW5n
DQotCQkJICogdGhlIGNvcnJlY3QgZ2F0ZXdheS4gDQotCQkJICogcnRfbXBh
dGhfbWF0Y2hnYXRlKCkgZG9lcyBub3QgDQotCQkJICogY2hlY2sgdGhlIGNh
c2Ugd2hlbiB0aGVyZSBpcyBvbmx5DQotCQkJICogb25lIHJvdXRlIGluIHRo
ZSBjaGFpbi4gIA0KLQkJCSAqLw0KLQkJCWlmIChnYXRld2F5ICYmDQotCQkJ
ICAgIChydC0+cnRfZ2F0ZXdheS0+c2FfbGVuICE9IGdhdGV3YXktPnNhX2xl
biB8fA0KLQkJCQltZW1jbXAocnQtPnJ0X2dhdGV3YXksIGdhdGV3YXksIGdh
dGV3YXktPnNhX2xlbikpKQ0KLQkJCQllcnJvciA9IEVTUkNIOw0KLQkJCWVs
c2Ugew0KLQkJCQkvKg0KLQkJCQkgKiByZW1vdmUgZnJvbSB0cmVlIGJlZm9y
ZSByZXR1cm5pbmcgaXQNCi0JCQkJICogdG8gdGhlIGNhbGxlcg0KLQkJCQkg
Ki8NCi0JCQkJcm4gPSBybmgtPnJuaF9kZWxhZGRyKGRzdCwgbmV0bWFzaywg
cm5oKTsNCi0JCQkJS0FTU0VSVChydCA9PSBSTlRPUlQocm4pLCAoInJhZGl4
IG5vZGUgZGlzYXBwZWFyZWQiKSk7DQotCQkJCWdvdG8gZ3dkZWxldGU7DQot
CQkJfQ0KLQkJCQ0KLQkJfQ0KLQkJLyoNCi0JCSAqIHVzZSB0aGUgbm9ybWFs
IGRlbGV0ZSBjb2RlIHRvIHJlbW92ZQ0KLQkJICogdGhlIGZpcnN0IGVudHJ5
DQotCQkgKi8NCi0JCWlmIChyZXEgIT0gUlRNX0RFTEVURSkgDQotCQkJZ290
byBub25kZWxldGU7DQotDQotCQllcnJvciA9IEVOT0VOVDsNCi0JCWdvdG8g
ZG9uZTsNCi0JfQ0KLQkJDQotCS8qDQotCSAqIGlmIHRoZSBlbnRyeSBpcyAy
bmQgYW5kIG9uIHVwDQotCSAqLw0KLQlpZiAoKHJlcSA9PSBSVE1fREVMRVRF
KSAmJiAhcnRfbXBhdGhfZGVsZHVwKHJ0bywgcnQpKQ0KLQkJcGFuaWMgKCJy
dHJlcXVlc3QxOiBydF9tcGF0aF9kZWxkdXAiKTsNCi1nd2RlbGV0ZToNCi0J
UlRfTE9DSyhydCk7DQotCVJUX0FERFJFRihydCk7DQotCWlmIChyZXEgPT0g
UlRNX0RFTEVURSkgew0KLQkJcnQtPnJ0X2ZsYWdzICY9IH5SVEZfVVA7DQot
CQkvKg0KLQkJICogT25lIG1vcmUgcnRlbnRyeSBmbG9hdGluZyBhcm91bmQg
dGhhdCBpcyBub3QNCi0JCSAqIGxpbmtlZCB0byB0aGUgcm91dGluZyB0YWJs
ZS4gcnR0cmFzaCB3aWxsIGJlIGRlY3JlbWVudGVkDQotCQkgKiB3aGVuIFJU
RlJFRShydCkgaXMgZXZlbnR1YWxseSBjYWxsZWQuDQotCQkgKi8NCi0JCVZf
cnR0cmFzaCsrOw0KLQl9DQotCQ0KLW5vbmRlbGV0ZToNCi0JaWYgKHJlcSAh
PSBSVE1fREVMRVRFKQ0KLQkJcGFuaWMoInVucmVjb2duaXplZCByZXF1ZXN0
ICVkIiwgcmVxKTsNCi0JDQotDQotCS8qDQotCSAqIElmIHRoZSBjYWxsZXIg
d2FudHMgaXQsIHRoZW4gaXQgY2FuIGhhdmUgaXQsDQotCSAqIGJ1dCBpdCdz
IHVwIHRvIGl0IHRvIGZyZWUgdGhlIHJ0ZW50cnkgYXMgd2Ugd29uJ3QgYmUN
Ci0JICogZG9pbmcgaXQuDQotCSAqLw0KLQlpZiAocmV0X25ydCkgew0KLQkJ
KnJldF9ucnQgPSBydDsNCi0JCVJUX1VOTE9DSyhydCk7DQotCX0gZWxzZQ0K
LQkJUlRGUkVFX0xPQ0tFRChydCk7DQotZG9uZToNCi0JcmV0dXJuIChlcnJv
cik7DQotfQ0KLSNlbmRpZg0KLQ0KIGludA0KIHJ0cmVxdWVzdDFfZmliKGlu
dCByZXEsIHN0cnVjdCBydF9hZGRyaW5mbyAqaW5mbywgc3RydWN0IHJ0ZW50
cnkgKipyZXRfbnJ0LA0KIAkJCQl1X2ludCBmaWJudW0pDQpAQCAtMTA1OCwy
OCArOTUyLDMwIEBADQogDQogCXN3aXRjaCAocmVxKSB7DQogCWNhc2UgUlRN
X0RFTEVURToNCisJICAgICAgICBpZiAoKHJuID0gcm5oLT5ybmhfbG9va3Vw
KGRzdCwgbmV0bWFzaywgcm5oKSkgPT0gTlVMTCkNCisJICAgICAgICAgICAg
ICAgIHNlbmRlcnIoRVNSQ0gpOw0KKwkJcnQgPSBSTlRPUlQocm4pOw0KICNp
ZmRlZiBSQURJWF9NUEFUSA0KLQkJaWYgKHJuX21wYXRoX2NhcGFibGUocm5o
KSkgew0KLQkJCWVycm9yID0gcm5fbXBhdGhfdXBkYXRlKHJlcSwgaW5mbywg
cm5oLCByZXRfbnJ0KTsNCi0JCQkvKg0KLQkJCSAqICJiYWQiIGhvbGRzIHRy
dWUgZm9yIHRoZSBzdWNjZXNzIGNhc2UNCi0JCQkgKiBhcyB3ZWxsDQotCQkJ
ICovDQotCQkJaWYgKGVycm9yICE9IEVOT0VOVCkNCi0JCQkJZ290byBiYWQ7
DQotCQkJZXJyb3IgPSAwOw0KLQkJfQ0KKyAgICAgICAgICAgICAgICAvKg0K
KyAgICAgICAgICAgICAgICAgKiBpZiB3ZSBnb3QgbXVsdGlwYXRoIHJvdXRl
cywgd2UgcmVxdWlyZSB1c2VycyB0byBzcGVjaWZ5DQorICAgICAgICAgICAg
ICAgICAqIGEgbWF0Y2hpbmcgUlRBWF9HQVRFV0FZLg0KKyAgICAgICAgICAg
ICAgICAgKi8NCisgICAgICAgICAgICAgICAgaWYgKHJuX21wYXRoX2NhcGFi
bGUocm5oKSkgew0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJ0ID0gcnRf
bXBhdGhfbWF0Y2hnYXRlKCBydCwgZ2F0ZXdheSk7DQorICAgICAgICAgICAg
ICAgICAgICAgICAgcm4gPSAoc3RydWN0IHJhZGl4X25vZGUgKilydDsNCisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJ0KQ0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VuZGVycihFU1JDSCk7DQorICAgICAg
ICAgICAgICAgIH0NCiAjZW5kaWYNCiAJCS8qDQogCQkgKiBSZW1vdmUgdGhl
IGl0ZW0gZnJvbSB0aGUgdHJlZSBhbmQgcmV0dXJuIGl0Lg0KIAkJICogQ29t
cGxhaW4gaWYgaXQgaXMgbm90IHRoZXJlIGFuZCBkbyBubyBtb3JlIHByb2Nl
c3NpbmcuDQogCQkgKi8NCi0JCXJuID0gcm5oLT5ybmhfZGVsYWRkcihkc3Qs
IG5ldG1hc2ssIHJuaCk7DQorCQlybiA9IHJuaC0+cm5oX2RlbGFkZHIoZHN0
LCBuZXRtYXNrLCBybmgsIHJuKTsNCiAJCWlmIChybiA9PSBOVUxMKQ0KIAkJ
CXNlbmRlcnIoRVNSQ0gpOw0KIAkJaWYgKHJuLT5ybl9mbGFncyAmIChSTkZf
QUNUSVZFIHwgUk5GX1JPT1QpKQ0KIAkJCXBhbmljICgicnRyZXF1ZXN0IGRl
bGV0ZSIpOw0KLQkJcnQgPSBSTlRPUlQocm4pOw0KIAkJUlRfTE9DSyhydCk7
DQogCQlSVF9BRERSRUYocnQpOw0KIAkJcnQtPnJ0X2ZsYWdzICY9IH5SVEZf
VVA7DQpAQCAtMTQ3NCwxMCArMTM3MCw5IEBADQogCQkJICAgIFJOVE9SVChy
biktPnJ0X2lmYSAhPSBpZmEgfHwNCiAJCQkgICAgIXNhX2VxdWFsKChzdHJ1
Y3Qgc29ja2FkZHIgKilybi0+cm5fa2V5LCBkc3QpKTsNCiAJCQlSQURJWF9O
T0RFX0hFQURfVU5MT0NLKHJuaCk7DQotCQkJaWYgKGVycm9yKSB7DQorCQkJ
aWYgKGVycm9yKQ0KIAkJCQkvKiB0aGlzIGlzIG9ubHkgYW4gZXJyb3IgaWYg
YmFkIG9uIEFMTCB0YWJsZXMgKi8NCiAJCQkJY29udGludWU7DQotCQkJfQ0K
IAkJfQ0KIAkJLyoNCiAJCSAqIERvIHRoZSBhY3R1YWwgcmVxdWVzdA0KZGlm
ZiAtdSAtciAvdXNyX2RpZmYvc3JjL3N5cy9uZXRpbmV0L2luLmMgL3JvdXRl
ci91c3Ivc3JjL3N5cy9uZXRpbmV0L2luLmMNCi0tLSAvdXNyX2RpZmYvc3Jj
L3N5cy9uZXRpbmV0L2luLmMJMjAxMC0wOS0wNyAxMzoxMDo0Ni4wMDAwMDAw
MDAgKzAwMDANCisrKyAvcm91dGVyL3Vzci9zcmMvc3lzL25ldGluZXQvaW4u
YwkyMDEwLTA5LTE2IDE5OjE4OjQ2LjAwMDAwMDAwMCArMDAwMA0KQEAgLTEz
NzQsMTIgKzEzNzQsNDUgQEANCiBpbl9sbHRhYmxlX3J0Y2hlY2soc3RydWN0
IGlmbmV0ICppZnAsIHVfaW50IGZsYWdzLCBjb25zdCBzdHJ1Y3Qgc29ja2Fk
ZHIgKmwzYWRkcikNCiB7DQogCXN0cnVjdCBydGVudHJ5ICpydDsNCisjaWZk
ZWYgUkFESVhfTVBBVEgNCisJaW50NjRfdCB3ZWlnaHQ7DQorCXN0cnVjdCBy
dGVudHJ5ICpydDA7DQorCWludDMyX3QgZm91bmQgPSAwOw0KKyNlbmRpZg0K
IA0KIAlLQVNTRVJUKGwzYWRkci0+c2FfZmFtaWx5ID09IEFGX0lORVQsDQog
CSAgICAoInNpbl9mYW1pbHkgJWQiLCBsM2FkZHItPnNhX2ZhbWlseSkpOw0K
IA0KIAkvKiBYWFggcnRhbGxvYzEgc2hvdWxkIHRha2UgYSBjb25zdCBwYXJh
bSAqLw0KIAlydCA9IHJ0YWxsb2MxKF9fREVDT05TVChzdHJ1Y3Qgc29ja2Fk
ZHIgKiwgbDNhZGRyKSwgMCwgMCk7DQorDQorI2lmZGVmIFJBRElYX01QQVRI
DQorCXJ0MCA9IHJ0Ow0KKyAgICAgICAgaWYgKChydCAhPSBOVUxMKSAmJiAo
IHJuX21wYXRoX25leHQoKHN0cnVjdCByYWRpeF9ub2RlICopcnQpICE9IE5V
TEwpKSB7DQorCQkvKiBjaGVjayBpZiB0aGVyZSBhcmUgb3RoZXIsIG1hdGNo
aW5nIHJvdXRlcyAqLw0KKwkJLyogZmluZCBsb3dlc3Qgd2VpZ2h0IHJvdXRl
ICovDQorCQlmb3IgKCB3ZWlnaHQgPSBydC0+cnRfcm14LnJteF93ZWlnaHQ7
IHJ0ICE9IE5VTEw7IHJ0ID0gKHN0cnVjdCBydGVudHJ5ICopcm5fbXBhdGhf
bmV4dCggKHN0cnVjdCByYWRpeF9ub2RlICopcnQpKSB7DQorCQkJaWYocnQt
PnJ0X2ZsYWdzICYgUlRGX1VQKSB7DQorCQkJCWlmICh3ZWlnaHQgPiBydC0+
cnRfcm14LnJteF93ZWlnaHQpDQorCQkJCQl3ZWlnaHQgPSBydC0+cnRfcm14
LnJteF93ZWlnaHQ7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJLyogZmluZCBub3cg
b25lIG5vbiBnYXRld2F5IHJvdXRlIHdpdGggbG93ZXN0IHdlaWdodCAqLw0K
KwkJZm9yICggcnQgPSBydDA7IHJ0ICE9IE5VTEw7IHJ0ID0gKHN0cnVjdCBy
dGVudHJ5ICopcm5fbXBhdGhfbmV4dCggKHN0cnVjdCByYWRpeF9ub2RlICop
cnQpKSB7DQorCQkJaWYocnQtPnJ0X2ZsYWdzICYgUlRGX1VQKSB7DQorCQkJ
CWlmICgod2VpZ2h0ID09IHJ0LT5ydF9ybXgucm14X3dlaWdodCkgJiYgIShy
dC0+cnRfZmxhZ3MgJiBSVEZfR0FURVdBWSkpIHsNCisJCQkJCWZvdW5kID0g
MTsNCisJCQkJCWJyZWFrOw0KKwkJCQl9DQorCQkJfQ0KKwkJfQ0KKwkJaWYg
KGZvdW5kID09IDApDQorCQkJcnQgPSBOVUxMOw0KKwl9DQorCQ0KKyNlbmRp
ZgkNCisNCiAJaWYgKHJ0ID09IE5VTEwgfHwgKCEoZmxhZ3MgJiBMTEVfUFVC
KSAmJg0KIAkJCSAgICgocnQtPnJ0X2ZsYWdzICYgUlRGX0dBVEVXQVkpIHx8
IA0KIAkJCSAgICAocnQtPnJ0X2lmcCAhPSBpZnApKSkpIHsNCkBAIC0xMzg3
LDExICsxNDIwLDIxIEBADQogCQlsb2coTE9HX0lORk8sICJJUHY0IGFkZHJl
c3M6IFwiJXNcIiBpcyBub3Qgb24gdGhlIG5ldHdvcmtcbiIsDQogCQkgICAg
aW5ldF9udG9hKCgoY29uc3Qgc3RydWN0IHNvY2thZGRyX2luICopbDNhZGRy
KS0+c2luX2FkZHIpKTsNCiAjZW5kaWYNCisjaWZkZWYgUkFESVhfTVBBVEgN
CisJCWlmIChydDAgIT0gTlVMTCkNCisJCQlSVEZSRUVfTE9DS0VEKHJ0MCk7
DQorI2Vsc2UNCiAJCWlmIChydCAhPSBOVUxMKQ0KIAkJCVJURlJFRV9MT0NL
RUQocnQpOw0KKyNlbmRpZg0KIAkJcmV0dXJuIChFSU5WQUwpOw0KIAl9DQor
I2lmZGVmIFJBRElYX01QQVRIDQorCVJURlJFRV9MT0NLRUQocnQwKTsNCisj
ZWxzZQ0KIAlSVEZSRUVfTE9DS0VEKHJ0KTsNCisjZW5kaWYNCisNCiAJcmV0
dXJuIDA7DQogfQ0KIA0KQEAgLTE0MjQsNyArMTQ2Nyw3IEBADQogCWlmIChs
bGUgPT0gTlVMTCkgew0KICNpZmRlZiBESUFHTk9TVElDDQogCQlpZiAoZmxh
Z3MgJiBMTEVfREVMRVRFKQ0KLQkJCWxvZyhMT0dfSU5GTywgImludGVyZmFj
ZSBhZGRyZXNzIGlzIG1pc3NpbmcgZnJvbSBjYWNoZSA9ICVwICBpbiBkZWxl
dGVcbiIsIGxsZSk7CQ0KKwkJCWxvZyhMT0dfSU5GTywgImludGVyZmFjZSBh
ZGRyZXNzIGlzIG1pc3NpbmcgZnJvbSBjYWNoZSA9ICVwICBpbiBkZWxldGVc
biIsIGxsZSk7DQogI2VuZGlmDQogCQlpZiAoIShmbGFncyAmIExMRV9DUkVB
VEUpKQ0KIAkJCXJldHVybiAoTlVMTCk7DQpkaWZmIC11IC1yIC91c3JfZGlm
Zi9zcmMvc3lzL25ldGluZXQvaXBmdy9pcF9md190YWJsZS5jIC9yb3V0ZXIv
dXNyL3NyYy9zeXMvbmV0aW5ldC9pcGZ3L2lwX2Z3X3RhYmxlLmMNCi0tLSAv
dXNyX2RpZmYvc3JjL3N5cy9uZXRpbmV0L2lwZncvaXBfZndfdGFibGUuYwky
MDEwLTAzLTIzIDA5OjU4OjU5LjAwMDAwMDAwMCArMDAwMA0KKysrIC9yb3V0
ZXIvdXNyL3NyYy9zeXMvbmV0aW5ldC9pcGZ3L2lwX2Z3X3RhYmxlLmMJMjAx
MC0wOC0yNiAxMjo0NzoyNy4wMDAwMDAwMDAgKzAwMDANCkBAIC0xMzcsNyAr
MTM3LDcgQEANCiAJbWFzay5zaW5fYWRkci5zX2FkZHIgPSBodG9ubChtbGVu
ID8gfigoMSA8PCAoMzIgLSBtbGVuKSkgLSAxKSA6IDApOw0KIAlzYS5zaW5f
YWRkci5zX2FkZHIgPSBhZGRyICYgbWFzay5zaW5fYWRkci5zX2FkZHI7DQog
CUlQRldfV0xPQ0soY2gpOw0KLQllbnQgPSAoc3RydWN0IHRhYmxlX2VudHJ5
ICopcm5oLT5ybmhfZGVsYWRkcigmc2EsICZtYXNrLCBybmgpOw0KKwllbnQg
PSAoc3RydWN0IHRhYmxlX2VudHJ5ICopcm5oLT5ybmhfZGVsYWRkcigmc2Es
ICZtYXNrLCBybmgsIE5VTEwpOw0KIAlpZiAoZW50ID09IE5VTEwpIHsNCiAJ
CUlQRldfV1VOTE9DSyhjaCk7DQogCQlyZXR1cm4gKEVTUkNIKTsNCkBAIC0x
NTQsNyArMTU0LDcgQEANCiAJc3RydWN0IHRhYmxlX2VudHJ5ICplbnQ7DQog
DQogCWVudCA9IChzdHJ1Y3QgdGFibGVfZW50cnkgKikNCi0JICAgIHJuaC0+
cm5oX2RlbGFkZHIocm4tPnJuX2tleSwgcm4tPnJuX21hc2ssIHJuaCk7DQor
CSAgICBybmgtPnJuaF9kZWxhZGRyKHJuLT5ybl9rZXksIHJuLT5ybl9tYXNr
LCBybmgsIE5VTEwpOw0KIAlpZiAoZW50ICE9IE5VTEwpDQogCQlmcmVlKGVu
dCwgTV9JUEZXX1RCTCk7DQogCXJldHVybiAoMCk7DQpkaWZmIC11IC1yIC91
c3JfZGlmZi9zcmMvc3lzL25ldGluZXQvcmF3X2lwLmMgL3JvdXRlci91c3Iv
c3JjL3N5cy9uZXRpbmV0L3Jhd19pcC5jDQotLS0gL3Vzcl9kaWZmL3NyYy9z
eXMvbmV0aW5ldC9yYXdfaXAuYwkyMDEwLTA4LTI3IDE4OjUwOjEyLjAwMDAw
MDAwMCArMDAwMA0KKysrIC9yb3V0ZXIvdXNyL3NyYy9zeXMvbmV0aW5ldC9y
YXdfaXAuYwkyMDEwLTA5LTExIDAyOjU0OjQ1LjAwMDAwMDAwMCArMDAwMA0K
QEAgLTc1NSw2ICs3NTUsOCBAQA0KIAkJaWYgKGVyciA9PSAwKQ0KIAkJCWlh
LT5pYV9mbGFncyB8PSBJRkFfUk9VVEU7DQogCQllcnIgPSBpZmFfYWRkX2xv
b3BiYWNrX3JvdXRlKChzdHJ1Y3QgaWZhZGRyICopaWEsIHNhKTsNCisJCWlm
IChlcnIgPT0gMCkNCisJCSAgICAgICAgaWEtPmlhX2ZsYWdzIHw9IElGQV9S
VFNFTEY7DQogCQlpZmFfZnJlZSgmaWEtPmlhX2lmYSk7DQogCQlicmVhazsN
CiAJfQ0K

--168430090-1874193526-1284665933=:5369--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.LFD.2.00.1009161412180.5369>