论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
漏洞
[14374] 2019-07-21_思科DCNM多个漏洞细节分析
文档创建者:
s7ckTeam
浏览次数:
15
最后更新:
2025-01-18
漏洞
15 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前离线
积分
-54
6万
主题
-6万
回帖
-54
积分
管理员
积分
-54
发消息
2019-07-21_思科DCNM多个漏洞细节分析
思
科
D
C
N
M
多
个
漏
洞
细
节
分
析
K
r
i
s
t
o
n
F
r
e
e
B
u
f
2
0
1
9
-
0
7
-
2
1
摘
要
摘
要
C
i
s
c
o
D
a
t
a
C
e
n
t
e
r
N
e
t
w
o
r
k
M
a
n
a
g
e
r
(
(
D
C
N
M
)
是
由
)
是
由
C
i
s
c
o
提
供
的
虚
拟
设
备
、
提
供
的
虚
拟
设
备
、
W
i
n
d
o
w
s
和
和
R
e
d
H
a
t
L
i
n
u
x
的
安
装
包
。
为
了
在
全
球
范
围
内
管
理
思
科
设
的
安
装
包
。
为
了
在
全
球
范
围
内
管
理
思
科
设
备
,
备
,
D
C
N
M
部
署
在
全
球
分
布
的
数
据
中
心
。
部
署
在
全
球
分
布
的
数
据
中
心
。
D
C
N
M
1
1
.
1
(
1
)
及
以
下
受
4
个
漏
洞
影
响
:
绕
过
身
份
验
证
、
任
意
文
件
上
传
(
导
致
远
程
代
码
执
行
)
、
任
意
文
件
下
载
和
通
过
日
志
下
载
敏
感
信
息
。
下
表
列
出
了
每
个
漏
洞
的
受
影
响
版
本
:
身
份
验
证
绕
过
存
在
于
1
0
.
4
(
2
)
版
本
,
允
许
攻
击
者
利
用
文
件
上
传
进
行
远
程
代
码
执
行
。
在
1
1
.
0
(
1
)
版
本
中
引
入
了
身
份
验
证
,
漏
洞
利
用
需
要
一
个
有
效
的
非
特
权
帐
户
。
但
是
,
在
1
1
.
1
(
1
)
版
中
,
C
i
s
c
o
删
除
了
文
件
上
传
和
文
件
下
载
s
e
r
v
l
e
t
的
身
份
验
证
,
允
许
攻
击
者
在
没
有
任
何
身
份
验
证
的
情
况
下
利
用
漏
洞
!
1
1
.
2
(
1
)
中
修
复
了
所
有
漏
洞
,
敏
感
信
息
下
载
漏
洞
除
外
,
其
状
态
未
知
。
为
了
实
现
任
意
文
件
上
传
漏
洞
并
进
行
远
程
代
码
执
行
,
攻
击
者
可
以
在
T
o
m
c
a
t
w
e
b
a
p
p
s
文
件
夹
中
写
入
一
个
w
a
r
文
件
。
A
p
a
c
h
e
T
o
m
c
a
t
服
务
器
运
行
为
r
o
o
t
,
因
此
J
a
v
a
s
h
e
l
l
将
以
r
o
o
t
身
份
运
行
。
供
应
商
简
介
供
应
商
简
介
“
C
i
s
c
o
®
D
a
t
a
C
e
n
t
e
r
N
e
t
w
o
r
k
M
a
n
a
g
e
r
(
D
C
N
M
)
是
针
对
所
有
N
X
-
O
S
网
络
部
署
的
综
合
管
理
解
决
方
案
,
涵
盖
由
C
i
s
c
o
数
据
中
心
中
的
L
A
N
结
构
、
S
A
N
结
构
和
I
P
结
构
(
I
P
F
M
)
网
络
。
D
C
N
M
1
1
提
供
跨
C
i
s
c
o
N
e
x
u
s
®
和
C
i
s
c
o
多
层
分
布
式
交
换
(
M
D
S
)
解
决
方
案
包
括
管
理
、
控
制
、
自
动
化
、
监
控
、
可
视
化
和
故
障
排
除
。
D
C
N
M
1
1
支
持
C
i
s
c
o
N
e
x
u
s
交
换
机
的
多
机
多
机
基
础
设
施
管
理
。
D
C
N
M
还
支
持
使
用
C
i
s
c
o
M
D
S
9
0
0
0
系
列
和
C
i
s
c
o
N
e
x
u
s
交
换
机
存
储
功
能
进
行
存
储
管
理
。
D
C
N
M
1
1
为
结
构
引
导
、
S
A
N
分
区
、
设
备
别
名
管
理
、
漏
洞
分
析
、
S
A
N
主
机
路
径
冗
余
和
端
口
监
控
配
置
提
供
了
接
口
。
”
技
术
细
节
技
术
细
节
漏
洞
漏
洞
1
:
身
份
认
证
绕
过
:
身
份
认
证
绕
过
V
u
l
n
e
r
a
b
i
l
i
t
y
:
A
u
t
h
e
n
t
i
c
a
t
i
o
n
B
y
p
a
s
s
C
V
E
-
2
0
1
9
-
1
6
1
9
A
t
t
a
c
k
V
e
c
t
o
r
:
R
e
m
o
t
e
C
o
n
s
t
r
a
i
n
t
s
:
N
o
n
e
A
f
f
e
c
t
e
d
p
r
o
d
u
c
t
s
/
v
e
r
s
i
o
n
s
:
C
i
s
c
o
D
a
t
a
C
e
n
t
e
r
N
e
t
w
o
r
k
M
a
n
a
g
e
r
1
0
.
4
(
2
)
及
以
下
D
C
N
M
在
u
r
l
/
f
m
/
p
m
r
e
p
o
r
t
中
的
“
r
e
p
o
r
t
s
e
r
v
l
e
t
”
。
滥
用
此
s
e
r
v
l
e
t
导
致
未
经
身
份
验
证
的
攻
击
者
可
以
在
W
e
b
界
面
上
获
取
有
效
的
管
理
会
话
。
下
面
的
代
码
片
段
显
示
了
s
e
r
v
l
e
t
的
功
能
:
c
o
m
.
c
i
s
c
o
.
d
c
b
u
.
w
e
b
.
c
l
i
e
n
t
.
p
e
r
f
o
r
m
a
n
c
e
.
R
e
p
o
r
t
S
e
r
v
l
e
t
p
u
b
l
i
c
v
o
i
d
d
o
G
e
t
(
H
t
t
p
S
e
r
v
l
e
t
R
e
q
u
e
s
t
r
e
q
u
e
s
t
,
H
t
t
p
S
e
r
v
l
e
t
R
e
s
p
o
n
s
e
r
e
s
p
o
n
s
e
)
t
h
r
o
w
s
S
e
r
v
l
e
t
E
x
c
e
p
t
i
o
n
,
I
O
E
x
c
e
p
t
i
o
n
{
C
r
e
d
e
n
t
i
a
l
s
c
r
e
d
=
(
C
r
e
d
e
n
t
i
a
l
s
)
r
e
q
u
e
s
t
.
g
e
t
S
e
s
s
i
o
n
(
)
.
g
e
t
A
t
t
r
i
b
u
t
e
(
"
c
r
e
d
e
n
t
i
a
l
s
"
)
;
i
f
(
(
c
r
e
d
=
=
n
u
l
l
|
|
!
c
r
e
d
.
i
s
A
u
t
h
e
n
t
i
c
a
t
e
d
(
)
)
&
&
!
"
f
e
t
c
h
"
.
e
q
u
a
l
s
(
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
c
o
m
m
a
n
d
"
)
)
&
&
!
t
h
i
s
.
v
e
r
i
f
y
T
o
k
e
n
(
r
e
q
u
e
s
t
)
)
{
r
e
q
u
e
s
t
.
s
e
t
A
t
t
r
i
b
u
t
e
(
"
p
o
p
U
p
S
e
s
s
i
o
n
T
O
"
,
"
t
r
u
e
"
)
;
}
t
h
i
s
.
d
o
I
n
t
e
r
a
c
t
i
v
e
C
h
a
r
t
(
r
e
q
u
e
s
t
,
r
e
s
p
o
n
s
e
)
;
}
请
求
交
给
v
e
r
i
f
y
T
o
k
e
n
函
数
进
行
下
一
步
处
理
:
f
m
U
s
e
r
B
a
s
e
f
m
U
s
e
r
B
a
s
e
=
i
s
c
.
v
e
r
i
f
y
s
s
o
t
o
k
e
n
(
令
牌
)
;
H
T
T
P
请
求
参
数
“
t
o
k
e
n
”
被
传
递
给
i
s
c
r
i
f
.
v
e
r
i
f
y
s
s
o
t
o
k
e
n
,
如
果
该
函
数
返
回
有
效
的
用
户
,
则
请
求
经
过
身
份
验
证
,
凭
证
存
储
在
会
话
中
。
让
我
们
继
续
了
解
i
s
c
r
i
f
.
v
e
r
i
f
y
s
s
o
t
o
k
e
n
中
如
何
进
行
处
理
p
r
i
v
a
t
e
b
o
o
l
e
a
n
v
e
r
i
f
y
T
o
k
e
n
(
H
t
t
p
S
e
r
v
l
e
t
R
e
q
u
e
s
t
h
t
t
p
S
e
r
v
l
e
t
R
e
q
u
e
s
t
)
{
S
t
r
i
n
g
t
o
k
e
n
=
h
t
t
p
S
e
r
v
l
e
t
R
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
t
o
k
e
n
"
)
;
i
f
(
t
o
k
e
n
=
=
n
u
l
l
)
{
r
e
t
u
r
n
f
a
l
s
e
;
}
e
l
s
e
{
t
r
y
{
F
M
S
e
r
v
e
r
R
i
f
s
e
r
v
e
r
R
i
f
=
S
Q
L
L
o
a
d
e
r
.
g
e
t
S
e
r
v
e
r
M
a
n
a
g
e
r
(
)
;
I
s
c
R
i
f
i
s
c
=
s
e
r
v
e
r
R
i
f
.
g
e
t
I
s
c
(
S
t
r
i
n
g
E
n
c
r
y
p
t
e
r
.
e
n
c
r
y
p
t
S
t
r
i
n
g
(
"
D
E
S
e
d
e
"
,
(
n
e
w
D
a
t
e
(
)
)
.
t
o
S
t
r
i
n
g
(
)
)
)
;
t
o
k
e
n
=
U
R
L
D
e
c
o
d
e
r
.
d
e
c
o
d
e
(
t
o
k
e
n
,
"
U
T
F
-
8
"
)
;
t
o
k
e
n
=
t
o
k
e
n
.
r
e
p
l
a
c
e
(
'
'
,
'
+
'
)
;
F
M
U
s
e
r
B
a
s
e
f
m
U
s
e
r
B
a
s
e
=
i
s
c
.
v
e
r
i
f
y
S
S
o
T
o
k
e
n
(
t
o
k
e
n
)
;
i
f
(
f
m
U
s
e
r
B
a
s
e
=
=
n
u
l
l
)
{
r
e
t
u
r
n
f
a
l
s
e
;
}
e
l
s
e
{
C
r
e
d
e
n
t
i
a
l
s
n
e
w
C
r
e
d
=
n
e
w
C
r
e
d
e
n
t
i
a
l
s
(
)
;
i
n
t
i
d
x
=
f
m
U
s
e
r
B
a
s
e
.
g
e
t
U
s
e
r
n
a
m
e
(
)
.
i
n
d
e
x
O
f
(
6
4
)
;
n
e
w
C
r
e
d
.
s
e
t
U
s
e
r
N
a
m
e
(
i
d
x
=
=
-
1
?
f
m
U
s
e
r
B
a
s
e
.
g
e
t
U
s
e
r
n
a
m
e
(
)
:
f
m
U
s
e
r
B
a
s
e
.
g
e
t
U
s
e
r
n
a
m
e
(
)
.
s
u
b
s
t
r
i
n
g
(
0
,
i
d
x
)
)
;
n
e
w
C
r
e
d
.
s
e
t
P
a
s
s
w
o
r
d
(
S
t
r
i
n
g
E
n
c
r
y
p
t
e
r
.
D
E
S
e
d
e
D
e
c
r
y
p
t
(
f
m
U
s
e
r
B
a
s
e
.
g
e
t
E
n
c
r
y
p
t
e
d
P
a
s
s
w
o
r
d
(
)
)
)
;
n
e
w
C
r
e
d
.
s
e
t
R
o
l
e
(
f
m
U
s
e
r
B
a
s
e
.
g
e
t
R
o
l
e
(
)
)
;
n
e
w
C
r
e
d
.
s
e
t
A
u
t
h
e
n
t
i
c
a
t
e
d
(
t
r
u
e
)
;
h
t
t
p
S
e
r
v
l
e
t
R
e
q
u
e
s
t
.
g
e
t
S
e
s
s
i
o
n
(
)
.
s
e
t
A
t
t
r
i
b
u
t
e
(
"
c
r
e
d
e
n
t
i
a
l
s
"
,
n
e
w
C
r
e
d
)
;
r
e
t
u
r
n
t
r
u
e
;
}
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
v
a
r
8
)
{
v
a
r
8
.
p
r
i
n
t
S
t
a
c
k
T
r
a
c
e
(
)
;
r
e
t
u
r
n
f
a
l
s
e
;
}
}
}
p
u
b
l
i
c
F
M
U
s
e
r
B
a
s
e
v
e
r
i
f
y
S
S
o
T
o
k
e
n
(
S
t
r
i
n
g
s
s
o
T
o
k
e
n
)
{
从
上
面
的
代
码
中
可
以
看
到
,
用
户
名
是
从
这
里
获
得
令
牌
u
s
e
r
N
a
m
e
=
g
e
t
S
S
o
T
o
k
e
n
U
s
e
r
N
a
m
e
(
s
s
o
T
o
k
e
n
)
;
继
续
进
行
代
码
分
析
:
r
e
t
u
r
n
S
e
c
u
r
i
t
y
M
a
n
a
g
e
r
.
v
e
r
i
f
y
S
S
o
T
o
k
e
n
(
s
s
o
T
o
k
e
n
)
;
}
p
u
b
l
i
c
s
t
a
t
i
c
F
M
U
s
e
r
B
a
s
e
v
e
r
i
f
y
S
S
o
T
o
k
e
n
(
S
t
r
i
n
g
s
s
o
T
o
k
e
n
)
{
S
t
r
i
n
g
u
s
e
r
N
a
m
e
=
n
u
l
l
;
F
M
U
s
e
r
B
a
s
e
f
m
U
s
e
r
B
a
s
e
=
n
u
l
l
;
F
M
U
s
e
r
f
m
U
s
e
r
=
n
u
l
l
;
t
r
y
{
u
s
e
r
N
a
m
e
=
g
e
t
S
S
o
T
o
k
e
n
U
s
e
r
N
a
m
e
(
s
s
o
T
o
k
e
n
)
;
i
f
(
c
o
n
f
i
r
m
S
S
O
T
o
k
e
n
(
s
s
o
T
o
k
e
n
)
)
{
f
m
U
s
e
r
=
U
s
e
r
M
a
n
a
g
e
r
.
g
e
t
I
n
s
t
a
n
c
e
(
)
.
f
i
n
d
U
s
e
r
(
u
s
e
r
N
a
m
e
)
;
i
f
(
f
m
U
s
e
r
!
=
n
u
l
l
)
{
f
m
U
s
e
r
B
a
s
e
=
n
e
w
F
M
U
s
e
r
B
a
s
e
(
u
s
e
r
N
a
m
e
,
f
m
U
s
e
r
.
g
e
t
H
a
s
h
e
d
P
w
d
(
)
,
f
m
U
s
e
r
.
g
e
t
R
o
l
e
s
(
)
)
;
}
i
f
(
f
m
U
s
e
r
B
a
s
e
=
=
n
u
l
l
)
{
f
m
U
s
e
r
B
a
s
e
=
D
C
N
M
U
s
e
r
I
m
p
l
.
g
e
t
F
M
U
s
e
r
B
a
s
e
(
u
s
e
r
N
a
m
e
)
;
}
i
f
(
f
m
U
s
e
r
B
a
s
e
=
=
n
u
l
l
)
{
f
m
U
s
e
r
B
a
s
e
=
F
M
S
e
s
s
i
o
n
M
a
n
a
g
e
r
.
g
e
t
I
n
s
t
a
n
c
e
(
)
.
g
e
t
F
M
U
s
e
r
(
g
e
t
S
e
s
s
i
o
n
I
d
B
y
T
o
k
e
n
(
s
s
o
T
o
k
e
n
)
)
;
}
}
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
v
a
r
5
)
{
_
L
o
g
g
e
r
.
i
n
f
o
(
"
v
e
r
i
f
y
S
S
o
T
o
k
e
n
:
"
,
v
a
r
5
)
;
}
r
e
t
u
r
n
f
m
U
s
e
r
B
a
s
e
;
}
p
u
b
l
i
c
s
t
a
t
i
c
S
t
r
i
n
g
g
e
t
S
S
o
T
o
k
e
n
U
s
e
r
N
a
m
e
(
S
t
r
i
n
g
s
s
o
T
o
k
e
n
)
{
r
e
t
u
r
n
g
e
t
S
S
o
T
o
k
e
n
D
e
t
a
i
l
s
(
s
s
o
T
o
k
e
n
)
[
3
]
;
}
p
r
i
v
a
t
e
s
t
a
t
i
c
S
t
r
i
n
g
[
]
g
e
t
S
S
o
T
o
k
e
n
D
e
t
a
i
l
s
(
S
t
r
i
n
g
s
s
o
T
o
k
e
n
)
{
S
t
r
i
n
g
[
]
r
e
t
=
n
e
w
S
t
r
i
n
g
[
4
]
;
S
t
r
i
n
g
s
e
p
a
r
a
t
o
r
=
g
e
t
T
o
k
e
n
S
e
p
a
r
a
t
o
r
(
)
;
令
牌
是
一
个
字
符
串
,
由
分
隔
符
分
隔
,
包
含
四
个
部
分
,
其
中
第
四
部
分
是
用
户
名
。
现
在
回
到
上
面
列
出
的
s
e
c
u
r
i
t
y
M
a
n
a
g
e
r
.
v
e
r
i
f
y
s
s
o
t
o
k
e
n
,
我
们
看
到
在
调
用
g
e
t
s
s
o
t
o
k
e
n
u
s
e
r
n
a
m
e
之
后
,
调
用
c
o
n
f
i
r
m
s
s
o
t
o
k
e
n
:
S
t
r
i
n
g
T
o
k
e
n
i
z
e
r
s
t
=
n
e
w
S
t
r
i
n
g
T
o
k
e
n
i
z
e
r
(
s
s
o
T
o
k
e
n
,
s
e
p
a
r
a
t
o
r
)
;
i
f
(
s
t
.
h
a
s
M
o
r
e
T
o
k
e
n
s
(
)
)
{
r
e
t
[
0
]
=
s
t
.
n
e
x
t
T
o
k
e
n
(
)
;
r
e
t
[
1
]
=
s
t
.
n
e
x
t
T
o
k
e
n
(
)
;
r
e
t
[
2
]
=
s
t
.
n
e
x
t
T
o
k
e
n
(
)
;
f
o
r
(
r
e
t
[
3
]
=
s
t
.
n
e
x
t
T
o
k
e
n
(
)
;
s
t
.
h
a
s
M
o
r
e
T
o
k
e
n
s
(
)
;
r
e
t
[
3
]
=
r
e
t
[
3
]
+
s
e
p
a
r
a
t
o
r
+
s
t
.
n
e
x
t
T
o
k
e
n
(
)
)
{
;
}
}
r
e
t
u
r
n
r
e
t
;
}
p
u
b
l
i
c
s
t
a
t
i
c
F
M
U
s
e
r
B
a
s
e
v
e
r
i
f
y
S
S
o
T
o
k
e
n
(
S
t
r
i
n
g
s
s
o
T
o
k
e
n
)
{
(
.
.
.
)
u
s
e
r
N
a
m
e
=
g
e
t
S
S
o
T
o
k
e
n
U
s
e
r
N
a
m
e
(
s
s
o
T
o
k
e
n
)
;
i
f
(
c
o
n
f
i
r
m
S
S
O
T
o
k
e
n
(
s
s
o
T
o
k
e
n
)
)
{
f
m
U
s
e
r
=
U
s
e
r
M
a
n
a
g
e
r
.
g
e
t
I
n
s
t
a
n
c
e
(
)
.
f
i
n
d
U
s
e
r
(
u
s
e
r
N
a
m
e
)
;
i
f
(
f
m
U
s
e
r
!
=
n
u
l
l
)
{
f
m
U
s
e
r
B
a
s
e
=
n
e
w
F
M
U
s
e
r
B
a
s
e
(
u
s
e
r
N
a
m
e
,
f
m
U
s
e
r
.
g
e
t
H
a
s
h
e
d
P
w
d
(
)
,
f
m
U
s
e
r
.
g
e
t
R
o
l
e
s
(
)
)
;
}
(
.
.
.
)
}
p
u
b
l
i
c
s
t
a
t
i
c
b
o
o
l
e
a
n
c
o
n
f
i
r
m
S
S
O
T
o
k
e
n
(
S
t
r
i
n
g
s
s
o
T
o
k
e
n
)
{
S
t
r
i
n
g
u
s
e
r
N
a
m
e
=
n
u
l
l
;
i
n
t
s
e
s
s
i
o
n
I
d
=
f
a
l
s
e
;
l
o
n
g
s
y
s
T
i
m
e
=
0
L
;
S
t
r
i
n
g
d
i
g
e
s
t
=
n
u
l
l
;
i
n
t
c
o
u
n
t
=
f
a
l
s
e
;
b
o
o
l
e
a
n
r
e
t
=
f
a
l
s
e
;
t
r
y
{
S
t
r
i
n
g
[
]
d
e
t
a
i
l
=
g
e
t
S
S
o
T
o
k
e
n
D
e
t
a
i
l
s
(
s
s
o
T
o
k
e
n
)
;
u
s
e
r
N
a
m
e
=
d
e
t
a
i
l
[
3
]
;
i
n
t
s
e
s
s
i
o
n
I
d
=
I
n
t
e
g
e
r
.
p
a
r
s
e
I
n
t
(
d
e
t
a
i
l
[
0
]
)
;
现
在
我
们
可
以
进
一
步
理
解
令
牌
组
成
。
它
由
以
下
部
分
组
成
:
s
e
s
s
i
o
n
i
d
+
s
e
p
a
r
a
t
o
r
+
s
y
s
t
i
m
e
+
s
e
p
a
r
a
t
o
r
+
d
i
g
e
s
t
+
s
e
p
a
r
a
t
o
r
+
u
s
e
r
n
a
m
e
什
么
是
d
i
g
e
s
t
(
指
纹
信
息
)
?
让
我
们
看
看
g
e
t
M
e
s
s
a
g
e
D
i
g
e
s
t
函
数
:
该
指
纹
信
息
是
M
D
5
值
,
由
以
下
几
个
部
分
组
成
,
中
间
有
'
.
'
符
号
分
隔
u
s
e
r
N
a
m
e
+
s
e
s
s
i
o
n
i
d
+
s
y
s
T
i
m
e
+
S
E
C
R
E
T
K
E
Y
S
E
C
R
E
T
K
E
Y
是
一
串
硬
编
码
字
符
串
:
"
P
O
s
V
w
v
6
V
B
I
n
S
O
t
Y
Q
d
9
r
2
p
F
R
s
S
e
1
c
E
e
V
F
Q
u
T
v
D
f
N
7
n
J
5
5
Q
w
8
f
M
m
5
Z
G
v
j
m
I
r
8
7
G
E
F
"
;
总
的
来
说
,
只
要
r
e
p
o
r
t
s
e
r
v
l
e
t
接
收
到
以
下
格
式
的
令
牌
,
它
就
会
对
任
何
请
求
进
行
身
份
验
证
:
s
e
s
s
i
o
n
I
d
.
s
y
s
T
i
m
e
.
M
D
5
(
u
s
e
r
N
a
m
e
+
s
e
s
s
i
o
n
i
d
+
s
y
s
T
i
m
e
+
S
E
C
R
E
T
K
E
Y
)
.
u
s
e
r
n
a
m
e
s
e
s
s
i
o
n
i
d
可
以
由
用
户
输
入
构
造
,
系
统
时
间
可
以
通
过
获
取
H
T
T
P
头
部
服
务
器
日
期
转
换
为
毫
秒
获
得
,
我
们
知
道
s
e
c
r
e
t
k
e
y
和
用
户
名
,
所
以
现
在
我
们
可
以
作
为
任
何
用
户
进
行
身
份
验
证
。
以
下
是
一
个
示
例
:
G
E
T
/
f
m
/
p
m
r
e
p
o
r
t
?
t
o
k
e
n
=
1
3
3
7
.
1
5
3
5
9
3
5
6
5
9
0
0
0
.
u
p
j
V
g
Z
Q
m
x
N
N
g
a
X
o
5
G
a
6
j
v
Q
=
=
.
a
d
m
i
n
由
于
缺
少
s
e
r
v
l
e
t
执
行
所
需
的
参
数
,
此
请
求
将
返
回
5
0
0
个
错
误
,
但
是
它
也
将
成
功
地
向
服
务
器
验
证
我
们
的
身
份
,
并
返
回
一
个
j
s
e
s
s
i
o
n
i
d
c
o
o
k
i
e
,
并
为
管
理
用
户
提
供
有
效
会
话
。
请
注
意
,
用
户
必
须
是
有
效
的
。
“
a
d
m
i
n
”
用
户
是
一
个
很
好
的
选
择
,
因
为
它
默
认
存
在
于
所
有
系
统
中
,
也
是
系
统
中
特
权
用
户
。
该
漏
洞
利
用
不
适
用
于
1
1
.
0
(
1
)
,
但
并
不
是
因
为
漏
洞
被
修
复
了
,
因
为
更
新
版
本
中
存
在
完
全
相
同
的
代
码
。
在
1
1
.
0
(
1
)
中
,
r
e
p
o
r
t
s
e
r
v
l
e
t
.
v
e
r
i
f
y
t
o
k
e
n
函
数
崩
溃
,
出
现
异
常
:
i
n
t
s
e
s
s
i
o
n
I
d
=
I
n
t
e
g
e
r
.
p
a
r
s
e
I
n
t
(
d
e
t
a
i
l
[
0
]
)
;
s
y
s
T
i
m
e
=
(
n
e
w
L
o
n
g
(
d
e
t
a
i
l
[
1
]
)
)
.
l
o
n
g
V
a
l
u
e
(
)
;
i
f
(
S
y
s
t
e
m
.
c
u
r
r
e
n
t
T
i
m
e
M
i
l
l
i
s
(
)
-
s
y
s
T
i
m
e
>
6
0
0
0
0
0
L
)
{
r
e
t
u
r
n
r
e
t
;
}
d
i
g
e
s
t
=
d
e
t
a
i
l
[
2
]
;
i
f
(
d
i
g
e
s
t
!
=
n
u
l
l
&
&
d
i
g
e
s
t
.
e
q
u
a
l
s
(
g
e
t
M
e
s
s
a
g
e
D
i
g
e
s
t
(
"
M
D
5
"
,
u
s
e
r
N
a
m
e
,
s
e
s
s
i
o
n
I
d
,
s
y
s
T
i
m
e
)
)
)
{
r
e
t
=
t
r
u
e
;
u
s
e
r
N
a
m
e
T
L
C
.
s
e
t
(
u
s
e
r
N
a
m
e
)
;
}
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
v
a
r
9
)
{
_
L
o
g
g
e
r
.
i
n
f
o
(
"
c
o
n
f
i
r
m
S
S
o
T
o
k
e
n
:
"
,
v
a
r
9
)
;
}
r
e
t
u
r
n
r
e
t
;
}
p
r
i
v
a
t
e
s
t
a
t
i
c
S
t
r
i
n
g
g
e
t
M
e
s
s
a
g
e
D
i
g
e
s
t
(
S
t
r
i
n
g
a
l
g
o
r
i
t
h
m
,
S
t
r
i
n
g
u
s
e
r
N
a
m
e
,
i
n
t
s
e
s
s
i
o
n
i
d
,
l
o
n
g
s
y
s
T
i
m
e
)
t
h
r
o
w
s
E
x
c
e
p
t
i
o
n
{
S
t
r
i
n
g
i
n
p
u
t
=
u
s
e
r
N
a
m
e
+
s
e
s
s
i
o
n
i
d
+
s
y
s
T
i
m
e
+
S
E
C
R
E
T
K
E
Y
;
M
e
s
s
a
g
e
D
i
g
e
s
t
m
d
=
M
e
s
s
a
g
e
D
i
g
e
s
t
.
g
e
t
I
n
s
t
a
n
c
e
(
a
l
g
o
r
i
t
h
m
)
;
m
d
.
u
p
d
a
t
e
(
i
n
p
u
t
.
g
e
t
B
y
t
e
s
(
)
)
;
r
e
t
u
r
n
n
e
w
S
t
r
i
n
g
(
B
a
s
e
6
4
.
e
n
c
o
d
e
B
a
s
e
6
4
(
(
b
y
t
e
[
]
)
m
d
.
d
i
g
e
s
t
(
)
)
)
;
}
p
r
i
v
a
t
e
b
o
o
l
e
a
n
v
e
r
i
f
y
T
o
k
e
n
(
H
t
t
p
S
e
r
v
l
e
t
R
e
q
u
e
s
t
h
t
t
p
S
e
r
v
l
e
t
R
e
q
u
e
s
t
)
{
返
回
的
异
常
为
“
c
o
m
.
c
i
s
c
o
.
d
c
b
u
.
l
i
b
.
u
t
i
l
.
S
t
r
i
n
g
E
n
c
r
y
p
t
e
r
$
E
n
c
r
y
p
t
i
o
n
E
x
c
e
p
t
i
o
n
:
j
a
v
a
x
.
c
r
y
p
t
o
.
b
a
d
p
a
d
d
i
n
g
E
x
c
e
p
t
i
o
n
:
g
i
v
e
n
f
i
n
a
l
b
l
o
c
k
n
o
t
p
r
o
p
e
r
l
y
p
a
d
d
e
d
”
。
这
将
导
致
执
行
进
入
上
面
所
示
的
c
a
t
c
h
块
,
函
数
将
返
回
f
a
l
s
e
,
因
此
服
务
器
返
回
的
J
S
e
s
s
i
o
n
I
D
c
o
o
k
i
e
中
不
会
存
储
凭
证
。
这
应
该
是
一
个
编
码
错
误
,
思
科
更
新
了
他
们
的
密
码
加
密
方
法
,
但
未
能
更
新
他
们
自
己
的
代
码
。
除
非
不
使
用
此
r
e
p
o
r
t
s
e
r
v
l
e
t
代
码
,
否
则
这
是
一
个
偶
然
修
复
安
全
漏
洞
。
在
1
1
.
0
(
1
)
版
上
,
已
经
从
w
a
r
x
m
l
映
射
文
件
中
删
除
了
r
e
p
o
r
t
s
e
r
v
l
e
t
,
因
此
请
求
该
U
R
L
现
在
返
回
一
个
H
T
T
P
4
0
4
错
误
。
漏
洞
漏
洞
2
:
任
意
文
件
上
传
导
致
远
程
代
码
执
行
:
任
意
文
件
上
传
导
致
远
程
代
码
执
行
V
u
l
n
e
r
a
b
i
l
i
t
y
:
A
r
b
i
t
r
a
r
y
F
i
l
e
U
p
l
o
a
d
(
l
e
a
d
i
n
g
t
o
r
e
m
o
t
e
c
o
d
e
e
x
e
c
u
t
i
o
n
)
C
V
E
-
2
0
1
9
-
1
6
2
0
A
t
t
a
c
k
V
e
c
t
o
r
:
R
e
m
o
t
e
C
o
n
s
t
r
a
i
n
t
s
:
A
u
t
h
e
n
t
i
c
a
t
i
o
n
t
o
t
h
e
w
e
b
i
n
t
e
r
f
a
c
e
a
s
a
n
u
n
p
r
i
v
i
l
e
g
e
d
u
s
e
r
r
e
q
u
i
r
e
d
E
X
C
E
P
T
f
o
r
v
e
r
s
i
o
n
1
1
.
1
(
1
)
,
w
h
e
r
e
i
t
c
a
n
b
e
e
x
p
l
o
i
t
e
d
b
y
a
n
u
n
a
u
t
h
e
n
t
i
c
a
t
e
d
u
s
e
r
A
f
f
e
c
t
e
d
p
r
o
d
u
c
t
s
/
v
e
r
s
i
o
n
s
:
C
i
s
c
o
D
a
t
a
C
e
n
t
e
r
N
e
t
w
o
r
k
M
a
n
a
g
e
r
1
1
.
1
(
1
)
及
以
下
漏
洞
存
在
于
D
C
N
M
在
/
f
m
/
f
i
l
e
u
p
l
o
a
d
中
的
文
件
上
载
s
e
r
v
l
e
t
(
f
i
l
e
u
p
l
o
a
d
s
e
r
v
l
e
t
)
。
经
过
身
份
验
证
的
用
户
可
以
利
用
此
s
e
r
v
l
e
t
将
文
件
上
载
到
任
意
目
录
,
最
终
实
现
远
程
代
码
执
行
。
此
s
e
r
v
l
e
t
的
代
码
如
下
所
示
:
p
r
i
v
a
t
e
b
o
o
l
e
a
n
v
e
r
i
f
y
T
o
k
e
n
(
H
t
t
p
S
e
r
v
l
e
t
R
e
q
u
e
s
t
h
t
t
p
S
e
r
v
l
e
t
R
e
q
u
e
s
t
)
{
(
.
.
.
)
C
r
e
d
e
n
t
i
a
l
s
n
e
w
C
r
e
d
=
n
e
w
C
r
e
d
e
n
t
i
a
l
s
(
)
;
i
n
t
i
d
x
=
f
m
U
s
e
r
B
a
s
e
.
g
e
t
U
s
e
r
n
a
m
e
(
)
.
i
n
d
e
x
O
f
(
6
4
)
;
n
e
w
C
r
e
d
.
s
e
t
U
s
e
r
N
a
m
e
(
i
d
x
=
=
-
1
?
f
m
U
s
e
r
B
a
s
e
.
g
e
t
U
s
e
r
n
a
m
e
(
)
:
f
m
U
s
e
r
B
a
s
e
.
g
e
t
U
s
e
r
n
a
m
e
(
)
.
s
u
b
s
t
r
i
n
g
(
0
,
i
d
x
)
)
;
n
e
w
C
r
e
d
.
s
e
t
P
a
s
s
w
o
r
d
(
S
t
r
i
n
g
E
n
c
r
y
p
t
e
r
.
D
E
S
e
d
e
D
e
c
r
y
p
t
(
f
m
U
s
e
r
B
a
s
e
.
g
e
t
E
n
c
r
y
p
t
e
d
P
a
s
s
w
o
r
d
(
)
)
)
;
<
-
-
-
e
x
c
e
p
t
i
o
n
o
c
c
u
r
s
h
e
r
e
n
e
w
C
r
e
d
.
s
e
t
R
o
l
e
(
f
m
U
s
e
r
B
a
s
e
.
g
e
t
R
o
l
e
(
)
)
;
n
e
w
C
r
e
d
.
s
e
t
A
u
t
h
e
n
t
i
c
a
t
e
d
(
t
r
u
e
)
;
h
t
t
p
S
e
r
v
l
e
t
R
e
q
u
e
s
t
.
g
e
t
S
e
s
s
i
o
n
(
)
.
s
e
t
A
t
t
r
i
b
u
t
e
(
"
c
r
e
d
e
n
t
i
a
l
s
"
,
n
e
w
C
r
e
d
)
;
r
e
t
u
r
n
t
r
u
e
;
}
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
v
a
r
8
)
{
v
a
r
8
.
p
r
i
n
t
S
t
a
c
k
T
r
a
c
e
(
)
;
r
e
t
u
r
n
f
a
l
s
e
;
}
(
.
.
.
)
}
c
o
m
.
c
i
s
c
o
.
d
c
b
u
.
w
e
b
.
c
l
i
e
n
t
.
r
e
p
o
r
t
s
.
F
i
l
e
U
p
l
o
a
d
S
e
r
v
l
e
t
p
u
b
l
i
c
v
o
i
d
d
o
P
o
s
t
(
H
t
t
p
S
e
r
v
l
e
t
R
e
q
u
e
s
t
r
e
q
u
e
s
t
,
H
t
t
p
S
e
r
v
l
e
t
R
e
s
p
o
n
s
e
r
e
s
p
o
n
s
e
)
t
h
r
o
w
s
S
e
r
v
l
e
t
E
x
c
e
p
t
i
o
n
,
I
O
E
x
c
e
p
t
i
o
n
{
t
h
i
s
.
d
o
G
e
t
(
r
e
q
u
e
s
t
,
r
e
s
p
o
n
s
e
)
;
}
p
u
b
l
i
c
v
o
i
d
d
o
G
e
t
(
H
t
t
p
S
e
r
v
l
e
t
R
e
q
u
e
s
t
r
e
q
u
e
s
t
,
H
t
t
p
S
e
r
v
l
e
t
R
e
s
p
o
n
s
e
r
e
s
p
o
n
s
e
)
t
h
r
o
w
s
S
e
r
v
l
e
t
E
x
c
e
p
t
i
o
n
,
I
O
E
x
c
e
p
t
i
o
n
{
C
r
e
d
e
n
t
i
a
l
s
c
r
e
d
=
(
C
r
e
d
e
n
t
i
a
l
s
)
(
(
O
b
j
e
c
t
)
r
e
q
u
e
s
t
.
g
e
t
S
e
s
s
i
o
n
(
)
.
g
e
t
A
t
t
r
i
b
u
t
e
(
"
c
r
e
d
e
n
t
i
a
l
s
"
)
)
;
上
面
显
示
的
代
码
很
简
单
,
请
求
被
传
递
到
h
a
n
d
l
e
u
p
l
o
a
d
:
i
f
(
c
r
e
d
=
=
n
u
l
l
|
|
!
c
r
e
d
.
i
s
A
u
t
h
e
n
t
i
c
a
t
e
d
(
)
)
{
t
h
r
o
w
n
e
w
S
e
r
v
l
e
t
E
x
c
e
p
t
i
o
n
(
"
U
s
e
r
n
o
t
l
o
g
g
e
d
i
n
o
r
S
e
s
s
i
o
n
t
i
m
e
d
o
u
t
.
"
)
;
}
t
h
i
s
.
h
a
n
d
l
e
U
p
l
o
a
d
(
r
e
q
u
e
s
t
,
r
e
s
p
o
n
s
e
)
;
}
p
r
i
v
a
t
e
v
o
i
d
h
a
n
d
l
e
U
p
l
o
a
d
(
H
t
t
p
S
e
r
v
l
e
t
R
e
q
u
e
s
t
r
e
q
u
e
s
t
,
H
t
t
p
S
e
r
v
l
e
t
R
e
s
p
o
n
s
e
r
e
s
p
o
n
s
e
)
t
h
r
o
w
s
S
e
r
v
l
e
t
E
x
c
e
p
t
i
o
n
,
I
O
E
x
c
e
p
t
i
o
n
{
r
e
s
p
o
n
s
e
.
s
e
t
C
o
n
t
e
n
t
T
y
p
e
(
C
O
N
T
E
N
T
_
T
Y
P
E
)
;
P
r
i
n
t
W
r
i
t
e
r
o
u
t
=
n
u
l
l
;
A
r
r
a
y
L
i
s
t
<
S
t
r
i
n
g
>
a
l
l
o
w
e
d
F
o
r
m
a
t
s
=
n
e
w
A
r
r
a
y
L
i
s
t
<
S
t
r
i
n
g
>
(
)
;
a
l
l
o
w
e
d
F
o
r
m
a
t
s
.
a
d
d
(
"
j
p
e
g
"
)
;
a
l
l
o
w
e
d
F
o
r
m
a
t
s
.
a
d
d
(
"
p
n
g
"
)
;
a
l
l
o
w
e
d
F
o
r
m
a
t
s
.
a
d
d
(
"
g
i
f
"
)
;
a
l
l
o
w
e
d
F
o
r
m
a
t
s
.
a
d
d
(
"
j
p
g
"
)
;
a
l
l
o
w
e
d
F
o
r
m
a
t
s
.
a
d
d
(
"
c
e
r
t
"
)
;
F
i
l
e
d
i
s
k
=
n
u
l
l
;
F
i
l
e
I
t
e
m
i
t
e
m
=
n
u
l
l
;
D
i
s
k
F
i
l
e
I
t
e
m
F
a
c
t
o
r
y
f
a
c
t
o
r
y
=
n
e
w
D
i
s
k
F
i
l
e
I
t
e
m
F
a
c
t
o
r
y
(
)
;
S
t
r
i
n
g
s
t
a
t
u
s
M
e
s
s
a
g
e
=
"
"
;
S
t
r
i
n
g
f
n
a
m
e
=
"
"
;
S
t
r
i
n
g
u
p
l
o
a
d
D
i
r
=
"
"
;
L
i
s
t
I
t
e
r
a
t
o
r
i
t
e
r
a
t
o
r
=
n
u
l
l
;
L
i
s
t
i
t
e
m
s
=
n
u
l
l
;
S
e
r
v
l
e
t
F
i
l
e
U
p
l
o
a
d
u
p
l
o
a
d
=
n
e
w
S
e
r
v
l
e
t
F
i
l
e
U
p
l
o
a
d
(
(
F
i
l
e
I
t
e
m
F
a
c
t
o
r
y
)
f
a
c
t
o
r
y
)
;
T
r
a
n
s
f
o
r
m
e
r
H
a
n
d
l
e
r
h
d
=
n
u
l
l
;
t
r
y
{
o
u
t
=
r
e
s
p
o
n
s
e
.
g
e
t
W
r
i
t
e
r
(
)
;
S
t
r
e
a
m
R
e
s
u
l
t
s
t
r
e
a
m
R
e
s
u
l
t
=
n
e
w
S
t
r
e
a
m
R
e
s
u
l
t
(
o
u
t
)
;
S
A
X
T
r
a
n
s
f
o
r
m
e
r
F
a
c
t
o
r
y
t
f
=
(
S
A
X
T
r
a
n
s
f
o
r
m
e
r
F
a
c
t
o
r
y
)
S
A
X
T
r
a
n
s
f
o
r
m
e
r
F
a
c
t
o
r
y
.
n
e
w
I
n
s
t
a
n
c
e
(
)
;
i
t
e
m
s
=
u
p
l
o
a
d
.
p
a
r
s
e
R
e
q
u
e
s
t
(
r
e
q
u
e
s
t
)
;
i
t
e
r
a
t
o
r
=
i
t
e
m
s
.
l
i
s
t
I
t
e
r
a
t
o
r
(
)
;
h
d
=
t
f
.
n
e
w
T
r
a
n
s
f
o
r
m
e
r
H
a
n
d
l
e
r
(
)
;
T
r
a
n
s
f
o
r
m
e
r
s
e
r
i
a
l
i
z
e
r
=
h
d
.
g
e
t
T
r
a
n
s
f
o
r
m
e
r
(
)
;
s
e
r
i
a
l
i
z
e
r
.
s
e
t
O
u
t
p
u
t
P
r
o
p
e
r
t
y
(
"
e
n
c
o
d
i
n
g
"
,
"
U
T
F
-
8
"
)
;
s
e
r
i
a
l
i
z
e
r
.
s
e
t
O
u
t
p
u
t
P
r
o
p
e
r
t
y
(
"
d
o
c
t
y
p
e
-
s
y
s
t
e
m
"
,
"
r
e
s
p
o
n
s
e
.
d
t
d
"
)
;
s
e
r
i
a
l
i
z
e
r
.
s
e
t
O
u
t
p
u
t
P
r
o
p
e
r
t
y
(
"
i
n
d
e
n
t
"
,
"
y
e
s
"
)
;
s
e
r
i
a
l
i
z
e
r
.
s
e
t
O
u
t
p
u
t
P
r
o
p
e
r
t
y
(
"
m
e
t
h
o
d
"
,
"
x
m
l
"
)
;
h
d
.
s
e
t
R
e
s
u
l
t
(
s
t
r
e
a
m
R
e
s
u
l
t
)
;
h
d
.
s
t
a
r
t
D
o
c
u
m
e
n
t
(
)
;
A
t
t
r
i
b
u
t
e
s
I
m
p
l
a
t
t
s
=
n
e
w
A
t
t
r
i
b
u
t
e
s
I
m
p
l
(
)
;
h
d
.
s
t
a
r
t
E
l
e
m
e
n
t
(
"
"
,
"
"
,
"
r
e
s
p
o
n
s
e
"
,
a
t
t
s
)
;
w
h
i
l
e
(
i
t
e
r
a
t
o
r
.
h
a
s
N
e
x
t
(
)
)
{
a
t
t
s
.
c
l
e
a
r
(
)
;
i
t
e
m
=
(
F
i
l
e
I
t
e
m
)
i
t
e
r
a
t
o
r
.
n
e
x
t
(
)
;
i
f
(
i
t
e
m
.
i
s
F
o
r
m
F
i
e
l
d
(
)
)
{
i
f
(
i
t
e
m
.
g
e
t
F
i
e
l
d
N
a
m
e
(
)
.
e
q
u
a
l
s
I
g
n
o
r
e
C
a
s
e
(
"
f
n
a
m
e
"
)
)
{
f
n
a
m
e
=
i
t
e
m
.
g
e
t
S
t
r
i
n
g
(
)
;
}
i
f
(
i
t
e
m
.
g
e
t
F
i
e
l
d
N
a
m
e
(
)
.
e
q
u
a
l
s
I
g
n
o
r
e
C
a
s
e
(
"
u
p
l
o
a
d
D
i
r
"
)
&
&
(
u
p
l
o
a
d
D
i
r
=
i
t
e
m
.
g
e
t
S
t
r
i
n
g
(
)
)
.
e
q
u
a
l
s
(
D
E
F
A
U
L
T
_
T
R
U
S
T
_
S
T
O
R
E
_
U
P
L
O
A
D
D
I
R
)
)
{
u
p
l
o
a
d
D
i
r
=
C
l
i
e
n
t
C
a
c
h
e
.
g
e
t
J
B
o
s
s
H
o
m
e
(
)
+
F
i
l
e
.
s
e
p
a
r
a
t
o
r
+
"
s
e
r
v
e
r
"
+
F
i
l
e
.
s
e
p
a
r
a
t
o
r
+
"
f
m
"
+
F
i
l
e
.
s
e
p
a
r
a
t
o
r
+
"
c
o
n
f
"
;
}
a
t
t
s
.
a
d
d
A
t
t
r
i
b
u
t
e
(
"
"
,
"
"
,
"
i
d
"
,
"
C
D
A
T
A
"
,
i
t
e
m
.
g
e
t
F
i
e
l
d
N
a
m
e
(
)
)
;
h
d
.
s
t
a
r
t
E
l
e
m
e
n
t
(
"
"
,
"
"
,
"
f
i
e
l
d
"
,
a
t
t
s
)
;
h
d
.
c
h
a
r
a
c
t
e
r
s
(
i
t
e
m
.
g
e
t
S
t
r
i
n
g
(
)
.
t
o
C
h
a
r
A
r
r
a
y
(
)
,
0
,
i
t
e
m
.
g
e
t
S
t
r
i
n
g
(
)
.
l
e
n
g
t
h
(
)
)
;
h
d
.
e
n
d
E
l
e
m
e
n
t
(
"
"
,
"
"
,
"
f
i
e
l
d
"
)
;
a
t
t
s
.
c
l
e
a
r
(
)
;
c
o
n
t
i
n
u
e
;
}
I
m
a
g
e
I
n
p
u
t
S
t
r
e
a
m
i
m
a
g
e
I
n
p
u
t
S
t
r
e
a
m
=
I
m
a
g
e
I
O
.
c
r
e
a
t
e
I
m
a
g
e
I
n
p
u
t
S
t
r
e
a
m
(
i
t
e
m
.
g
e
t
I
n
p
u
t
S
t
r
e
a
m
(
)
)
;
I
t
e
r
a
t
o
r
<
I
m
a
g
e
R
e
a
d
e
r
>
i
m
a
g
e
R
e
a
d
e
r
s
=
I
m
a
g
e
I
O
.
g
e
t
I
m
a
g
e
R
e
a
d
e
r
s
(
i
m
a
g
e
I
n
p
u
t
S
t
r
e
a
m
)
;
I
m
a
g
e
R
e
a
d
e
r
i
m
a
g
e
R
e
a
d
e
r
=
n
u
l
l
;
i
f
(
i
m
a
g
e
R
e
a
d
e
r
s
.
h
a
s
N
e
x
t
(
)
)
{
i
m
a
g
e
R
e
a
d
e
r
=
i
m
a
g
e
R
e
a
d
e
r
s
.
n
e
x
t
(
)
;
}
t
r
y
{
S
t
r
i
n
g
i
m
a
g
e
F
o
r
m
a
t
=
i
m
a
g
e
R
e
a
d
e
r
.
g
e
t
F
o
r
m
a
t
N
a
m
e
(
)
;
S
t
r
i
n
g
n
e
w
F
i
l
e
N
a
m
e
=
f
n
a
m
e
+
"
.
"
+
i
m
a
g
e
F
o
r
m
a
t
;
S
t
r
i
n
g
n
e
w
F
i
l
e
N
a
m
e
=
f
n
a
m
e
+
"
.
"
+
i
m
a
g
e
F
o
r
m
a
t
;
i
f
(
a
l
l
o
w
e
d
F
o
r
m
a
t
s
.
c
o
n
t
a
i
n
s
(
i
m
a
g
e
F
o
r
m
a
t
.
t
o
L
o
w
e
r
C
a
s
e
(
)
)
)
{
F
i
l
e
F
i
l
t
e
r
f
i
l
e
F
i
l
t
e
r
=
n
e
w
F
i
l
e
F
i
l
t
e
r
(
)
;
f
i
l
e
F
i
l
t
e
r
.
s
e
t
I
m
a
g
e
T
y
p
e
s
(
a
l
l
o
w
e
d
F
o
r
m
a
t
s
)
;
F
i
l
e
[
]
f
i
l
e
L
i
s
t
=
n
e
w
F
i
l
e
(
u
p
l
o
a
d
D
i
r
)
.
l
i
s
t
F
i
l
e
s
(
f
i
l
e
F
i
l
t
e
r
)
;
f
o
r
(
i
n
t
i
=
0
;
i
<
f
i
l
e
L
i
s
t
.
l
e
n
g
t
h
;
+
+
i
)
{
n
e
w
F
i
l
e
(
f
i
l
e
L
i
s
t
[
i
]
.
g
e
t
A
b
s
o
l
u
t
e
P
a
t
h
(
)
)
.
d
e
l
e
t
e
(
)
;
}
d
i
s
k
=
n
e
w
F
i
l
e
(
u
p
l
o
a
d
D
i
r
+
F
i
l
e
.
s
e
p
a
r
a
t
o
r
+
f
n
a
m
e
)
;
i
t
e
m
.
w
r
i
t
e
(
d
i
s
k
)
;
C
a
l
e
n
d
a
r
c
a
l
e
n
d
a
r
=
C
a
l
e
n
d
a
r
.
g
e
t
I
n
s
t
a
n
c
e
(
)
;
S
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
s
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
=
n
e
w
S
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
(
"
M
M
.
d
d
.
y
y
h
h
:
m
m
:
s
s
a
a
a
"
)
;
s
t
a
t
u
s
M
e
s
s
a
g
e
=
"
F
i
l
e
s
u
c
c
e
s
s
f
u
l
l
y
w
r
i
t
t
e
n
t
o
s
e
r
v
e
r
a
t
"
+
s
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
.
f
o
r
m
a
t
(
c
a
l
e
n
d
a
r
.
g
e
t
T
i
m
e
(
)
)
;
}
i
m
a
g
e
R
e
a
d
e
r
.
d
i
s
p
o
s
e
(
)
;
i
m
a
g
e
I
n
p
u
t
S
t
r
e
a
m
.
c
l
o
s
e
(
)
;
a
t
t
s
.
a
d
d
A
t
t
r
i
b
u
t
e
(
"
"
,
"
"
,
"
i
d
"
,
"
C
D
A
T
A
"
,
n
e
w
F
i
l
e
N
a
m
e
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
x
)
{
t
h
i
s
.
p
r
o
c
e
s
s
U
p
l
o
a
d
e
d
F
i
l
e
(
i
t
e
m
,
u
p
l
o
a
d
D
i
r
,
f
n
a
m
e
)
;
C
a
l
e
n
d
a
r
c
a
l
e
n
d
a
r
=
C
a
l
e
n
d
a
r
.
g
e
t
I
n
s
t
a
n
c
e
(
)
;
S
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
s
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
=
n
e
w
S
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
(
"
M
M
.
d
d
.
y
y
h
h
:
m
m
:
s
s
a
a
a
"
)
;
s
t
a
t
u
s
M
e
s
s
a
g
e
=
"
F
i
l
e
s
u
c
c
e
s
s
f
u
l
l
y
w
r
i
t
t
e
n
t
o
s
e
r
v
e
r
a
t
"
+
s
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
.
f
o
r
m
a
t
(
c
a
l
e
n
d
a
r
.
g
e
t
T
i
m
e
(
)
)
;
a
t
t
s
.
a
d
d
A
t
t
r
i
b
u
t
e
(
"
"
,
"
"
,
"
i
d
"
,
"
C
D
A
T
A
"
,
f
n
a
m
e
)
;
}
h
d
.
s
t
a
r
t
E
l
e
m
e
n
t
(
"
"
,
"
"
,
"
f
i
l
e
"
,
a
t
t
s
)
;
h
d
.
c
h
a
r
a
c
t
e
r
s
(
s
t
a
t
u
s
M
e
s
s
a
g
e
.
t
o
C
h
a
r
A
r
r
a
y
(
)
,
0
,
s
t
a
t
u
s
M
e
s
s
a
g
e
.
l
e
n
g
t
h
(
)
)
;
h
d
.
e
n
d
E
l
e
m
e
n
t
(
"
"
,
"
"
,
"
f
i
l
e
"
)
;
}
h
d
.
e
n
d
E
l
e
m
e
n
t
(
"
"
,
"
"
,
"
r
e
s
p
o
n
s
e
"
)
;
h
d
.
e
n
d
D
o
c
u
m
e
n
t
(
)
;
o
u
t
.
c
l
o
s
e
(
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
h
a
n
d
l
e
u
p
l
o
a
d
更
复
杂
,
函
数
采
用
一
个
带
有
参
数
“
u
p
l
o
a
d
d
i
r
”
、
参
数
“
f
n
a
m
e
”
的
H
T
T
P
表
单
,
然
后
取
最
后
一
个
表
单
对
象
并
将
其
写
入
“
u
p
l
o
a
d
d
i
r
/
f
n
a
m
e
”
。
函
数
中
有
一
个
验
证
:
该
文
件
必
须
是
有
效
的
映
像
,
并
且
具
有
下
列
扩
展
名
之
一
:
但
是
,
如
果
仔
细
观
察
,
可
以
上
传
任
意
内
容
。
这
是
因
为
在
到
达
第
二
个
(
内
部
)
T
r
y
-
C
a
t
c
h
块
之
前
不
会
发
生
任
何
错
误
。
如
果
我
们
发
送
的
二
进
制
内
容
不
是
文
件
,
则
会
导
致
I
m
a
g
e
R
e
a
d
e
r
引
发
异
常
,
并
发
送
到
c
a
t
c
h
:
这
意
味
着
文
件
内
容
、
u
p
l
o
a
d
d
i
r
及
其
名
称
将
被
发
送
到
p
r
o
c
e
s
s
u
p
l
o
a
d
e
d
f
i
l
e
。
o
u
t
.
p
r
i
n
t
l
n
(
e
.
g
e
t
M
e
s
s
a
g
e
(
)
)
;
}
}
a
l
l
o
w
e
d
F
o
r
m
a
t
s
.
a
d
d
(
"
j
p
e
g
"
)
;
a
l
l
o
w
e
d
F
o
r
m
a
t
s
.
a
d
d
(
"
p
n
g
"
)
;
a
l
l
o
w
e
d
F
o
r
m
a
t
s
.
a
d
d
(
"
g
i
f
"
)
;
a
l
l
o
w
e
d
F
o
r
m
a
t
s
.
a
d
d
(
"
j
p
g
"
)
;
a
l
l
o
w
e
d
F
o
r
m
a
t
s
.
a
d
d
(
"
c
e
r
t
"
)
;
t
r
y
{
S
t
r
i
n
g
i
m
a
g
e
F
o
r
m
a
t
=
i
m
a
g
e
R
e
a
d
e
r
.
g
e
t
F
o
r
m
a
t
N
a
m
e
(
)
;
.
.
.
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
x
)
{
t
h
i
s
.
p
r
o
c
e
s
s
U
p
l
o
a
d
e
d
F
i
l
e
(
i
t
e
m
,
u
p
l
o
a
d
D
i
r
,
f
n
a
m
e
)
;
C
a
l
e
n
d
a
r
c
a
l
e
n
d
a
r
=
C
a
l
e
n
d
a
r
.
g
e
t
I
n
s
t
a
n
c
e
(
)
;
S
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
s
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
=
n
e
w
S
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
(
"
M
M
.
d
d
.
y
y
h
h
:
m
m
:
s
s
a
a
a
"
)
;
s
t
a
t
u
s
M
e
s
s
a
g
e
=
"
F
i
l
e
s
u
c
c
e
s
s
f
u
l
l
y
w
r
i
t
t
e
n
t
o
s
e
r
v
e
r
a
t
"
+
s
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
.
f
o
r
m
a
t
(
c
a
l
e
n
d
a
r
.
g
e
t
T
i
m
e
(
)
)
;
a
t
t
s
.
a
d
d
A
t
t
r
i
b
u
t
e
(
"
"
,
"
"
,
"
i
d
"
,
"
C
D
A
T
A
"
,
f
n
a
m
e
)
;
.
.
.
p
r
i
v
a
t
e
v
o
i
d
p
r
o
c
e
s
s
U
p
l
o
a
d
e
d
F
i
l
e
(
F
i
l
e
I
t
e
m
i
t
e
m
,
S
t
r
i
n
g
u
p
l
o
a
d
D
i
r
,
S
t
r
i
n
g
f
n
a
m
e
)
t
h
r
o
w
s
E
x
c
e
p
t
i
o
n
{
t
r
y
{
i
n
t
o
f
f
s
e
t
;
i
n
t
c
o
n
t
e
n
t
L
e
n
g
t
h
=
(
i
n
t
)
i
t
e
m
.
g
e
t
S
i
z
e
(
)
;
I
n
p
u
t
S
t
r
e
a
m
r
a
w
=
i
t
e
m
.
g
e
t
I
n
p
u
t
S
t
r
e
a
m
(
)
;
B
u
f
f
e
r
e
d
I
n
p
u
t
S
t
r
e
a
m
i
n
=
n
e
w
B
u
f
f
e
r
e
d
I
n
p
u
t
S
t
r
e
a
m
(
r
a
w
)
;
b
y
t
e
[
]
d
a
t
a
=
n
e
w
b
y
t
e
[
c
o
n
t
e
n
t
L
e
n
g
t
h
]
;
i
n
t
b
y
t
e
s
R
e
a
d
=
0
;
f
o
r
(
o
f
f
s
e
t
=
0
;
o
f
f
s
e
t
<
c
o
n
t
e
n
t
L
e
n
g
t
h
&
&
(
b
y
t
e
s
R
e
a
d
=
i
n
.
r
e
a
d
(
d
a
t
a
,
o
f
f
s
e
t
,
d
a
t
a
.
l
e
n
g
t
h
-
o
f
f
s
e
t
)
)
!
=
-
1
;
o
f
f
s
e
t
+
=
b
y
t
e
s
R
e
a
d
)
{
}
i
n
.
c
l
o
s
e
(
)
;
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页