master
Josha Prior 2022-08-08 18:36:46 +02:00
parent e56cd348f4
commit 04369ffe1e
No known key found for this signature in database
GPG Key ID: D6E47D3F6AA754C1
2912 changed files with 348083 additions and 0 deletions

BIN
GeoLite2-ASN.mmdb Normal file

Binary file not shown.

BIN
GeoLite2-City.mmdb Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 MiB

BIN
GeoLite2-Country.mmdb Normal file

Binary file not shown.

BIN
assets/ipviking.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 KiB

BIN
assets/netflow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
assets/norsecorp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 KiB

3
fake_alert.py Normal file
View File

@ -0,0 +1,3 @@
import httpx
httpx.post("http://127.0.0.1:9999", data='[{"capacity":1,"decisions":[{"duration":"24h","origin":"crowdsec","scenario":"crowdsecurity/http-bad-user-agent","scope":"Ip","type":"ban","value":"208.127.89.241"}],"events":[{"meta":[{"key":"ASNNumber","value":"19817"},{"key":"ASNOrg","value":"DSL Extreme"},{"key":"IsInEU","value":"false"},{"key":"IsoCode","value":"US"},{"key":"SourceRange","value":"208.127.0.0/16"},{"key":"datasource_path","value":"/var/log/nginx/access.log"},{"key":"datasource_type","value":"file"},{"key":"http_path","value":"/"},{"key":"http_status","value":"200"},{"key":"http_user_agent","value":"Nmap"},{"key":"http_verb","value":"GET"},{"key":"log_type","value":"http_access-log"},{"key":"service","value":"http"},{"key":"source_ip","value":"208.127.89.241"},{"key":"timestamp","value":"2022-08-07T13:33:42Z"}],"timestamp":"2022-08-07T13:33:42Z"},{"meta":[{"key":"ASNNumber","value":"19817"},{"key":"ASNOrg","value":"DSL Extreme"},{"key":"IsInEU","value":"false"},{"key":"IsoCode","value":"US"},{"key":"SourceRange","value":"208.127.0.0/16"},{"key":"datasource_path","value":"/var/log/nginx/access.log"},{"key":"datasource_type","value":"file"},{"key":"http_path","value":"/"},{"key":"http_status","value":"200"},{"key":"http_user_agent","value":"Nmap"},{"key":"http_verb","value":"GET"},{"key":"log_type","value":"http_access-log"},{"key":"service","value":"http"},{"key":"source_ip","value":"208.127.89.241"},{"key":"timestamp","value":"2022-08-07T13:33:42Z"}],"timestamp":"2022-08-07T13:33:42Z"}],"events_count":2,"labels":null,"leakspeed":"1m0s","machine_id":"cdc028b6ed9949249b893deb59b3b0acMt6eX9sLpNW0HLmG","message":"Ip 208.127.89.241 performed \'crowdsecurity/http-bad-user-agent\' (2 events over 24.646533ms) at 2022-08-07 13:33:42.761890255 +0000 UTC","remediation":true,"scenario":"crowdsecurity/http-bad-user-agent","scenario_hash":"51360ad64c9672e5d3ba9c1786e6fc380c8752871a977a5dddac0d08551aa66a","scenario_version":"0.7","simulated":false,"source":{"as_name":"DSL Extreme","as_number":"19817","cn":"US","ip":"208.127.89.241","latitude":33.9571,"longitude":-118.4041,"range":"208.127.0.0/16","scope":"Ip","value":"208.127.89.241"},"start_at":"2022-08-07T13:33:42.737244995Z","stop_at":"2022-08-07T13:33:42.761891528Z"}]')

14
go.mod Normal file
View File

@ -0,0 +1,14 @@
module nostalgia
go 1.17
require (
github.com/gorilla/mux v1.8.0
github.com/gorilla/websocket v1.5.0
github.com/oschwald/geoip2-golang v1.8.0
)
require (
github.com/oschwald/maxminddb-golang v1.10.0 // indirect
golang.org/x/sys v0.0.0-20220804214406-8e32c043e418 // indirect
)

25
go.sum Normal file
View File

@ -0,0 +1,25 @@
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/oschwald/geoip2-golang v1.8.0 h1:KfjYB8ojCEn/QLqsDU0AzrJ3R5Qa9vFlx3z6SLNcKTs=
github.com/oschwald/geoip2-golang v1.8.0/go.mod h1:R7bRvYjOeaoenAp9sKRS8GX5bJWcZ0laWO5+DauEktw=
github.com/oschwald/maxminddb-golang v1.10.0 h1:Xp1u0ZhqkSuopaKmk1WwHtjF0H9Hd9181uj2MQ5Vndg=
github.com/oschwald/maxminddb-golang v1.10.0/go.mod h1:Y2ELenReaLAZ0b400URyGwvYxHV1dLIxBuyOsyYjHK0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.3/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
golang.org/x/sys v0.0.0-20220804214406-8e32c043e418 h1:9vYwv7OjYaky/tlAeD7C4oC9EsPTlaFl1H2jS++V+ME=
golang.org/x/sys v0.0.0-20220804214406-8e32c043e418/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

61
ipviking/README.md Normal file
View File

@ -0,0 +1,61 @@
# 实时网络攻击地图 #
Realtime Attack Trackers
## Norse - IPViking Map 源码改进与解析 ##
Demo截图
![](doc/全球网络攻击截图.png)
Websocket实时通讯协议
Browser设置示例
wsHost: "ws://64.19.78.244:443/", //WebSocket API主机
psk: "18c989796c61724d4661b019f2779848dd69ae62", //Sec-WebSocket-Key
![](doc/实时通讯协议.png)
Server推送数据示例
{
"latitude": "30.58", //源纬度
"longitude": "114.27", //源经度
"countrycode": "CN", //源国家地区编码,参见 country-codes.csv
"country": "CN", //源国家,参见 country-codes.csv
"city": "Wuhan", //源城市
"org": "CHINANET HUBEI PROVINCE NETWORK", //源组织
"latitude2": "38.62", //目标纬度
"longitude2": "-90.35", //目标经度
"countrycode2": "US", //目标国家地区编码,参见 country-codes.csv
"country2": "US", //目标国家,参见 country-codes.csv
"city2": "Saint Louis", //目标城市
"type": "ipviking.honey", //仅标识地图类型,参见 [HoneyMap]("http://map.honeynet.org/")
"md5": "221.235.189.244", //源IP地址
"dport": "22", //攻击的端口参见port-names.tsv
"svc": "ssh", //攻击类型服务名称参见port-names.tsv
"zerg": "rush" //
}
![](doc/实时通讯响应数据.png)
## 参考 ##
1. [http://map.norsecorp.com/](http://map.norsecorp.com/)
2. [http://map.ipviking.com/](http://map.ipviking.com/)
3. [Norse](http://www.norse-corp.com/) 实时、清晰地清晰地了解全球网络攻击
4. [Norse 博客](http://blog.norsecorp.com/)
5. [HoneyMap](http://map.honeynet.org/)
6. [Whos Attacking Whom? Realtime Attack Trackers](http://krebsonsecurity.com/2015/01/whos-attacking-whom-realtime-attack-trackers/)
7. [Faux-3D Arcs](http://bl.ocks.org/dwtkns/4973620)

View File

@ -0,0 +1,256 @@
euname,modified,linked_country,iso3,iso2,grc,isonum,country,imperitive
,,Georgia,,,ABK,,阿布哈兹事实上的;货币 ,De Facto; Currency
AFGHANISTAN,,,AFG,AF,AFG,4,阿富汗,
,Added 26th October 2010,Finland,ALA,AX,ALA,248,奥兰群岛,Postal
Albania,,,ALB,AL,ALB,8,阿尔巴尼亚,
ALGERIA,,,DZA,DZ,ALG,12,阿尔及利亚,
,,United States of America,ASM,AS,AMS,16,美属萨摩亚,Geographical
ANDORRA,,,AND,AD,AND,20,安道尔,
ANGOLA,,,AGO,AO,ANG,24,安哥拉,
,,United Kingdom,AIA,AI,ANU,660,安圭拉,Geographical; Postal; Currency; Telephone
ANTIGUA AND BARBUDA,,,ATG,AG,ANT,28,安提瓜和巴布达,
Argentina,,,ARG,AR,ARG,32,阿根廷,
Armenia,,,ARM,AM,ARM,51,亚美尼亚,
ARUBA,,Netherlands,ABW,AW,ARU,533,阿鲁巴,Geographical; Postal; Currency; Telephone
Australia,,,AUS,AU,AST,36,澳大利亚,
Austria,,,AUT,AT,AUS,40,奥地利,
AZERBAIJAN,,,AZE,AZ,AZE,31,阿塞拜疆,
BAHAMAS,,,BHS,BS,BAH,44,巴哈马,
BAHRAIN,,,BHR,BH,BAR,48,巴林,
BANGLADESH,,,BGD,BD,BAN,50,孟加拉国,
Barbados,,,BRB,BB,BAB,52,巴巴多斯,
BELARUS,,,BLR,BY,BEO,112,白俄罗斯,
Belgium,,,BEL,BE,BEL,56,比利时,
BELIZE,,,BLZ,BZ,BEI,84,伯利兹,
Benin,,,BEN,BJ,BEN,204,贝宁,
,,United Kingdom,BMU,BM,BER,60,百慕达,Geographical; Postal; Currency; Telephone
BHUTAN,,,BTN,BT,BHU,64,不丹,
BOLIVIA,,,BOL,BO,BOL,68,玻利维亚,
,ISO codes added 28th Dec. 2010,Netherlands,BES,BQ,BON,535,博内尔岛,Geographical; Postal; Currency; Telephone
Bosnia-Herzegovina,,,BIH,BA,BOS,70,波斯尼亚 - 黑塞哥维那,
BOTSWANA,,,BWA,BW,BOT,72,博茨瓦纳,
Brazil,,,BRA,BR,BRA,76,巴西,
,,"United Kingdom, United States of America",IOT,IO,BIO,86,86,Geographical; Postal; Telephone
British Virgin Islands,,United Kingdom,VGB,VG,BVI,92,英属维尔京群岛,Geographical; Postal; Currency; Telephone
BRUNEI,,,BRN,BN,BRU,96,文莱达鲁萨兰国,
Bulgaria,,,BGR,BG,BUL,100,保加利亚,
BURKINA FASO,,,BFA,BF,BUK,854,布基纳法索,
BURUNDI,,,BDI,BI,BUU,108,布隆迪,
Cambodia,,,KHM,KH,CAM,116,柬埔寨,
Cameroon,,,CMR,CM,CAE,120,喀麦隆,
Canada,,,CAN,CA,CAN,124,加拿大,
CAPE VERDE,,,CPV,CV,CAP,132,佛得角群岛,
,,United Kingdom,CYM,KY,CAY,136,开曼群岛,Geographical; Postal; Currency; Telephone
"CENTRAL AFRICAN, REPUBLIC",,,CAF,CF,CEN,140,中非共和国,
Chad,,,TCD,TD,CHA,148,乍得,
CHILE,,,CHL,CL,CHI,152,智利,
CHINA,,,CHN,CN,CHN,156,中国(大陆),
,,Australia,CXR,CX,CHR,162,圣诞岛,Geographical
,,Australia,CCK,CC,COC,166,科科斯(基灵)群岛,Geographical
Colombia,,,COL,CO,CLO,170,哥伦比亚,
COMOROS,,,COM,KM,COM,174,科摩罗,
CONGO,,,COG,CG,CNG,178,刚果(布),
"CONGO, DEMOCRATIC REPUBLIC OF",,,ZAR,CD,ZAI,180,刚果(金),
COOK ISLANDS,,New Zealand,COK,CK,COO,184,库克群岛,Geographical; Postal; Telephone
Costa Rica,,,CRI,CR,COS,188,哥斯达黎加,
Croatia,,,HRV,HR,CRO,191,克罗地亚,
CUBA,,,CUB,CU,CUB,192,古巴,
,ISO codes added 28th Dec. 2010,Netherlands,CUW,CW,CUR,531,库拉索岛,Geographical; Postal; Currency; Telephone
Cyprus,,,CYP,CY,CYP,196,塞浦路斯,
Czech Republic,,,CZE,CZ,CZE,203,捷克共和国,
Denmark,,,DNK,DK,DEN,208,丹麦,
DJIBOUTI,,,DJI,DJ,DJI,262,吉布提,
DOMINIQUE,,,DMA,DM,DOI,212,多米尼加,
Dominican Republic,,,DOM,DO,DOM,214,多明尼加共和国,
EAST TIMOR,,,TLS,TL,ETI,626,东帝汶,
Ecuador,,,ECU,EC,ECU,218,厄瓜多尔,
EGYPT,,,EGY,EG,EGY,818,埃及,
El Salvador,,,SLV,SV,ELS,222,萨尔瓦多,
EQUATORIAL GUINEA,,,GNQ,GQ,EQA,226,赤道几内亚,
ERITREA,,,ERI,ER,ERI,232,厄立特里亚,
Estonia,,,EST,EE,EST,233,爱沙尼亚,
ETHIOPIA,,,ETH,ET,ETH,231,埃塞俄比亚,
FAROE ISLANDS,,,FRO,FO,FAE,234,法罗群岛,
,,United Kingdom,FLK,FK,FAL,238,福克兰群岛,Geographical; Postal; Currency; Telephone
FIJI,,,FJI,FJ,FIJ,242,斐济,
Finland,,,FIN,FI,FIN,246,芬兰,
France,,,FRA,FR,FRA,250,法国,
FRENCH GUYANA,,France,GUF,GF,FGU,254,法属圭亚那,Geographical; Telephone
FRENCH POLYNESIA,Corrected 13th November 2010,France,PYF,PF,FPO,258,法属波利尼西亚,Geographical; Currency; Telephone
,,France,ATF,TF,FST,260,法国南方的领土,Geographical; Postal; Telephone
GABON,,,GAB,GA,GAB,266,加蓬,
GAMBIA,,,GMB,GM,GAM,270,冈比亚,
GEORGIA,,,GEO,GE,GEO,268,格鲁吉亚,
Germany,,,DEU,DE,GER,276,德国,
Ghana,,,GHA,GH,GHA,288,加纳,
GIBRALTAR,,United Kingdom,GIB,GI,GIB,292,直布罗陀,Geographical; Postal; Currency; Telephone
Greece,,,GRC,GR,GRE,300,希腊,
GREENLAND,,Denmark,GRL,GL,GRN,304,格陵兰岛,Geographical; Postal; Telephone
GRENADA,,,GRD,GD,GRA,308,格林纳达,
GUADELOUPE,,France,GLP,GP,GUD,312,瓜德罗普岛,Geographical; Postal; Telephone
,,United States of America,GUM,GU,GUM,316,,Geographical
Guatemala,,,GTM,GT,GUA,320,危地马拉,
,,United Kingdom,GGY,GG,GUE,831,根西岛,Postal
Guinea,,,GIN,GN,GUI,324,几内亚,
GUINEA BISSAU,,,GNB,GW,GUB,624,几内亚比绍,
GUYANA,,,GUY,GY,GUY,328,圭亚那,
HAITI,,,HTI,HT,HAI,332,海地,
HOLY SEE (VATICAN CITY STATE),,,VAT,VA,VAT,336,罗马教廷,
Honduras,,,HND,HN,HON,340,洪都拉斯,
Hong Kong,,China,HKG,HK,HOK,344,香港,Postal; Currency; Telephone
Hungary,,,HUN,HU,HUN,348,匈牙利,
Iceland,,,ISL,IS,ICE,352,冰岛,
India,,,IND,IN,IND,356,印度,
INDONESIA,,,IDN,ID,INO,360,印度尼西亚,
"IRAN, ISLAMIC REPUBLIC OF",,,IRN,IR,IRA,364,伊朗,
IRAQ,,,IRQ,IQ,IRQ,368,伊拉克,
Ireland,,,IRL,IE,IRE,372,爱尔兰,
,,United Kingdom,IMN,IM,ISL,833,马恩岛,Postal
Israel,,,ISR,IL,ISR,376,以色列,
Italy,,,ITA,IT,ITA,380,意大利,
COTE D'IVOIRE,,,CIV,CI,IVO,384,象牙海岸,
Jamaica,,,JAM,JM,JAM,388,牙买加,
Japan,,,JPN,JP,JAP,392,日本,
JERSEY,,United Kingdom,JEY,JE,JER,832,泽西岛,Postal
JORDAN,,,JOR,JO,JOR,400,乔丹,
KAZAKHSTAN,,,KAZ,KZ,KAZ,398,哈萨克斯坦,
Kenya,,,KEN,KE,KEN,404,肯尼亚,
KIRIBATI,,,KIR,KI,KII,296,基里巴斯,
,,Serbia,,,KOS,,科索沃,Postal; Currency; Telephone
KUWAIT,,,KWT,KW,KUW,414,科威特,
KYRGYZSTAN,,,KGZ,KG,KIR,417,吉尔吉斯斯坦,
"LAOS, PEOPLE'S DEMOCRATIC REPUBLIC",,,LAO,LA,LAO,418,老挝,
Latvia,,,LVA,LV,LAT,428,拉脱维亚,
LEBANON,,,LBN,LB,LEB,422,黎巴嫩,
LESOTHO,,,LSO,LS,LES,426,莱索托,
LIBERIA,,,LBR,LR,LIR,430,利比里亚,
LIBYA,,,LBY,LY,LIB,434,利比亚,
LIECHTENSTEIN,,,LIE,LI,LIE,438,列支敦士登,
LITUANIA,,,LTU,LT,LIT,440,立陶宛,
Luxembourg,,,LUX,LU,LUX,442,卢森堡,
MACAO,,China,MAC,MO,MCA,446,澳门,Postal; Currency; Telephone
"MACEDONIA, FORMER YUGOSLAV REPUBLIC OF",,,MKD,MK,MCE,807,807,
MADAGASCAR,,,MDG,MG,MAD,450,马达加斯加,
MALAWI,,,MWI,MW,MAW,454,马拉维,
Malaysia,,,MYS,MY,MAA,458,马来西亚,
MALDIVES,,,MDV,MV,MAV,462,马尔代夫,
MALI,,,MLI,ML,MAI,466,马里,
Malta,,,MLT,MT,MAL,470,马耳他,
MARSHALL ISLANDS,,,MHL,MH,MAR,584,马绍尔群岛,
MARTINIQUE,,France,MTQ,MQ,MAN,474,马提尼克岛,Geographical; Postal; Telephone
Mauritania,,,MRT,MR,MAU,478,毛里塔尼亚,
MAURITIUS,,,MUS,MU,MAT,480,毛里求斯,
MAYOTTE,,France,MYT,YT,MAY,175,马约特岛,Geographical; Postal; Telephone
Mexico,,,MEX,MX,MEX,484,墨西哥,
"MICRONESIA, FEDERATED STATES OF",,,FSM,FM,MIC,583,密克罗尼西亚,
"MOLDOVA, REPUBLIC OF",,,MDA,MD,MOL,498,摩尔多瓦,
Monaco,,,MCO,MC,MON,492, ,
MONGOLIA,,,MNG,MN,MOG,496,蒙古,
Montenegro,,,MNE,ME,MOE,499,黑山,
,,United Kingdom,MSR,MS,MOT,500,蒙特塞拉特,Geographical; Postal; Currency; Telephone
Morocco,,,MAR,MA,MOR,504,摩洛哥,
Mozambique,,,MOZ,MZ,MOZ,508,莫桑比克,
Myanmar,,,MMR,MM,BUR,104,缅甸,
,,Azerbaijan,,,NAG,,纳戈尔诺 - 卡拉巴赫的,De Facto
NAMIBIA,,,NAM,NA,NAM,516,纳米比亚,
NAURU,,,NRU,NR,NAU,520,瑙鲁,
NEPAL,,,NPL,NP,NEP,524,尼泊尔,
Netherlands Antilles,,,ANT,AN,NAN,530,荷属安的列斯,Legacy
Netherlands,,,NLD,NL,NET,528,荷兰,
NEW CALEDONIA,,France,NCL,NC,NCA,540,新喀里多尼亚,Geographical; Postal; Currency; Telephone
NEW ZEALAND,,,NZL,NZ,NEW,554,新西兰,
Nicaragua,,,NIC,NI,NIC,558,尼加拉瓜,
Niger,,,NER,NE,NIE,562,尼日尔,
Nigeria,,,NGA,NG,NIG,566,尼日利亚,
NIUE,,,NIU,NU,NIU,570,纽埃,
,,Australia,NFK,NF,NOF,574,诺福克岛,Geographical; Telephone
"KOREA, PEOPLE'S DEMOCRATIC REPUBLIC OF",,,PRK,KP,NKO,408,北朝鲜,
,,Cyprus,,,NCY,,北塞浦路斯,De Facto; Postal; Currency; Telephone
,,United States of America,MNP,MP,NMI,580,北马里亚纳群岛,Geographical
Norway,,,NOR,NO,NOR,578,挪威,
OMAN,,,OMN,OM,OMA,512,阿曼,
Pakistan,,,PAK,PK,PAK,586,巴基斯坦,
PALAU,,,PLW,PW,PAL,585, ,
PALESTINIAN OCCUPIED TERRITORY,,Israel,PSE,PS,PLA,275,巴勒斯坦领土,
PANAMA,,,PAN,PA,PAN,591,巴拿马,
PAPUA NEW GUINEA,,,PNG,PG,PAP,598,巴布亚新几内亚,
PARAGUAY,,,PRY,PY,PAR,600,巴拉圭,
PERU,,,PER,PE,PER,604,秘鲁,
Philippines,,,PHL,PH,PHI,608,菲律宾,
,,United Kingdom,PCN,PN,PIT,612,皮特凯恩群岛,Geographical; Postal; Currency; Telephone
Poland,,,POL,PL,POL,616,波兰,
Portugal,,,PRT,PT,POR,620,葡萄牙,
PUERTO RICO,,United States,PRI,PR,PUE,630,波多黎各,Geographical
,,Somalia,,,PUN,,邦特兰的,De Facto
QATAR,,,QAT,QA,QAT,634,卡塔尔,
Romania,,,ROU,RO,ROM,642,罗马尼亚,
"RUSSIA, FEDERATION OF",,,RUS,RU,RUS,643,俄罗斯,
RUANDA,,,RWA,RW,RWA,646,卢旺达,
REUNION,,France,REU,RE,REU,638,留尼旺,Geographical; Postal; Currency; Telephone
,ISO codes added 28th Dec. 2010,The Netherlands,BES,BQ,SAB,535,沙巴,Geographical; Postal; Currency; Telephone
,,France,BLM,BL,STB,652,圣巴泰勒米,Geographical; Postal; Currency; Telephone
SAINT KITTS AND NEVIS,,,KNA,KN,STC,659,圣克里斯托弗和尼维斯,
,,United Kingdom,SHN,SH,STH,654,圣赫勒拿岛,Geographical; Postal; Currency; Telephone
SAINT LUCIA,,,LCA,LC,STL,662,圣卢西亚,
,,France,MAF,MF,STM,663,圣马丁,Geographical; Postal; Currency; Telephone
,,France,SPM,PM,SPM,666,圣皮埃尔和密克隆群岛,Geographical; Postal; Currency; Telephone
SAINT VINCENT AND THE GRENADINES,,,VCT,VC,STV,670,圣文森特和格林纳丁斯,
SAMOA,,,WSM,WS,WSM,882,萨摩亚,
SAINT MARINO,,,SMR,SM,SAN,674,圣马力诺,
SAO TOME AND PRINCIPE,,,STP,ST,SAO,678,圣多美和普林西比,
SUADI ARABIA,,,SAU,SA,SAU,682,沙特阿拉伯,
Senegal,,,SEN,SN,SEN,686,塞内加尔,
Serbia,,,SRB,RS,YUG,688,塞尔维亚,
SEYCHELLES,,,SYC,SC,SEY,690,塞舌尔,
SIERRA LEONE,,,SLE,SL,SIE,694,塞拉利昂,
SINGAPORE,,,SGP,SG,SIN,702,新加坡,
,ISO codes added 28th Dec. 2010,The Netherlands,BES,BQ,STE,535,圣尤斯特歇斯,Geographical; Postal; Currency; Telephone
,ISO codes added 28th Dec. 2010,The Netherlands,SXM,SX,SMA,534,圣马丁岛,Geographical; Postal; Currency; Telephone
Slovakia,,,SVK,SK,SLO,703,斯洛伐克,
Slovenia,,,SVN,SI,SLV,705,斯洛文尼亚,
SOLOMON ISLANDS,,,SLB,SB,SOL,90,所罗门群岛,
SOMALIA,,,SOM,SO,SOM,706,索马里,
,,Somalia,SOM,SO,SOA,706,索马里兰的,De Facto
South Africa,,,ZAF,ZA,SAF,710,南非,
,,United Kingdom,SGS,GS,SGE,239,南乔治亚岛与南夹心群岛,Geographical; Postal; Currency; Telephone
"KOREA, REPUBLIC OF",,,KOR,KR,SKO,418,418,
,,Georgia,,,SOS,,南奥塞梯事实上的;货币 ,De Facto; Currency
SOUTH SUDAN,Added 22nd February 2011. ISO codes added 18th August 2011.,,SSD,SS,SSU,,南苏丹,
Spain,,,ESP,ES,SPA,724,西班牙,
SRI LANKA,,,LKA,LK,SRI,144,斯里兰卡,
Sudan,,,SDN,SD,SUD,736,苏丹,
SURINAM,,,SUR,SR,SUR,740,苏里南,
SWAZILAND,,,SWZ,SZ,SWA,748,斯威士兰,
Sweden,,,SWE,SE,SWE,752,瑞典,
Switzerland,,,CHE,CH,SWI,756,瑞士,
"SYRIA, ARAB REPUBLIC",,,SYR,SY,SYR,760,叙利亚,
TAIWAN,,China,TWN,TW,TAI,158,台湾,
TAJIKISTAN,,,TJK,TJ,TAJ,762,塔吉克斯坦,
"TANZANIA, UNITED RE UBLIC OF",,,TZA,TZ,TAN,834,坦桑尼亚,
THAILAND,,,THA,TH,THA,764,泰国,
TOGO,,,TGO,TG,TOG,768,多哥,
,,New Zealand,TKL,TK,TOK,772,托克劳群岛,Geographical; Postal; Telephone
TONGA,,,TON,TO,TON,776, ,
,,Moldova,,,TRA,,德涅斯特的,De Facto
TRINIDAD AND TOBAGO,,,TTO,TT,TRI,780,特立尼达和多巴哥,
Tunisia,,,TUN,TN,TUN,788,突尼斯,
Turkey,,,TUR,TR,TUR,792,土耳其,
TURKMENISTAN,,,TKM,TM,TUK,795,土库曼斯坦,
,,United Kingdom,TCA,TC,TUC,796,特克斯和凯科斯群岛,Geographical; Postal; Currency; Telephone
TUVALU,,,TUV,TV,TUV,798,图瓦卢,
Uganda,,,UGA,UG,UGA,800,乌干达,
Ukraine,,,UKR,UA,UKR,804,乌克兰,
United Arab Emirates,,,ARE,AE,UAE,784,阿拉伯联合酋长国,
United Kingdom,,,GBR,GB,UNI,826,英国,
United States,,,USA,US,USA,840,美国,
US VIRGIN ISLANDS,,United States of America,VIR,VI,VIR,850,美属维尔京群岛,Geographical
URUGUAY,,,URY,UY,URU,858,乌拉圭,
UZBEKISTAN,,,UZB,UZ,UZB,860,乌兹别克斯坦,
VANUATU,,,VUT,VU,VAN,548,瓦努阿图,
VENEZUELA,,,VEN,VE,VEN,862,委内瑞拉,
VIETNAM,,,VNM,VN,VIE,704,越南,
,,France,WLF,WF,WAL,876,瓦利斯和富图纳群岛,Geographical; Postal; Currency; Telephone
WESTERN SAHARA,,Morocco,ESH,EH,WSA,732,西撒哈拉,Political
Yemen,,,YEM,YE,YEM,887,也门,
ZAMBIA,,,ZMB,ZM,ZAM,894,赞比亚,
ZIMBABWE,,,ZWE,ZW,ZIM,716,津巴布韦,
1 euname modified linked_country iso3 iso2 grc isonum country imperitive
2 Georgia ABK 阿布哈兹事实上的;货币 De Facto; Currency
3 AFGHANISTAN AFG AF AFG 4 阿富汗
4 Added 26th October 2010 Finland ALA AX ALA 248 奥兰群岛 Postal
5 Albania ALB AL ALB 8 阿尔巴尼亚
6 ALGERIA DZA DZ ALG 12 阿尔及利亚
7 United States of America ASM AS AMS 16 美属萨摩亚 Geographical
8 ANDORRA AND AD AND 20 安道尔
9 ANGOLA AGO AO ANG 24 安哥拉
10 United Kingdom AIA AI ANU 660 安圭拉 Geographical; Postal; Currency; Telephone
11 ANTIGUA AND BARBUDA ATG AG ANT 28 安提瓜和巴布达
12 Argentina ARG AR ARG 32 阿根廷
13 Armenia ARM AM ARM 51 亚美尼亚
14 ARUBA Netherlands ABW AW ARU 533 阿鲁巴 Geographical; Postal; Currency; Telephone
15 Australia AUS AU AST 36 澳大利亚
16 Austria AUT AT AUS 40 奥地利
17 AZERBAIJAN AZE AZ AZE 31 阿塞拜疆
18 BAHAMAS BHS BS BAH 44 巴哈马
19 BAHRAIN BHR BH BAR 48 巴林
20 BANGLADESH BGD BD BAN 50 孟加拉国
21 Barbados BRB BB BAB 52 巴巴多斯
22 BELARUS BLR BY BEO 112 白俄罗斯
23 Belgium BEL BE BEL 56 比利时
24 BELIZE BLZ BZ BEI 84 伯利兹
25 Benin BEN BJ BEN 204 贝宁
26 United Kingdom BMU BM BER 60 百慕达 Geographical; Postal; Currency; Telephone
27 BHUTAN BTN BT BHU 64 不丹
28 BOLIVIA BOL BO BOL 68 玻利维亚
29 ISO codes added 28th Dec. 2010 Netherlands BES BQ BON 535 博内尔岛 Geographical; Postal; Currency; Telephone
30 Bosnia-Herzegovina BIH BA BOS 70 波斯尼亚 - 黑塞哥维那
31 BOTSWANA BWA BW BOT 72 博茨瓦纳
32 Brazil BRA BR BRA 76 巴西
33 United Kingdom, United States of America IOT IO BIO 86 86 Geographical; Postal; Telephone
34 British Virgin Islands United Kingdom VGB VG BVI 92 英属维尔京群岛 Geographical; Postal; Currency; Telephone
35 BRUNEI BRN BN BRU 96 文莱达鲁萨兰国
36 Bulgaria BGR BG BUL 100 保加利亚
37 BURKINA FASO BFA BF BUK 854 布基纳法索
38 BURUNDI BDI BI BUU 108 布隆迪
39 Cambodia KHM KH CAM 116 柬埔寨
40 Cameroon CMR CM CAE 120 喀麦隆
41 Canada CAN CA CAN 124 加拿大
42 CAPE VERDE CPV CV CAP 132 佛得角群岛
43 United Kingdom CYM KY CAY 136 开曼群岛 Geographical; Postal; Currency; Telephone
44 CENTRAL AFRICAN, REPUBLIC CAF CF CEN 140 中非共和国
45 Chad TCD TD CHA 148 乍得
46 CHILE CHL CL CHI 152 智利
47 CHINA CHN CN CHN 156 中国(大陆)
48 Australia CXR CX CHR 162 圣诞岛 Geographical
49 Australia CCK CC COC 166 科科斯(基灵)群岛 Geographical
50 Colombia COL CO CLO 170 哥伦比亚
51 COMOROS COM KM COM 174 科摩罗
52 CONGO COG CG CNG 178 刚果(布)
53 CONGO, DEMOCRATIC REPUBLIC OF ZAR CD ZAI 180 刚果(金)
54 COOK ISLANDS New Zealand COK CK COO 184 库克群岛 Geographical; Postal; Telephone
55 Costa Rica CRI CR COS 188 哥斯达黎加
56 Croatia HRV HR CRO 191 克罗地亚
57 CUBA CUB CU CUB 192 古巴
58 ISO codes added 28th Dec. 2010 Netherlands CUW CW CUR 531 库拉索岛 Geographical; Postal; Currency; Telephone
59 Cyprus CYP CY CYP 196 塞浦路斯
60 Czech Republic CZE CZ CZE 203 捷克共和国
61 Denmark DNK DK DEN 208 丹麦
62 DJIBOUTI DJI DJ DJI 262 吉布提
63 DOMINIQUE DMA DM DOI 212 多米尼加
64 Dominican Republic DOM DO DOM 214 多明尼加共和国
65 EAST TIMOR TLS TL ETI 626 东帝汶
66 Ecuador ECU EC ECU 218 厄瓜多尔
67 EGYPT EGY EG EGY 818 埃及
68 El Salvador SLV SV ELS 222 萨尔瓦多
69 EQUATORIAL GUINEA GNQ GQ EQA 226 赤道几内亚
70 ERITREA ERI ER ERI 232 厄立特里亚
71 Estonia EST EE EST 233 爱沙尼亚
72 ETHIOPIA ETH ET ETH 231 埃塞俄比亚
73 FAROE ISLANDS FRO FO FAE 234 法罗群岛
74 United Kingdom FLK FK FAL 238 福克兰群岛 Geographical; Postal; Currency; Telephone
75 FIJI FJI FJ FIJ 242 斐济
76 Finland FIN FI FIN 246 芬兰
77 France FRA FR FRA 250 法国
78 FRENCH GUYANA France GUF GF FGU 254 法属圭亚那 Geographical; Telephone
79 FRENCH POLYNESIA Corrected 13th November 2010 France PYF PF FPO 258 法属波利尼西亚 Geographical; Currency; Telephone
80 France ATF TF FST 260 法国南方的领土 Geographical; Postal; Telephone
81 GABON GAB GA GAB 266 加蓬
82 GAMBIA GMB GM GAM 270 冈比亚
83 GEORGIA GEO GE GEO 268 格鲁吉亚
84 Germany DEU DE GER 276 德国
85 Ghana GHA GH GHA 288 加纳
86 GIBRALTAR United Kingdom GIB GI GIB 292 直布罗陀 Geographical; Postal; Currency; Telephone
87 Greece GRC GR GRE 300 希腊
88 GREENLAND Denmark GRL GL GRN 304 格陵兰岛 Geographical; Postal; Telephone
89 GRENADA GRD GD GRA 308 格林纳达
90 GUADELOUPE France GLP GP GUD 312 瓜德罗普岛 Geographical; Postal; Telephone
91 United States of America GUM GU GUM 316 Geographical
92 Guatemala GTM GT GUA 320 危地马拉
93 United Kingdom GGY GG GUE 831 根西岛 Postal
94 Guinea GIN GN GUI 324 几内亚
95 GUINEA BISSAU GNB GW GUB 624 几内亚比绍
96 GUYANA GUY GY GUY 328 圭亚那
97 HAITI HTI HT HAI 332 海地
98 HOLY SEE (VATICAN CITY STATE) VAT VA VAT 336 罗马教廷
99 Honduras HND HN HON 340 洪都拉斯
100 Hong Kong China HKG HK HOK 344 香港 Postal; Currency; Telephone
101 Hungary HUN HU HUN 348 匈牙利
102 Iceland ISL IS ICE 352 冰岛
103 India IND IN IND 356 印度
104 INDONESIA IDN ID INO 360 印度尼西亚
105 IRAN, ISLAMIC REPUBLIC OF IRN IR IRA 364 伊朗
106 IRAQ IRQ IQ IRQ 368 伊拉克
107 Ireland IRL IE IRE 372 爱尔兰
108 United Kingdom IMN IM ISL 833 马恩岛 Postal
109 Israel ISR IL ISR 376 以色列
110 Italy ITA IT ITA 380 意大利
111 COTE D'IVOIRE CIV CI IVO 384 象牙海岸
112 Jamaica JAM JM JAM 388 牙买加
113 Japan JPN JP JAP 392 日本
114 JERSEY United Kingdom JEY JE JER 832 泽西岛 Postal
115 JORDAN JOR JO JOR 400 乔丹
116 KAZAKHSTAN KAZ KZ KAZ 398 哈萨克斯坦
117 Kenya KEN KE KEN 404 肯尼亚
118 KIRIBATI KIR KI KII 296 基里巴斯
119 Serbia KOS 科索沃 Postal; Currency; Telephone
120 KUWAIT KWT KW KUW 414 科威特
121 KYRGYZSTAN KGZ KG KIR 417 吉尔吉斯斯坦
122 LAOS, PEOPLE'S DEMOCRATIC REPUBLIC LAO LA LAO 418 老挝
123 Latvia LVA LV LAT 428 拉脱维亚
124 LEBANON LBN LB LEB 422 黎巴嫩
125 LESOTHO LSO LS LES 426 莱索托
126 LIBERIA LBR LR LIR 430 利比里亚
127 LIBYA LBY LY LIB 434 利比亚
128 LIECHTENSTEIN LIE LI LIE 438 列支敦士登
129 LITUANIA LTU LT LIT 440 立陶宛
130 Luxembourg LUX LU LUX 442 卢森堡
131 MACAO China MAC MO MCA 446 澳门 Postal; Currency; Telephone
132 MACEDONIA, FORMER YUGOSLAV REPUBLIC OF MKD MK MCE 807 807
133 MADAGASCAR MDG MG MAD 450 马达加斯加
134 MALAWI MWI MW MAW 454 马拉维
135 Malaysia MYS MY MAA 458 马来西亚
136 MALDIVES MDV MV MAV 462 马尔代夫
137 MALI MLI ML MAI 466 马里
138 Malta MLT MT MAL 470 马耳他
139 MARSHALL ISLANDS MHL MH MAR 584 马绍尔群岛
140 MARTINIQUE France MTQ MQ MAN 474 马提尼克岛 Geographical; Postal; Telephone
141 Mauritania MRT MR MAU 478 毛里塔尼亚
142 MAURITIUS MUS MU MAT 480 毛里求斯
143 MAYOTTE France MYT YT MAY 175 马约特岛 Geographical; Postal; Telephone
144 Mexico MEX MX MEX 484 墨西哥
145 MICRONESIA, FEDERATED STATES OF FSM FM MIC 583 密克罗尼西亚
146 MOLDOVA, REPUBLIC OF MDA MD MOL 498 摩尔多瓦
147 Monaco MCO MC MON 492
148 MONGOLIA MNG MN MOG 496 蒙古
149 Montenegro MNE ME MOE 499 黑山
150 United Kingdom MSR MS MOT 500 蒙特塞拉特 Geographical; Postal; Currency; Telephone
151 Morocco MAR MA MOR 504 摩洛哥
152 Mozambique MOZ MZ MOZ 508 莫桑比克
153 Myanmar MMR MM BUR 104 缅甸
154 Azerbaijan NAG 纳戈尔诺 - 卡拉巴赫的 De Facto
155 NAMIBIA NAM NA NAM 516 纳米比亚
156 NAURU NRU NR NAU 520 瑙鲁
157 NEPAL NPL NP NEP 524 尼泊尔
158 Netherlands Antilles ANT AN NAN 530 荷属安的列斯 Legacy
159 Netherlands NLD NL NET 528 荷兰
160 NEW CALEDONIA France NCL NC NCA 540 新喀里多尼亚 Geographical; Postal; Currency; Telephone
161 NEW ZEALAND NZL NZ NEW 554 新西兰
162 Nicaragua NIC NI NIC 558 尼加拉瓜
163 Niger NER NE NIE 562 尼日尔
164 Nigeria NGA NG NIG 566 尼日利亚
165 NIUE NIU NU NIU 570 纽埃
166 Australia NFK NF NOF 574 诺福克岛 Geographical; Telephone
167 KOREA, PEOPLE'S DEMOCRATIC REPUBLIC OF PRK KP NKO 408 北朝鲜
168 Cyprus NCY 北塞浦路斯 De Facto; Postal; Currency; Telephone
169 United States of America MNP MP NMI 580 北马里亚纳群岛 Geographical
170 Norway NOR NO NOR 578 挪威
171 OMAN OMN OM OMA 512 阿曼
172 Pakistan PAK PK PAK 586 巴基斯坦
173 PALAU PLW PW PAL 585
174 PALESTINIAN OCCUPIED TERRITORY Israel PSE PS PLA 275 巴勒斯坦领土
175 PANAMA PAN PA PAN 591 巴拿马
176 PAPUA NEW GUINEA PNG PG PAP 598 巴布亚新几内亚
177 PARAGUAY PRY PY PAR 600 巴拉圭
178 PERU PER PE PER 604 秘鲁
179 Philippines PHL PH PHI 608 菲律宾
180 United Kingdom PCN PN PIT 612 皮特凯恩群岛 Geographical; Postal; Currency; Telephone
181 Poland POL PL POL 616 波兰
182 Portugal PRT PT POR 620 葡萄牙
183 PUERTO RICO United States PRI PR PUE 630 波多黎各 Geographical
184 Somalia PUN 邦特兰的 De Facto
185 QATAR QAT QA QAT 634 卡塔尔
186 Romania ROU RO ROM 642 罗马尼亚
187 RUSSIA, FEDERATION OF RUS RU RUS 643 俄罗斯
188 RUANDA RWA RW RWA 646 卢旺达
189 REUNION France REU RE REU 638 留尼旺 Geographical; Postal; Currency; Telephone
190 ISO codes added 28th Dec. 2010 The Netherlands BES BQ SAB 535 沙巴 Geographical; Postal; Currency; Telephone
191 France BLM BL STB 652 圣巴泰勒米 Geographical; Postal; Currency; Telephone
192 SAINT KITTS AND NEVIS KNA KN STC 659 圣克里斯托弗和尼维斯
193 United Kingdom SHN SH STH 654 圣赫勒拿岛 Geographical; Postal; Currency; Telephone
194 SAINT LUCIA LCA LC STL 662 圣卢西亚
195 France MAF MF STM 663 圣马丁 Geographical; Postal; Currency; Telephone
196 France SPM PM SPM 666 圣皮埃尔和密克隆群岛 Geographical; Postal; Currency; Telephone
197 SAINT VINCENT AND THE GRENADINES VCT VC STV 670 圣文森特和格林纳丁斯
198 SAMOA WSM WS WSM 882 萨摩亚
199 SAINT MARINO SMR SM SAN 674 圣马力诺
200 SAO TOME AND PRINCIPE STP ST SAO 678 圣多美和普林西比
201 SUADI ARABIA SAU SA SAU 682 沙特阿拉伯
202 Senegal SEN SN SEN 686 塞内加尔
203 Serbia SRB RS YUG 688 塞尔维亚
204 SEYCHELLES SYC SC SEY 690 塞舌尔
205 SIERRA LEONE SLE SL SIE 694 塞拉利昂
206 SINGAPORE SGP SG SIN 702 新加坡
207 ISO codes added 28th Dec. 2010 The Netherlands BES BQ STE 535 圣尤斯特歇斯 Geographical; Postal; Currency; Telephone
208 ISO codes added 28th Dec. 2010 The Netherlands SXM SX SMA 534 圣马丁岛 Geographical; Postal; Currency; Telephone
209 Slovakia SVK SK SLO 703 斯洛伐克
210 Slovenia SVN SI SLV 705 斯洛文尼亚
211 SOLOMON ISLANDS SLB SB SOL 90 所罗门群岛
212 SOMALIA SOM SO SOM 706 索马里
213 Somalia SOM SO SOA 706 索马里兰的 De Facto
214 South Africa ZAF ZA SAF 710 南非
215 United Kingdom SGS GS SGE 239 南乔治亚岛与南夹心群岛 Geographical; Postal; Currency; Telephone
216 KOREA, REPUBLIC OF KOR KR SKO 418 418
217 Georgia SOS 南奥塞梯事实上的;货币 De Facto; Currency
218 SOUTH SUDAN Added 22nd February 2011. ISO codes added 18th August 2011. SSD SS SSU 南苏丹
219 Spain ESP ES SPA 724 西班牙
220 SRI LANKA LKA LK SRI 144 斯里兰卡
221 Sudan SDN SD SUD 736 苏丹
222 SURINAM SUR SR SUR 740 苏里南
223 SWAZILAND SWZ SZ SWA 748 斯威士兰
224 Sweden SWE SE SWE 752 瑞典
225 Switzerland CHE CH SWI 756 瑞士
226 SYRIA, ARAB REPUBLIC SYR SY SYR 760 叙利亚
227 TAIWAN China TWN TW TAI 158 台湾
228 TAJIKISTAN TJK TJ TAJ 762 塔吉克斯坦
229 TANZANIA, UNITED RE UBLIC OF TZA TZ TAN 834 坦桑尼亚
230 THAILAND THA TH THA 764 泰国
231 TOGO TGO TG TOG 768 多哥
232 New Zealand TKL TK TOK 772 托克劳群岛 Geographical; Postal; Telephone
233 TONGA TON TO TON 776
234 Moldova TRA 德涅斯特的 De Facto
235 TRINIDAD AND TOBAGO TTO TT TRI 780 特立尼达和多巴哥
236 Tunisia TUN TN TUN 788 突尼斯
237 Turkey TUR TR TUR 792 土耳其
238 TURKMENISTAN TKM TM TUK 795 土库曼斯坦
239 United Kingdom TCA TC TUC 796 特克斯和凯科斯群岛 Geographical; Postal; Currency; Telephone
240 TUVALU TUV TV TUV 798 图瓦卢
241 Uganda UGA UG UGA 800 乌干达
242 Ukraine UKR UA UKR 804 乌克兰
243 United Arab Emirates ARE AE UAE 784 阿拉伯联合酋长国
244 United Kingdom GBR GB UNI 826 英国
245 United States USA US USA 840 美国
246 US VIRGIN ISLANDS United States of America VIR VI VIR 850 美属维尔京群岛 Geographical
247 URUGUAY URY UY URU 858 乌拉圭
248 UZBEKISTAN UZB UZ UZB 860 乌兹别克斯坦
249 VANUATU VUT VU VAN 548 瓦努阿图
250 VENEZUELA VEN VE VEN 862 委内瑞拉
251 VIETNAM VNM VN VIE 704 越南
252 France WLF WF WAL 876 瓦利斯和富图纳群岛 Geographical; Postal; Currency; Telephone
253 WESTERN SAHARA Morocco ESH EH WSA 732 西撒哈拉 Political
254 Yemen YEM YE YEM 887 也门
255 ZAMBIA ZMB ZM ZAM 894 赞比亚
256 ZIMBABWE ZWE ZW ZIM 716 津巴布韦

6064
ipviking/data/port-names.tsv Normal file

File diff suppressed because it is too large Load Diff

329274
ipviking/data/readme-world.json Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
ipviking/images/flags16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

186
ipviking/index.html Normal file
View File

@ -0,0 +1,186 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>网络攻击地图</title>
<link type="image/x-icon" rel="shortcut icon" href="https://avatars3.githubusercontent.com/u/4074517?v=3&s=40" />
<link rel="stylesheet" type="text/css" href="./styles/ipviking.css">
<link rel="stylesheet" type="text/css" href="./styles/flags.css">
<link rel="stylesheet" type="text/css" href="./styles/fonts.css">
</head>
<body class="f16">
<div id="loading">
<h1>loading...</h1>
</div>
<div id="content">
<!--
<a href="http://map.e5195.com">
<img id="logo" src="images/norse-white.png" alt="Norse Corp">
</a>
-->
<div id="info"></div>
<div class="data box top-left gray-bg">
<a href="#" class="toggle" data-target="#left-table-container">
<div class="table-header">
<h1>
<span class="icon-open"></span>
攻击源
</h1>
</div>
</a>
<div id="left-table-container" class="table-container">
<table id="left-data">
<colgroup>
<col class="bar-col" span="1" />
<col class="total-count" span="1" />
<col class="data-label-small" span="1" />
<col class="data-label" span="1" />
</colgroup>
<tr>
<th></th>
<th><span class="icon-number"></span></th>
<th><span class="icon-country"></span></th>
<th>国家</th>
</tr>
</table>
</div>
</div>
<div class="data box top-right gray-bg">
<a href="#" class="toggle" data-target="#right-table-container">
<div class="table-header">
<h1>
<span class="icon-open"></span>
攻击目标 </h1>
</div>
</a>
<div id="right-table-container" class="table-container">
<table id="right-data">
<colgroup>
<col class="bar-col" span="1">
<col class="total-count" span="1">
<col class="data-label-small" span="1">
<col class="data-label" span="1">
</colgroup>
<tr>
<th></th>
<th><span class="icon-number"></span></th>
<th class="flag-col"><span class="icon-country"></span></th>
<th>国家</th>
</tr>
</table>
</div>
</div>
<div class="data bottom-right box gray-bg">
<a href="#" class="toggle" data-target="#bottom-right-table-container">
<div class="table-header">
<h1 class="table-header">
<span class="icon-open"></span>
攻击类型
</h1>
</div>
</a>
<div id="bottom-right-table-container">
<table id="bottom-right-data">
<colgroup>
<col class="bar-col" span="1">
<col class="total-count" span="1">
<col class="data-label-small" span="1">
<col class="data-label" span="1">
<col class="port-label" span="1">
</colgroup>
<tr>
<th></th>
<th><span class="icon-number"></span></th>
<th><span class="icon-threattype"></span></th>
<th>服务</th>
<th>端口</th>
</tr>
</table>
</div>
</div>
<div id="console" class="box gray-bg">
<a href="#" class="toggle" data-target="#console-table-container">
<div class="table-header">
<h1 class="table-header">
<span class="icon-open"></span>
攻击列表
</h1>
</div>
</a>
<div id="console-table-container">
<table id="events-data">
<colgroup class="second-level">
<col class="timestamp-col" span="1">
<col class="attacker-org-col left-border" span="1">
<col class="location-col" span="1">
<col class="attacker-ip-col" span="1">
<col class="location-col left-border" span="1">
<col class="service-col left-border" span="1">
<col class="port-col" span="1">
</colgroup>
<tr class="first-level">
<th></th>
<th colspan="3" class="attacker">攻击者</th>
<th class="target">被攻击者</th>
<th colspan="2">攻击</th>
</tr>
<tr class="second-level">
<th>时间</th>
<th>组织</th>
<th>位置</th>
<th>IP</th>
<th>位置</th>
<th>类型</th>
<th>端口</th>
</tr>
</table>
</div>
</div>
<div class="info-controls">
<div class="gray-bg information info-btn">
<span class="info-text icon-info"></span>
</div>
<div data-paused="false" class="gray-bg controls">
<span class="icon-pause play-pause"></span>
</div>
</div>
</div>
<div id="drawer">
<!-- <div id="nav-bottom-corner"></div> -->
<div id="drawer-content" class="blue-bg">
<div id="drawer-inner">
<div id="drawer-left">
<div id="legend-container"></div>
<footer></footer>
</div>
</div>
</div>
<!-- 提示消息 -->
<div id="message-panel" class="data box">
<div class="table-header gray-bg">
<h3>Message Dialog</h3>
</div>
<div id="message-container" class="black-solid table-container">
<span id="message-text"></span>
<button id="close-button" class="gray-bg" onClick="hideMessage();">Close</button>
</div>
</div>
</div>
<script type="text/javascript" src="./scripts/d3.v3.min.js"></script>
<script type="text/javascript" src="./scripts/queue.v1.min.js"></script>
<script type="text/javascript" src="./scripts/topojson.v1.min.js"></script>
<!--<script type="text/javascript" src="http://map.ipviking.com/ipviking.js"></script>-->
<script type="text/javascript" src="./scripts/ipviking.js"></script>
<script type="text/javascript" src="./scripts/presentations.js"></script>
</body>
</html>

1
ipviking/params.json Normal file
View File

@ -0,0 +1 @@
{"name":"tingge.github.io","tagline":"","body":"# tingge.github.io\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}

5
ipviking/scripts/d3.v3.min.js vendored Normal file

File diff suppressed because one or more lines are too long

2094
ipviking/scripts/ipviking.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,16 @@
;"use strict";
(function(IPViking) {
// Toggle table size settings
var state = false;
var states = [{topTableRows: 16, portTableRows: 15, consoleTableRows: 16},
{topTableRows: 10, portTableRows: 8, consoleTableRows: 8}];
d3.select("body").on("keydown", function() {
d3.event.preventDefault;
if (d3.event.keyCode == 83) {
for (var setting in states[state + 0]) {
IPViking.settings[setting] = states[state + 0][setting];
}
state = !state;
}
});
})(window.IPViking);

1
ipviking/scripts/queue.v1.min.js vendored Normal file
View File

@ -0,0 +1 @@
!function(){function n(n){function e(){for(;i=a<c.length&&n>p;){var u=a++,e=c[u],o=t.call(e,1);o.push(l(u)),++p,e[0].apply(null,o)}}function l(n){return function(u,t){--p,null==s&&(null!=u?(s=u,a=d=0/0,o()):(c[n]=t,--d?i||e():o()))}}function o(){null!=s?m(s):f?m(s,c):m.apply(null,[s].concat(c))}var r,i,f,c=[],a=0,p=0,d=0,s=null,m=u;return n||(n=1/0),r={defer:function(){return s||(c.push(arguments),++d,e()),r},await:function(n){return m=n,f=!1,d||o(),r},awaitAll:function(n){return m=n,f=!0,d||o(),r}}}function u(){}var t=[].slice;n.version="1.0.7","function"==typeof define&&define.amd?define(function(){return n}):"object"==typeof module&&module.exports?module.exports=n:this.queue=n}();

1
ipviking/scripts/topojson.v1.min.js vendored Normal file

File diff suppressed because one or more lines are too long

249
ipviking/styles/flags.css Normal file
View File

@ -0,0 +1,249 @@
.f16 .flag{display:inline-block;height:16px;width:16px;vertical-align:text-top;line-height:16px;background:url(../images/flags/flags16.png) no-repeat;}
.f16 ._African_Union{background-position:0 -16px;}
.f16 ._Arab_League{background-position:0 -32px;}
.f16 ._ASEAN{background-position:0 -48px;}
.f16 ._CARICOM{background-position:0 -64px;}
.f16 ._CIS{background-position:0 -80px;}
.f16 ._Commonwealth{background-position:0 -96px;}
.f16 ._England{background-position:0 -112px;}
.f16 ._European_Union, .f16 .eu{background-position:0 -128px;}
.f16 ._Islamic_Conference{background-position:0 -144px;}
.f16 ._Kosovo{background-position:0 -160px;}
.f16 ._NATO{background-position:0 -176px;}
.f16 ._Northern_Cyprus{background-position:0 -192px;}
.f16 ._Northern_Ireland{background-position:0 -208px;}
.f16 ._Olimpic_Movement{background-position:0 -224px;}
.f16 ._OPEC{background-position:0 -240px;}
.f16 ._Red_Cross{background-position:0 -256px;}
.f16 ._Scotland{background-position:0 -272px;}
.f16 ._Somaliland{background-position:0 -288px;}
.f16 ._Tibet{background-position:0 -304px;}
.f16 ._United_Nations{background-position:0 -320px;}
.f16 ._Wales{background-position:0 -336px;}
.f16 .ad{background-position:0 -352px;}
.f16 .ae{background-position:0 -368px;}
.f16 .af{background-position:0 -384px;}
.f16 .ag{background-position:0 -400px;}
.f16 .ai{background-position:0 -416px;}
.f16 .al{background-position:0 -432px;}
.f16 .am{background-position:0 -448px;}
.f16 .ao{background-position:0 -464px;}
.f16 .aq{background-position:0 -480px;}
.f16 .ar{background-position:0 -496px;}
.f16 .as{background-position:0 -512px;}
.f16 .at{background-position:0 -528px;}
.f16 .au{background-position:0 -544px;}
.f16 .aw{background-position:0 -560px;}
.f16 .ax{background-position:0 -576px;}
.f16 .az{background-position:0 -592px;}
.f16 .ba{background-position:0 -608px;}
.f16 .bb{background-position:0 -624px;}
.f16 .bd{background-position:0 -640px;}
.f16 .be{background-position:0 -656px;}
.f16 .bf{background-position:0 -672px;}
.f16 .bg{background-position:0 -688px;}
.f16 .bh{background-position:0 -704px;}
.f16 .bi{background-position:0 -720px;}
.f16 .bj{background-position:0 -736px;}
.f16 .bm{background-position:0 -752px;}
.f16 .bn{background-position:0 -768px;}
.f16 .bo{background-position:0 -784px;}
.f16 .br{background-position:0 -800px;}
.f16 .bs{background-position:0 -816px;}
.f16 .bt{background-position:0 -832px;}
.f16 .bw{background-position:0 -848px;}
.f16 .by{background-position:0 -864px;}
.f16 .bz{background-position:0 -880px;}
.f16 .ca{background-position:0 -896px;}
.f16 .cg{background-position:0 -912px;}
.f16 .cf{background-position:0 -928px;}
.f16 .cd{background-position:0 -944px;}
.f16 .ch{background-position:0 -960px;}
.f16 .ci{background-position:0 -976px;}
.f16 .ck{background-position:0 -992px;}
.f16 .cl{background-position:0 -1008px;}
.f16 .cm{background-position:0 -1024px;}
.f16 .cn{background-position:0 -1040px;}
.f16 .co{background-position:0 -1056px;}
.f16 .cr{background-position:0 -1072px;}
.f16 .cu{background-position:0 -1088px;}
.f16 .cv{background-position:0 -1104px;}
.f16 .cy{background-position:0 -1120px;}
.f16 .cz{background-position:0 -1136px;}
.f16 .de{background-position:0 -1152px;}
.f16 .dj{background-position:0 -1168px;}
.f16 .dk{background-position:0 -1184px;}
.f16 .dm{background-position:0 -1200px;}
.f16 .do{background-position:0 -1216px;}
.f16 .dz{background-position:0 -1232px;}
.f16 .ec{background-position:0 -1248px;}
.f16 .ee{background-position:0 -1264px;}
.f16 .eg{background-position:0 -1280px;}
.f16 .eh{background-position:0 -1296px;}
.f16 .er{background-position:0 -1312px;}
.f16 .es{background-position:0 -1328px;}
.f16 .et{background-position:0 -1344px;}
.f16 .fi{background-position:0 -1360px;}
.f16 .fj{background-position:0 -1376px;}
.f16 .fm{background-position:0 -1392px;}
.f16 .fo{background-position:0 -1408px;}
.f16 .fr{background-position:0 -1424px;} .f16 .bl, .f16 .cp, .f16 .mf, .f16 .yt{background-position:0 -1424px;}
.f16 .ga{background-position:0 -1440px;}
.f16 .gb{background-position:0 -1456px;} .f16 .sh{background-position:0 -1456px;}
.f16 .gd{background-position:0 -1472px;}
.f16 .ge{background-position:0 -1488px;}
.f16 .gg{background-position:0 -1504px;}
.f16 .gh{background-position:0 -1520px;}
.f16 .gi{background-position:0 -1536px;}
.f16 .gl{background-position:0 -1552px;}
.f16 .gm{background-position:0 -1568px;}
.f16 .gn{background-position:0 -1584px;}
.f16 .gp{background-position:0 -1600px;}
.f16 .gq{background-position:0 -1616px;}
.f16 .gr{background-position:0 -1632px;}
.f16 .gt{background-position:0 -1648px;}
.f16 .gu{background-position:0 -1664px;}
.f16 .gw{background-position:0 -1680px;}
.f16 .gy{background-position:0 -1696px;}
.f16 .hk{background-position:0 -1712px;}
.f16 .hn{background-position:0 -1728px;}
.f16 .hr{background-position:0 -1744px;}
.f16 .ht{background-position:0 -1760px;}
.f16 .hu{background-position:0 -1776px;}
.f16 .id{background-position:0 -1792px;}
.f16 .mc{background-position:0 -1792px;}
.f16 .ie{background-position:0 -1808px;}
.f16 .il{background-position:0 -1824px;}
.f16 .im{background-position:0 -1840px;}
.f16 .in{background-position:0 -1856px;}
.f16 .iq{background-position:0 -1872px;}
.f16 .ir{background-position:0 -1888px;}
.f16 .is{background-position:0 -1904px;}
.f16 .it{background-position:0 -1920px;}
.f16 .je{background-position:0 -1936px;}
.f16 .jm{background-position:0 -1952px;}
.f16 .jo{background-position:0 -1968px;}
.f16 .jp{background-position:0 -1984px;}
.f16 .ke{background-position:0 -2000px;}
.f16 .kg{background-position:0 -2016px;}
.f16 .kh{background-position:0 -2032px;}
.f16 .ki{background-position:0 -2048px;}
.f16 .km{background-position:0 -2064px;}
.f16 .kn{background-position:0 -2080px;}
.f16 .kp{background-position:0 -2096px;}
.f16 .kr{background-position:0 -2112px;}
.f16 .kw{background-position:0 -2128px;}
.f16 .ky{background-position:0 -2144px;}
.f16 .kz{background-position:0 -2160px;}
.f16 .la{background-position:0 -2176px;}
.f16 .lb{background-position:0 -2192px;}
.f16 .lc{background-position:0 -2208px;}
.f16 .li{background-position:0 -2224px;}
.f16 .lk{background-position:0 -2240px;}
.f16 .lr{background-position:0 -2256px;}
.f16 .ls{background-position:0 -2272px;}
.f16 .lt{background-position:0 -2288px;}
.f16 .lu{background-position:0 -2304px;}
.f16 .lv{background-position:0 -2320px;}
.f16 .ly{background-position:0 -2336px;}
.f16 .ma{background-position:0 -2352px;}
.f16 .md{background-position:0 -2368px;}
.f16 .me{background-position:0 -2384px;}
.f16 .mg{background-position:0 -2400px;}
.f16 .mh{background-position:0 -2416px;}
.f16 .mk{background-position:0 -2432px;}
.f16 .ml{background-position:0 -2448px;}
.f16 .mm{background-position:0 -2464px;}
.f16 .mn{background-position:0 -2480px;}
.f16 .mo{background-position:0 -2496px;}
.f16 .mq{background-position:0 -2512px;}
.f16 .mr{background-position:0 -2528px;}
.f16 .ms{background-position:0 -2544px;}
.f16 .mt{background-position:0 -2560px;}
.f16 .mu{background-position:0 -2576px;}
.f16 .mv{background-position:0 -2592px;}
.f16 .mw{background-position:0 -2608px;}
.f16 .mx{background-position:0 -2624px;}
.f16 .my{background-position:0 -2640px;}
.f16 .mz{background-position:0 -2656px;}
.f16 .na{background-position:0 -2672px;}
.f16 .nc{background-position:0 -2688px;}
.f16 .ne{background-position:0 -2704px;}
.f16 .ng{background-position:0 -2720px;}
.f16 .ni{background-position:0 -2736px;}
.f16 .nl{background-position:0 -2752px;} .f16 .bq{background-position:0 -2752px;}
.f16 .no{background-position:0 -2768px;} .f16 .bv, .f16 .nq, .f16 .sj{background-position:0 -2768px;}
.f16 .np{background-position:0 -2784px;}
.f16 .nr{background-position:0 -2800px;}
.f16 .nz{background-position:0 -2816px;}
.f16 .om{background-position:0 -2832px;}
.f16 .pa{background-position:0 -2848px;}
.f16 .pe{background-position:0 -2864px;}
.f16 .pf{background-position:0 -2880px;}
.f16 .pg{background-position:0 -2896px;}
.f16 .ph{background-position:0 -2912px;}
.f16 .pk{background-position:0 -2928px;}
.f16 .pl{background-position:0 -2944px;}
.f16 .pr{background-position:0 -2960px;}
.f16 .ps{background-position:0 -2976px;}
.f16 .pt{background-position:0 -2992px;}
.f16 .pw{background-position:0 -3008px;}
.f16 .py{background-position:0 -3024px;}
.f16 .qa{background-position:0 -3040px;}
.f16 .re{background-position:0 -3056px;}
.f16 .ro{background-position:0 -3072px;}
.f16 .rs{background-position:0 -3088px;}
.f16 .ru{background-position:0 -3104px;}
.f16 .rw{background-position:0 -3120px;}
.f16 .sa{background-position:0 -3136px;}
.f16 .sb{background-position:0 -3152px;}
.f16 .sc{background-position:0 -3168px;}
.f16 .sd{background-position:0 -3184px;}
.f16 .se{background-position:0 -3200px;}
.f16 .sg{background-position:0 -3216px;}
.f16 .si{background-position:0 -3232px;}
.f16 .sk{background-position:0 -3248px;}
.f16 .sl{background-position:0 -3264px;}
.f16 .sm{background-position:0 -3280px;}
.f16 .sn{background-position:0 -3296px;}
.f16 .so{background-position:0 -3312px;}
.f16 .sr{background-position:0 -3328px;}
.f16 .st{background-position:0 -3344px;}
.f16 .sv{background-position:0 -3360px;}
.f16 .sy{background-position:0 -3376px;}
.f16 .sz{background-position:0 -3392px;}
.f16 .tc{background-position:0 -3408px;}
.f16 .td{background-position:0 -3424px;}
.f16 .tg{background-position:0 -3440px;}
.f16 .th{background-position:0 -3456px;}
.f16 .tj{background-position:0 -3472px;}
.f16 .tl{background-position:0 -3488px;}
.f16 .tm{background-position:0 -3504px;}
.f16 .tn{background-position:0 -3520px;}
.f16 .to{background-position:0 -3536px;}
.f16 .tr{background-position:0 -3552px;}
.f16 .tt{background-position:0 -3568px;}
.f16 .tv{background-position:0 -3584px;}
.f16 .tw{background-position:0 -3600px;}
.f16 .tz{background-position:0 -3616px;}
.f16 .ua{background-position:0 -3632px;}
.f16 .ug{background-position:0 -3648px;}
.f16 .us{background-position:0 -3664px;}
.f16 .uy{background-position:0 -3680px;}
.f16 .uz{background-position:0 -3696px;}
.f16 .va{background-position:0 -3712px;}
.f16 .vc{background-position:0 -3728px;}
.f16 .ve{background-position:0 -3744px;}
.f16 .vg{background-position:0 -3760px;}
.f16 .vi{background-position:0 -3776px;}
.f16 .vn{background-position:0 -3792px;}
.f16 .vu{background-position:0 -3808px;}
.f16 .ws{background-position:0 -3824px;}
.f16 .ye{background-position:0 -3840px;}
.f16 .za{background-position:0 -3856px;}
.f16 .zm{background-position:0 -3872px;}
.f16 .zw{background-position:0 -3888px;}
.f16 .sx{background-position:0 -3904px;}
.f16 .cw{background-position:0 -3920px;}
.f16 .ss{background-position:0 -3936px;}
.f16 .o1{background-position:0 -3952px;}

94
ipviking/styles/fonts.css Normal file
View File

@ -0,0 +1,94 @@
@font-face {
font-family: 'Norse-Mapcons';
src:url('fonts/Norse-Mapcons.eot?m6qc03');
src:url('fonts/Norse-Mapcons.eot?#iefixm6qc03') format('embedded-opentype'),
url('../fonts/Norse-Mapcons.woff?m6qc03') format('woff'),
url('fonts/Norse-Mapcons.ttf?m6qc03') format('truetype'),
url('fonts/Norse-Mapcons.svg?m6qc03#Norse-Mapcons') format('svg');
font-weight: normal;
font-style: normal;
}
[class^="icon-"], [class*=" icon-"] {
font-family: 'Norse-Mapcons';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-country:before {
content: "\61";
}
.icon-number:before {
content: "\62";
}
.icon-military:before {
content: "\64";
}
.icon-close:before {
content: "\63";
}
.icon-play:before {
content: "\65";
}
.icon-pause:before {
content: "\66";
}
.icon-info:before {
content: "\67";
}
.icon-open:before {
content: "\68";
}
.icon-closed:before {
content: "\69";
}
.icon-threattype:before {
content: "\6a";
}
.icon-down:before {
content: "\6b";
}
.icon-one:before {
content: "\6c";
}
.icon-five:before {
content: "\6d";
}
.icon-ten:before {
content: "\6e";
}
.icon-twentyfive:before {
content: "\6f";
}
.icon-onehundred:before {
content: "\70";
}
.icon-twohundred:before {
content: "\71";
}
.icon-fivehundred:before {
content: "\72";
}
.icon-googleplus:before {
content: "\73";
}
.icon-facebook:before {
content: "\74";
}
.icon-linkedin:before {
content: "\75";
}
.icon-youtube:before {
content: "\76";
}
.icon-twitter:before {
content: "\77";
}

View File

@ -0,0 +1,722 @@
/*@import url(http://fonts.useso.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800);
@import url(http://fonts.useso.com/css?family=Oswald:400,300,700);*/
@import url(opensans.css);
@import url(oswald.css);
body {
overflow: hidden;
margin: 0;
color: white;
background: url(../images/DarkNoiseBackground.png);
font-family: "Oswald", "Open Sans", sans-serif;
}
ol {
list-style-type: none;
margin-left: -2.0em;
}
td {
font-family: "Open Sans", "Oswald", sans-serif;
font-weight: 400;
}
th {
font-weight: normal;
}
h1, h2, h3, h4 {
font-family: "Oswald", "Open Sans", sans-serif;
}
#drawer {
position: absolute;
top: 48px;
right: 6px;
z-index: 100;
width: 180px;
}
.blue-bg {
background: rgb(0, 78, 176);
background: transparent\9;
background-color: rgb(0, 78, 176, 0.95);
border-radius: 4px;
border: 1px solid rgba(0, 78, 176);
border: 1px solid rgba(0, 78, 176, 0.95);
-webkit-background-clip: padding-box; /* for Safari */
background-clip: padding-box; /* for IE9+, Firefox 4+, Opera, Chrome */
}
#drawer-content {
height: 100%;
float: right;
overflow: hidden;
}
#drawer-inner a,
#drawer-content.info-btn {
text-decoration: underline;
color: #fff;
}
#drawer-inner a:hover,
#drawer-content .info-btn:hover {
color: rgb(20, 180, 255);
}
#drawer-inner {
padding: 1em;
width: 158px;
font-size: 11px;
font-family: "Open Sans", "Oswald", sans-serif;
font-weight: 300;
line-height: 13px;
}
#drawer-content h1 {
margin-top: 5px;
font-size: 24px;
font-family: "Open Sans", "Oswald", sans-serif;
font-weight: 300;
line-height: 30px;
}
#drawer-left {
float: left;
width: 100%;
}
.table-ref {
font-family: "Oswald", "Open Sans", serif;
font-weight: bold;
text-transform: uppercase;
font-size: 0.9em;
}
/*
This has awful performance...
#drawer-content .footer {
width: 480px;
position: absolute;
bottom: 0;
}
*/
nav {
/* background-color: rgba(0, 140, 240, 0.95);*/
background: linear-gradient(rgba(0, 138, 255, 0.5),
rgba(0, 150, 255, 0.5)),
rgba(0, 0, 0, 0.8);
float: left;
width: 40px;
border-bottom-left-radius: 6px;
}
nav ul {
list-style-type: none;
margin: 0 0 0 -2.4em;
}
nav ul li {
margin: 0.2em;
font-size: 1.4em;
text-align: center;
}
nav ul li a {
display: block;
}
nav ul li a:visited, a:link {
color: white;
text-decoration: none;
}
nav ul li a:hover {
color: white;
border-top-color: white;
text-decoration: underline;
}
#content {
width: 100%;
opacity: 0;
}
#display-label-container {
width: 100%;
text-align: center;
position: absolute;
z-index: 6;
text-shadow: -1px -1px 0 #000,
1px -1px 0 #000,
-1px 1px 0 #000,
1px 1px 0 #000;
}
#top-line {
width: 100%;
background-color: rgb(1, 73, 128);
height: 5px;
}
#logo {
position: absolute;
left: 6px;
top: 12px;
width: 180px;
z-index: 100;
}
#loading {
position: absolute;
right: 4em;
bottom: 1em;
}
#info {
position: absolute;
right: 20em;
top: 1em;
}
.overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
z-index: 4;
}
.icon {
width: 1em;
}
.buffer {
visibility: hidden;
}
.shadow {
-moz-box-shadow: 0 0 5px 5px rgb(40, 50, 80);
-webkit-box-shadow: 0 0 5px 5px rgb(40, 50, 80);
box-shadow: 0 0 5px 5px rgb(40, 50, 80);
}
.box {
position: absolute;
z-index: 20;
}
.gray-bg {
background: rgb(51,51,51);
background: transparent\9;
background: rgba(51,51,51,0.5);
border-radius: 4px;
border: 1px solid rgba(51, 51, 51);
-webkit-background-clip: padding-box; /* for Safari */
background-clip: padding-box; /* for IE9+, Firefox 4+, Opera, Chrome */
}
.black-solid {
background-color: rgba(10, 20, 30, 0.8);
border: thin solid rgb(0, 180, 240);
border-bottom-right-radius: 6px;
border-bottom-left-radius: 6px;
-webkit-box-shadow: 0 0 3px 1px rgb(0, 120, 240);
-moz-box-shadow: 0 0 3px 1px rgb(0, 120, 240);
box-shadow: 0 0 3px 1px rgb(0, 120, 240);
}
.table-container {
z-index: -2;
}
/*
.data table th {
color: rgb(45, 255, 254);
}
*/
.data {
width: 180px;
}
.data table tr {
line-height: 18px;
text-align: left;
}
.data table td,
.data table th {
font-size: 12px;
}
.data table th {
font-size: 13px;
font-family: "Open Sans Bold", "Oswald", sans-serif;
font-weight: 700;
text-transform: uppercase;
}
.data table th [class^="icon-"], .data table th [class*=" icon-"] {
font-size: 16px;
}
.data table td span.numeric {
font-size: 10px;
font-family: "Open Sans Light", "Oswald", sans-serif;
font-weight: 300;
}
.data .flag {
margin-right: 20px;
height: 1.0em;
}
.data .numeric {
margin-right: 10px;
}
.data .icon-number {
margin-right: 8px;
}
.data colgroup .bar-col { width: 0; }
.data colgroup .total-count { width: 2.6em; }
.data colgroup .data-label-small { width: 1.6em; }
.data colgroup .data-label { width: 10em; }
.data colgroup .port-label { width: 2.8em; }
.data tr.row:hover {
background-color: #0c2b4a;
}
.data table .bar {
position: absolute;
height: 20px;
margin-top: -10px;
background-color: #0c2b4a;
z-index: -1;
border-radius: 3px;
max-width: 98%;
}
.data table tr td:nth-child(2),
.data table tr th:nth-child(2) {
text-align: right;
padding-right: 0.4em;
}
.port-circle {
font-size: 1.8em;
text-align: center;
line-height: 0.5em;
}
.table-header {
text-align: center;
color: rgb(40, 255, 255);
text-transform: uppercase;
border-top-right-radius: 6px;
border-top-left-radius: 6px;
margin-bottom: 4px;
}
.table-header h1 {
margin: 0.4em 0.8em;
font-family: "Open Sans", "Oswald", sans-serif;
font-weight: 400;
font-size: 16px;
text-align: left;
}
.top-left {
top: 72px;
left: 6px;
}
.bottom {
bottom: 6px;
}
.top-right {
right: 6px;
top: 48px;
}
.bottom-right {
bottom: 50px;
right: 6px;
}
.info-controls {
position: absolute;
top: 6px;
right: 6px;
z-index: 20;
}
.info-controls .icon-close {
font-size: 14px;
}
.info-controls > div {
float: right;
width: 86px;
height: 34px;
}
.info-controls > div:first-child {
margin-left: 6px;
}
.controls {
display: block;
text-align: center;
list-style: none;
padding: 0;
margin: 0;
}
.controls:hover {
color: #00a6ff;
cursor: pointer;
}
.controls > span {
display: inline-block;
line-height: 34px;
}
.information {
display: block;
text-align: center;
list-style: none;
padding: 0;
margin: 0;
}
.information:hover {
color: #00a6ff;
cursor: pointer;
}
.information > span {
line-height: 34px;
display: inline-block;
}
.world {
stroke: #555;
stroke-linejoin: round;
}
.tick {
stroke: white;
}
/* The data console */
#console {
left: 6px;
bottom: 32px;
pointer-events: none;
padding: 6px 12px;
}
#console .table-header h1 {
margin: 0;
min-width: 156px;
}
#console .table-header {
margin-bottom: 0;
}
#console table {
font-size: 10px;
font-family: "Open Sans Normal", "Oswald", sans-serif;
font-weight: 400;
line-height: 12px;
border-collapse: collapse;
}
#console table td,
#console table th {
text-shadow: none;
padding-right: 20px;
}
#console table td:last-child,
#console table th:last-child {
padding-right: 0;
}
#console table tr.first-level {
font-size: 12px;
font-family: "Open Sans Bold", "Oswald", sans-serif;
font-weight: 700;
line-height: 16px;
text-align: left;
text-transform: uppercase;
}
#console table tr.second-level {
font-size: 10px;
font-family: "Open Sans Bold", "Oswald", sans-serif;
line-height: 12px;
text-align: left;
padding-bottom: 0.2em;
font-weight: light;
text-transform: uppercase;
}
#console table tr.second-level th {
font-weight: light !important;
}
#console colgroup col.left-border {
padding-left: 0.5em;
}
#console table span.overflow {
display: block;
overflow: hidden;
text-overflow: ellipsis;
height: 1.4em;
}
#console colgroup col.timestamp-col { width: 11em; }
#console colgroup col.location-col { width: 130px; }
#console colgroup col.attacker-org-col { width: 160px; }
#console colgroup col.attacker-ip-col { width: 98px; }
#console colgroup col.service-col { width: 70px; }
#console colgroup col.port-col { width: 30px; }
a.toggle {
color: rgb(55, 116, 172);
pointer-events: all;
}
#rate-graph {
z-index: 20;
position: absolute;
left: 6px;
bottom: 6px;
width: 100%;
height: 20px;
}
#drawer {
display: none;
}
#drawer .social-media {
list-style: none;
padding: 0;
margin: 0;
}
#drawer .social-media li {
display: inline-block;
margin-right: 35px;
}
#drawer .social-media li:last-child {
margin-right: 0;
}
#drawer .social-media a {
text-decoration: none;
font-size: 11px;
font-family: "Open Sans Bold", "Oswald", sans-serif;
font-weight: 700;
}
/* TODO -- sort these */
.attacker {
color: rgb(214, 39, 40);
}
.target {
color: rgb(31, 119, 180);
}
/* LEGEND */
#legend-container {
float: left;
margin-top: 5px;
width: 100%;
background: rgb(0,84,190); /* Old browsers */
background: -moz-linear-gradient(left, rgba(0,84,190,1) 0px, rgba(0,84,190,1) 3px, rgba(0,78,176,1) 3px, rgba(0,78,176,1) 3px, rgba(0,78,176,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right top, color-stop(0,rgba(0,84,190,1)), color-stop(3px,rgba(0,84,190,1)), color-stop(3px,rgba(0,78,176,1)), color-stop(3px,rgba(0,78,176,1)), color-stop(100%,rgba(0,78,176,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left, rgba(0,84,190,1) 0px,rgba(0,84,190,1) 3px,rgba(0,78,176,1) 3px,rgba(0,78,176,1) 3px,rgba(0,78,176,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left, rgba(0,84,190,1) 0px,rgba(0,84,190,1) 3px,rgba(0,78,176,1) 3px,rgba(0,78,176,1) 3px,rgba(0,78,176,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(left, rgba(0,84,190,1) 0px,rgba(0,84,190,1) 3px,rgba(0,78,176,1) 3px,rgba(0,78,176,1) 3px,rgba(0,78,176,1) 100%); /* IE10+ */
background: linear-gradient(to right, rgba(0,84,190,1) 0px,rgba(0,84,190,1) 3px,rgba(0,78,176,1) 3px,rgba(0,78,176,1) 3px,rgba(0,78,176,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0054be', endColorstr='#004eb0',GradientType=1 ); /* IE6-9 */
}
#legend-container h4 {
font-size: 9px;
margin: 0 0 20px;
font-family: "Open Sans Bold", "Oswald", sans-serif;
font-weight: 400;
line-height: 11px;
text-align: left;
}
#legend > div {
margin: auto 0.5%;
text-align: left;
}
#legend ul {
list-style-type: none;
margin-left: -2em;
}
#legend .clusters ul > li {
display: inline-block;
margin: auto 0.8em;
}
#legend .country-colors ul > li {
display: inline-block;
margin: auto 0.2em;
width: 1.9em;
}
#particle-legend > p {
margin-left: 40px;
}
#origin-legend > p {
margin-left: 15px;
}
#country-legend > p {
margin-left: 5px;
}
#origin-legend p span {
margin-right: 4px;
}
#origin-legend p .icon-one {
font-size: 20px;
padding-top: 12px;
}
#origin-legend p .icon-ten {
padding-top: 8px;
font-size: 24px;
}
#origin-legend p .icon-twohundred {
font-size: 32px;
}
h4 > span {
margin-right: 5px;
float: left;
margin-top: 1px;
}
h4 > p {
display: inline-block;
width: 85%;
margin: 0;
}
#country-legend p [class^="icon-"], #country-legend p [class*=" icon-"] {
font-size: 20px;
}
footer {
width: 30%;
float: right;
font-size: 8px;
font-family: "Open Sans", "Oswald", sans-serif;
line-height: 10px;
margin-top: 10px;
}
#events-data tr td:first-child {
white-space: nowrap;
}
#message-panel {
display: none;
position: absolute;
margin-left: auto;
margin-right: auto;
left: 0;
right: 0;
top: 300px;
width: 600px;
}
#message-container {
position: relative;
min-height: 100px;
padding: 10px;
text-align: center;
vertical-align: middle;
}
#message-container span {
display: inline-block;
vertical-align: middle ;
}
#close-button {
position: absolute;
width: 100px;
left: 250px;
bottom: 20px;
height: 25px;
color: white;
border-radius: 3px;
}
#social-icons {
position: absolute;
height: 36px;
width: 180px;
bottom: 6px;
right: 6px;
font-size: 20px;
line-height: 36px;
text-align: center;
z-index: 20;
}
#social-icons ul {
list-style: none;
padding: 0;
margin: 0;
}
#social-icons li {
display: inline-block;
}
#social-icons a {
display: inline-block;
cursor: pointer;
}
#social-icons a:visited {
color: white;
}
#unknown-icon {
position: absolute;
width: 36px;
height: 36px;
opacity: 0.6;
}

View File

@ -0,0 +1,640 @@
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
/*src: local('Open Sans Light'), local('OpenSans-Light'), url(http://fontstatic.useso.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTa-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');*/
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
/*src: local('Open Sans Light'), local('OpenSans-Light'), url(http://fontstatic.useso.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTZX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');*/
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* devanagari */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
/*src: local('Open Sans Light'), local('OpenSans-Light'), url(http://fontstatic.useso.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTUTj6bCwSDA5u__Fbjwz3f0.woff2) format('woff2');*/
unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
/*src: local('Open Sans Light'), local('OpenSans-Light'), url(http://fontstatic.useso.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRWV49_lSm1NYrwo-zkhivY.woff2) format('woff2');*/
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
/*src: local('Open Sans Light'), local('OpenSans-Light'), url(http://fontstatic.useso.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTaaRobkAwv3vxw3jMhVENGA.woff2) format('woff2');*/
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
/*src: local('Open Sans Light'), local('OpenSans-Light'), url(http://fontstatic.useso.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTf8zf_FOSsgRmwsS7Aa9k2w.woff2) format('woff2');*/
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
/* src: local('Open Sans Light'), local('OpenSans-Light'), url(http://fontstatic.useso.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTT0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');*/
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
/*src: local('Open Sans Light'), local('OpenSans-Light'), url(http://fontstatic.useso.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTegdm0LZdjqr5-oayXSOefg.woff2) format('woff2');*/
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
/*src: local('Open Sans'), local('OpenSans'), url(http://fontstatic.useso.com/s/opensans/v13/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');*/
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
/*src: local('Open Sans'), local('OpenSans'), url(http://fontstatic.useso.com/s/opensans/v13/RjgO7rYTmqiVp7vzi-Q5URJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');*/
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* devanagari */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
/*src: local('Open Sans'), local('OpenSans'), url(http://fontstatic.useso.com/s/opensans/v13/ttwNtsRpgsxVmgGGmiUOEhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');*/
unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
/*src: local('Open Sans'), local('OpenSans'), url(http://fontstatic.useso.com/s/opensans/v13/LWCjsQkB6EMdfHrEVqA1KRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');*/
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
/*src: local('Open Sans'), local('OpenSans'), url(http://fontstatic.useso.com/s/opensans/v13/xozscpT2726on7jbcb_pAhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');*/
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
/*src: local('Open Sans'), local('OpenSans'), url(http://fontstatic.useso.com/s/opensans/v13/59ZRklaO5bWGqF5A9baEERJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');*/
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
/*src: local('Open Sans'), local('OpenSans'), url(http://fontstatic.useso.com/s/opensans/v13/u-WUoqrET9fUeobQW7jkRRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');*/
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
/*src: local('Open Sans'), local('OpenSans'), url(http://fontstatic.useso.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');*/
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
/*src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fontstatic.useso.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSq-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');*/
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
/* src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fontstatic.useso.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSpX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');*/
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* devanagari */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
/*src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fontstatic.useso.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSkTj6bCwSDA5u__Fbjwz3f0.woff2) format('woff2');*/
unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
/*src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fontstatic.useso.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShWV49_lSm1NYrwo-zkhivY.woff2) format('woff2');*/
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
/*src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fontstatic.useso.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSqaRobkAwv3vxw3jMhVENGA.woff2) format('woff2');*/
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
/*src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fontstatic.useso.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSv8zf_FOSsgRmwsS7Aa9k2w.woff2) format('woff2');*/
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
/*src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fontstatic.useso.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSj0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');*/
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
/*src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://fontstatic.useso.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSugdm0LZdjqr5-oayXSOefg.woff2) format('woff2');*/
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
/*src: local('Open Sans Bold'), local('OpenSans-Bold'), url(http://fontstatic.useso.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzK-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');*/
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
/*src: local('Open Sans Bold'), local('OpenSans-Bold'), url(http://fontstatic.useso.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzJX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');*/
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* devanagari */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
/*src: local('Open Sans Bold'), local('OpenSans-Bold'), url(http://fontstatic.useso.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzETj6bCwSDA5u__Fbjwz3f0.woff2) format('woff2');*/
unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
/*src: local('Open Sans Bold'), local('OpenSans-Bold'), url(http://fontstatic.useso.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBWV49_lSm1NYrwo-zkhivY.woff2) format('woff2');*/
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
/*src: local('Open Sans Bold'), local('OpenSans-Bold'), url(http://fontstatic.useso.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzKaRobkAwv3vxw3jMhVENGA.woff2) format('woff2');*/
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
/*src: local('Open Sans Bold'), local('OpenSans-Bold'), url(http://fontstatic.useso.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzP8zf_FOSsgRmwsS7Aa9k2w.woff2) format('woff2');*/
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
/*src: local('Open Sans Bold'), local('OpenSans-Bold'), url(http://fontstatic.useso.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzD0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');*/
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
/*src: local('Open Sans Bold'), local('OpenSans-Bold'), url(http://fontstatic.useso.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzOgdm0LZdjqr5-oayXSOefg.woff2) format('woff2');*/
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
/*src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url(http://fontstatic.useso.com/s/opensans/v13/EInbV5DfGHOiMmvb1Xr-hq-j2U0lmluP9RWlSytm3ho.woff2) format('woff2');*/
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
/*src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url(http://fontstatic.useso.com/s/opensans/v13/EInbV5DfGHOiMmvb1Xr-hpX5f-9o1vgP2EXwfjgl7AY.woff2) format('woff2');*/
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* devanagari */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
/*src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url(http://fontstatic.useso.com/s/opensans/v13/EInbV5DfGHOiMmvb1Xr-hkTj6bCwSDA5u__Fbjwz3f0.woff2) format('woff2');*/
unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
/*src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url(http://fontstatic.useso.com/s/opensans/v13/EInbV5DfGHOiMmvb1Xr-hhWV49_lSm1NYrwo-zkhivY.woff2) format('woff2');*/
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
/*src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url(http://fontstatic.useso.com/s/opensans/v13/EInbV5DfGHOiMmvb1Xr-hqaRobkAwv3vxw3jMhVENGA.woff2) format('woff2');*/
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
/*src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url(http://fontstatic.useso.com/s/opensans/v13/EInbV5DfGHOiMmvb1Xr-hv8zf_FOSsgRmwsS7Aa9k2w.woff2) format('woff2');*/
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
/*src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url(http://fontstatic.useso.com/s/opensans/v13/EInbV5DfGHOiMmvb1Xr-hj0LW-43aMEzIO6XUTLjad8.woff2) format('woff2');*/
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
/*src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url(http://fontstatic.useso.com/s/opensans/v13/EInbV5DfGHOiMmvb1Xr-hugdm0LZdjqr5-oayXSOefg.woff2) format('woff2');*/
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 300;
/*src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxhgVThLs8Y7ETJzDCYFCSLE.woff2) format('woff2');*/
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 300;
/*src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxpiMaisvaUVUsYyVzOmndek.woff2) format('woff2');*/
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* devanagari */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 300;
/*src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxtubAPCnqwk7_Xc8a9uhFZ0.woff2) format('woff2');*/
unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 300;
/*src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxrBAWGjcah5Ky0jbCgIwDB8.woff2) format('woff2');*/
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 300;
/*src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxv14vlcfyPYlAcQy2UfDRm4.woff2) format('woff2');*/
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 300;
/*src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxqfJul7RR1X4poJgi27uS4w.woff2) format('woff2');*/
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 300;
/*src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxqvyPXdneeGd26m9EmFSSWg.woff2) format('woff2');*/
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 300;
/*src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxko2lTMeWA_kmIyWrkNCwPc.woff2) format('woff2');*/
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
/*src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBjTOQ_MqJVwkKsUn0wKzc2I.woff2) format('woff2');*/
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
/*src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBjUj_cnvWIuuBMVgbX098Mw.woff2) format('woff2');*/
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* devanagari */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
/*src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBpd-YqeGZiJEdX0sEGp0JvE.woff2) format('woff2');*/
unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
/*src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBkbcKLIaa1LC45dFaAfauRA.woff2) format('woff2');*/
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
/* src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBmo_sUJ8uO4YLWRInS22T3Y.woff2) format('woff2');*/
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
/*src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBr6up8jxqWt8HVA3mDhkV_0.woff2) format('woff2');*/
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
/*src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBiYE0-AqJ3nfInTTiDXDjU4.woff2) format('woff2');*/
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
/*src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fontstatic.useso.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBo4P5ICox8Kq3LLUNMylGO4.woff2) format('woff2');*/
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
/*src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxmgpAmOCqD37_tyH_8Ri5MM.woff2) format('woff2');*/
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
/*src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxsPNMTLbnS9uQzHQlYieHUU.woff2) format('woff2');*/
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* devanagari */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
/*src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxtf0psde5XkJiKofUyep0rE.woff2) format('woff2');*/
unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
/*src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxgyhumQnPMBCoGYhRaNxyyY.woff2) format('woff2');*/
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
/*src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxhUVAXEdVvYDDqrz3aeR0Yc.woff2) format('woff2');*/
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
/*src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxlf4y_3s5bcYyyLIFUSWYUU.woff2) format('woff2');*/
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
/*src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxnywqdtBbUHn3VPgzuFrCy8.woff2) format('woff2');*/
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
/*src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxl2umOyRU7PgRiv8DXcgJjk.woff2) format('woff2');*/
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 700;
/*src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxp6iIh_FvlUHQwED9Yt5Kbw.woff2) format('woff2');*/
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 700;
/*src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxi_vZmeiCMnoWNN9rHBYaTc.woff2) format('woff2');*/
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* devanagari */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 700;
/*src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxpRg-9ZTZj4Oi-6CEThT2Do.woff2) format('woff2');*/
unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 700;
/*src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxiFaMxiho_5XQnyRZzQsrZs.woff2) format('woff2');*/
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 700;
/*src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxgalQocB-__pDVGhF3uS2Ks.woff2) format('woff2');*/
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 700;
/* src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxmhQUTDJGru-0vvUpABgH8I.woff2) format('woff2');*/
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 700;
/*src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxujkDdvhIIFj_YMdgqpnSB0.woff2) format('woff2');*/
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 700;
/* src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxolIZu-HDpmDIZMigmsroc4.woff2) format('woff2');*/
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
/* src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxiU8QAtQT9M0M1_mbVWrUPc.woff2) format('woff2');*/
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
/*src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxkNaUOL0oYRolx8sebiIY9k.woff2) format('woff2');*/
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* devanagari */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
/*src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxiSlOvG9k9Qwm1rEEqyyHgs.woff2) format('woff2');*/
unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
/*src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxooGEx1DzoxsbCRd2IM2afI.woff2) format('woff2');*/
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
/*src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxnPzCMEhbIaaYiFY6KPniws.woff2) format('woff2');*/
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
/*src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxmqi69zMYkLa7XwlUIemKB4.woff2) format('woff2');*/
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
/*src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxowYyzpnB4tyYboSwKGmD2g.woff2) format('woff2');*/
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
/*src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'), url(http://fontstatic.useso.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxnibbpXgLHK_uTT48UMyjSM.woff2) format('woff2');*/
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

View File

@ -0,0 +1,48 @@
/* latin-ext */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 300;
/*src: local('Oswald Light'), local('Oswald-Light'), url(http://fontstatic.useso.com/s/oswald/v10/l1cOQ90roY9yC7voEhngDBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');*/
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 300;
/*src: local('Oswald Light'), local('Oswald-Light'), url(http://fontstatic.useso.com/s/oswald/v10/HqHm7BVC_nzzTui2lzQTDVtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');*/
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin-ext */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 400;
/*src: local('Oswald Regular'), local('Oswald-Regular'), url(http://fontstatic.useso.com/s/oswald/v10/yg0glPPxXUISnKUejCX4qfesZW2xOQ-xsNqO47m55DA.woff2) format('woff2');*/
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 400;
/*src: local('Oswald Regular'), local('Oswald-Regular'), url(http://fontstatic.useso.com/s/oswald/v10/pEobIV_lL25TKBpqVI_a2w.woff2) format('woff2');*/
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin-ext */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 700;
/*src: local('Oswald Bold'), local('Oswald-Bold'), url(http://fontstatic.useso.com/s/oswald/v10/dI-qzxlKVQA6TUC5RKSb3xJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');*/
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 700;
/*src: local('Oswald Bold'), local('Oswald-Bold'), url(http://fontstatic.useso.com/s/oswald/v10/bH7276GfdCjMjApa_dkG6VtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');*/
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

176
main.go Normal file
View File

@ -0,0 +1,176 @@
package main
import (
"container/list"
"encoding/json"
"log"
"math/rand"
"net"
"net/http"
"strconv"
"strings"
"github.com/gorilla/mux"
"github.com/gorilla/websocket"
"github.com/oschwald/geoip2-golang"
)
var upgrader = websocket.Upgrader{CheckOrigin: fakeOrigin} // use default options
func fakeOrigin(r *http.Request) bool {
return true
}
func IpV4Address() string {
blocks := []string{}
for i := 0; i < 4; i++ {
number := rand.Intn(255)
blocks = append(blocks, strconv.Itoa(number))
}
return strings.Join(blocks, ".")
}
// type Alert struct {
// Latitude string `json:"latitude"`
// Longitude string `json:"longitude"`
// Countrycode string `json:"countrycode"`
// Country string `json:"country"`
// City string `json:"city"`
// Org string `json:"org"`
// Latitude2 string `json:"latitude2"`
// Longitude2 string `json:"longitude2"`
// Countrycode2 string `json:"countrycode2"`
// Country2 string `json:"country2"`
// City2 string `json:"city2"`
// Type string `json:"type"`
// Md5 string `json:"md5"`
// Dport string `json:"dport"`
// Zerg string `json:"zerg"`
// }
// var PORTS = []int64{21, 22, 80, 443}
// func (a Attack) New() Attack {
// attacker_ip := net.ParseIP(IpV4Address())
// c, _ := MMDB_CITY.City(attacker_ip)
// o, _ := MMDB_ASN.ASN(attacker_ip)
// a.Latitude = strconv.FormatFloat(c.Location.Latitude, 'f', 2, 64)
// a.Longitude = strconv.FormatFloat(c.Location.Longitude, 'f', 2, 64)
// a.Countrycode = c.Country.IsoCode
// a.Country = c.Country.IsoCode
// a.City = c.City.Names["en"]
// a.Org = o.AutonomousSystemOrganization
// destination := net.ParseIP("88.198.117.66")
// c, _ = MMDB_CITY.City(destination)
// a.Latitude2 = strconv.FormatFloat(c.Location.Latitude, 'f', 2, 64)
// a.Longitude2 = strconv.FormatFloat(c.Location.Longitude, 'f', 2, 64)
// a.Countrycode2 = c.Country.IsoCode
// a.Country2 = c.Country.IsoCode
// a.City2 = c.City.Names["en"]
// a.Type = "ipviking.honey"
// a.Md5 = attacker_ip.String()
// a.Dport = strconv.FormatInt(PORTS[rand.Int()%len(PORTS)], 10)
// a.Zerg = "rush"
// return a
// }
type Source struct {
AS_Name string `json:"as_name"`
AS_Number string `json:"as_number"`
CN string `json:"cn"`
IP string `json:"ip"`
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
Scope string `json:"scope"`
Value string `json:"value"`
}
type Destination struct {
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
CountryCode string `json:"countrycode"`
Country string `json:"country"`
City string `json:"city"`
}
type Alert struct {
Capacity int `json:"capacity"`
Source Source `json:"source"`
Destination Destination `json:"destination"`
}
func (a Alert) setDestination(ip string) Alert {
destination := net.ParseIP("88.198.117.66")
c, _ := MMDB_CITY.City(destination)
a.Destination.Latitude = c.Location.Latitude
a.Destination.Longitude = c.Location.Longitude
a.Destination.CountryCode = c.Country.IsoCode
a.Destination.Country = c.Country.IsoCode
a.Destination.City = c.City.Names["en"]
return a
}
var sockets = list.New()
// TODO: if you have a,b,c people and b leaves, a won't get the next alert but all after
func (a Alert) broadcast() {
log.Println(sockets.Len())
for s := sockets.Front(); s != nil; s = s.Next() {
b, _ := json.Marshal(a)
err := s.Value.(*websocket.Conn).WriteMessage(1, b)
if err != nil {
log.Println("Write error:", err)
sockets.Remove(s)
}
}
}
func alertHandler(w http.ResponseWriter, r *http.Request) {
var alerts []Alert
err := json.NewDecoder(r.Body).Decode(&alerts)
if err != nil {
log.Println(err)
}
for _, a := range alerts {
a.setDestination("88.198.117.66").broadcast()
}
}
func socketHandler(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Print("Error during connection upgradation:", err)
return
}
log.Println("Connection opened", conn.RemoteAddr())
sockets.PushFront(conn)
}
var MMDB_CITY *geoip2.Reader
var MMDB_ASN *geoip2.Reader
func main() {
db, err := geoip2.Open("GeoLite2-City.mmdb")
if err != nil {
log.Fatal(err)
}
MMDB_CITY = db
db, err = geoip2.Open("GeoLite2-ASN.mmdb")
if err != nil {
log.Fatal(err)
}
MMDB_ASN = db
r := mux.NewRouter()
r.HandleFunc("/", socketHandler).Methods("GET")
r.HandleFunc("/", alertHandler).Methods("POST")
log.Fatal(http.ListenAndServe("127.0.0.1:9999", r))
}

View File

@ -0,0 +1,4 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width='80' height='80' xmlns="http://www.w3.org/2000/svg" version="1.1"><g id="chevron" transform="translate(40, 40)"><g><path d="M-26.65959926214212,-29.820559471310915A40,40 0 0,1 26.65959926214212,-29.820559471310922L12.47306331474629,-15.634023523915088A20,20 0 0,0 -12.473063314746287,-15.63402352391509Z" id="svg-zoom-in" class="chevron-tab"></path><text transform="translate(-2.9999999999999982,-27)">+</text></g><g><path d="M29.820559471310922,-26.659599262142116A40,40 0 0,1 29.820559471310922,26.659599262142116L15.634023523915088,12.473063314746287A20,20 0 0,0 15.634023523915088,-12.473063314746287Z" id="svg-toggle-info" class="chevron-tab"></path><text transform="translate(27,3)"></text></g><g><path d="M26.65959926214212,29.820559471310922A40,40 0 0,1 -26.65959926214212,29.820559471310922L-12.473063314746287,15.63402352391509A20,20 0 0,0 12.47306331474629,15.634023523915088Z" id="svg-zoom-out" class="chevron-tab"></path><text transform="translate(1.83697019872103e-15,30)">-</text></g><g><path d="M-29.820559471310915,26.659599262142123A40,40 0 0,1 -29.820559471310922,-26.659599262142116L-15.63402352391509,-12.473063314746284A20,20 0 0,0 -15.634023523915086,12.47306331474629Z" id="svg-toggle-play" class="chevron-tab"></path><text transform="translate(-36,6.0000000000000036)">&#9616;&#9616;</text></g></g></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
norsecorp/assets/pew.mp3 Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

24
norsecorp/config.json Normal file
View File

@ -0,0 +1,24 @@
{
"stream": {
"host": "ws://127.0.0.1:9999",
"psk": "18c989796c61724d4661b019f2779848dd69ae62"
},
"ui": {
"logo": "assets/norse-white.png",
"spacing": 3
},
"map": {
"container": "map",
"jsonBasemap": true,
"options": {
"zoomControl": false,
"attributionControl": false,
"center": [0, 0],
"zoom": 3,
"center": [24.5271348225978, -0.17578125],
"maxBounds": [[75, 179], [-61, -181]],
"minZoom": 2,
"maxZoom": 5
}
}
}

94
norsecorp/css/fonts.css Normal file
View File

@ -0,0 +1,94 @@
@font-face {
font-family: 'Norse-Mapcons';
src:url('../fonts/Norse-Mapcons.eot');
src:url('../fonts/Norse-Mapcons.eot?#iefix') format('embedded-opentype'),
url('../fonts/Norse-Mapcons.woff') format('woff'),
url('../fonts/Norse-Mapcons.ttf') format('truetype'),
url('../fonts/Norse-Mapcons.svg#Norse-Mapcons') format('svg');
font-weight: normal;
font-style: normal;
}
[class^="icon-"], [class*=" icon-"] {
font-family: 'Norse-Mapcons';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-country:before {
content: "\61";
}
.icon-number:before {
content: "\62";
}
.icon-military:before {
content: "\64";
}
.icon-close:before {
content: "\63";
}
.icon-play:before {
content: "\65";
}
.icon-pause:before {
content: "\66";
}
.icon-info:before {
content: "\67";
}
.icon-open:before {
content: "\68";
}
.icon-closed:before {
content: "\69";
}
.icon-threattype:before {
content: "\6a";
}
.icon-down:before {
content: "\6b";
}
.icon-one:before {
content: "\6c";
}
.icon-five:before {
content: "\6d";
}
.icon-ten:before {
content: "\6e";
}
.icon-twentyfive:before {
content: "\6f";
}
.icon-onehundred:before {
content: "\70";
}
.icon-twohundred:before {
content: "\71";
}
.icon-fivehundred:before {
content: "\72";
}
.icon-googleplus:before {
content: "\73";
}
.icon-facebook:before {
content: "\74";
}
.icon-linkedin:before {
content: "\75";
}
.icon-youtube:before {
content: "\76";
}
.icon-twitter:before {
content: "\77";
}

341
norsecorp/css/style.css Normal file
View File

@ -0,0 +1,341 @@
/*@import url(http://fonts.googleapis.com/css?family=Oswald:bold,700,400,300|Open+Sans);*/
* {
box-sizing: border-box;
}
/**, *:before, *:after {
box-sizing: inherit;
}*/
body, #map {
margin: 0;
padding: 0;
/*font-family: 'Helvetica Neue', Helvetica;*/
/*font: 10px 'Consolas';*/
/*background: #1a1a1a;*/
background-color: #000;
font-size: 11px;
}
#map {
position: absolute;
width: 100%;
height: 100%;
}
#map canvas {
/*position: relative;*/
position: absolute;
}
#ui {
position: absolute;
bottom: 0%;
left: 0%;
width: 100%;
max-height: 35%;
background-color: rgba(64, 64, 64, 0.5);
font-family: 'Oswald';
font-weight: 300;
}
#ui .module {
float: left;
/*padding: 20px;*/
margin-right: 1%;
color: #4bffff;
}
/* clock/ticker */
#ui .module:last-child {
margin-right: 0%;
margin-left: 1%;
}
#ui .minimize-button {
position: absolute;
cursor: pointer;
background-color: rgba(0,206,209, 0.1);
/*float: right;*/
top: 0;
right: 0;
padding: 10px;
font-size: 24px;
/*line-height: 20px;*/
font-weight: bold;
}
#ui-clock {
width: 10%;
/*height: 100%;*/
}
#ui-clock, #ui-clock svg {
position: absolute;
bottom: 0;
right: 0;
margin-right: 0%;
height: 100%;
}
#ui .title {
position: relative;
background-color: rgba(0,206,209, 0.1);
background-image: url('../assets/title-bg.png');
/*font: 14px 'Helvetica Neue', Helvetica;*/
/*font: 14px 'Consolas';*/
/*padding: 0 0 2% 0;*/
font-family: 'Oswald';
font-weight: 300;
font-size: 2em;
/*padding-left: 10px;*/
padding: 10px 0 5px 10px;
margin-bottom: 5px;
/*border-bottom: 2px solid #000;*/
}
#ui-datatable-service {
background-color: rgba(255, 255, 255, 0.1);
}
#ui-datatable-events {
background-color: rgba(75, 255, 255, 0.1);
}
span {
display: block;
}
table {
width: 98%;
table-layout: fixed;
padding-left: 10px;
}
.row {
cursor: pointer;
}
.header {
text-transform: uppercase;
font-family: 'Oswald';
font-weight: 700;
}
.column-header, .row {
/*clear: both;*/
/* FIXME doesn't work */
padding-left: 10px;
/*font-family: 'Oswald';*/
/*font-weight: 700;*/
}
.cell {
/*overflow: hidden;*/
/*display: inline;*/
/*margin: 2%;*/
/*border: 1px solid red;*/
/*float: left;*/
font-family: 'Open Sans';
font-weight: 300;
}
.cell span {
display: inline;
}
td {
max-width: 120px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.column {
/*font-weight: bold;*/
/*float: left;*/
font-family: 'Oswald';
font-weight: 400;
}
.number {
width: ;
font-family: 'Oswald';
font-weight: 400;
}
.flag {
width: 16px;
height: 10px;
padding-right: 3px;
}
.links {
fill: none;
stroke: #fff;
opacity: 0.3;
}
#controls {
position: absolute;
top: 40px;
left: 40px;
padding: 10px;
/*background: #000;*/
color: #4bffff;
}
#controls > #zoom > div {
font-family: 'Consolas', 'Courier New', sans-serif;
margin: 12px;
padding: 8px;
width: 32px;
/*height: 24px;*/
font-size: 24px;
line-height: 18px;
border: 1px solid #4bffff;
background: #000;
cursor: pointer;
}
.minibar {
position: absolute;
top: 10px;
right: 5px;
/*height: 50%;*/
/*width: 25%;*/
width: 30px;
height: 30px;
background: #000;
/*clear: both;*/
/*display: inline-block;*/
/*background: #ccc;*/
/*border: 1px solid red;*/
/*display: table;*/
}
.bar {
float: right;
/*float: right;*/
/*display: inline;*/
/*position: absolute;*/
/*display: table-cell;*/
/*clear: both;*/
}
#preload {
visibility: hidden;
}
.ticker-line {
fill: none;
stroke-width: 1;
opacity: 1;
}
.small {
font-size: 8px;
}
#chevron-container {
position: fixed;
top: 40px;
right: 40px;
width: 80px;
height: 80px;
}
#chevron {
visibility: hidden;
}
#chevron text, #chevron-container text {
fill: #000;
stroke: none;
font-size: 14px;
font-weight: bold;
pointer-events: none;
}
#chevron > g:nth-child(4) > text {
font-size: 9px !important;
}
#chevron path, #chevron-container svg path {
fill: #4bffff;
stroke: none;
cursor: pointer;
}
#infobox {
display: none;
position: absolute;
left: 100%;
top: 0;
width: 100%;
height: 100%;
background: rgb(0, 78, 176);
color: #fff;
padding: 5px 0 5px 20px;
font-family: 'Open Sans', 'Oswald';
font-weight: 300;
}
#infobox a, #infobox a:visited {
color: #fff;
}
#infobox .close {
position: absolute;
top: 10px;
right: 10px;
cursor: pointer;
padding: 10px;
background: #fff;
color: rgb(0, 78, 176);
}
#social-icons {
display: table-row;
font-size: 18px;
}
#social-icons a {
text-decoration: none;
display: table-cell;
}
#legend-container {
border-left: 1px solid rgba(255, 255, 255, 0.7);
padding-left: 20px;
}
#legend-container h4 {
margin: 0;
font-size: 14px;
margin-bottom: 20px;
font-family: "Open Sans Bold", "Oswald", sans-serif;
font-weight: 400;
line-height: 11px;
text-align: left;
}
#infobox .legend {
display: table-row;
}
#infobox .legend span, #social-icons a {
display: table-cell;
padding-right: 5px;
}
#infobox .legend span {
font-size: 16px;
}
.icon-ten {
font-size: 20px !important;
}
.icon-twohundred {
font-size: 26px !important;
}
#infobox-header {
width: 100%;
}
#infobox-header h2 {
margin-top: 0;
}
#infobox-main, #legend-container {
float: left;
max-width: 40%;
margin-right: 20px;
}
/*
.legend > p > span {
font-size: 12px;
}*/
#particle-legend img {
width: 16px;
height: 16px;
}

478
norsecorp/css/vendor/leaflet-0.7.3.css vendored Normal file
View File

@ -0,0 +1,478 @@
/* required styles */
.leaflet-map-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-pane,
.leaflet-tile-container,
.leaflet-overlay-pane,
.leaflet-shadow-pane,
.leaflet-marker-pane,
.leaflet-popup-pane,
.leaflet-overlay-pane svg,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
position: absolute;
left: 0;
top: 0;
}
.leaflet-container {
overflow: hidden;
-ms-touch-action: none;
}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
-webkit-user-drag: none;
}
.leaflet-marker-icon,
.leaflet-marker-shadow {
display: block;
}
/* map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container img {
max-width: none !important;
}
/* stupid Android 2 doesn't understand "max-width: none" properly */
.leaflet-container img.leaflet-image-layer {
max-width: 15000px !important;
}
.leaflet-tile {
filter: inherit;
visibility: hidden;
}
.leaflet-tile-loaded {
visibility: inherit;
}
.leaflet-zoom-box {
width: 0;
height: 0;
}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
-moz-user-select: none;
}
.leaflet-tile-pane { z-index: 2; }
.leaflet-objects-pane { z-index: 3; }
.leaflet-overlay-pane { z-index: 4; }
.leaflet-shadow-pane { z-index: 5; }
.leaflet-marker-pane { z-index: 6; }
.leaflet-popup-pane { z-index: 7; }
.leaflet-vml-shape {
width: 1px;
height: 1px;
}
.lvml {
behavior: url(#default#VML);
display: inline-block;
position: absolute;
}
/* control positioning */
.leaflet-control {
position: relative;
z-index: 7;
pointer-events: auto;
}
.leaflet-top,
.leaflet-bottom {
position: absolute;
z-index: 1000;
pointer-events: none;
}
.leaflet-top {
top: 0;
}
.leaflet-right {
right: 0;
}
.leaflet-bottom {
bottom: 0;
}
.leaflet-left {
left: 0;
}
.leaflet-control {
float: left;
clear: both;
}
.leaflet-right .leaflet-control {
float: right;
}
.leaflet-top .leaflet-control {
margin-top: 10px;
}
.leaflet-bottom .leaflet-control {
margin-bottom: 10px;
}
.leaflet-left .leaflet-control {
margin-left: 10px;
}
.leaflet-right .leaflet-control {
margin-right: 10px;
}
/* zoom and fade animations */
.leaflet-fade-anim .leaflet-tile,
.leaflet-fade-anim .leaflet-popup {
opacity: 0;
-webkit-transition: opacity 0.2s linear;
-moz-transition: opacity 0.2s linear;
-o-transition: opacity 0.2s linear;
transition: opacity 0.2s linear;
}
.leaflet-fade-anim .leaflet-tile-loaded,
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
opacity: 1;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
-o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);
transition: transform 0.25s cubic-bezier(0,0,0.25,1);
}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile,
.leaflet-touching .leaflet-zoom-animated {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.leaflet-zoom-anim .leaflet-zoom-hide {
visibility: hidden;
}
/* cursors */
.leaflet-clickable {
cursor: pointer;
}
.leaflet-container {
cursor: -webkit-grab;
cursor: -moz-grab;
}
.leaflet-popup-pane,
.leaflet-control {
cursor: auto;
}
.leaflet-dragging .leaflet-container,
.leaflet-dragging .leaflet-clickable {
cursor: move;
cursor: -webkit-grabbing;
cursor: -moz-grabbing;
}
/* visual tweaks */
.leaflet-container {
background: #ddd;
outline: 0;
}
.leaflet-container a {
color: #0078A8;
}
.leaflet-container a.leaflet-active {
outline: 2px solid orange;
}
.leaflet-zoom-box {
border: 2px dotted #38f;
background: rgba(255,255,255,0.5);
}
/* general typography */
.leaflet-container {
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
}
/* general toolbar styles */
.leaflet-bar {
box-shadow: 0 1px 5px rgba(0,0,0,0.65);
border-radius: 4px;
}
.leaflet-bar a,
.leaflet-bar a:hover {
background-color: #fff;
border-bottom: 1px solid #ccc;
width: 26px;
height: 26px;
line-height: 26px;
display: block;
text-align: center;
text-decoration: none;
color: black;
}
.leaflet-bar a,
.leaflet-control-layers-toggle {
background-position: 50% 50%;
background-repeat: no-repeat;
display: block;
}
.leaflet-bar a:hover {
background-color: #f4f4f4;
}
.leaflet-bar a:first-child {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.leaflet-bar a:last-child {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-bottom: none;
}
.leaflet-bar a.leaflet-disabled {
cursor: default;
background-color: #f4f4f4;
color: #bbb;
}
.leaflet-touch .leaflet-bar a {
width: 30px;
height: 30px;
line-height: 30px;
}
/* zoom control */
.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
font: bold 18px 'Lucida Console', Monaco, monospace;
text-indent: 1px;
}
.leaflet-control-zoom-out {
font-size: 20px;
}
.leaflet-touch .leaflet-control-zoom-in {
font-size: 22px;
}
.leaflet-touch .leaflet-control-zoom-out {
font-size: 24px;
}
/* layers control */
.leaflet-control-layers {
box-shadow: 0 1px 5px rgba(0,0,0,0.4);
background: #fff;
border-radius: 5px;
}
.leaflet-control-layers-toggle {
background-image: url(images/layers.png);
width: 36px;
height: 36px;
}
.leaflet-retina .leaflet-control-layers-toggle {
background-image: url(images/layers-2x.png);
background-size: 26px 26px;
}
.leaflet-touch .leaflet-control-layers-toggle {
width: 44px;
height: 44px;
}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
display: none;
}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
display: block;
position: relative;
}
.leaflet-control-layers-expanded {
padding: 6px 10px 6px 6px;
color: #333;
background: #fff;
}
.leaflet-control-layers-selector {
margin-top: 2px;
position: relative;
top: 1px;
}
.leaflet-control-layers label {
display: block;
}
.leaflet-control-layers-separator {
height: 0;
border-top: 1px solid #ddd;
margin: 5px -10px 5px -6px;
}
/* attribution and scale controls */
.leaflet-container .leaflet-control-attribution {
background: #fff;
background: rgba(255, 255, 255, 0.7);
margin: 0;
}
.leaflet-control-attribution,
.leaflet-control-scale-line {
padding: 0 5px;
color: #333;
}
.leaflet-control-attribution a {
text-decoration: none;
}
.leaflet-control-attribution a:hover {
text-decoration: underline;
}
.leaflet-container .leaflet-control-attribution,
.leaflet-container .leaflet-control-scale {
font-size: 11px;
}
.leaflet-left .leaflet-control-scale {
margin-left: 5px;
}
.leaflet-bottom .leaflet-control-scale {
margin-bottom: 5px;
}
.leaflet-control-scale-line {
border: 2px solid #777;
border-top: none;
line-height: 1.1;
padding: 2px 5px 1px;
font-size: 11px;
white-space: nowrap;
overflow: hidden;
-moz-box-sizing: content-box;
box-sizing: content-box;
background: #fff;
background: rgba(255, 255, 255, 0.5);
}
.leaflet-control-scale-line:not(:first-child) {
border-top: 2px solid #777;
border-bottom: none;
margin-top: -2px;
}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
border-bottom: 2px solid #777;
}
.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
box-shadow: none;
}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
border: 2px solid rgba(0,0,0,0.2);
background-clip: padding-box;
}
/* popup */
.leaflet-popup {
position: absolute;
text-align: center;
}
.leaflet-popup-content-wrapper {
padding: 1px;
text-align: left;
border-radius: 12px;
}
.leaflet-popup-content {
margin: 13px 19px;
line-height: 1.4;
}
.leaflet-popup-content p {
margin: 18px 0;
}
.leaflet-popup-tip-container {
margin: 0 auto;
width: 40px;
height: 20px;
position: relative;
overflow: hidden;
}
.leaflet-popup-tip {
width: 17px;
height: 17px;
padding: 1px;
margin: -10px auto 0;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
background: white;
box-shadow: 0 3px 14px rgba(0,0,0,0.4);
}
.leaflet-container a.leaflet-popup-close-button {
position: absolute;
top: 0;
right: 0;
padding: 4px 4px 0 0;
text-align: center;
width: 18px;
height: 14px;
font: 16px/14px Tahoma, Verdana, sans-serif;
color: #c3c3c3;
text-decoration: none;
font-weight: bold;
background: transparent;
}
.leaflet-container a.leaflet-popup-close-button:hover {
color: #999;
}
.leaflet-popup-scrolled {
overflow: auto;
border-bottom: 1px solid #ddd;
border-top: 1px solid #ddd;
}
.leaflet-oldie .leaflet-popup-content-wrapper {
zoom: 1;
}
.leaflet-oldie .leaflet-popup-tip {
width: 24px;
margin: 0 auto;
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
}
.leaflet-oldie .leaflet-popup-tip-container {
margin-top: -1px;
}
.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
border: 1px solid #999;
}
/* div icon */
.leaflet-div-icon {
background: #fff;
border: 1px solid #666;
}

View File

@ -0,0 +1,247 @@
{
"BD": "Bangladesh",
"BE": "Belgium",
"BF": "Burkina Faso",
"BG": "Bulgaria",
"BA": "Bosnia-Herzegovina",
"BB": "Barbados",
"WF": "Wallis & Futuna",
"BL": "Saint Barth\u00e9lemy",
"BM": "Bermuda",
"BN": "Brunei Darussalam",
"BO": "Bolivia",
"BH": "Bahrain",
"BI": "Burundi",
"BJ": "Benin",
"BT": "Bhutan",
"JM": "Jamaica",
"BW": "Botswana",
"WS": "Samoa",
"BQ": "Sint Eustatius",
"BR": "Brazil",
"BS": "Bahamas",
"JE": "Jersey",
"BY": "Belarus",
"BZ": "Belize",
"RU": "Russia",
"RW": "Rwanda",
"RS": "Serbia",
"LT": "Lithuania",
"RE": "R\u00e9union",
"TM": "Turkmenistan",
"TJ": "Tajikistan",
"RO": "Romania",
"TK": "Tokelau",
"GW": "Guinea-Bissau",
"GU": "Guam",
"GT": "Guatemala",
"GS": "South Georgia & The South Sandwish Islands",
"GR": "Greece",
"GQ": "Equatorial Guinea",
"GP": "Guadeloupe",
"JP": "Japan",
"GY": "Guyana",
"GG": "Guernsey",
"GF": "French Guiana",
"GE": "Georgia",
"GD": "Grenada",
"GB": "United Kingdom",
"GA": "Gabon",
"GN": "Guinea",
"GM": "Gambia",
"GL": "Greenland",
"GI": "Gibralter",
"GH": "Ghana",
"OM": "Oman",
"TN": "Tunisia",
"JO": "Jordan",
"HR": "Croatia",
"HT": "Haiti",
"HU": "Hungary",
"HK": "Hong Kong",
"HN": "Honduras",
"VE": "Venezuela",
"PR": "Puerto Rico",
"PS": "Palestinian Territories",
"PW": "Palau",
"PT": "Portugal",
"KN": "Saint Christopher & Nevis",
"AF": "Afghanistan",
"IQ": "Iraq",
"PA": "Panama",
"PF": "French Polynesia",
"PG": "Papua New Guinea",
"PE": "Peru",
"PK": "Pakistan",
"PH": "Philippines",
"PN": "Pitcairn Islands",
"PL": "Poland",
"PM": "Saint Pierre & Miquelon",
"ZM": "Zambia",
"EH": "Western Sahara",
"EE": "Estonia",
"EG": "Egypt",
"ZA": "South Africa",
"EC": "Ecuador",
"IT": "Italy",
"VN": "Vietnam",
"SB": "Solomon Islands",
"ET": "Ethiopia",
"SO": "Somaliland",
"ZW": "Zimbabwe",
"SA": "Saudi Arabia",
"ES": "Spain",
"ER": "Eritrea",
"ME": "Montenegro",
"MD": "Moldova",
"MG": "Madagascar",
"MF": "Saint Martin",
"MA": "Morocco",
"MC": "Monaco",
"UZ": "Uzbekistan",
"MM": "Myanmar",
"ML": "Mali",
"MO": "Macau",
"MN": "Mongolia",
"MH": "Marshall Islands",
"MK": "Macedonia",
"MU": "Mauritius",
"MT": "Malta",
"MW": "Malawi",
"MV": "Maldives",
"MQ": "Martinique",
"MP": "Northern Mariana Islands",
"MS": "Montserrat",
"MR": "Mauritania",
"IM": "Isle of Man",
"UG": "Uganda",
"TZ": "Tanzania",
"MY": "Malaysia",
"MX": "Mexico",
"IL": "Israel",
"FR": "France",
"AW": "Aruba",
"SH": "Saint Helena",
"FI": "Finland",
"FJ": "Fiji",
"FK": "Falkland Islands",
"FM": "Micronesia",
"FO": "Faeroe Islands",
"NI": "Nicaragua",
"NL": "Netherlands",
"NO": "Norway",
"NA": "Namibia",
"VU": "Vanuatu",
"NC": "New Caledonia",
"NE": "Niger",
"NF": "Norfolk Island",
"NG": "Nigeria",
"NZ": "New Zealand",
"NP": "Nepal",
"NR": "Nauru",
"NU": "Niue",
"CK": "Cook Islands",
"CI": "Ivory Coast",
"CH": "Switzerland",
"CO": "Colombia",
"CN": "China",
"CM": "Cameroon",
"CL": "Chile",
"CC": "Cocos (Keeling) Islands",
"CA": "Canada",
"CG": "Congo (Brazzaville)",
"CF": "Central African Republic",
"CD": "Congo (Kinshasa)",
"CZ": "Czech Republic",
"CY": "Cyprus",
"CX": "Christmas Island",
"CR": "Costa Rica",
"PY": "Paraguay",
"CW": "Cura\u00e7ao",
"CV": "Cape Verde Islands",
"CU": "Cuba",
"SZ": "Swaziland",
"SY": "Syria",
"SX": "Sint Maarten",
"KG": "Kyrgyzstan",
"KE": "Kenya",
"SS": "South Sudan",
"SR": "Suriname",
"KI": "Kiribati",
"KH": "Cambodia",
"SV": "El Salvador",
"KM": "Comoros",
"ST": "Sao Tome & Principe",
"SK": "Slovakia",
"KR": "South Korea",
"SI": "Slovenia",
"KP": "North Korea",
"KW": "Kuwait",
"SN": "Senegal",
"SM": "San Marino",
"SL": "Sierra Leone",
"SC": "Seychelles",
"KZ": "Kazakhstan",
"KY": "Cayman Islands",
"SG": "Singapore",
"SE": "Sweden",
"SD": "Sudan",
"DO": "Dominican Republic",
"DM": "Dominica",
"DJ": "Djibouti",
"DK": "Denmark",
"DE": "Germany",
"YE": "Yemen",
"DZ": "Algeria",
"US": "United States",
"UY": "Uruguay",
"YT": "Mayotte",
"LB": "Lebanon",
"LC": "Saint Lucia",
"LA": "Laos",
"TV": "Tuvalu",
"TW": "Taiwan",
"TT": "Trinidad & Tobago",
"TR": "Turkey",
"LK": "Sri Lanka",
"LI": "Liechtenstein",
"LV": "Latvia",
"TO": "Tonga",
"TL": "East Timor",
"LU": "Luxembourg",
"LR": "Liberia",
"LS": "Lesotho",
"TH": "Thailand",
"TF": "French Southern Territories",
"TG": "Togo",
"TD": "Chad",
"TC": "Turks & Caicos Islands",
"LY": "Libya",
"VA": "Holy See",
"VC": "Saint Vincent & The Grenadines",
"AE": "United Arab Emirates",
"AD": "Andorra",
"AG": "Antigua & Barbuda",
"VG": "British Virgin Islands",
"AI": "Anguilla",
"VI": "United States Virgin Islands",
"IS": "Iceland",
"IR": "Iran",
"AM": "Armenia",
"AL": "Albania",
"AO": "Angola",
"AN": "Netherlands Antilles",
"AS": "American Samoa",
"AR": "Argentina",
"AU": "Australia",
"AT": "Austria",
"IO": "British Indian Ocean Territory",
"IN": "India",
"AX": "\u00c5land Islands",
"AZ": "Azerbaijan",
"IE": "Ireland",
"ID": "Indonesia",
"UA": "Ukraine",
"QA": "Qatar",
"MZ": "Mozambique"
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,104 @@
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts.gstatic.com/s/opensans/v13/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts.gstatic.com/s/opensans/v13/RjgO7rYTmqiVp7vzi-Q5URJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts.gstatic.com/s/opensans/v13/LWCjsQkB6EMdfHrEVqA1KRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts.gstatic.com/s/opensans/v13/xozscpT2726on7jbcb_pAhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts.gstatic.com/s/opensans/v13/59ZRklaO5bWGqF5A9baEERJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts.gstatic.com/s/opensans/v13/u-WUoqrET9fUeobQW7jkRRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(../fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin-ext */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 300;
src: local('Oswald Light'), local('Oswald-Light'), url(../fonts.gstatic.com/s/oswald/v10/l1cOQ90roY9yC7voEhngDBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 300;
src: local('Oswald Light'), local('Oswald-Light'), url(../fonts.gstatic.com/s/oswald/v10/HqHm7BVC_nzzTui2lzQTDVtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin-ext */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 400;
src: local('Oswald Regular'), local('Oswald-Regular'), url(../fonts.gstatic.com/s/oswald/v10/yg0glPPxXUISnKUejCX4qfesZW2xOQ-xsNqO47m55DA.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 400;
src: local('Oswald Regular'), local('Oswald-Regular'), url(../fonts.gstatic.com/s/oswald/v10/pEobIV_lL25TKBpqVI_a2w.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin-ext */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 700;
src: local('Oswald Bold'), local('Oswald-Bold'), url(../fonts.gstatic.com/s/oswald/v10/dI-qzxlKVQA6TUC5RKSb3xJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Oswald';
font-style: normal;
font-weight: 700;
src: local('Oswald Bold'), local('Oswald-Bold'), url(../fonts.gstatic.com/s/oswald/v10/bH7276GfdCjMjApa_dkG6VtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

Binary file not shown.

BIN
norsecorp/img/flags/AD.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
norsecorp/img/flags/AE.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

BIN
norsecorp/img/flags/AF.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
norsecorp/img/flags/AG.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

BIN
norsecorp/img/flags/AI.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
norsecorp/img/flags/AL.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
norsecorp/img/flags/AM.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

BIN
norsecorp/img/flags/AN.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

BIN
norsecorp/img/flags/AO.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
norsecorp/img/flags/AR.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 B

BIN
norsecorp/img/flags/AS.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
norsecorp/img/flags/AT.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

BIN
norsecorp/img/flags/AU.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 B

BIN
norsecorp/img/flags/AW.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 761 B

BIN
norsecorp/img/flags/AX.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

BIN
norsecorp/img/flags/AZ.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 874 B

BIN
norsecorp/img/flags/BA.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 849 B

BIN
norsecorp/img/flags/BB.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 481 B

BIN
norsecorp/img/flags/BD.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 B

BIN
norsecorp/img/flags/BE.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 B

BIN
norsecorp/img/flags/BF.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

BIN
norsecorp/img/flags/BG.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

BIN
norsecorp/img/flags/BH.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

BIN
norsecorp/img/flags/BI.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
norsecorp/img/flags/BJ.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

BIN
norsecorp/img/flags/BL.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
norsecorp/img/flags/BM.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
norsecorp/img/flags/BN.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
norsecorp/img/flags/BO.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 825 B

BIN
norsecorp/img/flags/BQ.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

BIN
norsecorp/img/flags/BR.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
norsecorp/img/flags/BS.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

BIN
norsecorp/img/flags/BT.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
norsecorp/img/flags/BW.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

BIN
norsecorp/img/flags/BY.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 591 B

BIN
norsecorp/img/flags/BZ.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
norsecorp/img/flags/CA.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 B

BIN
norsecorp/img/flags/CC.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
norsecorp/img/flags/CD.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
norsecorp/img/flags/CF.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

BIN
norsecorp/img/flags/CG.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

BIN
norsecorp/img/flags/CH.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

BIN
norsecorp/img/flags/CI.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

BIN
norsecorp/img/flags/CK.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
norsecorp/img/flags/CL.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 B

BIN
norsecorp/img/flags/CM.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

BIN
norsecorp/img/flags/CN.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 845 B

BIN
norsecorp/img/flags/CO.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

BIN
norsecorp/img/flags/CR.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

BIN
norsecorp/img/flags/CU.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 B

BIN
norsecorp/img/flags/CV.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 443 B

Some files were not shown because too many files have changed in this diff Show More