diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..8409614
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,1110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ disposeCrawldataflag
+ redissubjectTask
+ 比特币
+ crawlda
+ _id_
+ comment
+ dataId
+ String docId = cid+"#"+value;
+ exists
+ RedisUtil.se
+ redis
+ task_id
+ app_id
+ keysSet
+ Tasktimelimiit
+ db_stat_alltask
+ =
+ subjectTasktimelimiit
+ maxtime
+ tasklimit
+ userkey
+ newkey
+ System.out.println
+
+
+ E:\SI\datastreamfast\SocialX_Stream_1.0\cl_stream_service
+ E:\SI\datastreamfast\SocialX_Stream_1.0
+ E:\SI\datastreamfast\SocialX_Stream_1.0\cl_stream_datasave
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ DEFINITION_ORDER
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1641456920617
+
+
+ 1641456920617
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1748499561964
+
+
+
+ 1748499561965
+
+
+ 1748500123417
+
+
+
+ 1748500123417
+
+
+ 1748500372451
+
+
+
+ 1748500372451
+
+
+ 1748500503671
+
+
+
+ 1748500503671
+
+
+ 1748501169875
+
+
+
+ 1748501169875
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.8
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/S/145redis.properties b/S/145redis.properties
new file mode 100644
index 0000000..a3bd7f9
--- /dev/null
+++ b/S/145redis.properties
@@ -0,0 +1,7 @@
+#@author ruining.he
+#redis.model -> install model {single,codis}
+
+#if model is codis,use config as below
+redis.model=single
+redis.ip=172.18.1.145
+redis.port=6379
\ No newline at end of file
diff --git a/S/1_kafka.properties b/S/1_kafka.properties
new file mode 100644
index 0000000..73d70b4
--- /dev/null
+++ b/S/1_kafka.properties
@@ -0,0 +1,18 @@
+#### Kafka Tool Parameters
+crawl.kfk.metadata.broker.list=172.18.1.119:9992
+crawl.kfk.connectionTimeOut=50000
+crawl.kfk.zk.sessiontimeout.ms=50000
+crawl.kfk.kafka.serializer=kafka.serializer.StringEncoder
+crawl.kfk.producer.acks=all
+crawl.kfk.producer.retries=0
+crawl.kfk.producer.batch.size=16384
+crawl.kfk.producer.linger.ms=1
+crawl.kfk.producer.buffer.memory=33554432
+crawl.kfk.producer.max.request.size=10485760
+crawl.kfk.consumer.enable.auto.commit=true
+crawl.kfk.consumer.auto.commit.interval.ms=1000
+crawl.kfk.consumer.session.timeout.ms=30000
+crawl.kfk.consumer.auto.offset.reset=earliest
+crawl.kfk.consumer.thread.core.pool.size=100
+crawl.kfk.consumer.thread.maximum.pool.size=100
+
diff --git a/S/2_kafka.properties b/S/2_kafka.properties
new file mode 100644
index 0000000..5aa0c9c
--- /dev/null
+++ b/S/2_kafka.properties
@@ -0,0 +1,18 @@
+#### Kafka Tool Parameters
+crawl.kfk.metadata.broker.list=172.18.1.178:9092,172.18.1.181:9092,172.18.1.182:9092
+crawl.kfk.connectionTimeOut=50000
+crawl.kfk.zk.sessiontimeout.ms=50000
+crawl.kfk.kafka.serializer=kafka.serializer.StringEncoder
+crawl.kfk.producer.acks=all
+crawl.kfk.producer.retries=0
+crawl.kfk.producer.batch.size=16384
+crawl.kfk.producer.linger.ms=1
+crawl.kfk.producer.buffer.memory=33554432
+crawl.kfk.producer.max.request.size=10485760
+crawl.kfk.consumer.enable.auto.commit=true
+crawl.kfk.consumer.auto.commit.interval.ms=1000
+crawl.kfk.consumer.session.timeout.ms=30000
+crawl.kfk.consumer.auto.offset.reset=latest
+crawl.kfk.consumer.thread.core.pool.size=100
+crawl.kfk.consumer.thread.maximum.pool.size=100
+
diff --git a/S/3_kafka.properties b/S/3_kafka.properties
new file mode 100644
index 0000000..6e17ba3
--- /dev/null
+++ b/S/3_kafka.properties
@@ -0,0 +1,18 @@
+#### Kafka Tool Parameters
+crawl.kfk.metadata.broker.list=172.18.1.114:9092
+crawl.kfk.connectionTimeOut=50000
+crawl.kfk.zk.sessiontimeout.ms=50000
+crawl.kfk.kafka.serializer=kafka.serializer.StringEncoder
+crawl.kfk.producer.acks=all
+crawl.kfk.producer.retries=0
+crawl.kfk.producer.batch.size=16384
+crawl.kfk.producer.linger.ms=1
+crawl.kfk.producer.buffer.memory=33554432
+crawl.kfk.producer.max.request.size=10485760
+crawl.kfk.consumer.enable.auto.commit=true
+crawl.kfk.consumer.auto.commit.interval.ms=1000
+crawl.kfk.consumer.session.timeout.ms=30000
+crawl.kfk.consumer.auto.offset.reset=earliest
+crawl.kfk.consumer.thread.core.pool.size=100
+crawl.kfk.consumer.thread.maximum.pool.size=100
+
diff --git a/S/4_kafka.properties b/S/4_kafka.properties
new file mode 100644
index 0000000..b87185c
--- /dev/null
+++ b/S/4_kafka.properties
@@ -0,0 +1,18 @@
+#### Kafka Tool Parameters
+crawl.kfk.metadata.broker.list=50.19.49.16:9092
+crawl.kfk.connectionTimeOut=50000
+crawl.kfk.zk.sessiontimeout.ms=50000
+crawl.kfk.kafka.serializer=kafka.serializer.StringEncoder
+crawl.kfk.producer.acks=all
+crawl.kfk.producer.retries=0
+crawl.kfk.producer.batch.size=16384
+crawl.kfk.producer.linger.ms=1
+crawl.kfk.producer.buffer.memory=33554432
+crawl.kfk.producer.max.request.size=10485760
+crawl.kfk.consumer.enable.auto.commit=true
+crawl.kfk.consumer.auto.commit.interval.ms=1000
+crawl.kfk.consumer.session.timeout.ms=30000
+crawl.kfk.consumer.auto.offset.reset=earliest
+crawl.kfk.consumer.thread.core.pool.size=100
+crawl.kfk.consumer.thread.maximum.pool.size=100
+
diff --git a/S/5_kafka.properties b/S/5_kafka.properties
new file mode 100644
index 0000000..6fed870
--- /dev/null
+++ b/S/5_kafka.properties
@@ -0,0 +1,18 @@
+#### Kafka Tool Parameters
+crawl.kfk.metadata.broker.list=172.18.1.113:9092
+crawl.kfk.connectionTimeOut=50000
+crawl.kfk.zk.sessiontimeout.ms=50000
+crawl.kfk.kafka.serializer=kafka.serializer.StringEncoder
+crawl.kfk.producer.acks=all
+crawl.kfk.producer.retries=0
+crawl.kfk.producer.batch.size=16384
+crawl.kfk.producer.linger.ms=1
+crawl.kfk.producer.buffer.memory=33554432
+crawl.kfk.producer.max.request.size=10485760
+crawl.kfk.consumer.enable.auto.commit=true
+crawl.kfk.consumer.auto.commit.interval.ms=1000
+crawl.kfk.consumer.session.timeout.ms=30000
+crawl.kfk.consumer.auto.offset.reset=earliest
+crawl.kfk.consumer.thread.core.pool.size=100
+crawl.kfk.consumer.thread.maximum.pool.size=100
+
diff --git a/S/aadb.properties b/S/aadb.properties
new file mode 100644
index 0000000..6614c24
--- /dev/null
+++ b/S/aadb.properties
@@ -0,0 +1,5 @@
+logfile=DBConnectManager.log
+db_stat_alltask.maxconn=100
+db_stat_alltask.url=jdbc:mysql://172.18.1.134:3306/all_task?useUnicode=true&characterEncoding=utf-8
+db_stat_alltask.user=root
+db_stat_alltask.password=Bfd123!@#
\ No newline at end of file
diff --git a/S/db.properties b/S/db.properties
new file mode 100644
index 0000000..1a5e1bc
--- /dev/null
+++ b/S/db.properties
@@ -0,0 +1,10 @@
+logfile=DBConnectManager.log
+drivers=com.mysql.jdbc.Driver
+db_stat.maxconn=100
+db_stat.url=jdbc:mysql://172.18.1.101:3306/intelligent_crawl?useUnicode=true&characterEncoding=utf-8
+db_stat.user=crawl
+db_stat.password=crawl123
+db_stat_alltask.maxconn=100
+db_stat_alltask.url=jdbc:mysql://172.18.1.101:3306/all_task?useUnicode=true&characterEncoding=utf-8
+db_stat_alltask.user=crawl
+db_stat_alltask.password=crawl123=
\ No newline at end of file
diff --git a/S/elasticsearch_1.properties b/S/elasticsearch_1.properties
new file mode 100644
index 0000000..e1834e3
--- /dev/null
+++ b/S/elasticsearch_1.properties
@@ -0,0 +1,10 @@
+crawl.elasticsearch.metadata.broker.list=172.26.11.111:9201
+crawl.elasticsearch.socket.timeout.interval.ms=5000
+crawl.elasticsearch.connect.timeout.ms=1000
+crawl.elasticsearch.max.connect.num=100
+crawl.elasticsearch.max.connect.per.route.num=100
+crawl.elasticsearch.max.retry.timeout=300000
+crawl.elasticsearch.producer.max.cache.num=2000
+crawl.elasticsearch.producer.max.write.time=120000
+crawl.elasticsearch.consumer.quary.num=2000
+crawl.elasticsearch.consumer.scroll.time=3
diff --git a/S/elasticsearch_2.properties b/S/elasticsearch_2.properties
new file mode 100644
index 0000000..fbe9670
--- /dev/null
+++ b/S/elasticsearch_2.properties
@@ -0,0 +1,10 @@
+crawl.elasticsearch.metadata.broker.list=172.26.11.109:9201
+crawl.elasticsearch.socket.timeout.interval.ms=60000
+crawl.elasticsearch.connect.timeout.ms=50000
+crawl.elasticsearch.max.connect.num=100
+crawl.elasticsearch.max.connect.per.route.num=100
+crawl.elasticsearch.max.retry.timeout=300000
+crawl.elasticsearch.producer.max.cache.num=1000
+crawl.elasticsearch.producer.max.write.time=100000
+crawl.elasticsearch.consumer.quary.num=1000
+crawl.elasticsearch.consumer.scroll.time=3
diff --git a/S/log4j.properties b/S/log4j.properties
new file mode 100644
index 0000000..f435390
--- /dev/null
+++ b/S/log4j.properties
@@ -0,0 +1,21 @@
+log4j.rootLogger=debug
+
+log4j.logger.com.bfd.mf.service = DEBUG,SERVICE
+log4j.logger.com.bfd.mf.datasave = DEBUG,DATASAVE
+#service log
+log4j.appender.SERVICE=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.SERVICE.Threshold=DEBUG
+log4j.appender.SERVICE.File=../logs/service/service.log
+log4j.appender.SERVICE.DatePattern='.'yyyy-MM-dd
+log4j.appender.SERVICE.layout=org.apache.log4j.PatternLayout
+log4j.appender.SERVICE.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%L) - %m%n
+
+log4j.logger.com.bfd.mf.datasave = DEBUG,DATASAVE
+#datasave log
+log4j.appender.DATASAVE=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.DATASAVE.Threshold=DEBUG
+log4j.appender.DATASAVE.File=../logs/datasave/datasave.log
+log4j.appender.DATASAVE.DatePattern='.'yyyy-MM-dd
+log4j.appender.DATASAVE.layout=org.apache.log4j.PatternLayout
+log4j.appender.DATASAVE.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%L) - %m%n
+
\ No newline at end of file
diff --git a/S/posTag.txt b/S/posTag.txt
new file mode 100644
index 0000000..827e5ee
--- /dev/null
+++ b/S/posTag.txt
@@ -0,0 +1,36 @@
+u
+ud
+ude1
+ude2
+ude3
+udeng
+udh
+ug
+uguo
+uj
+ul
+ule
+ulian
+uls
+usuo
+uv
+uyy
+uz
+uzhe
+uzhi
+w
+wb
+wd
+wf
+wh
+wj
+wky
+wkz
+wm
+wn
+wp
+ws
+wt
+ww
+wyy
+wyz
\ No newline at end of file
diff --git a/S/redis.properties b/S/redis.properties
new file mode 100644
index 0000000..6f803aa
--- /dev/null
+++ b/S/redis.properties
@@ -0,0 +1,7 @@
+#@author ruining.he
+#redis.model -> install model {single,codis}
+
+#if model is codis,use config as below
+redis.model=single
+redis.ip=172.18.1.152
+redis.port=6379
\ No newline at end of file
diff --git a/S/stopWords.txt b/S/stopWords.txt
new file mode 100644
index 0000000..94bc1ce
--- /dev/null
+++ b/S/stopWords.txt
@@ -0,0 +1,1280 @@
+嗳
+要
+这些
+赶早不赶晚
+感觉
+嗬
+毫不
+嗯
+大张旗鼓
+"
+#
+
+!
+&
+'
+$
+%
+*
++
+(
+)
+她们
+.
+/
+,
+︿
+-
+3
+2
+不止
+1
+0
+7
+6
+这里
+5
+4
+颇
+;
+:
+9
+如此
+8
+?
+极度
+>
+=
+首先
+<
+也罢
+@
+A
+当庭
+见
+更
+不少
+]
+\
+_
+^
+替
+[
+大大
+到目前为止
+开始
+`
+三番两次
+这么
+大多
+结果
+权时
+喂
+如下
+矣
+如上
+喀
+~
+喏
+|
+放量
+当年
+不对
+顷刻
+是
+岂非
+看
+哪边
+立马
+乘势
+何况
+啥
+这个
+啦
+率尔
+那种
+仍然
+相对而言
+啐
+累年
+啊
+开外
+现在
+大概
+依照
+·
+总而言之
+乃至
+比如说
+多次
+切切
+不亦乐乎
+顺
+顷
+呆呆地
+略为
+更为
+倍加
+不定
+之后
+着
+风雨无阻
+对于
+唉
+彻夜
+!
+#
+来得及
+%
+哦
+$
+的
+&
+)
+哪
+(
++
+*
+哩
+,
+0
+1
+2
+这么些
+3
+4
+5
+不至于
+6
+7
+8
+这部
+9
+几时
+:
+;
+<
+>
+?
+哼
+@
+如今
+哇
+哈
+哉
+尽量
+总的说来
+哎
+方才
+乘胜
+极
+倘或
+哗
+被
+[
+出去
+哟
+]
+咦
+切不可
+是否
+而况
+加以
+我们
+咳
+咱
+|
+}
+~
+{
+岂止
+某
+看上去
+和
+如常
+任何
+咋
+具体地说
+凝神
+各自
+千万
+咚
+纯粹
+只限
+恐怕
+呢
+莫非
+虽然
+呸
+本
+即若
+等等
+按照
+呵
+发表
+具体说来
+望
+朝
+不要
+怎样
+呀
+呃
+轰然
+月
+有
+每当
+接连不断
+呜
+最
+呐
+不比
+呕
+呗
+理应
+吧
+那里
+日渐
+以免
+来
+别人
+饱
+吱
+看来
+同
+沙沙
+后
+趁势
+切莫
+尽心尽力
+各
+切勿
+¥
+白
+�
+保管
+吗
+此中
+默然
+向
+吓
+的确
+让
+末##末
+不然的话
+趁早
+论
+挨门挨户
+挨次
+保险
+莫若
+嗡嗡
+是的
+请勿
+该
+消息
+一定
+刚才
+略微
+亲眼
+差不多
+倘若
+说
+—
+起来
+’
+‘
+”
+“
+惯常
+何止
+…
+到了儿
+再者
+并且
+趁着
+如何
+不由得
+怎么样
+旁人
+由
+不管
+甭
+哪里
+甫
+用
+倒不如说
+均
+长此下去
+多少
+匆匆
+虽则
+既然
+纵使
+呼哧
+联袂
+或许
+俺们
+倘然
+只是
+不如
+更进一步
+不仅...而且
+极为
+尽然
+略
+长期以来
+不止一次
+不妨
+表示
+地
+较比
+在
+从古到今
+尽如人意
+确实
+川流不息
+并没有
+纵令
+恰巧
+四
+无宁
+近年来
+因
+起首
+,
+方
+大略
+将要
+极了
+但是
+固
+屡屡
+到底
+在下
+猛然间
+很多
+趁机
+。
+越是
+、
+
+》
+《
+〉
+〈
+不外
+使得
+既
+【
+】
+不大
+以便
+当下
+它们
+如上所述
+每个
+彼此
+达旦
+当口儿
+看起来
+或多或少
+当中
+据我所知
+遵照
+固然
+策略地
+换言之
+缕缕
+居然
+连日来
+比照
+起见
+嘎
+因而
+嘘
+不论
+嘛
+沿着
+恍然
+亲身
+故
+哼唷
+本着
+除外
+论说
+简直
+大家
+嘻
+嘿
+敢
+不怎么
+如次
+亲手
+顿时
+顺着
+叮当
+敞开儿
+冲
+跟
+上来
+拿
+不曾
+着呢
+背靠背
+多多益善
+冒
+他人
+下来
+何须
+内
+尚且
+很少
+不仅仅
+出
+顷刻间
+
+趁
+恰似
+敢情
+率然
+凭
+每每
+几
+他们
+成为
+尽快
+把
+当即
+据悉
+前者
+ [
+处处
+ ]
+断然
+绝非
+总的来看
+分期
+我们
+每次
+从优
+常言说得好
+由于
+难说
+从今以后
+所
+比如
+才
+精光
+起
+于是
+赶
+平素
+打
+一样
+长线
+每时每刻
+不择手段
+共
+拦腰
+其
+屡次
+当然
+宁愿
+举凡
+八
+六
+兮
+十分
+我
+串行
+或
+牢牢
+成心
+光
+与此同时
+哈哈
+换句话说
+除非
+以至于
+况且
+独
+除却
+反手
+成年
+哎呀
+这儿
+累次
+论坛
+诚然
+怎么办
+决不
+自各儿
+这么样
+除去
+由此可见
+像
+绝顶
+社会主义
+不外乎
+毋宁
+背地里
+..
+据
+此间
+哪儿
+为什么
+倍
+那会儿
+来不及
+迫于
+不起
+可能
+千万千万
+//
+正如
+借
+倘
+究竟
+及其
+据称
+谁
+敢于
+伙同
+朝着
+临到
+哎哟
+即将
+尽心竭力
+已经
+亲口
+出来
+另一个
+--
+诸位
+那时
+即是说
+按
+谨
+此外
+何时
+然后
+勃然
+奋勇
+仅仅
+故而
+历
+乌乎
+主要
+借以
+去
+间或
+方能
+并没
+除此之外
+过
+马上
+迄
+传说
+恰恰
+还
+这
+连
+近
+用户名
+这边
+及
+从不
+边
+又
+您
+连同
+较
+怎么
+互相
+但愿
+可
+你们
+凑巧
+叫
+路经
+另
+起先
+二话没说
+之一
+化
+连连
+当儿
+各式
+其后
+独自
+照
+趁便
+甚至
+那末
+该当
+呜呼
+的话
+挨着
+有的
+够瞧的
+何乐而不为
+然
+单
+进去
+无论
+怎
+据说
+综上所述
+抽冷子
+才能
+怕
+千
+极大
+恰逢
+半
+而是
+即
+不但...而且
+倘使
+怪
+本身
+乘隙
+焉
+反倒
+理当
+交口
+基本上
+认为
+这会儿
+不迭
+倍感
+老是
+┃
+反之
+哪怕
+除此而外
+顶多
+而又
+不时
+自家
+啊呀
+发生
+哗啦
+多年来
+那边
+那么些
+完全
+某个
+起初
+应该
+进一步
+不是
+日见
+而后
+例如
+切
+多多
+较之
+那样
+齐
+不料
+则
+刚
+初
+乘虚
+能够
+从严
+故意
+啊哟
+别
+从中
+分头
+较为
+到
+>>
+假如
+甚么
+作为
+何必
+不过
+啊哈
+某些
+不日
+正在
+一来
+三番五次
+为何
+进而
+通过
+若非
+日益
+倒不如
+逢
+立地
+不只
+一般
+豁然
+将近
+不可开交
+就算
+全力
+...
+各位
+基本
+不拘
+隔夜
+不胜
+除开
+暗中
+腾
+而外
+宁可
+除此以外
+单单
+何处
+几度
+吧哒
+即便
+那
+本人
+己
+已
+趁热
+人民
+不能
+并肩
+根据
+也好
+什么样
+扑通
+即使
+与否
+高低
+何妨
+简言之
+如期
+不管怎样
+将才
+大约
+其次
+满
+除了
+都
+标题
+难道
+不可
+至
+陡然
+为了
+及至
+虽说
+臭
+嘎嘎
+不同
+自
+大体上
+而
+还要
+老
+者
+人人
+比方
+简而言之
+谁知
+屡
+应当
+人家
+单纯
+继之
+这么点儿
+八成
+光是
+忽然
+从头
+尽
+哪年
+竟然
+就
+省得
+从此以后
+不力
+各个
+充其极
+次第
+尽管如此
+偶而
+甚而
+截然
+接着
+极端
+嘎登
+皆可
+这就是说
+将
+从早到晚
+好在
+取道
+这种
+上去
+碰巧
+紧接着
+不单
+一旦
+纵
+纯
+各种
+连袂
+什么
+绝
+给
+后来
+暗自
+经
+不然
+从重
+果真
+要不是
+并排
+自己
+岂
+差一点
+能
+藉以
+不惟
+此后
+待到
+哪些
+其他
+毫无
+连声
+归
+当
+几经
+九
+也
+乘
+从小
+乒
+彼
+乎
+刚好
+么
+如若
+之
+默默地
+乃
+为
+得起
+借此
+汝
+然而
+从此
+按时
+反倒是
+临
+个
+从无到有
+中
+反之则
+弗
+姑且
+与其
+哪个
+反而
+常言道
+不再
+大抵
+且
+意思
+三
+上
+不
+与
+一
+七
+两者
+不经意
+等到
+必
+来着
+尽管
+知道
+任
+以
+似的
+个人
+其余
+们
+莫
+当着
+他
+就是说
+沿
+快
+仅
+没
+来看
+仍
+从
+往
+大凡
+而言
+待
+当真
+因此
+很
+据此
+那么样
+纵然
+得
+互
+五
+——
+必须
+向着
+或是
+毕竟
+了
+二
+于
+可以
+你
+要不
+当场
+那儿
+来讲
+局外
+但
+并
+赶快
+需要
+即令
+活
+不特
+然则
+何
+不独
+一则
+何苦
+猛然
+传
+设使
+经过
+至于
+老老实实
+截至
+譬如
+一切
+要么
+别的
+常
+按期
+何尝
+动不动
+因为
+会
+按说
+如果
+带
+自从
+宁肯
+不光
+之类
+尽可能
+老大
+成年累月
+尔后
+俺
+从宽
+朋友
+就此
+粗
+归根结底
+据实
+不免
+若
+不成
+不仅仅是
+长话短说
+设若
+慢说
+诸如
+便
+以至
+以致
+之所以
+前后
+果然
+共总
+时候
+依
+鄙人
+大
+等
+大面儿上
+年复一年
+打开天窗说亮话
+假若
+快要
+而且
+此刻
+假使
+陈年
+另方面
+到处
+大体
+云云
+全然
+为着
+每逢
+多
+只要
+常常
+日臻
+得天独厚
+另外
+并无
+届时
+她
+尔等
+不消
+如其
+反之亦然
+奇
+方法
+奈
+必定
+第
+岂但
+古来
+啪达
+顷刻之间
+别说
+传闻
+总的来说
+非徒
+非得
+可是
+不可抗拒
+继而
+如
+凭借
+略加
+绝对
+理该
+喔唷
+仍旧
+以及
+到头来
+抑或
+一方面
+只有
+咱们
+从新
+这样
+不得已
+管
+自个儿
+呼啦
+必将
+而论
+于是乎
+其一
+此
+看样子
+全身心
+有人
+按理
+也许
+打从
+照着
+觉得
+不了
+不得
+关于
+恰恰相反
+其中
+动辄
+立刻
+倒是
+毫无例外
+从古至今
+可见
+莫不
+亲自
+经常
+不得了
+不必
+有些
+挨个
+不仅
+进来
+大事
+全年
+总之
+当头
+若是
+竟
+要不然
+分期分批
+如此等等
+那么
+其二
+立
+不会
+不怕
+不问
+每
+没有
+公然
+比
+还有
+不限
+偏偏
+故此
+弹指之间
+那些
+窃
+叮咚
+而已
+到头
+不但
+随着
+不得不
+非常
+非但
+殆
+如前所述
+从来
+近几年来
+近来
+莫如
+谢谢
+比起
+穷年累月
+怪不得
+白白
+反过来
+除
+全都
+全部
+从速
+上下
+哪样
+从未
+不能不
+那个
+迟早
+不知不觉
+挨家挨户
+多多少少
+几番
+有关
+连日
+阿
+这时
+即或
+它
+哪天
+宁
+地方
+就是
+乘机
+常言说
+不下
+定
+昂然
+毫无保留地
+屡次三番
+充其量
+另一方面
+既...又
+瑟瑟
+或者
+反过来说
+立时
+再说
+嘿嘿
+过于
+零
+就地
+极其
+随
+起头
+离
+梆
+漫说
+大举
+接下来
+忽地
+难得
+格外
+从而
+还是
+对
+既是
+可好
+不满
+充分
+并非
+鉴于
+目前
+要是
+虽
+一下
+自身
+任凭
+几乎
+靠
+一个
+否则
+砰
+三天两头
+难怪
+所以
+罢了
+大致
+从轻
+不巧
+加之
+大不了
+归根到底
+偶尔
+二话不说
+大都
+愤然
+多年前
+蛮
+一些
+楼主
+日复一日
+即刻
+其它
+决非
+恰如
+不已
+加上
+具体来说
+直到
+多亏
+隔日
+暗地里
+挨门逐户
+恰好
+其实
+万一
+基于
+尽早
+刚巧
+概
+主楼
+同时
+更加
+绝不
+除此
+不常
+另行
+急匆匆
+话说
+存心
+极力
\ No newline at end of file
diff --git a/S/stopWordsEN.txt b/S/stopWordsEN.txt
new file mode 100644
index 0000000..d3bdbff
--- /dev/null
+++ b/S/stopWordsEN.txt
@@ -0,0 +1,891 @@
+'d
+'ll
+'m
+'re
+'s
+'t
+'ve
+ZT
+ZZ
+a
+a's
+able
+about
+above
+abst
+accordance
+according
+accordingly
+across
+act
+actually
+added
+adj
+adopted
+affected
+affecting
+affects
+after
+afterwards
+again
+against
+ah
+ain't
+all
+allow
+allows
+almost
+alone
+along
+already
+also
+although
+always
+am
+among
+amongst
+an
+and
+announce
+another
+any
+anybody
+anyhow
+anymore
+anyone
+anything
+anyway
+anyways
+anywhere
+apart
+apparently
+appear
+appreciate
+appropriate
+approximately
+are
+area
+areas
+aren
+aren't
+arent
+arise
+around
+as
+aside
+ask
+asked
+asking
+asks
+associated
+at
+auth
+available
+away
+awfully
+b
+back
+backed
+backing
+backs
+be
+became
+because
+become
+becomes
+becoming
+been
+before
+beforehand
+began
+begin
+beginning
+beginnings
+begins
+behind
+being
+beings
+believe
+below
+beside
+besides
+best
+better
+between
+beyond
+big
+biol
+both
+brief
+briefly
+but
+by
+c
+c'mon
+c's
+ca
+came
+can
+can't
+cannot
+cant
+case
+cases
+cause
+causes
+certain
+certainly
+changes
+clear
+clearly
+co
+com
+come
+comes
+concerning
+consequently
+consider
+considering
+contain
+containing
+contains
+corresponding
+could
+couldn't
+couldnt
+course
+currently
+d
+date
+definitely
+describe
+described
+despite
+did
+didn't
+differ
+different
+differently
+discuss
+do
+does
+doesn't
+doing
+don't
+done
+down
+downed
+downing
+downs
+downwards
+due
+during
+e
+each
+early
+ed
+edu
+effect
+eg
+eight
+eighty
+either
+else
+elsewhere
+end
+ended
+ending
+ends
+enough
+entirely
+especially
+et
+et-al
+etc
+even
+evenly
+ever
+every
+everybody
+everyone
+everything
+everywhere
+ex
+exactly
+example
+except
+f
+face
+faces
+fact
+facts
+far
+felt
+few
+ff
+fifth
+find
+finds
+first
+five
+fix
+followed
+following
+follows
+for
+former
+formerly
+forth
+found
+four
+from
+full
+fully
+further
+furthered
+furthering
+furthermore
+furthers
+g
+gave
+general
+generally
+get
+gets
+getting
+give
+given
+gives
+giving
+go
+goes
+going
+gone
+good
+goods
+got
+gotten
+great
+greater
+greatest
+greetings
+group
+grouped
+grouping
+groups
+h
+had
+hadn't
+happens
+hardly
+has
+hasn't
+have
+haven't
+having
+he
+he's
+hed
+hello
+help
+hence
+her
+here
+here's
+hereafter
+hereby
+herein
+heres
+hereupon
+hers
+herself
+hes
+hi
+hid
+high
+higher
+highest
+him
+himself
+his
+hither
+home
+hopefully
+how
+howbeit
+however
+hundred
+i
+i'd
+i'll
+i'm
+i've
+id
+ie
+if
+ignored
+im
+immediate
+immediately
+importance
+important
+in
+inasmuch
+inc
+include
+indeed
+index
+indicate
+indicated
+indicates
+information
+inner
+insofar
+instead
+interest
+interested
+interesting
+interests
+into
+invention
+inward
+is
+isn't
+it
+it'd
+it'll
+it's
+itd
+its
+itself
+j
+just
+k
+keep
+keeps
+kept
+keys
+kg
+kind
+km
+knew
+know
+known
+knows
+l
+large
+largely
+last
+lately
+later
+latest
+latter
+latterly
+least
+less
+lest
+let
+let's
+lets
+like
+liked
+likely
+line
+little
+long
+longer
+longest
+look
+looking
+looks
+ltd
+m
+made
+mainly
+make
+makes
+making
+man
+many
+may
+maybe
+me
+mean
+means
+meantime
+meanwhile
+member
+members
+men
+merely
+mg
+might
+million
+miss
+ml
+more
+moreover
+most
+mostly
+mr
+mrs
+much
+mug
+must
+my
+myself
+n
+n't
+na
+name
+namely
+nay
+nd
+near
+nearly
+necessarily
+necessary
+need
+needed
+needing
+needs
+neither
+never
+nevertheless
+new
+newer
+newest
+next
+nine
+ninety
+no
+nobody
+non
+none
+nonetheless
+noone
+nor
+normally
+nos
+not
+noted
+nothing
+novel
+now
+nowhere
+number
+numbers
+o
+obtain
+obtained
+obviously
+of
+off
+often
+oh
+ok
+okay
+old
+older
+oldest
+omitted
+on
+once
+one
+ones
+only
+onto
+open
+opened
+opening
+opens
+or
+ord
+order
+ordered
+ordering
+orders
+other
+others
+otherwise
+ought
+our
+ours
+ourselves
+out
+outside
+over
+overall
+owing
+own
+p
+page
+pages
+part
+parted
+particular
+particularly
+parting
+parts
+past
+per
+perhaps
+place
+placed
+places
+please
+plus
+point
+pointed
+pointing
+points
+poorly
+possible
+possibly
+potentially
+pp
+predominantly
+present
+presented
+presenting
+presents
+presumably
+previously
+primarily
+probably
+problem
+problems
+promptly
+proud
+provides
+put
+puts
+q
+que
+quickly
+quite
+qv
+r
+ran
+rather
+rd
+re
+readily
+really
+reasonably
+recent
+recently
+ref
+refs
+regarding
+regardless
+regards
+related
+relatively
+research
+respectively
+resulted
+resulting
+results
+right
+room
+rooms
+run
+s
+said
+same
+saw
+say
+saying
+says
+sec
+second
+secondly
+seconds
+section
+see
+seeing
+seem
+seemed
+seeming
+seems
+seen
+sees
+self
+selves
+sensible
+sent
+serious
+seriously
+seven
+several
+shall
+she
+she'll
+shed
+shes
+should
+shouldn't
+show
+showed
+showing
+shown
+showns
+shows
+side
+sides
+significant
+significantly
+similar
+similarly
+since
+six
+slightly
+small
+smaller
+smallest
+so
+some
+somebody
+somehow
+someone
+somethan
+something
+sometime
+sometimes
+somewhat
+somewhere
+soon
+sorry
+specifically
+specified
+specify
+specifying
+state
+states
+still
+stop
+strongly
+sub
+substantially
+successfully
+such
+sufficiently
+suggest
+sup
+sure
+t
+t's
+take
+taken
+taking
+tell
+tends
+th
+than
+thank
+thanks
+thanx
+that
+that'll
+that's
+that've
+thats
+the
+their
+theirs
+them
+themselves
+then
+thence
+there
+there'll
+there's
+there've
+thereafter
+thereby
+thered
+therefore
+therein
+thereof
+therere
+theres
+thereto
+thereupon
+these
+they
+they'd
+they'll
+they're
+they've
+theyd
+theyre
+thing
+things
+think
+thinks
+third
+this
+thorough
+thoroughly
+those
+thou
+though
+thoughh
+thought
+thoughts
+thousand
+three
+throug
+through
+throughout
+thru
+thus
+til
+tip
+to
+today
+together
+too
+took
+toward
+towards
+tried
+tries
+truly
+try
+trying
+ts
+turn
+turned
+turning
+turns
+twice
+two
+u
+un
+under
+unfortunately
+unless
+unlike
+unlikely
+until
+unto
+up
+upon
+ups
+us
+use
+used
+useful
+usefully
+usefulness
+uses
+using
+usually
+uucp
+v
+value
+various
+very
+via
+viz
+vol
+vols
+vs
+w
+want
+wanted
+wanting
+wants
+was
+wasn't
+way
+ways
+we
+we'd
+we'll
+we're
+we've
+wed
+welcome
+well
+wells
+went
+were
+weren't
+what
+what'll
+what's
+whatever
+whats
+when
+whence
+whenever
+where
+where's
+whereafter
+whereas
+whereby
+wherein
+wheres
+whereupon
+wherever
+whether
+which
+while
+whim
+whither
+who
+who'll
+who's
+whod
+whoever
+whole
+whom
+whomever
+whos
+whose
+why
+widely
+will
+willing
+wish
+with
+within
+without
+won't
+wonder
+words
+work
+worked
+working
+works
+world
+would
+wouldn't
+www
+x
+y
+year
+years
+yes
+yet
+you
+you'd
+you'll
+you're
+you've
+youd
+young
+younger
+youngest
+your
+youre
+yours
+yourself
+yourselves
+z
+zero
+zt
+zz
\ No newline at end of file
diff --git a/cl_search_api/target/classes/application.yml b/cl_search_api/target/classes/application.yml
new file mode 100644
index 0000000..3b0a54c
--- /dev/null
+++ b/cl_search_api/target/classes/application.yml
@@ -0,0 +1,29 @@
+server:
+ port: 18909
+ tomcat:
+ uri-encoding: UTF-8
+ max-threads: 800
+ maxHttpHeaderSize: 655360
+ http2:
+ enabled: true
+
+spring:
+ datasource:
+ driver-class-name: com.mysql.jdbc.Driver
+ username: root
+ password: bfd123
+ url: jdbc:mysql://172.26.11.113:3306/bfd_sq_data?useOldAliasMetadataBehavior=true&characterEncoding=UTF-8&zeroDateTimeBehavior=round
+ hikari:
+ maximum-pool-size: 10
+ minimum-idle: 1
+ jpa:
+ open-in-view: false
+ database: mysql
+
+
+#######
+bfd.api.mf:
+ textPostUrl: http://rule.sq.baifendian.com/nerplace
+ emotionPostUrl : http://172.18.1.166:15038/bertsentiment
+ wordCloudPostUrl : http://rule.sq.baifendian.com/wordcloud
+
diff --git a/cl_search_api/target/classes/log4j.properties b/cl_search_api/target/classes/log4j.properties
new file mode 100644
index 0000000..8ca672a
--- /dev/null
+++ b/cl_search_api/target/classes/log4j.properties
@@ -0,0 +1,18 @@
+log4j.rootLogger=INFO, error
+
+###### error appender definition #######
+log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.error.File=logs/sdkclient_error.log
+log4j.appender.error.Append=true
+log4j.appender.error.DatePattern='.'yyyy-MM-dd-HH
+log4j.appender.error.layout=org.apache.log4j.PatternLayout
+log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] %m%n
+
+#error only
+log4j.appender.error.filter.F1=org.apache.log4j.varia.LevelRangeFilter
+log4j.appender.error.filter.F1.LevelMin=ERROR
+log4j.appender.error.filter.F1.LevelMax=ERROR
+#
+log4j.appender.error.filter.F2=org.apache.log4j.varia.LevelMatchFilter
+log4j.appender.error.filter.F2.levelToMatch=WARN
+log4j.appender.error.filter.F2.acceptOnMatch=false
\ No newline at end of file
diff --git a/cl_search_api/target/classes/log4j2.properties b/cl_search_api/target/classes/log4j2.properties
new file mode 100644
index 0000000..07964d7
--- /dev/null
+++ b/cl_search_api/target/classes/log4j2.properties
@@ -0,0 +1,32 @@
+#### ����###
+#log4j.rootLogger = stdout,D,E,I
+#
+#### �����Ϣ������̧ ###
+#log4j.appender.stdout = org.apache.log4j.ConsoleAppender
+#log4j.appender.stdout.Target = System.out
+#log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
+#log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
+#
+#### ���INFO �������ϵ���־�ļ����� ###
+#log4j.appender.I = org.apache.log4j.DailyRollingFileAppender
+#log4j.appender.I.File = log_info.log
+#log4j.appender.I.Append = true
+#log4j.appender.I.Threshold = INFO
+#log4j.appender.I.layout = org.apache.log4j.PatternLayout
+#log4j.appender.I.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
+#
+#### ���DEBUG �������ϵ���־�ļ����� ###
+#log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
+#log4j.appender.D.File = log_debug.log
+#log4j.appender.D.Append = true
+#log4j.appender.D.Threshold = INFO
+#log4j.appender.D.layout = org.apache.log4j.PatternLayout
+#log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
+#
+#### ���ERROR �������ϵ���־�ļ����� ###
+#log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
+#log4j.appender.E.File = log_error.log
+#log4j.appender.E.Append = true
+#log4j.appender.E.Threshold = ERROR
+#log4j.appender.E.layout = org.apache.log4j.PatternLayout
+#log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
diff --git a/cl_stream_mybatis/target/cl_stream_mybatis-1.4.3.RELEASE.jar b/cl_stream_mybatis/target/cl_stream_mybatis-1.4.3.RELEASE.jar
new file mode 100644
index 0000000..bf53922
Binary files /dev/null and b/cl_stream_mybatis/target/cl_stream_mybatis-1.4.3.RELEASE.jar differ
diff --git a/cl_stream_mybatis/target/cl_stream_mybatis-1.4.3.RELEASE.jar.original b/cl_stream_mybatis/target/cl_stream_mybatis-1.4.3.RELEASE.jar.original
new file mode 100644
index 0000000..ade2184
Binary files /dev/null and b/cl_stream_mybatis/target/cl_stream_mybatis-1.4.3.RELEASE.jar.original differ
diff --git a/cl_stream_mybatis/target/classes/META-INF/resources/WEB-INF/importdb.jsp b/cl_stream_mybatis/target/classes/META-INF/resources/WEB-INF/importdb.jsp
new file mode 100644
index 0000000..f4347f9
--- /dev/null
+++ b/cl_stream_mybatis/target/classes/META-INF/resources/WEB-INF/importdb.jsp
@@ -0,0 +1,278 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%--
+ Created by IntelliJ IDEA.
+ User: Administrator
+ Date: 2018/8/3
+ Time: 15:53
+ To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+
+ 自动灌数系统
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<%----%>
+<%--
选择Excel文件(可同时批量上传多个文件):--%>
+<%--<
--%>
+<%----%>
+<%--${keyword}导入成功!!!!!
--%>
+<%----%>
+<%--
--%>
+<%--
--%>
+<%----%>
+<%--${keyworderr}导入失败!!!!!
--%>
+<%----%>
+<%--
--%>
+
+
灌数系统
+
+===================================================================
+
+
+
+
+
+
+
+
+
+ --------------------------------------------------------------------------
+
+
+
+
+
+
diff --git a/cl_stream_mybatis/target/classes/META-INF/resources/WEB-INF/index.jsp b/cl_stream_mybatis/target/classes/META-INF/resources/WEB-INF/index.jsp
new file mode 100644
index 0000000..d4431a7
--- /dev/null
+++ b/cl_stream_mybatis/target/classes/META-INF/resources/WEB-INF/index.jsp
@@ -0,0 +1,54 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+
+<%--
+ Created by IntelliJ IDEA.
+ User: Administrator
+ Date: 2018/5/16
+ Time: 16:58
+ To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Title
+
+
+
+
+
+
+
+
diff --git a/cl_stream_mybatis/target/classes/META-INF/resources/WEB-INF/uploaderr.jsp b/cl_stream_mybatis/target/classes/META-INF/resources/WEB-INF/uploaderr.jsp
new file mode 100644
index 0000000..054e10e
--- /dev/null
+++ b/cl_stream_mybatis/target/classes/META-INF/resources/WEB-INF/uploaderr.jsp
@@ -0,0 +1,16 @@
+<%--
+ Created by IntelliJ IDEA.
+ User: Administrator
+ Date: 2018/8/6
+ Time: 13:58
+ To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ 上传失败
+
+
+ 上传excel文件失败!!!
+
+
diff --git a/cl_stream_mybatis/target/classes/META-INF/resources/upload/财报模板 - 副本.xlsx b/cl_stream_mybatis/target/classes/META-INF/resources/upload/财报模板 - 副本.xlsx
new file mode 100644
index 0000000..1b796a2
Binary files /dev/null and b/cl_stream_mybatis/target/classes/META-INF/resources/upload/财报模板 - 副本.xlsx differ
diff --git a/cl_stream_mybatis/target/classes/application.properties b/cl_stream_mybatis/target/classes/application.properties
new file mode 100644
index 0000000..c32e8d5
--- /dev/null
+++ b/cl_stream_mybatis/target/classes/application.properties
@@ -0,0 +1,23 @@
+ #mysql
+spring.datasource.url=jdbc:mysql://172.18.1.152/field_normaliz?useUnicode=true&characterEncoding=utf-8
+spring.datasource.username=root
+spring.datasource.password=Bfd123!@#
+spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+
+#spring.datasource.url=jdbc:mysql://172.26.11.113:3306/intelligent_crawl?useUnicode=true&characterEncoding=utf-8
+#spring.datasource.username=root
+#spring.datasource.password=bfd123
+#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+
+#spring.datasource.url=jdbc:mysql://192.168.94.24:6446/intelligent_schema?useUnicode=true&characterEncoding=utf-8
+#spring.datasource.username=root
+#spring.datasource.password=baifendian
+#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+
+spring.mvc.view.suffix=.jsp
+spring.mvc.view.prefix=/WEB-INF/
+spring.mvc.static-path-pattern=/static/**
+
+
+#mybatis
+mybatis.mapperLocations=classpath:com/bfd/mf/mapper/*.xml
\ No newline at end of file
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/TestmybatisApplication.class b/cl_stream_mybatis/target/classes/com/bfd/mf/TestmybatisApplication.class
new file mode 100644
index 0000000..3e7661e
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/TestmybatisApplication.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/common/ExternalConnCache.class b/cl_stream_mybatis/target/classes/com/bfd/mf/common/ExternalConnCache.class
new file mode 100644
index 0000000..e853d2a
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/common/ExternalConnCache.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/common/PageBean.class b/cl_stream_mybatis/target/classes/com/bfd/mf/common/PageBean.class
new file mode 100644
index 0000000..e47280a
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/common/PageBean.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/config/XmlConfiguration.class b/cl_stream_mybatis/target/classes/com/bfd/mf/config/XmlConfiguration.class
new file mode 100644
index 0000000..4eaea4c
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/config/XmlConfiguration.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/controller/CompanyController.class b/cl_stream_mybatis/target/classes/com/bfd/mf/controller/CompanyController.class
new file mode 100644
index 0000000..97a8055
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/controller/CompanyController.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/entity/FieldInfo.class b/cl_stream_mybatis/target/classes/com/bfd/mf/entity/FieldInfo.class
new file mode 100644
index 0000000..3a3109c
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/entity/FieldInfo.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/entity/FieldNormaliz.class b/cl_stream_mybatis/target/classes/com/bfd/mf/entity/FieldNormaliz.class
new file mode 100644
index 0000000..9b182eb
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/entity/FieldNormaliz.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/entity/Record.class b/cl_stream_mybatis/target/classes/com/bfd/mf/entity/Record.class
new file mode 100644
index 0000000..82377d5
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/entity/Record.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/entity/StatInfo.class b/cl_stream_mybatis/target/classes/com/bfd/mf/entity/StatInfo.class
new file mode 100644
index 0000000..e9f3193
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/entity/StatInfo.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/es/ESHandler.class b/cl_stream_mybatis/target/classes/com/bfd/mf/es/ESHandler.class
new file mode 100644
index 0000000..d80620c
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/es/ESHandler.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/mapper/FieldNormalizMapper.class b/cl_stream_mybatis/target/classes/com/bfd/mf/mapper/FieldNormalizMapper.class
new file mode 100644
index 0000000..fdb7a7d
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/mapper/FieldNormalizMapper.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/mapper/StatMapper.class b/cl_stream_mybatis/target/classes/com/bfd/mf/mapper/StatMapper.class
new file mode 100644
index 0000000..ac915e1
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/mapper/StatMapper.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/mapper/fieldNormaliz.xml b/cl_stream_mybatis/target/classes/com/bfd/mf/mapper/fieldNormaliz.xml
new file mode 100644
index 0000000..875aff9
--- /dev/null
+++ b/cl_stream_mybatis/target/classes/com/bfd/mf/mapper/fieldNormaliz.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, kafka_server, es_server, bussiness_type,es_index_name,kafka_topic,groupid,project_name,is_semtiment_api,kafka_suffix_name
+
+
+
+
+
+
+
+ INSERT INTO
+ mf_kafka_info
+ (kafka_server,kafka_topic,groupid,es_server,bussiness_type,es_index_name,create_time,project_name,is_semtiment_api,kafka_suffix_name)
+ VALUES
+ (#{kafkaSerName}, #{kafkaName}, #{groupId}, #{esSerName}, #{bussinessType}, #{esSuffixNames}, now(), #{projectName}, #{isSemtimentApi}, #{kafkaSuffixName})
+
+
+
+ UPDATE
+ mf_kafka_info
+ SET
+ status = 1
+ WHERE
+ id = #{id}
+
+
+
+ DELETE FROM
+ mf_kafka_info
+ WHERE
+ id = #{id}
+
+
\ No newline at end of file
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/mapper/statInfo.xml b/cl_stream_mybatis/target/classes/com/bfd/mf/mapper/statInfo.xml
new file mode 100644
index 0000000..13bdb44
--- /dev/null
+++ b/cl_stream_mybatis/target/classes/com/bfd/mf/mapper/statInfo.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ check_day, kafka_name, kafka_rows, index_name, index_rows, diff_rows, add_time
+
+
+
+
+
+ INSERT INTO
+ mf_check_rows_list
+ (check_day,kafka_name,kafka_rows,index_name,index_rows,diff_rows,add_time)
+ VALUES
+ (#{checkDay}, #{kafkaName}, #{kafkaRows}, #{indexName}, #{indexRows}, #{diffRows}, now())
+
+
+
+ UPDATE
+ mf_check_rows_list
+ SET
+ kafka_rows = #{kafkaRows}, index_rows = #{indexRows} , diff_rows = #{diffRows}
+ WHERE
+ check_day = #{checkDay} and kafka_name = #{kafkaName} and index_name = #{indexName}
+
+
+
+
\ No newline at end of file
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/sendTask/SendTask.class b/cl_stream_mybatis/target/classes/com/bfd/mf/sendTask/SendTask.class
new file mode 100644
index 0000000..30739e3
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/sendTask/SendTask.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/sendTask/impl/SendTaskImpl.class b/cl_stream_mybatis/target/classes/com/bfd/mf/sendTask/impl/SendTaskImpl.class
new file mode 100644
index 0000000..767bc99
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/sendTask/impl/SendTaskImpl.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/service/FieldNormalizService.class b/cl_stream_mybatis/target/classes/com/bfd/mf/service/FieldNormalizService.class
new file mode 100644
index 0000000..f3a2e95
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/service/FieldNormalizService.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/service/MetaSearchService.class b/cl_stream_mybatis/target/classes/com/bfd/mf/service/MetaSearchService.class
new file mode 100644
index 0000000..4dfba44
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/service/MetaSearchService.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/service/StatService.class b/cl_stream_mybatis/target/classes/com/bfd/mf/service/StatService.class
new file mode 100644
index 0000000..d2b0a9d
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/service/StatService.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/service/impl/FieldNormalizServiceImpl.class b/cl_stream_mybatis/target/classes/com/bfd/mf/service/impl/FieldNormalizServiceImpl.class
new file mode 100644
index 0000000..ca59f1b
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/service/impl/FieldNormalizServiceImpl.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/service/impl/MetaSearchServiceImpl.class b/cl_stream_mybatis/target/classes/com/bfd/mf/service/impl/MetaSearchServiceImpl.class
new file mode 100644
index 0000000..c97a65d
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/service/impl/MetaSearchServiceImpl.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/service/impl/StatServiceImpl.class b/cl_stream_mybatis/target/classes/com/bfd/mf/service/impl/StatServiceImpl.class
new file mode 100644
index 0000000..f921206
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/service/impl/StatServiceImpl.class differ
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/spring/applicationContext.xml b/cl_stream_mybatis/target/classes/com/bfd/mf/spring/applicationContext.xml
new file mode 100644
index 0000000..1992f07
--- /dev/null
+++ b/cl_stream_mybatis/target/classes/com/bfd/mf/spring/applicationContext.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+ classpath:/datasources.properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cl_stream_mybatis/target/classes/com/bfd/mf/tools/ConnectionRmi.class b/cl_stream_mybatis/target/classes/com/bfd/mf/tools/ConnectionRmi.class
new file mode 100644
index 0000000..efd38ec
Binary files /dev/null and b/cl_stream_mybatis/target/classes/com/bfd/mf/tools/ConnectionRmi.class differ
diff --git a/cl_stream_mybatis/target/classes/datasources.properties b/cl_stream_mybatis/target/classes/datasources.properties
new file mode 100644
index 0000000..8ef3802
--- /dev/null
+++ b/cl_stream_mybatis/target/classes/datasources.properties
@@ -0,0 +1,4 @@
+sms_username=0c44a92f900c5
+sms_password=100817121800010094
+sms_url=http://www.xcapi.net:18018/xcapi/smsApiSend.do
+#
diff --git a/cl_stream_mybatis/target/classes/log4j.properties b/cl_stream_mybatis/target/classes/log4j.properties
new file mode 100644
index 0000000..5d6e92f
--- /dev/null
+++ b/cl_stream_mybatis/target/classes/log4j.properties
@@ -0,0 +1,18 @@
+log4j.rootLogger=DEBUG, error
+
+###### error appender definition #######
+log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.error.File=logs/sdkclient_error.log
+log4j.appender.error.Append=true
+log4j.appender.error.DatePattern='.'yyyy-MM-dd-HH
+log4j.appender.error.layout=org.apache.log4j.PatternLayout
+log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] %m%n
+
+#error only
+log4j.appender.error.filter.F1=org.apache.log4j.varia.LevelRangeFilter
+log4j.appender.error.filter.F1.LevelMin=ERROR
+log4j.appender.error.filter.F1.LevelMax=ERROR
+#
+log4j.appender.error.filter.F2=org.apache.log4j.varia.LevelMatchFilter
+log4j.appender.error.filter.F2.levelToMatch=WARN
+log4j.appender.error.filter.F2.acceptOnMatch=false
\ No newline at end of file
diff --git a/cl_stream_mybatis/target/classes/static/scripts/AjaxObject.js b/cl_stream_mybatis/target/classes/static/scripts/AjaxObject.js
new file mode 100644
index 0000000..d717d7a
--- /dev/null
+++ b/cl_stream_mybatis/target/classes/static/scripts/AjaxObject.js
@@ -0,0 +1,124 @@
+/*---------------------------- Ajax 请求对象 ----------------------------*/
+
+/**************************************************
+ -- 属性:
+ url: 请求地址;
+ method: 请求方法(GET 或者 POST),默认为 GET;
+ flag: 异步或者同步请求(true 或者 false),默认为 true;
+ info: 请求参数,默认为 null,注:只有当请求方法为 POST 时,才被使用;
+ //isEval: 是否调用 eval() 函数(true 或者 false),默认为为 false;
+ //callback: 是否设置回调函数(true或者false),默认为 true;
+ result: Ajax 请求的响应结果
+
+ -- 方法:
+ executeRequest: 执行 Ajax 请求的方法;
+ onReady: 绑定函数到 req.onreadystatechange 事件;
+ dealResult: 只提供了函数名称,用来设置用户自己的函数。注:在用户自己的函数中,用来处理 Ajax 请求的返回结果。
+**************************************************/
+function Ajax(url, method, flag, info) {
+ this.url = url;
+ this.method = method || "GET";
+ this.flag = (flag == false) ? false : (flag || true);
+ this.info = info || null;
+ //this.isEval = false;
+ //this.callback = true;
+ this.result = null;
+ var req = null; // req: XMLHttpRequest 对象;
+
+ // 实例化 req 对象
+ (function() {
+ if (window.XMLHttpRequest) {
+ req = new XMLHttpRequest();
+ if (req.overrideMimeType) {
+ //req.overrideMimeType("text/xml");
+ }
+ } else if (window.ActiveXObject) {
+ try {
+ req = new ActiveXObject("Msxml2.XMLHTTP");
+ } catch (e) {
+ try {
+ req = new ActiveXObject("Microsoft.XMLHTTP");
+ } catch (e) {
+ alert("该浏览器不支持 Ajax !");
+ req = null;
+ }
+ }
+
+ /* Msxml2.XMLHTTP.5.0, 4.0, 3.0 都可以,2.0 和 1.0 不可以
+ for (var i = 5; i; i--) {
+ try {
+ alert(i);
+ if (i != 2) {
+ req = new ActiveXObject("Msxml2.XMLHTTP." + i + ".0");
+ }
+
+ } catch (e) {
+ alert(e);
+ continue;
+ }
+ }*/
+ }
+ }());
+ this.executeRequest = function () {
+ if (!req || !this.url) {
+ alert("req 为空或者 url 为空!");
+ return;
+ }
+
+ if (this.url.indexOf("_id_=") != -1) {
+ // 不改变
+ } else {
+ // 保证每次请求的 URL 都不一样,防止缓存
+ var rand = "_id_=" + Math.random();
+ if (this.url.indexOf("?") != -1) {
+ this.url += "&" + rand;
+ } else {
+ this.url += "?" + rand;
+ }
+ }
+
+ /*// 判断,是否设置回调函数
+ if (this.callback) {
+ this.onReady(req);
+ }*/
+ // 设置回调函数
+ this.onReady(req, this);
+ // 初始化 req 对象
+ req.open(this.method, this.url, this.flag);
+
+ // 判断,是否为 POST 请求
+ if ((this.method.toUpperCase() == "POST") && this.info) {
+ req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+ }
+ // 向服务器端发送请求
+ req.send(this.info);
+
+ /*// 判断,是否执行 eval() 函数
+ if (this.isEval) {
+ eval(req.responseText);
+ }*/
+ };
+ this.onReady = function (req, ajax) {
+ req.onreadystatechange = function () {
+ if (req.readyState == 4) {
+ var result = req.responseText;
+ if (req.status == 200) {
+ ajax.result = result;
+ if (ajax.dealResult) {
+ ajax.dealResult(result);
+ } else {
+ var message = "请为 Ajax对象的 dealResult 设置回调函数!";
+ message += "\r\n例如:Ajax对象.dealResult=function(result) { Your Code }";
+ message += "\r\n其中,result 参数为服务器端返回的响应数据。";
+ //alert(message);
+ }
+ } else {
+ //alert("响应错误!");
+
+ //alert(result);
+ }
+ }
+ };
+ };
+ this.dealResult; // = function(result) { };
+}
diff --git a/cl_stream_mybatis/target/classes/static/scripts/jquery.TableExcel.js b/cl_stream_mybatis/target/classes/static/scripts/jquery.TableExcel.js
new file mode 100644
index 0000000..5c42ee3
--- /dev/null
+++ b/cl_stream_mybatis/target/classes/static/scripts/jquery.TableExcel.js
@@ -0,0 +1,203 @@
+/*
+生成EXCEL的数据格式定义:
+{
+ name: '',
+ widths: [xxx,…,xxx],
+ clazz" '',
+ style: '',
+ data: [
+ {
+ height: xxx,
+ clazz" '',
+ style: '',
+ cell: [
+ {
+ range: 'xxx.xxx',
+ text: '',
+ clazz: '',
+ style: ''
+},…{
+…
+}
+]
+ },…,{
+ }
+], …,[
+…
+]
+}
+*/
+(function($) {
+ $.fn.exportTableData = function(options) {
+ var opts = $.extend({}, $.fn.exportTableData.defaults, options);
+
+ var table = $(this[0]);
+ if (table.attr('nodeName').toUpperCase() != 'TABLE')
+ return null;
+
+ var result = {
+ widths: [],
+ data: []
+ };
+
+ readCSS(result, table);
+
+ var cols = table.find('col');
+ cols.each(function(i) {
+ result.widths[i] = $(this).width();
+ })
+
+ var trs = table.find('tr');
+ trs.each(function(row) {
+ var tr = $(this);
+
+ result.data[row] = {
+ height: tr.height(),
+ cell: []
+ };
+
+ readCSS(result.data[row], tr);
+
+ var tds = tr.find('td');
+ tds.each(function(col) {
+ var td = $(this);
+
+ var val = td.html();
+ if (opts.callback)
+ val = opts.callback(tr, td, row, col, val);
+
+ result.data[row].cell[col] = {
+ text: val
+ }
+
+ readRange(result.data[row].cell[col], td);
+ readCSS(result.data[row].cell[col], td);
+ })
+ })
+
+ return result;
+
+ function readRange(data, el) {
+ var rowSpan = el.attr('rowSpan');
+ var colSpan = el.attr('colSpan');
+
+ rowSpan = rowSpan ? parseInt(rowSpan) : 1;
+ colSpan = colSpan ? parseInt(colSpan) : 1;
+
+ if (rowSpan != 1 || colSpan != 1)
+ data.range = rowSpan + '.' + colSpan;
+ }
+
+ function readCSS(data, el) {
+ var clazz = el.attr('class');
+ if (clazz)
+ data.clazz = clazz;
+
+ var style = el.attr('style');
+ if (style)
+ data.style = style;
+ }
+ };
+
+ $.fn.exportTableData.defaults = {
+ callback: function(tr, td, row, col, val) {
+ return val;
+ }
+ };
+
+ $.fn.parseImportTableConfig = function(options) {
+ var opts = $.extend({}, $.fn.parseImportTableConfig.defaults, options);
+
+ var table = $(this[0]);
+ if (table.attr('nodeName').toUpperCase() != 'TABLE')
+ return null;
+
+ var result = '';
+
+ var trs = table.find('tr');
+ trs.each(function(row) {
+ var tr = $(this);
+
+ var tds = tr.find('td');
+ tds.each(function(col) {
+ var td = $(this);
+
+ if (opts.callback) {
+ if (opts.callback({
+ tr: tr,
+ td: td,
+ row: row,
+ col: col
+ }) == false)
+ return;
+ }
+
+ result += row + '.' + col + ' ';
+ })
+ })
+
+ return result;
+ };
+
+ $.fn.parseImportTableConfig.defaults = {
+ callback: function(params) {
+ return true;
+ }
+ };
+
+ $.fn.importTableData = function(data, options) {
+ var opts = $.extend({}, $.fn.importTableData.defaults, options);
+
+ var table = $(this[0]);
+ if (table.attr('nodeName').toUpperCase() != 'TABLE')
+ return null;
+
+ var importTds = [];
+
+ var trs = table.find('tr');
+ trs.each(function(row) {
+ var tr = $(this);
+
+ var tds = tr.find('td');
+ tds.each(function(col) {
+ var td = $(this);
+
+ var key = row + '.' + col;
+ if (typeof(data[key]) == 'undefined')
+ return;
+
+ var params = {
+ tr: tr,
+ td: td,
+ row: row,
+ col: col,
+ val: data[key]
+ };
+
+ if (opts.callback) {
+ if (opts.callback(params) == false)
+ return;
+ }
+
+ var val = params.val;
+ var orgVal = td.html();
+ if (val != null && val != orgVal) {
+ td.html(val);
+
+ importTds[importTds.length] = td;
+ }
+ })
+ })
+
+ if (importTds.length > 0 && opts.finish)
+ opts.finish(importTds);
+ };
+
+ $.fn.importTableData.defaults = {
+ callback: function(params) {
+ return true;
+ },
+ finish: function(tds) {
+ }
+ };
+})(jQuery);
\ No newline at end of file
diff --git a/cl_stream_mybatis/target/classes/static/scripts/jquery/jquery-1.3.2.min.js b/cl_stream_mybatis/target/classes/static/scripts/jquery/jquery-1.3.2.min.js
new file mode 100644
index 0000000..b1ae21d
--- /dev/null
+++ b/cl_stream_mybatis/target/classes/static/scripts/jquery/jquery-1.3.2.min.js
@@ -0,0 +1,19 @@
+/*
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,""]||!O.indexOf("
",""]||(!O.indexOf(" | ","
"]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
+/*
+ * Sizzle CSS Selector Engine - v0.9.3
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(Fa';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("").append(M.responseText.replace(/