Browse Source

update macos scripts

Former-commit-id: fbd24f6890
master
R4SAS 4 years ago
parent
commit
6d60f9dae1
  1. 0
      macos/.gitignore
  2. 0
      macos/README.md
  3. 50
      macos/build/build
  4. 364
      macos/build/i2pd/addressbook/addresses.csv
  5. 0
      macos/build/i2pd/certificates/family/gostcoin.crt
  6. 0
      macos/build/i2pd/certificates/family/i2p-dev.crt
  7. 0
      macos/build/i2pd/certificates/family/i2pd-dev.crt
  8. 0
      macos/build/i2pd/certificates/family/mca2-i2p.crt
  9. 0
      macos/build/i2pd/certificates/family/volatile.crt
  10. 32
      macos/build/i2pd/certificates/reseed/acetone_at_mail.i2p.crt
  11. 0
      macos/build/i2pd/certificates/reseed/creativecowpat_at_mail.i2p.crt
  12. 0
      macos/build/i2pd/certificates/reseed/echelon_at_mail.i2p.crt
  13. 0
      macos/build/i2pd/certificates/reseed/hankhill19580_at_gmail.com.crt
  14. 0
      macos/build/i2pd/certificates/reseed/hottuna_at_mail.i2p.crt
  15. 0
      macos/build/i2pd/certificates/reseed/igor_at_novg.net.crt
  16. 0
      macos/build/i2pd/certificates/reseed/lazygravy_at_mail.i2p.crt
  17. 0
      macos/build/i2pd/certificates/reseed/r4sas-reseed_at_mail.i2p.crt
  18. 34
      macos/build/i2pd/certificates/reseed/reseed_at_diva.exchange.crt
  19. 0
      macos/build/i2pd/certificates/router/orignal_at_mail.i2p.crt
  20. 0
      macos/build/i2pd/i2pd
  21. 6
      macos/build/i2pd/i2pd.conf
  22. 16
      macos/build/i2pd/tunnels.conf
  23. 0
      macos/build/i2pd/tunnels.d/IRC-Ilita.conf
  24. 0
      macos/build/i2pd/tunnels.d/IRC-Irc2P.conf
  25. 0
      macos/build/i2pd/tunnels.d/README
  26. 0
      macos/build/preferences/browser/defaults/profile/bookmarks.html
  27. 0
      macos/build/preferences/browser/override.ini
  28. 0
      macos/build/preferences/defaults/pref/autoconfig.js
  29. 96
      macos/build/preferences/distribution/policies.json
  30. 153
      macos/build/preferences/i2pdbrowser.cfg
  31. BIN
      macos/build/profile-en/addonStartup.json.lz4
  32. BIN
      macos/build/profile-en/search.json.mozlz4
  33. BIN
      macos/build/profile-ru/search.json.mozlz4
  34. 0
      macos/build/profile/bookmarks.html
  35. BIN
      macos/build/profile/cert9.db
  36. 23
      macos/build/profile/certificates/purplei2p_ca.pem
  37. 1197
      osx/build/i2pd/addressbook/addresses.csv
  38. 32
      osx/build/i2pd/certificates/reseed/bugme_at_mail.i2p.crt
  39. 32
      osx/build/i2pd/certificates/reseed/meeh_at_mail.i2p.crt
  40. 1
      osx/build/preferences/cck2/chrome.manifest
  41. 154
      osx/build/preferences/cck2/modules/CAPSCheckLoadURIFramescript.js
  42. 183
      osx/build/preferences/cck2/modules/CAPSClipboardFramescript.js
  43. 1495
      osx/build/preferences/cck2/modules/CCK2.jsm
  44. 111
      osx/build/preferences/cck2/modules/CCK2AboutAddonsOverlay.jsm
  45. 33
      osx/build/preferences/cck2/modules/CCK2AboutDialogOverlay.jsm
  46. 79
      osx/build/preferences/cck2/modules/CCK2AboutHomeFramescript.js
  47. 62
      osx/build/preferences/cck2/modules/CCK2AboutSupportOverlay.jsm
  48. 373
      osx/build/preferences/cck2/modules/CCK2BrowserOverlay.jsm
  49. 47
      osx/build/preferences/cck2/modules/CCK2FileBlock.jsm
  50. 51
      osx/build/preferences/cck2/modules/CCK2Framescript.js
  51. 123
      osx/build/preferences/cck2/modules/CCK2PreferencesOverlay.jsm
  52. 123
      osx/build/preferences/cck2/modules/CTPPermissions.jsm
  53. 629
      osx/build/preferences/cck2/modules/Preferences.jsm
  54. 43
      osx/build/preferences/cck2/modules/Timer.jsm
  55. 10
      osx/build/preferences/cck2/modules/Utils.jsm
  56. 24
      osx/build/preferences/cck2/resources/certs/purplei2p_ca.pem
  57. 29
      osx/build/preferences/cck2/resources/searchengines/legwork.xml
  58. 1
      osx/build/profile/xulstore.json

0
osx/.gitignore → macos/.gitignore vendored

0
osx/README.md → macos/README.md

50
osx/build/build → macos/build/build

@ -12,15 +12,20 @@ cd $dir
arch=$(uname -m) arch=$(uname -m)
language=$(osascript -e 'user locale of (get system info)' | sed -e 's/_/-/g') language=$(osascript -e 'user locale of (get system info)' | sed -e 's/_/-/g')
version="60.9.0esr" version="78.11.0esr"
i2pdversion="2.32.1" i2pdversion="2.38.0"
ftpmirror="https://ftp.mozilla.org/pub/firefox/releases/${version}" ftpmirror="https://ftp.mozilla.org/pub/firefox/releases/${version}"
curlfind=$(which curl) curlfind=$(which curl)
if [ -z $curlfind ]; then if [ -z $curlfind ]; then
echo "'cURL' does not seem to be installed. The script needs it!"; echo "'cURL' does not seem to be installed. The script needs it!"
exit 1; exit 1
fi
# We support only English (US) and Russian
if [ "$language" != "ru" ]; then
language="en-US"
fi fi
echo "This script is preparing Firefox $version for use with I2Pd" echo "This script is preparing Firefox $version for use with I2Pd"
@ -33,14 +38,14 @@ echo "Downloading $application..."
tmpfilepath=$(echo $filepath | sed 's/ /%20/g') tmpfilepath=$(echo $filepath | sed 's/ /%20/g')
curl -L -f -# -o "${file}" "${ftpmirror}/${tmpfilepath}" curl -L -f -# -o "${file}" "${ftpmirror}/${tmpfilepath}"
if [ $? -ne 0 ]; then # Not found error, trying to cut language variable if [ $? -ne 0 ]; then # Not found error, trying to cut language variable
echo "[TRY 2] I'll try downloading Firefox with shorter language code"; echo "[TRY 2] I'll try downloading Firefox with shorter language code"
language=$(echo $language | cut -c-2) language=$(echo $language | cut -c-2)
# re-create variable with cutted lang # re-create variable with cutted lang
filepath="mac/$language/$file" filepath="mac/$language/$file"
tmpfilepath=$(echo $filepath | sed 's/ /%20/g') tmpfilepath=$(echo $filepath | sed 's/ /%20/g')
curl -L -f -# -o "${file}" "${ftpmirror}/${tmpfilepath}" curl -L -f -# -o "${file}" "${ftpmirror}/${tmpfilepath}"
if [ $? -ne 0 ]; then # Not found error, trying to download english version if [ $? -ne 0 ]; then # Not found error, trying to download english version
echo "[TRY 3] I'll try downloading Firefox with the English language code"; echo "[TRY 3] I'll try downloading Firefox with the English language code"
language="en_US" language="en_US"
# re-create lang variable # re-create lang variable
filepath="mac/$language/$file" filepath="mac/$language/$file"
@ -48,14 +53,14 @@ if [ $? -ne 0 ]; then # Not found error, trying to cut language variable
curl -L -f -# -o "${file}" "${ftpmirror}/${tmpfilepath}" curl -L -f -# -o "${file}" "${ftpmirror}/${tmpfilepath}"
if [ $? -ne 0 ]; then # After that i can say only that user haven't internet connection if [ $? -ne 0 ]; then # After that i can say only that user haven't internet connection
echo "[Error] Can't download file. Check your internet connectivity." echo "[Error] Can't download file. Check your internet connectivity."
exit 1; exit 1
fi fi
fi fi
fi fi
if [ ! -f $file ]; then if [ ! -f $file ]; then
echo "[Error] Can't find downloaded file. Does it really exist?" echo "[Error] Can't find downloaded file. Does it really exist?"
exit 1; exit 1
fi fi
echo "Downloading checksum file and checking SHA512 checksum" echo "Downloading checksum file and checking SHA512 checksum"
@ -64,15 +69,17 @@ recv_sum=$(grep "$filepath" SHA512SUMS | cut -c-128)
file_sum=$(shasum -a 512 "$file" | cut -c-128) file_sum=$(shasum -a 512 "$file" | cut -c-128)
if [ $recv_sum != $file_sum ]; then if [ $recv_sum != $file_sum ]; then
echo "[Error] File checksum failed!" echo "[Error] File checksum failed!"
exit 1; exit 1
else else
echo "Checksum correct." echo "Checksum correct."
rm SHA512SUMS rm SHA512SUMS
fi fi
exit
echo "Attaching image and copying files..." echo "Attaching image and copying files..."
hdiutil attach "$file" hdiutil attach "$file"
cp -rf /Volumes/Firefox/Firefox.app ../FirefoxESR.app cp -r /Volumes/Firefox/Firefox.app ../FirefoxESR.app
mkdir ../data mkdir ../data
echo "Detaching image and removing image file..." echo "Detaching image and removing image file..."
@ -85,14 +92,8 @@ rm -r ../FirefoxESR.app/Contents/Library
rm -r ../FirefoxESR.app/Contents/MacOS/crashreporter.app rm -r ../FirefoxESR.app/Contents/MacOS/crashreporter.app
rm ../FirefoxESR.app/Contents/MacOS/pingsender rm ../FirefoxESR.app/Contents/MacOS/pingsender
rm -r ../FirefoxESR.app/Contents/MacOS/updater.app rm -r ../FirefoxESR.app/Contents/MacOS/updater.app
rm ../FirefoxESR.app/Contents/Resources/browser/blocklist.xml
rm ../FirefoxESR.app/Contents/Resources/browser/crashreporter-override.ini rm ../FirefoxESR.app/Contents/Resources/browser/crashreporter-override.ini
rm ../FirefoxESR.app/Contents/Resources/browser/features/aushelper@mozilla.org.xpi
rm ../FirefoxESR.app/Contents/Resources/browser/features/firefox@getpocket.com.xpi
rm ../FirefoxESR.app/Contents/Resources/browser/features/followonsearch@mozilla.com.xpi
rm ../FirefoxESR.app/Contents/Resources/browser/features/formautofill@mozilla.org.xpi rm ../FirefoxESR.app/Contents/Resources/browser/features/formautofill@mozilla.org.xpi
rm ../FirefoxESR.app/Contents/Resources/browser/features/jaws-esr@mozilla.org.xpi
rm ../FirefoxESR.app/Contents/Resources/browser/features/onboarding@mozilla.org.xpi
rm ../FirefoxESR.app/Contents/Resources/browser/features/screenshots@mozilla.org.xpi rm ../FirefoxESR.app/Contents/Resources/browser/features/screenshots@mozilla.org.xpi
rm ../FirefoxESR.app/Contents/Resources/precomplete rm ../FirefoxESR.app/Contents/Resources/precomplete
rm ../FirefoxESR.app/Contents/Resources/removed-files rm ../FirefoxESR.app/Contents/Resources/removed-files
@ -103,15 +104,24 @@ sed -i '' -e "s/ServerURL=.*/ServerURL=-/" "../FirefoxESR.app/Contents/Resources
# Done! # Done!
echo "Downloading language packs..." echo "Downloading language packs..."
curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/langpack-ru@firefox.mozilla.org.xpi "https://addons.mozilla.org/firefox/downloads/file/978562/russian_ru_language_pack-60.0buildid20180605171542-an+fx.xpi" mkdir ../FirefoxESR.app/Contents/Resources/browser/extensions
curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/langpack-en-US@firefox.mozilla.org.xpi "https://addons.mozilla.org/firefox/downloads/file/978493/english_us_language_pack-60.0buildid20180605171542-an+fx.xpi" curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/langpack-ru@firefox.mozilla.org.xpi https://addons.mozilla.org/firefox/downloads/file/3605589/russian_ru_language_pack-78.0buildid20200708170202-fx.xpi
curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/ru@dictionaries.addons.mozilla.org.xpi https://addons.mozilla.org/firefox/downloads/file/1163927/russian_spellchecking_dictionary-0.4.5.1webext.xpi
curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/langpack-en-US@firefox.mozilla.org.xpi https://addons.mozilla.org/firefox/downloads/file/3605503/english_us_language_pack-78.0buildid20200708170202-fx.xpi
curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/en-US@dictionaries.addons.mozilla.org.xpi https://addons.mozilla.org/firefox/downloads/file/3498005/english_united_states_dictionary-68.0.xpi
echo "Downloading NoScript extension..." echo "Downloading NoScript extension..."
curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi "https://addons.mozilla.org/firefox/downloads/file/3383315/noscript_security_suite-11.0.3-an+fx.xpi" curl -L -f -# -o ../FirefoxESR.app/Contents/Resources/browser/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi https://addons.mozilla.org/firefox/downloads/file/3625174/noscript_security_suite-11.0.38-an+fx.xpi
echo "Adding standard configs..." echo "Adding standard configs..."
cp profile/* ../data/
cp -r preferences/* ../FirefoxESR.app/Contents/Resources/ cp -r preferences/* ../FirefoxESR.app/Contents/Resources/
cp -r profile/* ../data/
if [ "$language" = "ru" ]; then
cp -r profile-ru/* ../data/
else
cp -r profile-en/* ../data/
fi
echo '#!/bin/sh' > "../i2pdbrowser-portable" echo '#!/bin/sh' > "../i2pdbrowser-portable"
echo 'dir=${0%/*}' >> "../i2pdbrowser-portable" echo 'dir=${0%/*}' >> "../i2pdbrowser-portable"

364
macos/build/i2pd/addressbook/addresses.csv

@ -0,0 +1,364 @@
0pl.i2p,gd7qe2pu2jwqabz4zcf3wwablrzym7p6qswczoapkm5oa5ouuaua
102chan-memorial.i2p,t6uwxydnfd7mo2knxklmnrudxafe4mw5ojiqikj7xfrc4ynltz3q
102chan.i2p,xxu3lso4h2rh6wmrxiou3ax7r7la7x6dhoepnku3jvrlwp35pefq
2ch.i2p,suzp44odgixf5lthy5ngy6ktabus5gz47squie2shudi6kmlwuaq
333.i2p,ctvfe2fimcsdfxmzmd42brnbf7ceenwrbroyjx3wzah5eudjyyza
aaa.i2p,zzhy7rumzzgxzodvgu4xz324nekbbccphegweukj4cm6nrbpg4oa
abdlandrubbernetwork.i2p,asnpognglrcx34l5vywatfkoaashziedfylun4w6cf5wue5gujca
acetone.i2p,tzwfy3dnqtm4wuofmcp3gcb5qjcytri635ei7kw7yrl6n3ul5n2a
agoradesk.i2p,ztqnvu7c35jyoqmfjyymqggjpyky6z3tlgewk2qgbgcmcyl4ecta
albatcats.i2p,ilgg7nbtofvgzrpl6kenxugfdsgi3apu6sgilmqi5rhpolnauyga
anek.i2p,iprnd5ceoj3sovmhoigwammwi7zuklrqwzfzrhvhjppspfxepvpa
animal.i2p,5iedafy32swqq4t2wcmjb4fvg3onscng7ct7wb237jkvrclaftla
anongw.i2p,owrnciwubb3f3dctvlmnaknb6tjdxtlzvv7klocb45mmhievdjhq
anonroms.i2p,w2sgx2i5n4uxtqjgekckxnhhpymigpn5lmgdaujyzib6sxq7j4cq
anonyradio.i2p,cbobsax3rhoyjbk7ii2nd2fnl5bxh3x7bbearokyxgvmudn7o5bq
apt.idk.i2p,s7qemnncvmy5zs3khd6qzlcnsvtu6drnkeae4r3yyc7akuzuqiia
archaicbinarybbs.i2p,t7o2tw36cffedgfr6kahewpkrntofnliuapji2e4rucl3os55epa
archiv.tutorials.i2p,lldr2miowq6353fxy44pnxfk37d6yn2f6kaivzecbmvvnnf5exyq
archlinux.i2p,5ms4k3cn5dx53b46hqgwogigsjhtinuf4g6fdr6pplkldi5vjcxa
ardor-wallet.i2p,tm23k5ny3umhf6vf3kghnnwacli5zywq5wrr3xcqowbcofuyr4gq
bandura-yacy.i2p,e4t4yer7o6dbttk4xmpsfd56vhuse5upksgjqejnrvrdz35ia2qq
bandura.i2p,n6eqyu6glmtgt544ys43ggrozhpiw7biyrelrvmkmg7llfcjwm4a
bbs.i2p,7ubwrcixdcemzqwqzh2vaakjsnochj2biuzpo6dc2n4f7wqj4pua
bible4u.i2p,xs6lr2g5jiaajtb3nkno2zmy34eipitrggooxb7wtey7uko7bqmq
black.i2p,sjwueu62qpe6dtv5b322k3f23fl4uz3w6qe6wcrwauiwpnymypfq
boerse.i2p,7633w56hd53sesr6b532r5qlbdnvyl5bnvama6ign6xryaxol4rq
bofh.i2p,auvuinzogu6gc4pwsgbjijuszxgcjygciu2wy53pfz7mo5nfpc5a
boran.i2p,boranyzcefxqw2ktndemy3npt4zhetpp6edldtlym2ap7n5azt5a
bote.i2p,bhjhc3lsdqzoyhxwzyrd63kvyg4br6n2337d74blyintae66mr2a
boxs.i2p,owm3fy2t5vwbxowk5gsshihkwjfknqq7y4ylbeyhvzta7r3ybrpq
brain.i2p,wbmkweyyedl5dp74hfyo2iot6y7oq5yzbe6hbscdszyi5dci2dka
braindead.i2p,braindsku6jnpmnaats2cu2qzax4pga6dwhx436kxanpxgx2pcyq
bunkerirc.i2p,mdt7h4zsbwafsikg3r4iiqh5wriaisznjj5d3f3lyeahipudsxoq
ca.i2pd.i2p,u5safmawcxj5vlrdtqrsqbsndkr5cfenpicgg5euu4xqm73yicba
cake.i2p,hpdbe6o6qqqqvgygbcznssat46kybsm7rcauofqaoly4ajdi2jeq
cathugger.i2p,vq43xjjcnejqpzfprws5qzrea2siieshu4tglpdepql2w3w3bpba
cbs.i2p,u3lp7wazvq6opodzwjg5sc5w5kwxehmxd4wcdpt4s4j2k4dx4apq
chudo.i2p,iaublzhzc4ssa3rcrjbdigautm66mslt6g2sninugagiarl4at3q
ci.idk.i2p,antkos5hjxraxduyewoo4qwwr6vyceiggd562nctvmtpnfjsuqlq
cloaca.i2p,j462o64zr34ws6shsmpkwftbwrabtdo3u4yv3dfsrshkshwvcxtq
closedshop.i2p,6fg67mbw2okopzyonsck4bsy3cy7l2fame56uiysr2cezhjhzdbq
co.i2p,3mvo5eifcwplcsoubtvqkzdahwo2sdhfygfdde7lj2glybk4q22q
cobalt.idk.i2p,m63cbwomq4e4q6df3n6idnuveqa4yastxnls6kacseuutrp5um4q
coldhell.i2p,z2kerfik5dzqd2kj74cuhhtptkrizsblc5nm6ke2gcnj5mnwgwja
community.i2p,64luakopnvffchxnibn3d2p7uqxixtyuallfqfgifkkcmfcrczxa
costeira.i2p,abhty5xlmnyab2kqdxcd56352kcescxoux3p6dbqdrghggyygnxa
cs.i2p,kzaeunogz6s75ptgy6ifjzwwy75xdfenenswvrczd7mewxgrad5a
darkrealm.i2p,gbh4eerxdsph7etxsxznfhvmuiz54trlkenakqep343u4xcoekzq
dashninja.i2p,dzjzoefy7fx57h5xkdknikvfv3ckbxu2bx5wryn6taud343g2jma
dcherukhin.i2p,qa4boq364ndjdgow4kadycr5vvch7hofzblcqangh3nobzvyew7a
dead.i2p,7ko27dxvicr2sezvykkrfiktlghx5y5onup3f2bas5ipocy6ibvq
deavmi.i2p,t4cvvenniup6dcdlu2ehdycos5r3luccfemwd6hhvyqv5zd6obgq
deepwebradio.i2p,2nait2gdeozkgf6gyhzjfij6mwldwkxxwcvtxobb4b5q5cvtm5la
def2.i2p,cepsrw27kdegwo7ihzouwvgcvw2obswwjs23ollgj7hk2yrce3da
def3.i2p,xbf3ots2purqun7orn72ypkpjmrzbfrkj3u654zfe77hbrbow6la
def4.i2p,yyzdq4fwwmnlojp23drfpfqujln2vcjozjrfzfeuriuqzdq7g4mq
det.i2p,y6d4fs3rpqrctuv77ltfajf5m4tl4kzcu7rtwhxgiohylfxxow4q
diasporg.i2p,edvccoobtjukjgw2os5eetywanbb2mpag5aknkrpia5qx2koksua
diffyq.i2p,hkjvyuc3asswxa7uxyalrnpqab4lyvzriu2rsq6jbjc2kaoabghq
digcitlab.i2p,gijabxlt4ox2mblh2nfxnds6u4mlsdeoonizknbdksl7klmbpvoq
diva.i2p,auoqibfnyujhcht4v3nzahpqztwlyomesfywltuls5bqqi3nd3ka
dlms.i2p,krsbxsaw3lnb6ctdpydygm2gqobjcpm4pf367ddo5hylbscnynmq
dns.chudo.i2p,zzfmtnnmacop3xvpznc4c2jfvk226wpep2gaoanja3gfzf3ih7xq
dosje.i2p,ir2ky5ejx4f646l4fsnug22gj4frn6jzlg7fgboudf2n5b4gdj3q
dreadpiratessociety.i2p,fbdd4syj2v52x5zord67av2xclmjsg6bc6xdvrqmvqkyd3whij6q
dropbox.i2p,omax2s5n4mzvymidpuxp2yqknf23asvu54uon6cxl6gdrlblnuiq
e8.i2p,5spb6cl4ffallahbaj2yadag2zgyuciouhz2rdcnyjcf5phqcu4a
easygpg2.i2p,bwxry5alzx5ihgrd3glah4eotddblzhalvpheppnw4zcajzqoora
ebooks.i2p,bvpy6xf6ivyws6mshhqmdmr36pruh2hvoceznzeag52mpu647nzq
echo.idk.i2p,63sgpiu6f33arldcxkbjsn3jgf6asyx3onjmz6j6gsk7hgbiehkq
eddysblog.i2p,ieac3ub4g5sy3wuhsbqfembnpp7f3a37xgcx537ytzsmgfzexnbq
es.hiddenanswers.i2p,cw7ge5ey4ekp5iep2kaw6j54boebtqytpcbnvio2bfpccd5ejzfa
fa.i2p,6n6p3aj6xqhevfojj36dixwbl4reopkhymxmatz7ai5sroh75rka
false.i2p,77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha
fantasy-worlds.i2p,62a4xcyyhvfrcq2bkckb7ia37fmrssrgx467tlkxp32fjpq577wq
fido.r4sas.i2p,i522xmu63hfbaw2k54cthffcoqmeao6urjyq3jg4hddf6wf57p3q
flibs.i2p,ocdm33e3h5tdml3yyholj4objdwsrhlugfqjnqgdkslmgdzb6b3a
flibusta.i2p,zmw2cyw2vj7f6obx3msmdvdepdhnw2ctc4okza2zjxlukkdfckhq
forum.idk.i2p,bg7kaiqjcqqeuuwb5nyo3ptcp5dgza7mihtizwqtnz2itombg6da
forum.rus.i2p,zd37rfivydhkiyvau27qxwzmerlzbqtthsa5ohtcww62zrygjaga
freefallheavens.i2p,7etudb75nhe6vxslitptjlwrnbybdshvzxnweuiepsxbbkkxy5ka
freenet-inproxy.bandura.i2p,rblg2sajac7winv4mgvnkfh2fa3nt2zxfvxfiybj76okpwdrt45a
freifunkmobi.bandura.i2p,5shuxvx52e3qszylwn4w7qst4siap3latyap3ff7nfnpjgllkcea
fresh.i2p,jii6utg6ubwxgls6jegu24ifrroo4qzbcizjfft2bemodp4k2i6a
fs.i2p,ah4r4vzunzfa67atljlbrdgtg3zak5esh7ablpm6xno6fhqij35q
fsb.i2p,2jefiqburn5hu3su3dlg65xj32iuteqgz5bfpc5j57qbmkph7lya
fskn.i2p,nx2uzyxx7424cwj6vmrekjka4hplvyq53oljkzqbkiuzghmi2ayq
fsoc.i2p,vaqc4jm2trq7lx2kkglve7rkzxhhaptcwwl32uicx4ehf5k3hx6q
fuka.i2p,e3aanmaobvwopjrmrnuqvrkr36gyubrv6f2lyygh5brku3ufwrsa
fxruby.i2p,lqhdnr2pvp2igu5e2cxichboqzcgypvrbooynzgkmoze3xae6qkq
gandc.i2p,m6zwig36wxbbhat5fxh5vzqo2uvq2vwl4q7kxc2f2w6wtzvzesoa
gedanken.i2p,kw6isjbs66uf7576fbb3aniokxtrpqmbegf4tf3xskg2bmrjci7a
ginnegappen.i2p,kbhfkzx5jeqhfgss4xixnf4cb3jpuo432l3hxc32feelcmnr3yja
git.idk.i2p,7qeve4v2chmjdqlwpa3vl7aojf3nodbku7vepnjwrsxljzqipz6a
git.qorg11.i2p,jf2mrxlbqsct67fces34x6kwbbnmlx6o7gd6g4knqk36soa6efqq
git.repo.i2p,vsd2vtgtuua2vwqsal2mpmxm2b2cpn3qzmqjoeumrrw2p4aot7uq
git.volatile.i2p,gwqdodo2stgwgwusekxpkh3hbtph5jjc3kovmov2e2fbfdxg3woq
gitssh.idk.i2p,g6u4vqiuy6bdc3dbu6a7gmi3ip45sqwgtbgrr6uupqaaqfyztrka
gopher.anonroms.i2p,wqfhyrnpknap3ushsck3ih3r7inz6uoqlr3u3ktwvejur3bejqha
gostcoin.i2p,4gzcllfxktrqzv3uys5k4vgkzbth4gqednwhfpt755yivm3davuq
gusion.i2p,4qyfdhizjixe2psu7wcvqufix5wlijocehpb2futurcmlhlktrta
h0p3.i2p,k5fppzxc3bwoz2mjc7q37jojbrxo6vtprac3dzrk4wapv7irr4iq
h13.i2p,tozb4vssixoccyqtgnpaatkg2ql52kkjwnsdo3dltezges2na4bq
hagen.i2p,e2t6rqd2ysbvs53t5nnaf7drllkgk6kfriq3lfuz6mip6xfg644q
halifa.i2p,fpo5fq4kqulfxhb6odg25jskezvucbx4wlwzg6ngqsxhrzvmxtwa
heaven.i2p,y6ejpmln3j2jvf4omb4ptyo2idognputhrccph74yn6eghkpxyhq
heligoland.i2p,gzrjm62ektpqjfsem3r3kwvg6zpjvvhvpjvwfxkm2ay4zu7sp6oq
hgit.i2p,ny4ev7me2y2ibfi37mykakwvf2jhnl7lfql4etaiykjiwtd735pa
hiddenanswers.i2p,kj2kbzt27naifij4ki6bklsa2qfewxnkzbkgvximr4ecm7y4ojdq
hiddenbooru.i2p,zma5du344hy2ip5xcu6xmt4c7dgibnlv5jm4c2fre5nxv44sln3q
hiddenchan.i2p,6y4tltjdgqwfdcz6tqwc7dxhhuradop2vejatisu64nwjzh5tuwa
hisdarkmaterials.i2p,qcf3vxllflqfsbvxjlypfxsx36g5srknxnhpyz3ph5bcxdjawraq
homosexualchan.i2p,suzp44odgixf5lthy5ngy6ktabus5gz47squie2shudi6kmlwuaq
horo.i2p,vrxh2vbqsfvh2utnt3ighimu4vrgla2mfpwksipkjsguv5vewhdq
hotline.i2p,6cczi27iuxkm3aivazaemzltdqgh42ljzurqp43uclbz2lid2uqq
hp-net.bandura.i2p,z2ufexrgrxry37y4vs5hted35ygpleskfcs2enanl53hmlpzlqhq
hq.postman.i2p,7ewjvbcwgah57n64cwbsxqai7eutqofkesuxfsuhfheijivdjqra
http-false.telegram.i2p,77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha
i2p-mirror.bandura.i2p,aq7r54ebou47b533y5seiod7dc3aeycucevl2pqvphnjhjwblr6q
i2p-projekt.i2p,udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna
i2pd.i2p,4bpcp4fmvyr46vb4kqjvtxlst6puz4r3dld24umooiy5mesxzspa
i2pdocs.str4d.i2p,yfvbtrhjac3jutdsqzugog6mbz3jtyhpwovrt2mqc5mzv534y7cq
i2peek-a-boo.i2p,qgv64klyy4tgk4ranaznet5sjgi7ccsrawtjx3j5tvekvvfl67aa
i2pforum.i2p,tmipbl5d7ctnz3cib4yd2yivlrssrtpmuuzyqdpqkelzmnqllhda
i2pjump.i2p,2mwcgdjvfvd3xwumzqzqntual3l57h3zo7lwdmkjboeraudpkyka
i2pmetrics.i2p,v65p4czypwxrn35zlrfkar2w77vr42acd7gbszegsrqq4u7sip5a
i2pnews.i2p,tc73n4kivdroccekirco7rhgxdg5f3cjvbaapabupeyzrqwv5guq
i2podisy.i2p,3c2jzypzjpxuq2ncr3wn3swn5d4isxlulqgccb6oq5f6zylcrvcq
i2pseed.bandura.i2p,2bpbnalf76ktxzhfekkwcklmo45xzedi5em5bdoyedrhw5bhvtia
i2psurvey.i2p,pemwrlamhiiv74ok4kwoo4eqwzzjshp4q7ir3nlh4jfnt4zjncia
i2pwiki.bandura.i2p,isbf7tzeyrutnd5rvmjpqaohe7cz6onqgci2wvbuyfwc62w74r3q
i2pyacy.bandura.i2p,owy6s5xlkf4zsrwwpemvoru6x6qmrye2pe3v4v3dncvcrzix3fiq
i2speed.i2p,532c5r6ra6rcf2mvfgtlcxbn3lpplybwxul4xsg3ps64dlx73fga
identiguy.i2p,3mzmrus2oron5fxptw7hw2puho3bnqmw2hqy7nw64dsrrjwdilva
idk.i2p,b2o47zwxqjbn7jj37yqkmvbmci7kqubwgxu3umqid7cexmc7xudq
ilcosmista.i2p,6u2rfuq3cyeb7ytjzjxgbfa73ipzpzen5wx3tihyast2f2oeo24q
ilita.i2p,isxls447iuumsb35pq5r3di6xrxr2igugvshqwhi5hj5gvhwvqba
in.i2p,r5vbv2akbp6txy5amkftia757klgdy44s6cglqhmstpg65xycyjq
infiniteszimaliumsztarzsdeeploopzsplungedigraverepeatplungeei.i2p,lii5rejifs32fdoevdexodeqfvz3xenlyiyonwqdifseptls2wra
infirium.i2p,4iovxkkupux5nnl3cnsdhpqzpjg3jmqatdmogpuu637gxdybjqhq
infoserver.i2p,jd3agbakybnhfvkeoxrx7t33iln6suzomv3kxkxf77j7rkonch6q
inr.i2p,joajgazyztfssty4w2on5oaqksz6tqoxbduy553y34mf4byv6gpq
instantexchange.i2p,5wiyndm44bysev22kxvczxt37p6o6qroiqykytrvn2yzi55aqfxq
ioannism.i2p,g2246vc2tq64rmomwe47v3jnbpz3b3ec2wrrhadukj7lxmwd5aoa
irc.acetone.i2p,qyzbrdw26ejjdjzsrcmq5h3ggdzk6cq5xynrgee5t5q73gq545yq
irc.coldhell.i2p,d4b3dcqt32yq55b6ct6f4rsib5svzgwkfz4klfczuz7e4p2v6rkq
irc.echelon.i2p,ez2czsvej5p3z5bquue5q3thujcodfze7ptybctqhnqc7hms5uzq
irc.ilita.i2p,5xeoyfvtddmo5k3kxzv7b3d5risil6333ntqrr3yvx3yubz5tk3a
irc.kitsune.i2p,cpesprosbsuycn4ui3neidqdtqz5ufekthob7cobl3p7bcuaoh3q
irc.postman.i2p,hhcy7zznltay2tzwdvtd37g2inptemz3hk5zmxyi57d3sxgxbseq
irc.r4sas.i2p,hodhusp73gltozgrnianlbploon3rrvhrzfn5mf2g46o7aaau5la
irc.rpi.i2p,ppqu4shst5hfjn6jgxyragcanyxurhmof7jdrxag5srpeobevh5q
isitup.i2p,xk6ypey2az23vtdkitjxvanlshztmjs2ekd6sp77m4obszf6ocfq
isotoxin.i2p,wue3ycaccf4texikza3fh6p5yrmtgnooisuypnepo5mo67lmpcqq
ivorytower.i2p,fpwrfvidfexsz7dspofkwtkmmizm7lyralfz5kvykffk7gubvxsq
javascript.i2p,idxpwvskkaq3pssrnqpxmiilgeqwf7d2hf5xpusossqz6r2nudva
jikx.i2p,aazr55itvyns4lwppvx5njyx5tjdwemw4w6jbmpegdunznod2ieq
k1773r.i2p,zam7u6vslhemddz347uusuzjdk5wma4h5hcmcqlng4ybbpdbjhnq
kallist.i2p,rpoqwcozn4pdxz7bp2vxsl7vfibpbccsymfuxg3c7v7yj3um4bta
kelvinchan.i2p,6s72dyf6jwlvk2u455lksvcs5r7deafc3iniwo5kp4ssm777noma
kenguru.i2p,u44uhokgilvmnfsg5hgwx5nddb2mw2b7dp6qz2rnhrr344ebotea
keys.dlms.i2p,znl2swe5pez65qxrr2s2s4lmdfky6mnppvh3p5j6suuiovymhjtq
keys.echelon.i2p,mwfpkdmjur5ytq4og36ym3ychinv36b2a57f4rmgqmtrwepq3fva
kibykarni.i2p,xowcvzbeq72slpbrwmjl3zy6xkrkb2ncctpkkskeqts63vedtg7a
kill-9.i2p,3i3bbs2zfabyleqxcqueeegakutrtk3hbxmvbtkrgwvetlmity4q
kislitsa.i2p,khceo3smaxtng2tnuicmcbhdnkk2j6myi4nkigcux76qh3aabdhq
kkk.i2p,kukluxklanib666d73z5fyeyb6vnystmvvreaodhjf73rhl4wxva
knijka.i2p,knjkodsakcxihwk5w5new76hibywia5zqcgoqgjttzsausnd22oa
kurator.i2p,sp3umnyofy5ytixbqcue4jrpxixccgnrxtiuvhg6juep5s5lrs6q
kycklingar.i2p,gctswdhp4447yibxfbqg3uq2bvx63qjeqnaoaux75zw73leakyva
lbt.i2p,5uhjsgyca6ggdvwjjwf67bcmalpbxitopupjpygtahxvkwlh5mzq
legalloli.i2p,clxah7lssffdubl3iklopl5bkxewmmbi5zlerw7ryuxawo2dqx2q
legwork.i2p,cuss2sgthm5wfipnnztrjdvtaczb22hnmr2ohnaqqqz3jf6ubf3a
li.i2p,jwzmbp5djo5t4mkbchhejq5mrx2yye7tkbwry22scihwy5s4hcba
linuxfarm.i2p,br3njhezhzx7mcv25nrxkrwu5g553xp4oyavsjhfa7jwmzyp3q5q
linuxmario.i2p,byo4esnp3p7imsmsn6j5syfhykt53zoh5ko66nodgdwp4427fqwa
lm.i2p,yeyar743vuwmm6fpgf3x6bzmj7fxb5uxhuoxx4ea76wqssdi4f3q
lodikon.i2p,u3f67staiwhqxpacya3clmvurdwd2kp7qcthzhstqnhrmlwc2g4a
lolicatgirls.i2p,pjhlh4h7zn3slglx46ffob5ifcccrcqr5dzbyyueh3wd6a6bizra
longseason.i2p,ighnngssgd6p4kyrec6m556rasvbtx5xe7bsyxol4lie2dibi4da
losinka.i2p,r2z2tcs6eguevoxlkrmpkcanuwgnsit2o45svnwaer3wq4v76hrq
lyoko.i2p,afuuortfaqejkesne272krqvmafn65mhls6nvcwv3t7l2ic2p4kq
man.i2p,progskxxt44tlefm5uc4jqseanlhgbbkjyz4g3nvjjzbvhhp342q
marenostrum.i2p,tlrae2xdtewfb262daw6ygm5nz5vusc7rbiefpndubjk4jvh5roq
masterdestroyer.i2p,yp2g7frk3ze5ljaxbmhmh6hhda3rmpwmpianozi6or2uzqzdur7q
mastodon.chudo.i2p,bba3rhijp3btiinfeixrk2jzz5rilnxxrxvjjx5os23ro4n6g4cq
mattermost.i2p,x5oovnhnuli5fnwtgkbd5z5jvrvdvprqyuofywx6uoxkk4bie6ya
mayvaneday.i2p,zli2qsg54w7y42vgw4xxlnj4nktcpg7xp33yjxkp33sjafvznbwa
mdleom.i2p,ggucqf2jmtfxcw7us5sts3x7u2qljseocfzlhzebfpihkyvhcqfa
metavertex2.i2p,4k6h5tsysycyaefvrh7maltvincdx6ugj4t2a37zzyzm4wf4g4dq
metrics.i2p,z45ieamhex2ihqv7oowk5fz4qq47rbvxhhhbaaiinpajbhuevtpq
mhatta.i2p,o4rsxdeepfrnncsnjq675xogp5v5qkbfgbt6ooqeyfvlifobrjxq
mk16de.bandura.i2p,rrllz7nkoeaydqzc5tqdexbfpkvensi26nqg3ly3cxrm5qt6m5sq
moneroauth.i2p,kt6uh4z24tendrol5zbm4wv4apq4nbv4w7k5vcguvbpg3alrqyxa
monerujo.i2p,puri6y5dtwh6zr4u77ep6ozatun6iz7v4wai2dzxppz7654corlq
mooks.i2p,6txhjmnxnrjku4cmdwtyacjzhwythc7l5euqaxieyrc4vjotqwzq
mosfet.i2p,s5ynkgagndmpxpf2kmnenv4x72io664gzd2x3qef54ilammnte3q
mtn.i2p-projekt.i2p,f52x5fp6uhq53f5zle5d6rq5un34xgmxgazvilvmzcby37xcmsfa
mtproxy.ilita.i2p,vxxfipsygx6jpz57pmb3d3mjgsk5ls2idxeo2bffs3yp62muyq7q
mucats.i2p,4vjquedemoznbsva4j6wnr7hyms5k3gwucmxgcnwcwweontbcrha
mumble.acetone.i2p,plpu63ftpi5wdr42ew7thndoyaclrjqmcmngu2az4tahfqtfjoxa
muwire.i2p,c3r6by4k4kzbx7yvq36u5rieuymshuq2pebo3dzs6oovpzn52uoa
nbtm.i2p,46iitklpnxzl7eeqweq5xq7nc3vcl2ll7wudpa4jcyyeahvfrgta
nekochan.i2p,dszr2z2swmeczeao2bqgop6fyh34jw5baeiybsavwtihllwa5qwq
neodome.i2p,5hkhjehj3ct2pvcah7dcylwef2oti3xij5myxbv3pd7rocio5vkq
neoniet.i2p,jf32pdnofckjvedni77vjt26m6opzzz6ocpkpxof4fptzym56raq
news-i2pn.i2p,wwcqkwfo5yhe6uribv5tzylk25j5hkdk6gdnyftzd3k7dawlzwca
news.neodome.i2p,trhwcnygfkeqjj6g4xhmrdp4gsjqsye47lsxshbmwbten4ywt5oq
nicksphere.i2p,nickg4tsj3wy3i23faxp5momjcnlwrvwl5ek5l7lkm5vrbblvgbq
nitter.i2p,axd6uavsstsrvstva4mzlzh4ct76rc6zdug3nxdgeitrzczhzf4q
normal.i2p,j5fex634r2altzb3kjvu35qekt2r3hgsqzg5qxoy7dp53heu5pma
notbob.i2p,nytzrhrjjfsutowojvxi7hphesskpqqr65wpistz6wa7cpajhp7a
novabbs.i2p,bicoankyijabtj2nlwzjmr4mamybr6bgc6xclpvsgzaaalzhhola
nsa.i2p,nsetvbclpomqxfcit4mghn6z7vdhnza6jdzczby4crnto32uykga
nvspc.i2p,anlncoi2fzbsadbujidqmtji7hshfw3nrkqvbgdleepbxx3d5xra
obmen.i2p,vodkv54jaetjw7q2t2iethc4cbi4gjdrmw2ovfmr43mcybt7ekxa
ol.i2p,bnb46culzbssz6aipcjkuytanflz6dtndyhmlaxn3pfiv6zqrohq
onelon.i2p,irkvgdnlc6tidoqomre4qr7q4w4qcjfyvbovatgyolk6d4uvcyha
opal.i2p,li5kue3hfaqhhvaoxiw2ollhhkw765myhwcijgock5rs4erdqdaa
opentracker.dg2.i2p,w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa
outproxy-tor.meeh.i2p,77igjr2pbg73ox5ngqy5ohzvrnur3ezqcogtl4vpuqtrcl3irsqq
outproxy.bandura.i2p,smaie7bxvpy53iiabfxkhmsjtqs7vzjcr5xxsysjbbobunwrav2q
p4bl0.i2p,lkgdfm4w6e2kkjhcdzr4ahhz26s3aunhrn6t2or436o73qh4z7ga
packages.i2p,2gbnylztt42dgpjh5r5tmy6oxm5xag6qv4femnbbqbpza4l2l6ja
password.i2p,knmjkeabbhudejkikbzhhjqsb4r77o45vkdhve6d254quttfx3wa
paste.idk.i2p,qvgktychvlbmqwnoqgz2siuna7f5w764wgkbqcwogipfjzf3ksva
paste.r4sas.i2p,csen43keji3qiw6uobsgzysxyjd225g6446ylq5uuz6ur2glkzaa
pehotin.i2p,e6tfct7qvso7qrseseubsk5hxn3wejkdivojqeed6i7hbj4dsmqa
pharos.i2p,vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa
pharoz.i2p,vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa
pirate.black.i2p,z67mwyo7o3tb42r3tjcckcx6gyh4tmnlh6sbmf2hz6qtn3lri2ta
pizdabol.i2p,5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa
planet.i2p,pztcztaklof7s4me2vgtdddzesnunvk55zke6oz5e77ci3qk64yq
play.infirium.i2p,3pesucgkmky2unpxceuec7jopajyz44pvb2sgwyqz6x43bfovnda
podger.i2p,56pcmc4rxmtzs6ojvszpiqmh47et3m6amh7kfszp4wbvz2jbpnya
polistern.i2p,ztqi2zewgtifrg4efs6eyxxi5www27ymley3aiz4obhulbnszlva
pomoyka.i2p,omt56v4jxa4hurbwk44vqbbcwn3eavuynyc24c25cy7grucjh24q
pool.gostcoin.i2p,m4f4k3eeaj7otbc254ccj7d5hivguqgnohwelkibr4ddk43qhywa
pop.postman.i2p,i7vd76psp3oyocljiqkoyz7fpr4fy2xq2asclf7qih6k57aj5xrq
pravtor.i2p,2sr27o5x2v2pyqro7wl5nl6krrsbizwrzsky5y7pkohwh24gn6xq
privatebin.i2p,e7qy5kc7ivqtnrbdn5ymx5nmbdedlrjkdchqmmkhud4ockrime5a
privetalena.i2p,alenabivbkqo2xoikterpsc3gquqzacxfef6usbifrez5ioegjjq
project-future.i2p,ivqynpfwxzl746gxf376lxqvgktql2lqshzwnwjk2twut6xq7xta
proof-of-loss.i2p,ofhehzoj5p4khpkookxb63tmqvrmcxaapgb3v3nm7kd5wjgebs4a
psv.i2p,pmzcuml2oi2ok2h5i6cepcyxxjrughzgliai6hzspdlyt2bucy7a
psy.i2p,s3elzoj3wo6v6wqu5ehd56vevpz2vrhhjc5m6mxoazicrl43y62q
psyco.i2p,eoilbrgyaiikxzdtmk2zeoalteupjrvcu3ui23p4wvfqo25bb73q
pt.hiddenanswers.i2p,o5jlxbbnx3byzgmihqye3kysop5jgl3unsrkmurbtr2nrnl2y74a
pt.i2p,umbkgg3nhvgunyiwo2odfo3ufbdijb2ofg5eha6nyd4ymp4yitna
pubsub.i2p,kse52thhz4srsf2ibw7zj6ua27df5a2u5gnqgf5jxwvranbw6mpa
pull.git.repo.i2p,3so7htzxzz6h46qvjm3fbd735zl3lrblerlj2xxybhobublcv67q
purokishi.i2p,ia55kcrvskaitnxegirubvderl4vhva6bwkiducbkma4scy2rhca
push.git.repo.i2p,jef4g5vxnqybm4zpouum3lzbl6ti6456q57nbyj5kfyldkempm3a
pwcq.i2p,hcwrhp454aj2jen6clgkw5odw7pvtixhf5dnqsx5ax4vkbxybk7q
qis.i2p,sxfs4mmqxe4kj6yovbi54czfhhkpzxtj7mbwxjsvazgfulhq4gka
qorg11.i2p,ivusryc5mfrroomm6s5no4badevf7djzlgzlwarce33no2bsyi3q
query.i2p,qzdh2potcfrqcwl2oejkidsyggaspvi63gfggmlz2xrhjkrnazda
quest.idk.i2p,k6stkvw3jr6of4j5g3pu34jowfpl4k4jiqih3yozhcvinkok56aa
r4sas.i2p,2gafixvoztrndawkmhfxamci5lgd3urwnilxqmlo6ittu552cndq
radio.r4sas.i2p,cv72xsje5ihg6e24atitmhyk2cbml6eggi6b6fjfh2vgw62gdpla
ramble.i2p,smv3cryi3n7d5ll7xpvlhstubi5yj4dadeltyrdwdr4onwd2jvvq
ransack.i2p,mqamk4cfykdvhw5kjez2gnvse56gmnqxn7vkvvbuor4k4j2lbbnq
realsite.i2p,ffacpzudiclaqh6fkck7ungeacfoafvijduhmwvnmp6e4jridhta
rebel.i2p,nch2arl45crkyk6bklyk2hrdwjf5nztyxdtoshy6llhwqgxho5jq
reg.i2p,shx5vqsw7usdaunyzr2qmes2fq37oumybpudrd4jjj4e4vk4uusa
reg.rus.i2p,k2r2wda4eavt4hoq5hptprqfmixusirq3gi5bl3z2pqzcd6felwa
reichsmarket.i2p,2uj4xomizi75swws7q5icmnavekb2w2ws2wlcqtyltde7pgymraq
repo.i2p,uxe3lqueuuyklel23sf5h25zwgqgjwsofrqchhnptd5y6pedzbxa
repo.r4sas.i2p,ymzx5zgt6qzdg6nhxnecdgbqjd34ery6mpqolnbyo5kcwxadnodq
retrobbs.i2p,mnn77stihntxdoade3ca2vcf456w6vhhvdsfepdvq5qggikvprxq
retrobbs2.i2p,ejff7jtyaus37slkwgeqrrcmyhpj26carp7n27f5h6s5vlbeiy6q
rfocke.i2p,pphesm2icsbqi7uzsmxpgyy4kc22b3cdpb4uwplkkjmupexva7dq
ricycal.i2p,tfkz7rgqh6rwvlo2veftw4why2dej3gztiglzfqfvykyzak2syxa
rideronthestorm.i2p,xrdc2qc7quhumhglpbcuiqxr42nuffv4xj4a73jbr4ygepitibqq
rpi.i2p,56p5qxsrvo5ereibevetw2qbj5bronmos7wxunku27g2s4kpbnlq
rslight.i2p,bitag46q3465nylvzuikfwjcj7ewi4gjkjtvuxhn73f6vsxffyiq
rsync.anonroms.i2p,4q6llvjjpgncu6wbol2rqq24ksrtscu5njj65jjovqlsxounxbdq
ru.hiddenanswers.i2p,o6rmndvggfwnuvxwyq54y667fmmurgveerlzufyrhub6w3vkagva
ru.i2p,m7fqktjgtmsb3x7bvfrdx4tf7htnhytnz5qi2ujjcnph33u3hnja
rufurus.i2p,7msryymfdta3ssyz34qur6gi4jyfkvca5iyfmnceviipwu7g2wca
rus.i2p,gh6655arkncnbrzq5tmq4xpn36734d4tdza6flbw5xppye2dt6ga
rvklein.i2p,pzbqr2s25zpgbwiz22nc7hzxlusqxwhpxrsmln63y6fd45whnjcq
scamdemia.i2p,fdkiv7o4kzaikwkw6hbn7iedidp25lv6eo7yeyeqxai3jz7mrvzq
sdmr.i2p,o2vtbbcddamtqqomtf7wbkzzkh2xovt23lc6np7qtxbuv6vtul6q
secure.thetinhat.i2p,4q3qyzgz3ub5npbmt3vqqege5lg4zy62rhbgage4lpvnujwfpala
serien.i2p,3z5k3anbbk32thinvwcy4g5al7dmb75fagcm3zgh4rzrt3maphda
sftp.anonroms.i2p,uozfd7ttkhjsofmgs7lfcy4pgngs4yp7kvnbhnppebjumgbjhjla
sharefile.i2p,o7jgnp7bubzdn7mxfqmghn3lzsjtpgkbnpjjsn6ddevqbchz3rta
shoieq3.i2p,3fjk4nfk3mccch4hdreghnyijcvovsi3yucjz3qzj5sxngqk5j6q
skank.i2p,qiii4iqrj3fwv4ucaji2oykcvsob75jviycv3ghw7dhzxg2kq53q
smtp.postman.i2p,3nrunsrgeo6grhx6y6vsx7vibm5vabtockdbys3sqdmj6vha7k5q
solr.chudo.i2p,utl2ds5vztfomjgerohvxrgaq3g6zrspyku4s35knfmu4rihhgxq
spoika.i2p,u7uyxhgikc5ifj73oz6yedpy5pvtynbqo3n7rk5qyy5h5yhz4wbq
spooks.i2p,lrlrsud2latpctgwmvfwn5hanv6m7rold4vk6n6w2p43danmvgsa
sportloto.i2p,sportloto4cqlq6uhzzvgsgd7rcsfu6mqtk7wp6zmzqwcpflbsdq
spyware.i2p,36j7itgqmnbinh3ortujakkvqdrbhlqu4b2qcwb46mue3dpzxqfq
ss.i2p,7gg7xiiwjmigrijsmkpsyzl6n4pd7hqiioovdr6vsip2xsdxpsaq
stats.i2p,kqypgjpjwrphnzebod5ev3ts2vtii6e5tntrg4rnfijqc7rypldq
status.str4d.i2p,ycyyjo3psqbo45nuz243xvgvwnmzlanzqbzxv3kh6gyjztv7425q
sto-man.i2p,rg4eilfpe24ws6nctix63qw2dlvd2tqgwdcgdxzji6l5bc4dc7aa
str4d.i2p,wrrwzdgsppwl2g2bdohhajz3dh45ui6u3y7yuop5ivvfzxtwnipa
streams.darkrealm.i2p,ud3gcmvysjch4lbjr2khmhqpf7r2x5if4q43xkqdptl4k7lc4muq
svong.i2p,wlamzgxjc4k67fn2c2pdems2dzfq3hkdbbt3n7ela7p2wp3pew6a
switching.software.i2p,4ntxofeih4fopdgl3hxn7xu3xkhrbtadnshvcc2ikrggi2qar4ba
syndie-project.i2p,xa63tpfoaqt3zru2ehxjjfbpadwj4ha6qsdvtcqtyr3b7hmt4iaq
syndie.echelon.i2p,vwrl2qmcif722fdkn3ldxcgz76df5cq4qypbndzthxwgmykyewta
tabak.i2p,y5o2vwb6kart7ivpnbpk4yte3i7kf2dsx7fy3i6w7htqtxhmbzia
tahoeserve.i2p,yhs7tsjeznxdenmdho5gjmk755wtredfzipb5t272oi5otipfkoa
telegram.i2p,i6jow7hymogz2s42xq62gqgej2zdm4xtnmpc6vjcwktdxpdoupja
testmk16de.bandura.i2p,gbdgvcv6wkwctls3tdx4ljmzo4zry3awrr37rkvrxcwg7jzjoyra
textboard.i2p,7ubwrcixdcemzqwqzh2vaakjsnochj2biuzpo6dc2n4f7wqj4pua
texterochtankar.i2p,woqimbz4v2synkwyif65izfz2t4gbfbqjrai2ic5ok5qhnvmfszq
theyosh.i2p,5m7ygxhcdyfa3kx3wfjbbunk4pjey7a5zr5lnfb3upgjbhanrita
thornworld.i2p,vinz4ygmodxarocntyjlfwk2wjpvzndlf4hxss2w2t3fk52oplva
tmpsend.i2p,r2al7m32cg2ypjcny627wkoiyanrasmorub2wqla3y6gn6rwzzvq
torrents.chudo.i2p,5ooemze55xiicrlvzjmz3il23dpo4fz5iqr7hmzrygdepan5m3lq
tosios.idk.i2p,4mfy2ggcynt5xjkrdstwju2cqicayq7tg5bcb6o575wvab2div7a
trac.i2p2.i2p,i43xzkihpdq34f2jlmtgiyyay5quafg5rebog7tk7xil2c6kbyoa
tracker.chudo.i2p,swhb5i7wcjcohmus3gbt3w6du6pmvl3isdvxvepuhdxxkfbzao6q
tracker2.postman.i2p,6a4kxkg5wp33p25qqhgwl6sj4yh4xuf5b3p3qldwgclebchm3eea
traditio.i2p,wkpjjloylf6jopu2itgpktr45t2xvpjijxilxd5tq4i7wkqgwhhq
triplechan.i2p,blrplscno3ecqb5ihhg73kufmypydjlv4r4gqiajftup5wmcdwna
tube.i2p,vipzc556nzjraiqsk5xwvyhz54fvtqt3vrepdarat3zsj4a6eypq
tumbach.i2p,u6pciacxnpbsq7nwc3tgutywochfd6aysgayijr7jxzoysgxklvq
tutorials.i2p,zy37tq6ynucp3ufoyeegswqjaeofmj57cpm5ecd7nbanh2h6f2ja
tv.i2p,znccrkhtgz4wqceyofwsqdsraqhdtteqzrag53lgmp6rhkutuy6q
unodice.i2p,fukkqcornjsfn2ggd2h4cgeitu4dbin7hymp5xf6zypwzif2pcoq
volatile.i2p,q6rve733tvhgyys57jfw4fymqf3xsnza6dqailcdjcq7w4fa5m3a
w.i2p,j2xorlcb3qxubnthzqu7lt4fvxqn63it4ikwmze55yjkzeeampuq
walker.i2p,5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa
wallet.gostcoin.i2p,reuvum7lgetglafn72chypesvto773oy53zumagrpigkckybrwda
web.telegram.i2p,re6cgwg2yrkgaixlqvt5ufajbb3w42fsldlq7k5brpvnd5gp6x5a
webcam.i2p,fhrkpj4iscrg6etgdlteseoed37q2ph7cizclgpabgcbnaq6g24a
webhosting.i2p,hxqjbkpn5fxnmurlab6oluyqf3dd2xnxszeawn4ak2s4rpjnfheq
weedforums.i2p,weedlt72zyludsl6adm5asdcalufihyzoruh6ca2klstbicj5iua
wiki.i2p-projekt.i2p,b2rpg7xtzwwfvtorfkrc3m7h222qbobnklra7g4oqhfjx64k2voa
wiki.ilita.i2p,r233yskmowqe4od4he4b37wydr5fqzvj3z77v5fdei2etp2kg34a
wlm.i2p,nigg3rveztrkpzoimq4z46pvbtml27mfhadt7n5bvl3pzzyzefxa
wopen.i2p,xvedtnzz3kpwpir23zyr3exrhkrn3267harw7gcjvp25yceyokza
www.imule.i2p,657xcllunctawyjtar5kgh3wpt6z4l7ba6mmam5rf7hev5w2lsvq
www.infoserver.i2p,fq7xhxkdcauhwn4loufcadiiy24zbei25elnup33a3gfrdzrtlyq
xeha.i2p,oartgetziabrdemxctowp7bbeggc7ktmj7tr4qgk5y5jcz4prbtq
xmpp.chudo.i2p,gppd6rx5jkutmt637odkbxh4tjqxy63i4amyhllqn424yt7pd2hq
xmpp.rpi.i2p,3yv65pfwiwfuv4ciwtx34clqps6o2mc3vtyltcbqdkcki6untbca
xmrnode.i2p,moneroti7lckp4hjrqckoq5cfi2apuyxia42sp5x7tkbzjfwqfiq
xn--80aaid2dua.i2p,dvem3jrqrymufihxnagr32q3aezgstmzcfbfp2wj7evo3ch5inta
xn--hallchen-q4a.i2p,h5c4idxoweambtqajx3ecpu4iw425mfzckb4rrcvftrr7d2utfgq
xn--i2p-5cdawgbask1ay4cjf2a9o.i2p,gar7ipdnhfy2mtbefo5dvoapzuupyphfriutu5nsnjruganiuknq
xn--n3h.i2p,6a5bfeil667ksrdgg5hx5x2dse2v6ovnsng3r2k5gp5tb4z67egq
xotc.i2p,gqgvzum3xdgtaahkjfw3layb33vjrucmw5btyhrppm463cz3c5oq
yacy.idk.i2p,7ccyylqqxnyexz2acn3nqjdlwqmd5pororbovrarar2dkw3ddrbq
yat.i2p,zxg4p6obolmrnkygoodqbdnikzychk5sild3o753hmaljuosl2fq
yggdrasil.acetone.i2p,tlfhgwzn4v5nlm2or5uy4leqmjbl5bncgcopbqnmcr4hbk3zrvqq
yiffme.i2p,sm6dk2ovxhgdjuu3rmqussc4e2xkfz6rmhng6i2t7parcb4v4y3a
yoitsu.i2p,yaaqmj55lsi5c5nukf4hsrift2zslnqkbcghwvjlaqayidtyctwa
yt2mp3.i2p,7ai77u54gxta2ry326amfq4ugiqgcxd4r663nmxtswcwezyxsbzq
zab.i2p,n4xen5sohufgjhv327ex4qra77f4tpqohlcyoa3atoboknzqazeq
zerobin.i2p,3564erslxzaoucqasxsjerk4jz2xril7j2cbzd4p7flpb4ut67hq
zeronet.i2p,fe6pk5sibhkr64veqxkfochdfptehyxrrbs3edwjs5ckjbjn4bna
zhaoku.i2p,2hq32svuc6wxgumgsyavy4osfssiaqjpdgynpvtyblin5l5urr4q
znc.str4d.i2p,ufkajv3stxpxlwgwwb2ae6oixdjircnbwog77qxpxv7nt67rpcxq
zog.i2p,7su4pwd7xicqu44rd36g2a3zjlsv2k6otommnh7ztjpyixyozq2a
zx.i2p,4ru5b25ixgz2wt2aqskbr2iflv42gt6ta6qet7rv4et5rh2kq6fq
zzz.i2p,lhbd7ojcaiofbfku7ixh47qj537g572zmhdc4oilvugzxdpdghua
1 0pl.i2p gd7qe2pu2jwqabz4zcf3wwablrzym7p6qswczoapkm5oa5ouuaua
2 102chan-memorial.i2p t6uwxydnfd7mo2knxklmnrudxafe4mw5ojiqikj7xfrc4ynltz3q
3 102chan.i2p xxu3lso4h2rh6wmrxiou3ax7r7la7x6dhoepnku3jvrlwp35pefq
4 2ch.i2p suzp44odgixf5lthy5ngy6ktabus5gz47squie2shudi6kmlwuaq
5 333.i2p ctvfe2fimcsdfxmzmd42brnbf7ceenwrbroyjx3wzah5eudjyyza
6 aaa.i2p zzhy7rumzzgxzodvgu4xz324nekbbccphegweukj4cm6nrbpg4oa
7 abdlandrubbernetwork.i2p asnpognglrcx34l5vywatfkoaashziedfylun4w6cf5wue5gujca
8 acetone.i2p tzwfy3dnqtm4wuofmcp3gcb5qjcytri635ei7kw7yrl6n3ul5n2a
9 agoradesk.i2p ztqnvu7c35jyoqmfjyymqggjpyky6z3tlgewk2qgbgcmcyl4ecta
10 albatcats.i2p ilgg7nbtofvgzrpl6kenxugfdsgi3apu6sgilmqi5rhpolnauyga
11 anek.i2p iprnd5ceoj3sovmhoigwammwi7zuklrqwzfzrhvhjppspfxepvpa
12 animal.i2p 5iedafy32swqq4t2wcmjb4fvg3onscng7ct7wb237jkvrclaftla
13 anongw.i2p owrnciwubb3f3dctvlmnaknb6tjdxtlzvv7klocb45mmhievdjhq
14 anonroms.i2p w2sgx2i5n4uxtqjgekckxnhhpymigpn5lmgdaujyzib6sxq7j4cq
15 anonyradio.i2p cbobsax3rhoyjbk7ii2nd2fnl5bxh3x7bbearokyxgvmudn7o5bq
16 apt.idk.i2p s7qemnncvmy5zs3khd6qzlcnsvtu6drnkeae4r3yyc7akuzuqiia
17 archaicbinarybbs.i2p t7o2tw36cffedgfr6kahewpkrntofnliuapji2e4rucl3os55epa
18 archiv.tutorials.i2p lldr2miowq6353fxy44pnxfk37d6yn2f6kaivzecbmvvnnf5exyq
19 archlinux.i2p 5ms4k3cn5dx53b46hqgwogigsjhtinuf4g6fdr6pplkldi5vjcxa
20 ardor-wallet.i2p tm23k5ny3umhf6vf3kghnnwacli5zywq5wrr3xcqowbcofuyr4gq
21 bandura-yacy.i2p e4t4yer7o6dbttk4xmpsfd56vhuse5upksgjqejnrvrdz35ia2qq
22 bandura.i2p n6eqyu6glmtgt544ys43ggrozhpiw7biyrelrvmkmg7llfcjwm4a
23 bbs.i2p 7ubwrcixdcemzqwqzh2vaakjsnochj2biuzpo6dc2n4f7wqj4pua
24 bible4u.i2p xs6lr2g5jiaajtb3nkno2zmy34eipitrggooxb7wtey7uko7bqmq
25 black.i2p sjwueu62qpe6dtv5b322k3f23fl4uz3w6qe6wcrwauiwpnymypfq
26 boerse.i2p 7633w56hd53sesr6b532r5qlbdnvyl5bnvama6ign6xryaxol4rq
27 bofh.i2p auvuinzogu6gc4pwsgbjijuszxgcjygciu2wy53pfz7mo5nfpc5a
28 boran.i2p boranyzcefxqw2ktndemy3npt4zhetpp6edldtlym2ap7n5azt5a
29 bote.i2p bhjhc3lsdqzoyhxwzyrd63kvyg4br6n2337d74blyintae66mr2a
30 boxs.i2p owm3fy2t5vwbxowk5gsshihkwjfknqq7y4ylbeyhvzta7r3ybrpq
31 brain.i2p wbmkweyyedl5dp74hfyo2iot6y7oq5yzbe6hbscdszyi5dci2dka
32 braindead.i2p braindsku6jnpmnaats2cu2qzax4pga6dwhx436kxanpxgx2pcyq
33 bunkerirc.i2p mdt7h4zsbwafsikg3r4iiqh5wriaisznjj5d3f3lyeahipudsxoq
34 ca.i2pd.i2p u5safmawcxj5vlrdtqrsqbsndkr5cfenpicgg5euu4xqm73yicba
35 cake.i2p hpdbe6o6qqqqvgygbcznssat46kybsm7rcauofqaoly4ajdi2jeq
36 cathugger.i2p vq43xjjcnejqpzfprws5qzrea2siieshu4tglpdepql2w3w3bpba
37 cbs.i2p u3lp7wazvq6opodzwjg5sc5w5kwxehmxd4wcdpt4s4j2k4dx4apq
38 chudo.i2p iaublzhzc4ssa3rcrjbdigautm66mslt6g2sninugagiarl4at3q
39 ci.idk.i2p antkos5hjxraxduyewoo4qwwr6vyceiggd562nctvmtpnfjsuqlq
40 cloaca.i2p j462o64zr34ws6shsmpkwftbwrabtdo3u4yv3dfsrshkshwvcxtq
41 closedshop.i2p 6fg67mbw2okopzyonsck4bsy3cy7l2fame56uiysr2cezhjhzdbq
42 co.i2p 3mvo5eifcwplcsoubtvqkzdahwo2sdhfygfdde7lj2glybk4q22q
43 cobalt.idk.i2p m63cbwomq4e4q6df3n6idnuveqa4yastxnls6kacseuutrp5um4q
44 coldhell.i2p z2kerfik5dzqd2kj74cuhhtptkrizsblc5nm6ke2gcnj5mnwgwja
45 community.i2p 64luakopnvffchxnibn3d2p7uqxixtyuallfqfgifkkcmfcrczxa
46 costeira.i2p abhty5xlmnyab2kqdxcd56352kcescxoux3p6dbqdrghggyygnxa
47 cs.i2p kzaeunogz6s75ptgy6ifjzwwy75xdfenenswvrczd7mewxgrad5a
48 darkrealm.i2p gbh4eerxdsph7etxsxznfhvmuiz54trlkenakqep343u4xcoekzq
49 dashninja.i2p dzjzoefy7fx57h5xkdknikvfv3ckbxu2bx5wryn6taud343g2jma
50 dcherukhin.i2p qa4boq364ndjdgow4kadycr5vvch7hofzblcqangh3nobzvyew7a
51 dead.i2p 7ko27dxvicr2sezvykkrfiktlghx5y5onup3f2bas5ipocy6ibvq
52 deavmi.i2p t4cvvenniup6dcdlu2ehdycos5r3luccfemwd6hhvyqv5zd6obgq
53 deepwebradio.i2p 2nait2gdeozkgf6gyhzjfij6mwldwkxxwcvtxobb4b5q5cvtm5la
54 def2.i2p cepsrw27kdegwo7ihzouwvgcvw2obswwjs23ollgj7hk2yrce3da
55 def3.i2p xbf3ots2purqun7orn72ypkpjmrzbfrkj3u654zfe77hbrbow6la
56 def4.i2p yyzdq4fwwmnlojp23drfpfqujln2vcjozjrfzfeuriuqzdq7g4mq
57 det.i2p y6d4fs3rpqrctuv77ltfajf5m4tl4kzcu7rtwhxgiohylfxxow4q
58 diasporg.i2p edvccoobtjukjgw2os5eetywanbb2mpag5aknkrpia5qx2koksua
59 diffyq.i2p hkjvyuc3asswxa7uxyalrnpqab4lyvzriu2rsq6jbjc2kaoabghq
60 digcitlab.i2p gijabxlt4ox2mblh2nfxnds6u4mlsdeoonizknbdksl7klmbpvoq
61 diva.i2p auoqibfnyujhcht4v3nzahpqztwlyomesfywltuls5bqqi3nd3ka
62 dlms.i2p krsbxsaw3lnb6ctdpydygm2gqobjcpm4pf367ddo5hylbscnynmq
63 dns.chudo.i2p zzfmtnnmacop3xvpznc4c2jfvk226wpep2gaoanja3gfzf3ih7xq
64 dosje.i2p ir2ky5ejx4f646l4fsnug22gj4frn6jzlg7fgboudf2n5b4gdj3q
65 dreadpiratessociety.i2p fbdd4syj2v52x5zord67av2xclmjsg6bc6xdvrqmvqkyd3whij6q
66 dropbox.i2p omax2s5n4mzvymidpuxp2yqknf23asvu54uon6cxl6gdrlblnuiq
67 e8.i2p 5spb6cl4ffallahbaj2yadag2zgyuciouhz2rdcnyjcf5phqcu4a
68 easygpg2.i2p bwxry5alzx5ihgrd3glah4eotddblzhalvpheppnw4zcajzqoora
69 ebooks.i2p bvpy6xf6ivyws6mshhqmdmr36pruh2hvoceznzeag52mpu647nzq
70 echo.idk.i2p 63sgpiu6f33arldcxkbjsn3jgf6asyx3onjmz6j6gsk7hgbiehkq
71 eddysblog.i2p ieac3ub4g5sy3wuhsbqfembnpp7f3a37xgcx537ytzsmgfzexnbq
72 es.hiddenanswers.i2p cw7ge5ey4ekp5iep2kaw6j54boebtqytpcbnvio2bfpccd5ejzfa
73 fa.i2p 6n6p3aj6xqhevfojj36dixwbl4reopkhymxmatz7ai5sroh75rka
74 false.i2p 77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha
75 fantasy-worlds.i2p 62a4xcyyhvfrcq2bkckb7ia37fmrssrgx467tlkxp32fjpq577wq
76 fido.r4sas.i2p i522xmu63hfbaw2k54cthffcoqmeao6urjyq3jg4hddf6wf57p3q
77 flibs.i2p ocdm33e3h5tdml3yyholj4objdwsrhlugfqjnqgdkslmgdzb6b3a
78 flibusta.i2p zmw2cyw2vj7f6obx3msmdvdepdhnw2ctc4okza2zjxlukkdfckhq
79 forum.idk.i2p bg7kaiqjcqqeuuwb5nyo3ptcp5dgza7mihtizwqtnz2itombg6da
80 forum.rus.i2p zd37rfivydhkiyvau27qxwzmerlzbqtthsa5ohtcww62zrygjaga
81 freefallheavens.i2p 7etudb75nhe6vxslitptjlwrnbybdshvzxnweuiepsxbbkkxy5ka
82 freenet-inproxy.bandura.i2p rblg2sajac7winv4mgvnkfh2fa3nt2zxfvxfiybj76okpwdrt45a
83 freifunkmobi.bandura.i2p 5shuxvx52e3qszylwn4w7qst4siap3latyap3ff7nfnpjgllkcea
84 fresh.i2p jii6utg6ubwxgls6jegu24ifrroo4qzbcizjfft2bemodp4k2i6a
85 fs.i2p ah4r4vzunzfa67atljlbrdgtg3zak5esh7ablpm6xno6fhqij35q
86 fsb.i2p 2jefiqburn5hu3su3dlg65xj32iuteqgz5bfpc5j57qbmkph7lya
87 fskn.i2p nx2uzyxx7424cwj6vmrekjka4hplvyq53oljkzqbkiuzghmi2ayq
88 fsoc.i2p vaqc4jm2trq7lx2kkglve7rkzxhhaptcwwl32uicx4ehf5k3hx6q
89 fuka.i2p e3aanmaobvwopjrmrnuqvrkr36gyubrv6f2lyygh5brku3ufwrsa
90 fxruby.i2p lqhdnr2pvp2igu5e2cxichboqzcgypvrbooynzgkmoze3xae6qkq
91 gandc.i2p m6zwig36wxbbhat5fxh5vzqo2uvq2vwl4q7kxc2f2w6wtzvzesoa
92 gedanken.i2p kw6isjbs66uf7576fbb3aniokxtrpqmbegf4tf3xskg2bmrjci7a
93 ginnegappen.i2p kbhfkzx5jeqhfgss4xixnf4cb3jpuo432l3hxc32feelcmnr3yja
94 git.idk.i2p 7qeve4v2chmjdqlwpa3vl7aojf3nodbku7vepnjwrsxljzqipz6a
95 git.qorg11.i2p jf2mrxlbqsct67fces34x6kwbbnmlx6o7gd6g4knqk36soa6efqq
96 git.repo.i2p vsd2vtgtuua2vwqsal2mpmxm2b2cpn3qzmqjoeumrrw2p4aot7uq
97 git.volatile.i2p gwqdodo2stgwgwusekxpkh3hbtph5jjc3kovmov2e2fbfdxg3woq
98 gitssh.idk.i2p g6u4vqiuy6bdc3dbu6a7gmi3ip45sqwgtbgrr6uupqaaqfyztrka
99 gopher.anonroms.i2p wqfhyrnpknap3ushsck3ih3r7inz6uoqlr3u3ktwvejur3bejqha
100 gostcoin.i2p 4gzcllfxktrqzv3uys5k4vgkzbth4gqednwhfpt755yivm3davuq
101 gusion.i2p 4qyfdhizjixe2psu7wcvqufix5wlijocehpb2futurcmlhlktrta
102 h0p3.i2p k5fppzxc3bwoz2mjc7q37jojbrxo6vtprac3dzrk4wapv7irr4iq
103 h13.i2p tozb4vssixoccyqtgnpaatkg2ql52kkjwnsdo3dltezges2na4bq
104 hagen.i2p e2t6rqd2ysbvs53t5nnaf7drllkgk6kfriq3lfuz6mip6xfg644q
105 halifa.i2p fpo5fq4kqulfxhb6odg25jskezvucbx4wlwzg6ngqsxhrzvmxtwa
106 heaven.i2p y6ejpmln3j2jvf4omb4ptyo2idognputhrccph74yn6eghkpxyhq
107 heligoland.i2p gzrjm62ektpqjfsem3r3kwvg6zpjvvhvpjvwfxkm2ay4zu7sp6oq
108 hgit.i2p ny4ev7me2y2ibfi37mykakwvf2jhnl7lfql4etaiykjiwtd735pa
109 hiddenanswers.i2p kj2kbzt27naifij4ki6bklsa2qfewxnkzbkgvximr4ecm7y4ojdq
110 hiddenbooru.i2p zma5du344hy2ip5xcu6xmt4c7dgibnlv5jm4c2fre5nxv44sln3q
111 hiddenchan.i2p 6y4tltjdgqwfdcz6tqwc7dxhhuradop2vejatisu64nwjzh5tuwa
112 hisdarkmaterials.i2p qcf3vxllflqfsbvxjlypfxsx36g5srknxnhpyz3ph5bcxdjawraq
113 homosexualchan.i2p suzp44odgixf5lthy5ngy6ktabus5gz47squie2shudi6kmlwuaq
114 horo.i2p vrxh2vbqsfvh2utnt3ighimu4vrgla2mfpwksipkjsguv5vewhdq
115 hotline.i2p 6cczi27iuxkm3aivazaemzltdqgh42ljzurqp43uclbz2lid2uqq
116 hp-net.bandura.i2p z2ufexrgrxry37y4vs5hted35ygpleskfcs2enanl53hmlpzlqhq
117 hq.postman.i2p 7ewjvbcwgah57n64cwbsxqai7eutqofkesuxfsuhfheijivdjqra
118 http-false.telegram.i2p 77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha
119 i2p-mirror.bandura.i2p aq7r54ebou47b533y5seiod7dc3aeycucevl2pqvphnjhjwblr6q
120 i2p-projekt.i2p udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna
121 i2pd.i2p 4bpcp4fmvyr46vb4kqjvtxlst6puz4r3dld24umooiy5mesxzspa
122 i2pdocs.str4d.i2p yfvbtrhjac3jutdsqzugog6mbz3jtyhpwovrt2mqc5mzv534y7cq
123 i2peek-a-boo.i2p qgv64klyy4tgk4ranaznet5sjgi7ccsrawtjx3j5tvekvvfl67aa
124 i2pforum.i2p tmipbl5d7ctnz3cib4yd2yivlrssrtpmuuzyqdpqkelzmnqllhda
125 i2pjump.i2p 2mwcgdjvfvd3xwumzqzqntual3l57h3zo7lwdmkjboeraudpkyka
126 i2pmetrics.i2p v65p4czypwxrn35zlrfkar2w77vr42acd7gbszegsrqq4u7sip5a
127 i2pnews.i2p tc73n4kivdroccekirco7rhgxdg5f3cjvbaapabupeyzrqwv5guq
128 i2podisy.i2p 3c2jzypzjpxuq2ncr3wn3swn5d4isxlulqgccb6oq5f6zylcrvcq
129 i2pseed.bandura.i2p 2bpbnalf76ktxzhfekkwcklmo45xzedi5em5bdoyedrhw5bhvtia
130 i2psurvey.i2p pemwrlamhiiv74ok4kwoo4eqwzzjshp4q7ir3nlh4jfnt4zjncia
131 i2pwiki.bandura.i2p isbf7tzeyrutnd5rvmjpqaohe7cz6onqgci2wvbuyfwc62w74r3q
132 i2pyacy.bandura.i2p owy6s5xlkf4zsrwwpemvoru6x6qmrye2pe3v4v3dncvcrzix3fiq
133 i2speed.i2p 532c5r6ra6rcf2mvfgtlcxbn3lpplybwxul4xsg3ps64dlx73fga
134 identiguy.i2p 3mzmrus2oron5fxptw7hw2puho3bnqmw2hqy7nw64dsrrjwdilva
135 idk.i2p b2o47zwxqjbn7jj37yqkmvbmci7kqubwgxu3umqid7cexmc7xudq
136 ilcosmista.i2p 6u2rfuq3cyeb7ytjzjxgbfa73ipzpzen5wx3tihyast2f2oeo24q
137 ilita.i2p isxls447iuumsb35pq5r3di6xrxr2igugvshqwhi5hj5gvhwvqba
138 in.i2p r5vbv2akbp6txy5amkftia757klgdy44s6cglqhmstpg65xycyjq
139 infiniteszimaliumsztarzsdeeploopzsplungedigraverepeatplungeei.i2p lii5rejifs32fdoevdexodeqfvz3xenlyiyonwqdifseptls2wra
140 infirium.i2p 4iovxkkupux5nnl3cnsdhpqzpjg3jmqatdmogpuu637gxdybjqhq
141 infoserver.i2p jd3agbakybnhfvkeoxrx7t33iln6suzomv3kxkxf77j7rkonch6q
142 inr.i2p joajgazyztfssty4w2on5oaqksz6tqoxbduy553y34mf4byv6gpq
143 instantexchange.i2p 5wiyndm44bysev22kxvczxt37p6o6qroiqykytrvn2yzi55aqfxq
144 ioannism.i2p g2246vc2tq64rmomwe47v3jnbpz3b3ec2wrrhadukj7lxmwd5aoa
145 irc.acetone.i2p qyzbrdw26ejjdjzsrcmq5h3ggdzk6cq5xynrgee5t5q73gq545yq
146 irc.coldhell.i2p d4b3dcqt32yq55b6ct6f4rsib5svzgwkfz4klfczuz7e4p2v6rkq
147 irc.echelon.i2p ez2czsvej5p3z5bquue5q3thujcodfze7ptybctqhnqc7hms5uzq
148 irc.ilita.i2p 5xeoyfvtddmo5k3kxzv7b3d5risil6333ntqrr3yvx3yubz5tk3a
149 irc.kitsune.i2p cpesprosbsuycn4ui3neidqdtqz5ufekthob7cobl3p7bcuaoh3q
150 irc.postman.i2p hhcy7zznltay2tzwdvtd37g2inptemz3hk5zmxyi57d3sxgxbseq
151 irc.r4sas.i2p hodhusp73gltozgrnianlbploon3rrvhrzfn5mf2g46o7aaau5la
152 irc.rpi.i2p ppqu4shst5hfjn6jgxyragcanyxurhmof7jdrxag5srpeobevh5q
153 isitup.i2p xk6ypey2az23vtdkitjxvanlshztmjs2ekd6sp77m4obszf6ocfq
154 isotoxin.i2p wue3ycaccf4texikza3fh6p5yrmtgnooisuypnepo5mo67lmpcqq
155 ivorytower.i2p fpwrfvidfexsz7dspofkwtkmmizm7lyralfz5kvykffk7gubvxsq
156 javascript.i2p idxpwvskkaq3pssrnqpxmiilgeqwf7d2hf5xpusossqz6r2nudva
157 jikx.i2p aazr55itvyns4lwppvx5njyx5tjdwemw4w6jbmpegdunznod2ieq
158 k1773r.i2p zam7u6vslhemddz347uusuzjdk5wma4h5hcmcqlng4ybbpdbjhnq
159 kallist.i2p rpoqwcozn4pdxz7bp2vxsl7vfibpbccsymfuxg3c7v7yj3um4bta
160 kelvinchan.i2p 6s72dyf6jwlvk2u455lksvcs5r7deafc3iniwo5kp4ssm777noma
161 kenguru.i2p u44uhokgilvmnfsg5hgwx5nddb2mw2b7dp6qz2rnhrr344ebotea
162 keys.dlms.i2p znl2swe5pez65qxrr2s2s4lmdfky6mnppvh3p5j6suuiovymhjtq
163 keys.echelon.i2p mwfpkdmjur5ytq4og36ym3ychinv36b2a57f4rmgqmtrwepq3fva
164 kibykarni.i2p xowcvzbeq72slpbrwmjl3zy6xkrkb2ncctpkkskeqts63vedtg7a
165 kill-9.i2p 3i3bbs2zfabyleqxcqueeegakutrtk3hbxmvbtkrgwvetlmity4q
166 kislitsa.i2p khceo3smaxtng2tnuicmcbhdnkk2j6myi4nkigcux76qh3aabdhq
167 kkk.i2p kukluxklanib666d73z5fyeyb6vnystmvvreaodhjf73rhl4wxva
168 knijka.i2p knjkodsakcxihwk5w5new76hibywia5zqcgoqgjttzsausnd22oa
169 kurator.i2p sp3umnyofy5ytixbqcue4jrpxixccgnrxtiuvhg6juep5s5lrs6q
170 kycklingar.i2p gctswdhp4447yibxfbqg3uq2bvx63qjeqnaoaux75zw73leakyva
171 lbt.i2p 5uhjsgyca6ggdvwjjwf67bcmalpbxitopupjpygtahxvkwlh5mzq
172 legalloli.i2p clxah7lssffdubl3iklopl5bkxewmmbi5zlerw7ryuxawo2dqx2q
173 legwork.i2p cuss2sgthm5wfipnnztrjdvtaczb22hnmr2ohnaqqqz3jf6ubf3a
174 li.i2p jwzmbp5djo5t4mkbchhejq5mrx2yye7tkbwry22scihwy5s4hcba
175 linuxfarm.i2p br3njhezhzx7mcv25nrxkrwu5g553xp4oyavsjhfa7jwmzyp3q5q
176 linuxmario.i2p byo4esnp3p7imsmsn6j5syfhykt53zoh5ko66nodgdwp4427fqwa
177 lm.i2p yeyar743vuwmm6fpgf3x6bzmj7fxb5uxhuoxx4ea76wqssdi4f3q
178 lodikon.i2p u3f67staiwhqxpacya3clmvurdwd2kp7qcthzhstqnhrmlwc2g4a
179 lolicatgirls.i2p pjhlh4h7zn3slglx46ffob5ifcccrcqr5dzbyyueh3wd6a6bizra
180 longseason.i2p ighnngssgd6p4kyrec6m556rasvbtx5xe7bsyxol4lie2dibi4da
181 losinka.i2p r2z2tcs6eguevoxlkrmpkcanuwgnsit2o45svnwaer3wq4v76hrq
182 lyoko.i2p afuuortfaqejkesne272krqvmafn65mhls6nvcwv3t7l2ic2p4kq
183 man.i2p progskxxt44tlefm5uc4jqseanlhgbbkjyz4g3nvjjzbvhhp342q
184 marenostrum.i2p tlrae2xdtewfb262daw6ygm5nz5vusc7rbiefpndubjk4jvh5roq
185 masterdestroyer.i2p yp2g7frk3ze5ljaxbmhmh6hhda3rmpwmpianozi6or2uzqzdur7q
186 mastodon.chudo.i2p bba3rhijp3btiinfeixrk2jzz5rilnxxrxvjjx5os23ro4n6g4cq
187 mattermost.i2p x5oovnhnuli5fnwtgkbd5z5jvrvdvprqyuofywx6uoxkk4bie6ya
188 mayvaneday.i2p zli2qsg54w7y42vgw4xxlnj4nktcpg7xp33yjxkp33sjafvznbwa
189 mdleom.i2p ggucqf2jmtfxcw7us5sts3x7u2qljseocfzlhzebfpihkyvhcqfa
190 metavertex2.i2p 4k6h5tsysycyaefvrh7maltvincdx6ugj4t2a37zzyzm4wf4g4dq
191 metrics.i2p z45ieamhex2ihqv7oowk5fz4qq47rbvxhhhbaaiinpajbhuevtpq
192 mhatta.i2p o4rsxdeepfrnncsnjq675xogp5v5qkbfgbt6ooqeyfvlifobrjxq
193 mk16de.bandura.i2p rrllz7nkoeaydqzc5tqdexbfpkvensi26nqg3ly3cxrm5qt6m5sq
194 moneroauth.i2p kt6uh4z24tendrol5zbm4wv4apq4nbv4w7k5vcguvbpg3alrqyxa
195 monerujo.i2p puri6y5dtwh6zr4u77ep6ozatun6iz7v4wai2dzxppz7654corlq
196 mooks.i2p 6txhjmnxnrjku4cmdwtyacjzhwythc7l5euqaxieyrc4vjotqwzq
197 mosfet.i2p s5ynkgagndmpxpf2kmnenv4x72io664gzd2x3qef54ilammnte3q
198 mtn.i2p-projekt.i2p f52x5fp6uhq53f5zle5d6rq5un34xgmxgazvilvmzcby37xcmsfa
199 mtproxy.ilita.i2p vxxfipsygx6jpz57pmb3d3mjgsk5ls2idxeo2bffs3yp62muyq7q
200 mucats.i2p 4vjquedemoznbsva4j6wnr7hyms5k3gwucmxgcnwcwweontbcrha
201 mumble.acetone.i2p plpu63ftpi5wdr42ew7thndoyaclrjqmcmngu2az4tahfqtfjoxa
202 muwire.i2p c3r6by4k4kzbx7yvq36u5rieuymshuq2pebo3dzs6oovpzn52uoa
203 nbtm.i2p 46iitklpnxzl7eeqweq5xq7nc3vcl2ll7wudpa4jcyyeahvfrgta
204 nekochan.i2p dszr2z2swmeczeao2bqgop6fyh34jw5baeiybsavwtihllwa5qwq
205 neodome.i2p 5hkhjehj3ct2pvcah7dcylwef2oti3xij5myxbv3pd7rocio5vkq
206 neoniet.i2p jf32pdnofckjvedni77vjt26m6opzzz6ocpkpxof4fptzym56raq
207 news-i2pn.i2p wwcqkwfo5yhe6uribv5tzylk25j5hkdk6gdnyftzd3k7dawlzwca
208 news.neodome.i2p trhwcnygfkeqjj6g4xhmrdp4gsjqsye47lsxshbmwbten4ywt5oq
209 nicksphere.i2p nickg4tsj3wy3i23faxp5momjcnlwrvwl5ek5l7lkm5vrbblvgbq
210 nitter.i2p axd6uavsstsrvstva4mzlzh4ct76rc6zdug3nxdgeitrzczhzf4q
211 normal.i2p j5fex634r2altzb3kjvu35qekt2r3hgsqzg5qxoy7dp53heu5pma
212 notbob.i2p nytzrhrjjfsutowojvxi7hphesskpqqr65wpistz6wa7cpajhp7a
213 novabbs.i2p bicoankyijabtj2nlwzjmr4mamybr6bgc6xclpvsgzaaalzhhola
214 nsa.i2p nsetvbclpomqxfcit4mghn6z7vdhnza6jdzczby4crnto32uykga
215 nvspc.i2p anlncoi2fzbsadbujidqmtji7hshfw3nrkqvbgdleepbxx3d5xra
216 obmen.i2p vodkv54jaetjw7q2t2iethc4cbi4gjdrmw2ovfmr43mcybt7ekxa
217 ol.i2p bnb46culzbssz6aipcjkuytanflz6dtndyhmlaxn3pfiv6zqrohq
218 onelon.i2p irkvgdnlc6tidoqomre4qr7q4w4qcjfyvbovatgyolk6d4uvcyha
219 opal.i2p li5kue3hfaqhhvaoxiw2ollhhkw765myhwcijgock5rs4erdqdaa
220 opentracker.dg2.i2p w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa
221 outproxy-tor.meeh.i2p 77igjr2pbg73ox5ngqy5ohzvrnur3ezqcogtl4vpuqtrcl3irsqq
222 outproxy.bandura.i2p smaie7bxvpy53iiabfxkhmsjtqs7vzjcr5xxsysjbbobunwrav2q
223 p4bl0.i2p lkgdfm4w6e2kkjhcdzr4ahhz26s3aunhrn6t2or436o73qh4z7ga
224 packages.i2p 2gbnylztt42dgpjh5r5tmy6oxm5xag6qv4femnbbqbpza4l2l6ja
225 password.i2p knmjkeabbhudejkikbzhhjqsb4r77o45vkdhve6d254quttfx3wa
226 paste.idk.i2p qvgktychvlbmqwnoqgz2siuna7f5w764wgkbqcwogipfjzf3ksva
227 paste.r4sas.i2p csen43keji3qiw6uobsgzysxyjd225g6446ylq5uuz6ur2glkzaa
228 pehotin.i2p e6tfct7qvso7qrseseubsk5hxn3wejkdivojqeed6i7hbj4dsmqa
229 pharos.i2p vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa
230 pharoz.i2p vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa
231 pirate.black.i2p z67mwyo7o3tb42r3tjcckcx6gyh4tmnlh6sbmf2hz6qtn3lri2ta
232 pizdabol.i2p 5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa
233 planet.i2p pztcztaklof7s4me2vgtdddzesnunvk55zke6oz5e77ci3qk64yq
234 play.infirium.i2p 3pesucgkmky2unpxceuec7jopajyz44pvb2sgwyqz6x43bfovnda
235 podger.i2p 56pcmc4rxmtzs6ojvszpiqmh47et3m6amh7kfszp4wbvz2jbpnya
236 polistern.i2p ztqi2zewgtifrg4efs6eyxxi5www27ymley3aiz4obhulbnszlva
237 pomoyka.i2p omt56v4jxa4hurbwk44vqbbcwn3eavuynyc24c25cy7grucjh24q
238 pool.gostcoin.i2p m4f4k3eeaj7otbc254ccj7d5hivguqgnohwelkibr4ddk43qhywa
239 pop.postman.i2p i7vd76psp3oyocljiqkoyz7fpr4fy2xq2asclf7qih6k57aj5xrq
240 pravtor.i2p 2sr27o5x2v2pyqro7wl5nl6krrsbizwrzsky5y7pkohwh24gn6xq
241 privatebin.i2p e7qy5kc7ivqtnrbdn5ymx5nmbdedlrjkdchqmmkhud4ockrime5a
242 privetalena.i2p alenabivbkqo2xoikterpsc3gquqzacxfef6usbifrez5ioegjjq
243 project-future.i2p ivqynpfwxzl746gxf376lxqvgktql2lqshzwnwjk2twut6xq7xta
244 proof-of-loss.i2p ofhehzoj5p4khpkookxb63tmqvrmcxaapgb3v3nm7kd5wjgebs4a
245 psv.i2p pmzcuml2oi2ok2h5i6cepcyxxjrughzgliai6hzspdlyt2bucy7a
246 psy.i2p s3elzoj3wo6v6wqu5ehd56vevpz2vrhhjc5m6mxoazicrl43y62q
247 psyco.i2p eoilbrgyaiikxzdtmk2zeoalteupjrvcu3ui23p4wvfqo25bb73q
248 pt.hiddenanswers.i2p o5jlxbbnx3byzgmihqye3kysop5jgl3unsrkmurbtr2nrnl2y74a
249 pt.i2p umbkgg3nhvgunyiwo2odfo3ufbdijb2ofg5eha6nyd4ymp4yitna
250 pubsub.i2p kse52thhz4srsf2ibw7zj6ua27df5a2u5gnqgf5jxwvranbw6mpa
251 pull.git.repo.i2p 3so7htzxzz6h46qvjm3fbd735zl3lrblerlj2xxybhobublcv67q
252 purokishi.i2p ia55kcrvskaitnxegirubvderl4vhva6bwkiducbkma4scy2rhca
253 push.git.repo.i2p jef4g5vxnqybm4zpouum3lzbl6ti6456q57nbyj5kfyldkempm3a
254 pwcq.i2p hcwrhp454aj2jen6clgkw5odw7pvtixhf5dnqsx5ax4vkbxybk7q
255 qis.i2p sxfs4mmqxe4kj6yovbi54czfhhkpzxtj7mbwxjsvazgfulhq4gka
256 qorg11.i2p ivusryc5mfrroomm6s5no4badevf7djzlgzlwarce33no2bsyi3q
257 query.i2p qzdh2potcfrqcwl2oejkidsyggaspvi63gfggmlz2xrhjkrnazda
258 quest.idk.i2p k6stkvw3jr6of4j5g3pu34jowfpl4k4jiqih3yozhcvinkok56aa
259 r4sas.i2p 2gafixvoztrndawkmhfxamci5lgd3urwnilxqmlo6ittu552cndq
260 radio.r4sas.i2p cv72xsje5ihg6e24atitmhyk2cbml6eggi6b6fjfh2vgw62gdpla
261 ramble.i2p smv3cryi3n7d5ll7xpvlhstubi5yj4dadeltyrdwdr4onwd2jvvq
262 ransack.i2p mqamk4cfykdvhw5kjez2gnvse56gmnqxn7vkvvbuor4k4j2lbbnq
263 realsite.i2p ffacpzudiclaqh6fkck7ungeacfoafvijduhmwvnmp6e4jridhta
264 rebel.i2p nch2arl45crkyk6bklyk2hrdwjf5nztyxdtoshy6llhwqgxho5jq
265 reg.i2p shx5vqsw7usdaunyzr2qmes2fq37oumybpudrd4jjj4e4vk4uusa
266 reg.rus.i2p k2r2wda4eavt4hoq5hptprqfmixusirq3gi5bl3z2pqzcd6felwa
267 reichsmarket.i2p 2uj4xomizi75swws7q5icmnavekb2w2ws2wlcqtyltde7pgymraq
268 repo.i2p uxe3lqueuuyklel23sf5h25zwgqgjwsofrqchhnptd5y6pedzbxa
269 repo.r4sas.i2p ymzx5zgt6qzdg6nhxnecdgbqjd34ery6mpqolnbyo5kcwxadnodq
270 retrobbs.i2p mnn77stihntxdoade3ca2vcf456w6vhhvdsfepdvq5qggikvprxq
271 retrobbs2.i2p ejff7jtyaus37slkwgeqrrcmyhpj26carp7n27f5h6s5vlbeiy6q
272 rfocke.i2p pphesm2icsbqi7uzsmxpgyy4kc22b3cdpb4uwplkkjmupexva7dq
273 ricycal.i2p tfkz7rgqh6rwvlo2veftw4why2dej3gztiglzfqfvykyzak2syxa
274 rideronthestorm.i2p xrdc2qc7quhumhglpbcuiqxr42nuffv4xj4a73jbr4ygepitibqq
275 rpi.i2p 56p5qxsrvo5ereibevetw2qbj5bronmos7wxunku27g2s4kpbnlq
276 rslight.i2p bitag46q3465nylvzuikfwjcj7ewi4gjkjtvuxhn73f6vsxffyiq
277 rsync.anonroms.i2p 4q6llvjjpgncu6wbol2rqq24ksrtscu5njj65jjovqlsxounxbdq
278 ru.hiddenanswers.i2p o6rmndvggfwnuvxwyq54y667fmmurgveerlzufyrhub6w3vkagva
279 ru.i2p m7fqktjgtmsb3x7bvfrdx4tf7htnhytnz5qi2ujjcnph33u3hnja
280 rufurus.i2p 7msryymfdta3ssyz34qur6gi4jyfkvca5iyfmnceviipwu7g2wca
281 rus.i2p gh6655arkncnbrzq5tmq4xpn36734d4tdza6flbw5xppye2dt6ga
282 rvklein.i2p pzbqr2s25zpgbwiz22nc7hzxlusqxwhpxrsmln63y6fd45whnjcq
283 scamdemia.i2p fdkiv7o4kzaikwkw6hbn7iedidp25lv6eo7yeyeqxai3jz7mrvzq
284 sdmr.i2p o2vtbbcddamtqqomtf7wbkzzkh2xovt23lc6np7qtxbuv6vtul6q
285 secure.thetinhat.i2p 4q3qyzgz3ub5npbmt3vqqege5lg4zy62rhbgage4lpvnujwfpala
286 serien.i2p 3z5k3anbbk32thinvwcy4g5al7dmb75fagcm3zgh4rzrt3maphda
287 sftp.anonroms.i2p uozfd7ttkhjsofmgs7lfcy4pgngs4yp7kvnbhnppebjumgbjhjla
288 sharefile.i2p o7jgnp7bubzdn7mxfqmghn3lzsjtpgkbnpjjsn6ddevqbchz3rta
289 shoieq3.i2p 3fjk4nfk3mccch4hdreghnyijcvovsi3yucjz3qzj5sxngqk5j6q
290 skank.i2p qiii4iqrj3fwv4ucaji2oykcvsob75jviycv3ghw7dhzxg2kq53q
291 smtp.postman.i2p 3nrunsrgeo6grhx6y6vsx7vibm5vabtockdbys3sqdmj6vha7k5q
292 solr.chudo.i2p utl2ds5vztfomjgerohvxrgaq3g6zrspyku4s35knfmu4rihhgxq
293 spoika.i2p u7uyxhgikc5ifj73oz6yedpy5pvtynbqo3n7rk5qyy5h5yhz4wbq
294 spooks.i2p lrlrsud2latpctgwmvfwn5hanv6m7rold4vk6n6w2p43danmvgsa
295 sportloto.i2p sportloto4cqlq6uhzzvgsgd7rcsfu6mqtk7wp6zmzqwcpflbsdq
296 spyware.i2p 36j7itgqmnbinh3ortujakkvqdrbhlqu4b2qcwb46mue3dpzxqfq
297 ss.i2p 7gg7xiiwjmigrijsmkpsyzl6n4pd7hqiioovdr6vsip2xsdxpsaq
298 stats.i2p kqypgjpjwrphnzebod5ev3ts2vtii6e5tntrg4rnfijqc7rypldq
299 status.str4d.i2p ycyyjo3psqbo45nuz243xvgvwnmzlanzqbzxv3kh6gyjztv7425q
300 sto-man.i2p rg4eilfpe24ws6nctix63qw2dlvd2tqgwdcgdxzji6l5bc4dc7aa
301 str4d.i2p wrrwzdgsppwl2g2bdohhajz3dh45ui6u3y7yuop5ivvfzxtwnipa
302 streams.darkrealm.i2p ud3gcmvysjch4lbjr2khmhqpf7r2x5if4q43xkqdptl4k7lc4muq
303 svong.i2p wlamzgxjc4k67fn2c2pdems2dzfq3hkdbbt3n7ela7p2wp3pew6a
304 switching.software.i2p 4ntxofeih4fopdgl3hxn7xu3xkhrbtadnshvcc2ikrggi2qar4ba
305 syndie-project.i2p xa63tpfoaqt3zru2ehxjjfbpadwj4ha6qsdvtcqtyr3b7hmt4iaq
306 syndie.echelon.i2p vwrl2qmcif722fdkn3ldxcgz76df5cq4qypbndzthxwgmykyewta
307 tabak.i2p y5o2vwb6kart7ivpnbpk4yte3i7kf2dsx7fy3i6w7htqtxhmbzia
308 tahoeserve.i2p yhs7tsjeznxdenmdho5gjmk755wtredfzipb5t272oi5otipfkoa
309 telegram.i2p i6jow7hymogz2s42xq62gqgej2zdm4xtnmpc6vjcwktdxpdoupja
310 testmk16de.bandura.i2p gbdgvcv6wkwctls3tdx4ljmzo4zry3awrr37rkvrxcwg7jzjoyra
311 textboard.i2p 7ubwrcixdcemzqwqzh2vaakjsnochj2biuzpo6dc2n4f7wqj4pua
312 texterochtankar.i2p woqimbz4v2synkwyif65izfz2t4gbfbqjrai2ic5ok5qhnvmfszq
313 theyosh.i2p 5m7ygxhcdyfa3kx3wfjbbunk4pjey7a5zr5lnfb3upgjbhanrita
314 thornworld.i2p vinz4ygmodxarocntyjlfwk2wjpvzndlf4hxss2w2t3fk52oplva
315 tmpsend.i2p r2al7m32cg2ypjcny627wkoiyanrasmorub2wqla3y6gn6rwzzvq
316 torrents.chudo.i2p 5ooemze55xiicrlvzjmz3il23dpo4fz5iqr7hmzrygdepan5m3lq
317 tosios.idk.i2p 4mfy2ggcynt5xjkrdstwju2cqicayq7tg5bcb6o575wvab2div7a
318 trac.i2p2.i2p i43xzkihpdq34f2jlmtgiyyay5quafg5rebog7tk7xil2c6kbyoa
319 tracker.chudo.i2p swhb5i7wcjcohmus3gbt3w6du6pmvl3isdvxvepuhdxxkfbzao6q
320 tracker2.postman.i2p 6a4kxkg5wp33p25qqhgwl6sj4yh4xuf5b3p3qldwgclebchm3eea
321 traditio.i2p wkpjjloylf6jopu2itgpktr45t2xvpjijxilxd5tq4i7wkqgwhhq
322 triplechan.i2p blrplscno3ecqb5ihhg73kufmypydjlv4r4gqiajftup5wmcdwna
323 tube.i2p vipzc556nzjraiqsk5xwvyhz54fvtqt3vrepdarat3zsj4a6eypq
324 tumbach.i2p u6pciacxnpbsq7nwc3tgutywochfd6aysgayijr7jxzoysgxklvq
325 tutorials.i2p zy37tq6ynucp3ufoyeegswqjaeofmj57cpm5ecd7nbanh2h6f2ja
326 tv.i2p znccrkhtgz4wqceyofwsqdsraqhdtteqzrag53lgmp6rhkutuy6q
327 unodice.i2p fukkqcornjsfn2ggd2h4cgeitu4dbin7hymp5xf6zypwzif2pcoq
328 volatile.i2p q6rve733tvhgyys57jfw4fymqf3xsnza6dqailcdjcq7w4fa5m3a
329 w.i2p j2xorlcb3qxubnthzqu7lt4fvxqn63it4ikwmze55yjkzeeampuq
330 walker.i2p 5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa
331 wallet.gostcoin.i2p reuvum7lgetglafn72chypesvto773oy53zumagrpigkckybrwda
332 web.telegram.i2p re6cgwg2yrkgaixlqvt5ufajbb3w42fsldlq7k5brpvnd5gp6x5a
333 webcam.i2p fhrkpj4iscrg6etgdlteseoed37q2ph7cizclgpabgcbnaq6g24a
334 webhosting.i2p hxqjbkpn5fxnmurlab6oluyqf3dd2xnxszeawn4ak2s4rpjnfheq
335 weedforums.i2p weedlt72zyludsl6adm5asdcalufihyzoruh6ca2klstbicj5iua
336 wiki.i2p-projekt.i2p b2rpg7xtzwwfvtorfkrc3m7h222qbobnklra7g4oqhfjx64k2voa
337 wiki.ilita.i2p r233yskmowqe4od4he4b37wydr5fqzvj3z77v5fdei2etp2kg34a
338 wlm.i2p nigg3rveztrkpzoimq4z46pvbtml27mfhadt7n5bvl3pzzyzefxa
339 wopen.i2p xvedtnzz3kpwpir23zyr3exrhkrn3267harw7gcjvp25yceyokza
340 www.imule.i2p 657xcllunctawyjtar5kgh3wpt6z4l7ba6mmam5rf7hev5w2lsvq
341 www.infoserver.i2p fq7xhxkdcauhwn4loufcadiiy24zbei25elnup33a3gfrdzrtlyq
342 xeha.i2p oartgetziabrdemxctowp7bbeggc7ktmj7tr4qgk5y5jcz4prbtq
343 xmpp.chudo.i2p gppd6rx5jkutmt637odkbxh4tjqxy63i4amyhllqn424yt7pd2hq
344 xmpp.rpi.i2p 3yv65pfwiwfuv4ciwtx34clqps6o2mc3vtyltcbqdkcki6untbca
345 xmrnode.i2p moneroti7lckp4hjrqckoq5cfi2apuyxia42sp5x7tkbzjfwqfiq
346 xn--80aaid2dua.i2p dvem3jrqrymufihxnagr32q3aezgstmzcfbfp2wj7evo3ch5inta
347 xn--hallchen-q4a.i2p h5c4idxoweambtqajx3ecpu4iw425mfzckb4rrcvftrr7d2utfgq
348 xn--i2p-5cdawgbask1ay4cjf2a9o.i2p gar7ipdnhfy2mtbefo5dvoapzuupyphfriutu5nsnjruganiuknq
349 xn--n3h.i2p 6a5bfeil667ksrdgg5hx5x2dse2v6ovnsng3r2k5gp5tb4z67egq
350 xotc.i2p gqgvzum3xdgtaahkjfw3layb33vjrucmw5btyhrppm463cz3c5oq
351 yacy.idk.i2p 7ccyylqqxnyexz2acn3nqjdlwqmd5pororbovrarar2dkw3ddrbq
352 yat.i2p zxg4p6obolmrnkygoodqbdnikzychk5sild3o753hmaljuosl2fq
353 yggdrasil.acetone.i2p tlfhgwzn4v5nlm2or5uy4leqmjbl5bncgcopbqnmcr4hbk3zrvqq
354 yiffme.i2p sm6dk2ovxhgdjuu3rmqussc4e2xkfz6rmhng6i2t7parcb4v4y3a
355 yoitsu.i2p yaaqmj55lsi5c5nukf4hsrift2zslnqkbcghwvjlaqayidtyctwa
356 yt2mp3.i2p 7ai77u54gxta2ry326amfq4ugiqgcxd4r663nmxtswcwezyxsbzq
357 zab.i2p n4xen5sohufgjhv327ex4qra77f4tpqohlcyoa3atoboknzqazeq
358 zerobin.i2p 3564erslxzaoucqasxsjerk4jz2xril7j2cbzd4p7flpb4ut67hq
359 zeronet.i2p fe6pk5sibhkr64veqxkfochdfptehyxrrbs3edwjs5ckjbjn4bna
360 zhaoku.i2p 2hq32svuc6wxgumgsyavy4osfssiaqjpdgynpvtyblin5l5urr4q
361 znc.str4d.i2p ufkajv3stxpxlwgwwb2ae6oixdjircnbwog77qxpxv7nt67rpcxq
362 zog.i2p 7su4pwd7xicqu44rd36g2a3zjlsv2k6otommnh7ztjpyixyozq2a
363 zx.i2p 4ru5b25ixgz2wt2aqskbr2iflv42gt6ta6qet7rv4et5rh2kq6fq
364 zzz.i2p lhbd7ojcaiofbfku7ixh47qj537g572zmhdc4oilvugzxdpdghua

0
osx/build/i2pd/certificates/family/gostcoin.crt → macos/build/i2pd/certificates/family/gostcoin.crt

0
osx/build/i2pd/certificates/family/i2p-dev.crt → macos/build/i2pd/certificates/family/i2p-dev.crt

0
osx/build/i2pd/certificates/family/i2pd-dev.crt → macos/build/i2pd/certificates/family/i2pd-dev.crt

0
osx/build/i2pd/certificates/family/mca2-i2p.crt → macos/build/i2pd/certificates/family/mca2-i2p.crt

0
osx/build/i2pd/certificates/family/volatile.crt → macos/build/i2pd/certificates/family/volatile.crt

32
macos/build/i2pd/certificates/reseed/acetone_at_mail.i2p.crt

@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFfzCCA2egAwIBAgIEctG1gDANBgkqhkiG9w0BAQ0FADBwMQswCQYDVQQGEwJY
WDELMAkGA1UECAwCWFgxCzAJBgNVBAcMAlhYMR4wHAYDVQQKDBVJMlAgQW5vbnlt
b3VzIE5ldHdvcmsxDDAKBgNVBAsMA0kyUDEZMBcGA1UEAwwQYWNldG9uZUBtYWls
LmkycDAeFw0yMTAxMjUxMDMyMjBaFw0zMTAxMjMxMDMyMjBaMHAxCzAJBgNVBAYT
AlhYMQswCQYDVQQIDAJYWDELMAkGA1UEBwwCWFgxHjAcBgNVBAoMFUkyUCBBbm9u
eW1vdXMgTmV0d29yazEMMAoGA1UECwwDSTJQMRkwFwYDVQQDDBBhY2V0b25lQG1h
aWwuaTJwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwqF/BRRmvZ54
5XArgxbytDi7m7MDjFE/whUADruHj/9jXGCxE8DDiiKTt3yhfakV0SNo5xk7AMD+
wqiSNC5JCHTm18gd2M4cQLIaOVRqucLLge4XVgk2WPX6OT98wfxh7mqA3wlSdEpj
dY3Txtkf7VfZLicG76/RBtLFW3aBdsn63hZaQqZE4x/5MJyPVZx59+lys5RmMi0o
LpXJy4HOu1/Gl1iKDJoI/ARFG3y7uP/B+ZtZBitJetTs0HcqycnNJq0tVZf2HiGF
JNy67AL4foxNYPXP6QsvXvp6LRpGANaBCkFCBlriSF+x1zO2H3uAkRnuLYXuKIfB
HudejTp4R57VgZGiHYoawHaF17FVAApue9G8O82XYECjhET35B9yFoOBHTvaMxLU
CKrmayH8KMQon95mfe1qpoO3/YDa8DCxkjAfjdtytat7nt2pGZMH6/cLJxcFiofh
RtRVvb+omv/X12j/6iCFrwP4NvBnAZsa736igbjpyee5n+CSyYxd9cJkRX1vQVk7
WFSqL58Pz+g6CKJmdMPvqNOfUQ6mieBeejmx35B4pLzLcoNxw8R3O1+I2l4dg042
dEydKRQNwdzOec4jYwnKR40iwIyZxpchXWGRbBdyF5RQCbIIo60QBJlfXMJ2svan
q5lYIeWeY3mlODXu4KH4K09y10KT8FsCAwEAAaMhMB8wHQYDVR0OBBYEFMh+DoIL
APNiu2o+6I9A49joNYQuMA0GCSqGSIb3DQEBDQUAA4ICAQBFeOJi0rmkqN5/E3IB
nE2x4mUeLI82tUcN2D3Yu8J81vy4DnH+oMRQFDtYEHW5pfirRmgSZ7MQwYQnqWLp
iTE7SyCxlqGrmVsYp7PzfS1pUT2QeWPtsNYUDdraG0Zr9BkIGB60VMhjMSa9WUrj
lbchzr6E/j/EsEOE7IK08JxIDKCDZM2LLwis4tAM6tmiylkMf2RlUBIRBs1TCO+q
x3yByttNE2P4nQyQVQpjc1qsaOMvJvbxun37dwo+oTQy+hwkA86BWTDRYdN3xwOk
OfAOtlX6zM/wCKMN0ZRnjZoh59ZCn4JXokt3IjZ4n8qJOuJFRKeKGmGeKA8uaGW8
ih5tdB99Gu5Z8LOT1FxAJKwQBn5My0JijPoMit4B0WKNC8hy2zc2YvNfflu1ZRj5
wF4E5ktbtT/LWFSoRPas/GFS8wSXk/kbSB0ArDcRRszb3JHqbALmSQxngz3rfwb3
SHwQIIg956gjMDueEX5CrGrMqigiK53b9fqtpghUrHDsqtEXqeImpAY65PX1asqo
metDNuETHF7XrAjP7TGJfnrYQyeK90iS7j1G68ScBGkKY2nsTnFoXkSk5s5D338E
SUzPaOlh91spmkVY6gQTVQ7BakADBHw+zBgDA1gBN/4JPvgN36hquj63+aG1cKy3
3ZUnv2ipo2fpr69NtuBnutK6gw==
-----END CERTIFICATE-----

0
osx/build/i2pd/certificates/reseed/creativecowpat_at_mail.i2p.crt → macos/build/i2pd/certificates/reseed/creativecowpat_at_mail.i2p.crt

0
osx/build/i2pd/certificates/reseed/echelon_at_mail.i2p.crt → macos/build/i2pd/certificates/reseed/echelon_at_mail.i2p.crt

0
osx/build/i2pd/certificates/reseed/hankhill19580_at_gmail.com.crt → macos/build/i2pd/certificates/reseed/hankhill19580_at_gmail.com.crt

0
osx/build/i2pd/certificates/reseed/hottuna_at_mail.i2p.crt → macos/build/i2pd/certificates/reseed/hottuna_at_mail.i2p.crt

0
osx/build/i2pd/certificates/reseed/igor_at_novg.net.crt → macos/build/i2pd/certificates/reseed/igor_at_novg.net.crt

0
osx/build/i2pd/certificates/reseed/lazygravy_at_mail.i2p.crt → macos/build/i2pd/certificates/reseed/lazygravy_at_mail.i2p.crt

0
osx/build/i2pd/certificates/reseed/r4sas-reseed_at_mail.i2p.crt → macos/build/i2pd/certificates/reseed/r4sas-reseed_at_mail.i2p.crt

34
macos/build/i2pd/certificates/reseed/reseed_at_diva.exchange.crt

@ -0,0 +1,34 @@
-----BEGIN CERTIFICATE-----
MIIF0zCCA7ugAwIBAgIQWjHyC+NRh3emuuAwcEnKSjANBgkqhkiG9w0BAQsFADB0
MQswCQYDVQQGEwJYWDELMAkGA1UEBxMCWFgxCzAJBgNVBAkTAlhYMR4wHAYDVQQK
ExVJMlAgQW5vbnltb3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEdMBsGA1UEAwwU
cmVzZWVkQGRpdmEuZXhjaGFuZ2UwHhcNMjAwNjA5MDUzNjQ1WhcNMzAwNjA5MDUz
NjQ1WjB0MQswCQYDVQQGEwJYWDELMAkGA1UEBxMCWFgxCzAJBgNVBAkTAlhYMR4w
HAYDVQQKExVJMlAgQW5vbnltb3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEdMBsG
A1UEAwwUcmVzZWVkQGRpdmEuZXhjaGFuZ2UwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQC6BJGeMEgoXk9dlzKVfmwHrT2VpwTT+wRJvh3eAM746u4uDT2y
NPHXhdGcQ9dRRZ63T98IshWCwOmWSlm1kdWkmKkVVb93GUoMQ3gziCi0apLJMAau
gEu/sPCbORS2dPsQeAPW2eIsJO7dSjTRiQAuquW//NcIXG4gnxDA52lgke1BvpKr
83SJlCrqECAy6OKtZ49yn75CqmPPWFn0b/E8bxruN5ffeipTTospvdEtT41gXUqk
hOz3k8ang+QTWiP//jOjk31KXZ2dbh0LOlNJOvRxCqQmBZafNxxCR4DH8RewfPlL
qOiOJVzbLSP9RjqPLwnny5BOjbLWXcaybN5Qv2Pyd4mKtN3EpqBwRu7VnzXpsuuG
gRbxNmfKJ/vBEGrZAHAxi0NkHHEEne3B7pPDc2dVZHOfTfCu31m9uDHZ4eHEsNOJ
SJRiGjq74l0chCSlBGLrD1Y9LPyqadjdwuB9bzM0tMFC1wPflanQCflhhnEzAfbN
BaU2GRXo/I1UCDW/dH1FIkqEe61eMW1Lwqr5tdlrUpdr5VIddTyNJRBJogbZ+HZE
8mcoJW2lXRAkYi7KEm4b4EQNe7sbRNTF0j+fAJ+3ZOZ3O3SMHss6ignlSa+giVim
VvL+Joc6wpSzxpeNPf6m82cEO/UvifFYeOC9TpiRriSt+vvgQVzQtfQ+fQIDAQAB
o2EwXzAOBgNVHQ8BAf8EBAMCAoQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUF
BwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHJlc2VlZEBkaXZhLmV4Y2hh
bmdlMA0GCSqGSIb3DQEBCwUAA4ICAQCFGOb1dHlwjmgFHEER6oMiGWl1mI3Hb7GX
NNI6QUhZQ+iEWGYtsOTk3Q8xejL8t6AG/ZLXfZviLIJXZc5XZfPXk0ezDSC2cYxQ
ZAyYPw2dRP14brI86sCSqNAFIax/U5SM3zXhCbBiTfaEoBPfDpvKjx+VliaITUnc
sHTRn+C5ID5M8cZIqUSGECPEMU/bDtuRNJLTKYaJ98yXtYuS2CWsMEM4o0GGcnYQ
5HOZT/lbbwfq1Ks7IyJpeIpRaS5qckGcfgkxFY4eGujDuaFeWC+HCIh9RzBJrqZR
73Aly4Pyu7Jjg8xCCf9MswDjtqAjEHgWCmRLWL7p3H6cPipFKNMY6yomYZl5urE7
q6DUAZFKwPqlZpyeaY4/SVvaHTxuPp7484s3db4kPhdmuQS/DOB/7d+cn/S580Vy
ALqlFQjtjLEaT16upceAV0gYktDInE6Rtym/OsqilrtYks/Sc0GROSz8lJhDDWbr
W3t92muSXDh0rYrEUYWl+xl1gSTpbIP75zzU+cUr1E/qlRY9qZn66FsJpOuN0I0q
UXsQS/bPDcA+IW48Hd9LfO9gtTWZslwFTimjEvQ2nJAnUlUQP6OfuPUKHoYX/CwY
2LCN8+pv2bKPDVHvp0lf6xrbbZNvFtzfR0G3AprZjYpuu2XgjVB5nJnwmbH74b9w
LD8d2z2Lgg==
-----END CERTIFICATE-----

0
osx/build/i2pd/certificates/router/orignal_at_mail.i2p.crt → macos/build/i2pd/certificates/router/orignal_at_mail.i2p.crt

0
osx/build/i2pd/i2pd → macos/build/i2pd/i2pd

6
osx/build/i2pd/i2pd.conf → macos/build/i2pd/i2pd.conf

@ -20,9 +20,6 @@ name = I2Pd
[reseed] [reseed]
verify = true verify = true
[addressbook]
subscriptions = http://inr.i2p/export/alive-hosts.txt,http://identiguy.i2p/hosts.txt,http://stats.i2p/cgi-bin/newhosts.txt,http://i2p-projekt.i2p/hosts.txt
[http] [http]
enabled = true enabled = true
address = 127.0.0.1 address = 127.0.0.1
@ -45,5 +42,4 @@ port = 7656
[ntcp2] [ntcp2]
enabled = true enabled = true
published = true #published = true
#port =

16
osx/build/i2pd/tunnels.conf → macos/build/i2pd/tunnels.conf

@ -1,11 +1,3 @@
#[IRC]
#type = client
#address = 127.0.0.1
#port = 6668
#destination = irc.postman.i2p
#destinationport = 6667
#keys = irc-keys.dat
#[SMTP] #[SMTP]
#type = client #type = client
#address = 127.0.0.1 #address = 127.0.0.1
@ -22,12 +14,4 @@
#destinationport = 110 #destinationport = 110
#keys = pop3-keys.dat #keys = pop3-keys.dat
#[MTN]
#type = client
#address = 127.0.0.1
#port = 8998
#destination = mtn.i2p-projekt.i2p
#destinationport = 4691
#keys = mtn-keys.dat
# see more examples in /usr/share/doc/i2pd/configuration.md.gz # see more examples in /usr/share/doc/i2pd/configuration.md.gz

0
osx/build/i2pd/tunnels.d/IRC-Ilita.conf → macos/build/i2pd/tunnels.d/IRC-Ilita.conf

0
osx/build/i2pd/tunnels.d/IRC-Irc2P.conf → macos/build/i2pd/tunnels.d/IRC-Irc2P.conf

0
osx/build/i2pd/tunnels.d/README → macos/build/i2pd/tunnels.d/README

0
osx/build/preferences/browser/defaults/profile/bookmarks.html → macos/build/preferences/browser/defaults/profile/bookmarks.html

0
osx/build/preferences/browser/override.ini → macos/build/preferences/browser/override.ini

0
osx/build/preferences/defaults/pref/autoconfig.js → macos/build/preferences/defaults/pref/autoconfig.js

96
macos/build/preferences/distribution/policies.json

@ -0,0 +1,96 @@
{
"policies": {
"AppUpdateURL": "http://127.0.0.1/",
"CaptivePortal": false,
"Certificates": {
"ImportEnterpriseRoots": false
},
"DNSOverHTTPS": {
"Enabled": false,
"Locked": true
},
"DisableAppUpdate": true,
"DisableFeedbackCommands": true,
"DisableFirefoxAccounts": true,
"DisableFirefoxScreenshots": true,
"DisableFirefoxStudies": true,
"DisablePasswordReveal": true,
"DisablePocket": true,
"DisableProfileImport": true,
"DisableProfileRefresh": true,
"DisableSafeMode": true,
"DisableSetDesktopBackground": true,
"DisableSystemAddonUpdate": true,
"DisableTelemetry": true,
"DontCheckDefaultBrowser": true,
"ExtensionUpdate": false,
"Extensions": {
"Locked": [
"73a6fe31-595d-460b-a920-fcc0f8843232"
]
},
"FirefoxHome": {
"Highlights": false,
"Pocket": false,
"Search": true,
"Snippets": false,
"TopSites": true
},
"FlashPlugin": {
"Default": false
},
"NetworkPrediction": false,
"NoDefaultBookmarks": true,
"OfferToSaveLoginsDefault": false,
"OverrideFirstRunPage": "http://i2pd.i2p/",
"OverridePostUpdatePage": "",
"Permissions": {
"Camera": {
"BlockNewRequests": true
},
"Location": {
"BlockNewRequests": true
},
"Microphone": {
"BlockNewRequests": true
}
},
"PopupBlocking": {
"Default": true
},
"Preferences": {
"browser.cache.disk.enable": true,
"browser.fixup.dns_first_for_single_words": false,
"browser.search.update": false,
"browser.tabs.warnOnClose": false,
"browser.urlbar.suggest.bookmark": true,
"browser.urlbar.suggest.history": true,
"browser.urlbar.suggest.openpage": true,
"datareporting.policy.dataSubmissionPolicyBypassNotification": true,
"dom.disable_window_flip": true,
"dom.disable_window_move_resize": true,
"dom.event.contextmenu.enabled": false,
"network.IDN_show_punycode": false,
"network.dns.disableIPv6": true,
"places.history.enabled": true,
"privacy.file_unique_origin": true
},
"PromptForDownloadLocation": true,
"Proxy": {
"AutoLogin": true,
"FTPProxy": "127.0.0.1:4444",
"HTTPProxy": "127.0.0.1:4444",
"Mode": "manual",
"SOCKSVersion": 5,
"SSLProxy": "127.0.0.1:4444",
"UseHTTPProxyForAllProtocols": false,
"UseProxyForDNS": true
},
"SearchBar": "unified",
"SearchSuggestEnabled": false,
"SupportMenu": {
"Title": "Ilita IRC",
"URL": "http://irc.r4sas.i2p/?nick=WebClient...&channels=dev%2Cen%2Cru&prompt=1&uio=OT10cnVlde"
}
}
}

153
osx/build/preferences/i2pdbrowser.cfg → macos/build/preferences/i2pdbrowser.cfg

@ -6,38 +6,46 @@
* See full license text in LICENSE file at top of project tree * See full license text in LICENSE file at top of project tree
*/ */
/* Do not edit this file.
*
* If you make changes to this file while the browser is running,
* the changes will be overwritten when the browser exits.
*
* To make a manual change to preferences, you can visit the URL about:config
* For more information, see http://www.mozilla.org/unix/customizing.html#prefs
*/
lockPref("accessibility.force_disabled", 1); lockPref("accessibility.force_disabled", 1);
defaultPref("app.normandy.first_run", false); defaultPref("app.normandy.first_run", false);
lockPref("app.normandy.enabled", false);
lockPref("app.normandy.optoutstudies.enabled", false);
lockPref("app.shield.optoutstudies.enabled", false);
lockPref("app.update.auto", false); lockPref("app.update.auto", false);
lockPref("app.update.BITS.enabled", false);
lockPref("app.update.channel", "i2pdbrowser"); lockPref("app.update.channel", "i2pdbrowser");
lockPref("app.update.disable_button.showUpdateHistory", true);
lockPref("app.update.enabled", false); lockPref("app.update.enabled", false);
lockPref("app.update.interval", 0); lockPref("app.update.interval", 0);
lockPref("app.update.service.enabled", false); lockPref("app.update.service.enabled", false);
lockPref("app.update.url", "");
defaultPref("beacon.enabled", false); defaultPref("beacon.enabled", false);
pref("breakpad.reportURL", ""); pref("breakpad.reportURL", "");
pref("browser.aboutHomeSnippets.updateUrl", ""); defaultPref("browser.aboutHomeSnippets.updateUrl", "");
lockPref("browser.aboutwelcome.enabled", false);
defaultPref("browser.cache.disk.capacity", 131072); defaultPref("browser.cache.disk.capacity", 131072);
defaultPref("browser.cache.offline.enable", false); defaultPref("browser.cache.offline.enable", false);
defaultPref("browser.casting.enabled", false); defaultPref("browser.casting.enabled", false);
lockPref("browser.contentblocking.database.enabled", false);
lockPref("browser.contentblocking.report.lockwise.enabled", false);
lockPref("browser.contentblocking.report.monitor.enabled", false);
lockPref("browser.discovery.enabled", false);
pref("browser.download.manager.retention", 0); pref("browser.download.manager.retention", 0);
defaultPref("browser.download.useDownloadDir", false); defaultPref("browser.download.useDownloadDir", false);
defaultPref("browser.feeds.showFirstRunUI", false); defaultPref("browser.feeds.showFirstRunUI", false);
defaultPref("browser.fixup.alternate.enabled", false); defaultPref("browser.fixup.alternate.enabled", false);
defaultPref("browser.formfill.enable", false); defaultPref("browser.formfill.enable", false);
defaultPref("browser.formfill.expire_days", 0); defaultPref("browser.formfill.expire_days", 0);
lockPref("browser.messaging-system.whatsNewPanel.enabled", false);
lockPref("browser.newtabpage.activity-stream.feeds.asrouterfeed", false);
lockPref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false);
lockPref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false);
lockPref("browser.newtabpage.activity-stream.default.sites", "http://i2pd.i2p/,http://333.i2p/,http://inr.i2p/,http://102chan.i2p/,http://flibusta.i2p/,http://fsoc.i2p/,http://lifebox.i2p/,http://onelon.i2p/,http://wiki.ilita.i2p/"); lockPref("browser.newtabpage.activity-stream.default.sites", "http://i2pd.i2p/,http://333.i2p/,http://inr.i2p/,http://102chan.i2p/,http://flibusta.i2p/,http://fsoc.i2p/,http://lifebox.i2p/,http://onelon.i2p/,http://wiki.ilita.i2p/");
lockPref("browser.newtabpage.activity-stream.discoverystream.enabled", false);
lockPref("browser.newtabpage.activity-stream.feeds.section.highlights", false); lockPref("browser.newtabpage.activity-stream.feeds.section.highlights", false);
lockPref("browser.newtabpage.activity-stream.feeds.snippets", false); lockPref("browser.newtabpage.activity-stream.feeds.snippets", false);
defaultPref("browser.newtabpage.activity-stream.showSearch", true); defaultPref("browser.newtabpage.activity-stream.showSearch", true);
lockPref("browser.newtabpage.activity-stream.showSponsored", false);
lockPref("browser.newtabpage.activity-stream.telemetry", false); lockPref("browser.newtabpage.activity-stream.telemetry", false);
pref("browser.newtabpage.activity-stream.topSitesRows", 2); pref("browser.newtabpage.activity-stream.topSitesRows", 2);
pref("browser.newtabpage.enhanced", false); pref("browser.newtabpage.enhanced", false);
@ -49,6 +57,7 @@ defaultPref("browser.onboarding.tour.onboarding-tour-performance.completed", tru
defaultPref("browser.onboarding.tour.onboarding-tour-private-browsing.completed", true); defaultPref("browser.onboarding.tour.onboarding-tour-private-browsing.completed", true);
defaultPref("browser.onboarding.tour.onboarding-tour-screenshots.completed", true); defaultPref("browser.onboarding.tour.onboarding-tour-screenshots.completed", true);
defaultPref("browser.pagethumbnails.capturing_disabled", true); defaultPref("browser.pagethumbnails.capturing_disabled", true);
lockPref("browser.ping-centre.telemetry", false);
defaultPref("browser.places.smartBookmarksVersion", -1); defaultPref("browser.places.smartBookmarksVersion", -1);
pref("browser.reader.detectedFirstArticle", false); pref("browser.reader.detectedFirstArticle", false);
pref("browser.rights.3.shown", true); pref("browser.rights.3.shown", true);
@ -83,7 +92,6 @@ defaultPref("browser.search.defaultenginename.US", "YaCy 'legwork'");
defaultPref("browser.search.geoSpecificDefaults", false); defaultPref("browser.search.geoSpecificDefaults", false);
defaultPref("browser.search.geoSpecificDefaults.url", ""); defaultPref("browser.search.geoSpecificDefaults.url", "");
defaultPref("browser.search.geoip.url", ""); defaultPref("browser.search.geoip.url", "");
pref("browser.search.hiddenOneOffs", "Amazon.com,Bing,DuckDuckGo,eBay,Google,Twitter,Wikipedia (en)");
defaultPref("browser.search.official", false); defaultPref("browser.search.official", false);
defaultPref("browser.search.order.1", "YaCy 'legwork'"); defaultPref("browser.search.order.1", "YaCy 'legwork'");
defaultPref("browser.search.order.2", ""); defaultPref("browser.search.order.2", "");
@ -96,11 +104,11 @@ defaultPref("browser.search.region", "US");
defaultPref("browser.search.searchEnginesURL", ""); defaultPref("browser.search.searchEnginesURL", "");
defaultPref("browser.search.suggest.enabled", false); defaultPref("browser.search.suggest.enabled", false);
defaultPref("browser.search.update", false); defaultPref("browser.search.update", false);
pref("browser.search.widget.inNavBar", true);
lockPref("browser.send_pings", false); lockPref("browser.send_pings", false);
pref("browser.send_pings.require_same_host", true); pref("browser.send_pings.require_same_host", true);
defaultPref("browser.shell.checkDefaultBrowser", false); defaultPref("browser.shell.checkDefaultBrowser", false);
pref("browser.startup.homepage", "http://i2pd.i2p/"); pref("browser.startup.homepage", "http://i2pd.i2p/");
defaultPref("browser.startup.homepage_override.mstone", "ignore");
defaultPref("browser.tabs.closeWindowWithLastTab", false); defaultPref("browser.tabs.closeWindowWithLastTab", false);
lockPref("browser.tabs.crashReporting.sendReport", false); lockPref("browser.tabs.crashReporting.sendReport", false);
defaultPref("browser.translation.engine", ""); defaultPref("browser.translation.engine", "");
@ -132,6 +140,8 @@ pref("devtools.debugger.remote-enabled", false);
pref("devtools.webide.autoinstallADBHelper", false); pref("devtools.webide.autoinstallADBHelper", false);
pref("devtools.webide.autoinstallFxdtAdapters", false); pref("devtools.webide.autoinstallFxdtAdapters", false);
pref("devtools.webide.enabled", false); pref("devtools.webide.enabled", false);
defaultPref("devtools.whatsnew.enabled", false);
defaultPref("devtools.whatsnew.feature-enabled", false);
pref("dom.allow_cut_copy", false); pref("dom.allow_cut_copy", false);
pref("dom.archivereader.enabled", false); pref("dom.archivereader.enabled", false);
pref("dom.battery.enabled", false); pref("dom.battery.enabled", false);
@ -146,6 +156,7 @@ pref("dom.maxHardwareConcurrency", 2);
pref("dom.mozTCPSocket.enabled", false); pref("dom.mozTCPSocket.enabled", false);
pref("dom.netinfo.enabled", false); pref("dom.netinfo.enabled", false);
pref("dom.network.enabled", false); pref("dom.network.enabled", false);
defaultPref("dom.push.enabled", false);
pref("dom.telephony.enabled", false); pref("dom.telephony.enabled", false);
pref("dom.vibrator.enabled", false); pref("dom.vibrator.enabled", false);
pref("dom.vr.enabled", false); pref("dom.vr.enabled", false);
@ -155,13 +166,17 @@ pref("dom.workers.enabled", false);
pref("experiments.enabled", false); pref("experiments.enabled", false);
pref("experiments.manifest.uri", ""); pref("experiments.manifest.uri", "");
pref("experiments.supported", false); pref("experiments.supported", false);
pref("extensions.abuseReport.enabled", false);
pref("extensions.autoDisableScopes", 0); pref("extensions.autoDisableScopes", 0);
pref("extensions.blocklist.enabled", false); pref("extensions.blocklist.enabled", false);
pref("extensions.blocklist.url", ""); pref("extensions.blocklist.url", "");
pref("extensions.getAddons.cache.enabled", false); defaultPref("extensions.getAddons.cache.enabled", false);
pref("extensions.lazarus.showDonateNotification", false); pref("extensions.lazarus.showDonateNotification", false);
lockPref("extensions.pocket.enabled", false); lockPref("extensions.pocket.enabled", false);
lockPref("extensions.screenshots.upload-disabled", true);
pref("extensions.shownSelectionUI", true); pref("extensions.shownSelectionUI", true);
defaultPref("extensions.systemAddon.update.enabled", false);
defaultPref("extensions.systemAddon.update.url", "");
pref("extensions.ui.lastCategory", "addons://list/extension"); pref("extensions.ui.lastCategory", "addons://list/extension");
pref("extensions.update.autoUpdateDefault", false); pref("extensions.update.autoUpdateDefault", false);
defaultPref("extensions.update.enabled", false); defaultPref("extensions.update.enabled", false);
@ -170,23 +185,26 @@ pref("full-screen-api.warning.timeout", 0);
pref("general.buildID.override", "20100101"); pref("general.buildID.override", "20100101");
lockPref("general.platform.override", "Win32"); lockPref("general.platform.override", "Win32");
lockPref("general.useragent.locale", "en-US"); lockPref("general.useragent.locale", "en-US");
lockPref("general.useragent.override", "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"); lockPref("general.useragent.override", "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/78.0");
pref("general.warnOnAboutConfig", false); pref("general.warnOnAboutConfig", false);
defaultPref("geo.enabled", false); defaultPref("geo.enabled", false);
lockPref("geo.wifi.logging.enabled", false); lockPref("geo.wifi.logging.enabled", false);
defaultPref("geo.wifi.uri", ""); defaultPref("geo.wifi.uri", "");
lockPref("identity.fxaccounts.commands.enabled", false);
lockPref("identity.fxaccounts.enabled", false); lockPref("identity.fxaccounts.enabled", false);
defaultPref("intl.locale.matchOS", true); defaultPref("intl.locale.matchOS", true);
pref("javascript.use_us_english_locale", true); pref("javascript.use_us_english_locale", true);
pref("keyword.enabled", false); pref("keyword.enabled", false);
pref("lightweightThemes.update.enabled", false); pref("lightweightThemes.update.enabled", false);
pref("loop.logDomains", false); pref("loop.logDomains", false);
lockPref("marionette.enabled", false);
defaultPref("media.eme.enabled", false); defaultPref("media.eme.enabled", false);
lockPref("media.getusermedia.audiocapture.enabled", false); lockPref("media.getusermedia.audiocapture.enabled", false);
lockPref("media.getusermedia.screensharing.enabled", false); lockPref("media.getusermedia.screensharing.enabled", false);
pref("media.gmp-eme-adobe.enabled", false); pref("media.gmp-eme-adobe.enabled", false);
pref("media.gmp-gmpopenh264.enabled", false); defaultPref("media.gmp-gmpopenh264.enabled", false);
pref("media.gmp-gmpopenh264.provider.enabled", false); pref("media.gmp-gmpopenh264.provider.enabled", false);
pref("media.gmp-manager.cert.checkAttributes", false);
pref("media.gmp-manager.url", ""); pref("media.gmp-manager.url", "");
defaultPref("media.navigator.enabled", false); defaultPref("media.navigator.enabled", false);
defaultPref("media.navigator.video.enabled", false); defaultPref("media.navigator.video.enabled", false);
@ -199,17 +217,21 @@ defaultPref("media.peerconnection.use_document_iceservers", false);
defaultPref("media.video_stats.enabled", false); defaultPref("media.video_stats.enabled", false);
defaultPref("media.webspeech.recognition.enable", false); defaultPref("media.webspeech.recognition.enable", false);
defaultPref("media.webspeech.synth.enabled", false); defaultPref("media.webspeech.synth.enabled", false);
defaultPref("messaging-system.rsexperimentloader.enabled", false);
defaultPref("network.IDN.whitelist.i2p", true); defaultPref("network.IDN.whitelist.i2p", true);
defaultPref("network.IDN_show_punycode", true); defaultPref("network.IDN_show_punycode", true);
defaultPref("network.allow-experiments", false); defaultPref("network.allow-experiments", false);
lockPref("network.captive-portal-service.enabled", false);
lockPref("network.connectivity-service.enabled", false);
pref("network.cookie.prefsMigrated", true); pref("network.cookie.prefsMigrated", true);
defaultPref("network.dns.disableIPv6", true); defaultPref("network.dns.disableIPv6", true);
defaultPref("network.dns.disablePrefetchFromHTTPS", true); defaultPref("network.dns.disablePrefetchFromHTTPS", true);
defaultPref("network.dns.disableprefetch", true); defaultPref("network.dns.disablePrefetch", true);
pref("network.http.speculative-parallel-limit", 0); defaultPref("network.http.speculative-parallel-limit", 0);
defaultPref("network.jar.open-unsafe-types", false); defaultPref("network.jar.open-unsafe-types", false);
pref("network.manage-offline-status", false); pref("network.manage-offline-status", false);
defaultPref("network.negotiate-auth.allow-insecure-ntlm-v1", false); defaultPref("network.negotiate-auth.allow-insecure-ntlm-v1", false);
defaultPref("network.notify.changed", false);
pref("network.predictor.enabled", false); pref("network.predictor.enabled", false);
defaultPref("network.prefetch-next", false); defaultPref("network.prefetch-next", false);
pref("network.protocol-handler.expose-all", false); pref("network.protocol-handler.expose-all", false);
@ -263,13 +285,17 @@ defaultPref("reader.parse-on-load.force-enabled", false);
defaultPref("security.insecure_field_warning.contextual.enabled", false); defaultPref("security.insecure_field_warning.contextual.enabled", false);
defaultPref("security.insecure_password.ui.enabled", false); defaultPref("security.insecure_password.ui.enabled", false);
defaultPref("security.ssl.errorReporting.enabled", false); defaultPref("security.ssl.errorReporting.enabled", false);
defaultPref("security.OCSP.enabled", 0);
defaultPref("services.blocklist.update_enabled", false); defaultPref("services.blocklist.update_enabled", false);
pref("services.settings.server", "");
lockPref("services.sync.enabled", false); lockPref("services.sync.enabled", false);
pref("services.sync.prefs.sync.browser.download.manager.scanWhenDone", false); pref("services.sync.prefs.sync.browser.download.manager.scanWhenDone", false);
pref("services.sync.prefs.sync.browser.safebrowsing.enabled", false); pref("services.sync.prefs.sync.browser.safebrowsing.enabled", false);
pref("services.sync.prefs.sync.browser.search.update", false); pref("services.sync.prefs.sync.browser.search.update", false);
pref("services.sync.prefs.sync.extensions.update.enabled", false); pref("services.sync.prefs.sync.extensions.update.enabled", false);
pref("signon.autofillForms", false); pref("signon.autofillForms", false);
defaultPref("signon.management.page.breach-alerts.enabled", false);
defaultPref("signon.management.page.vulnerable-passwords.enabled", false);
pref("signon.rememberSignons", false); pref("signon.rememberSignons", false);
defaultPref("startup.homepage_welcome_url", "http://i2pd.i2p/"); defaultPref("startup.homepage_welcome_url", "http://i2pd.i2p/");
pref("startup.homepage_welcome_url.additional", "about:blank"); pref("startup.homepage_welcome_url.additional", "about:blank");
@ -285,96 +311,3 @@ defaultPref("webgl.disable-fail-if-major-performance-caveat", true);
defaultPref("webgl.disabled", true); defaultPref("webgl.disabled", true);
defaultPref("webgl.enable-debug-renderer-info", false); defaultPref("webgl.enable-debug-renderer-info", false);
defaultPref("webgl.min_capability_mode", true); defaultPref("webgl.min_capability_mode", true);
var config = {
"cckVersion": "2.2.9",
"name": "I2Pd Browser",
"description": "Preconfigured for use with I2P browser",
"version": "1.2.8",
"homePage": "http://i2pd.i2p/",
"welcomePage": "http://i2pd.i2p/",
"titlemodifier": "I2Pd Browser",
"extension": {
"name": "I2Pd Browser"
},
"noWelcomePage": true,
"noUpgradePage": true,
"removeSetDesktopBackground": true,
"removeSafeModeMenu": true,
"noGetAddons": true,
"noAddonCompatibilityCheck": true,
"disableSearchEngineInstall": true,
"removeDefaultSearchEngines": false,
"displayBookmarksToolbar": true,
"removeSmartBookmarks": true,
"removeDefaultBookmarks": true,
"removeDuplicateBookmarkNames": true,
"dontCheckDefaultBrowser": true,
"dontUseDownloadDir": true,
"disableFormFill": true,
"disableSync": true,
"disableCrashReporter": true,
"disableTelemetry": true,
"disableFirefoxHealthReportUpload": true,
"disableFirefoxHealthReport": true,
"disableFirefoxUpdates": true,
"removeSnippets": true,
"disableResetFirefox": true,
"disableWebApps": true,
"disableHello": true,
"disableSharePage": true,
"disableForget": true,
"disableHeartbeat": true,
"disablePocket": true,
"disableAboutSupport": true,
"disableAboutProfiles": true,
"showSearchBar": true,
"autoconfig": {
"disableProfileMigrator": true
},
"id": "i2pdbrowser",
"hiddenUI": [
"#defaultBrowserBox",
"#enableSearchUpdate",
"#dataCollectionCategory",
"#dataCollectionGroup",
".help-button",
"#onboarding-overlay-button",
".prefs-modal-inner-wrapper > section:nth-child(6)"
],
"searchplugins": {
"YaCy 'legwork'": "resource://cck2_i2pdbrowser/searchengines/legwork.xml"
},
"defaultSearchEngine": "YaCy 'legwork'",
"certs": {
"ca": [
{
"url": "resource://cck2_i2pdbrowser/certs/purplei2p_ca.pem",
"trust": "CTc,CTc,CTc"
}
]
}
};
var io = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
var resource = io.getProtocolHandler("resource")
.QueryInterface(Components.interfaces.nsIResProtocolHandler);
var greDir = Components.classes["@mozilla.org/file/directory_service;1"]
.getService(Components.interfaces.nsIProperties)
.get("GreD", Components.interfaces.nsIFile);
var cck2ModuleDir = greDir.clone();
cck2ModuleDir.append("cck2");
cck2ModuleDir.append("modules");
var cck2Alias = io.newFileURI(cck2ModuleDir);
resource.setSubstitution("cck2", cck2Alias);
var configModuleDir = greDir.clone();
configModuleDir.append("cck2");
configModuleDir.append("resources");
var configAlias = io.newFileURI(configModuleDir);
resource.setSubstitution("cck2_i2pdbrowser", configAlias);
Components.utils.import("resource://cck2/CCK2.jsm");
CCK2.init(config, "ä"[0], "ä");

BIN
macos/build/profile-en/addonStartup.json.lz4

Binary file not shown.

BIN
macos/build/profile-en/search.json.mozlz4

Binary file not shown.

BIN
macos/build/profile-ru/search.json.mozlz4

Binary file not shown.

0
osx/build/profile/bookmarks.html → macos/build/profile/bookmarks.html

BIN
macos/build/profile/cert9.db

Binary file not shown.

23
macos/build/profile/certificates/purplei2p_ca.pem

@ -0,0 +1,23 @@
-----BEGIN CERTIFICATE-----
MIID7DCCAtSgAwIBAgIJAKXaTovgoTIUMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
VQQGEwJXVzEUMBIGA1UECAwLSTJQIE5ldHdvcmsxEjAQBgNVBAoMCVB1cnBsZUky
UDEqMCgGA1UEAwwhUHVycGxlSTJQIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR0w
GwYJKoZIhvcNAQkBFg5yNHNhc0BtYWlsLmkycDAeFw0xODA4MjQyMTQ3NTJaFw0y
MzA4MjMyMTQ3NTJaMIGCMQswCQYDVQQGEwJXVzEUMBIGA1UECAwLSTJQIE5ldHdv
cmsxEjAQBgNVBAoMCVB1cnBsZUkyUDEqMCgGA1UEAwwhUHVycGxlSTJQIENlcnRp
ZmljYXRpb24gQXV0aG9yaXR5MR0wGwYJKoZIhvcNAQkBFg5yNHNhc0BtYWlsLmky
cDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALAZnN/U5bgkmiBqp/Np
yiMOkUPjr2tLhV78Oba46xDLA6AiQ7yTPg+/ZYPIfbF2dPBTpfgGdly2M1xymRKc
3Pa+IUXkLw6oCA+lFzOFW0Swtekk9HRAgGyHgj6/Hvagva5Wer4HJIO1qRsFPew+
XcM3uhhiXoiO8o+YGpJ/7kz0gED3p2b9OVsLPd8G/GfdR3miD+Au+kUx/27z/WdJ
ISfFILFnYeYZGffrpRcFtoGwuZUCugwnbLtpQpNKuGq8jDidm1v6Rb85JmkoH3Sg
lRaX1MK0aPhM4WfCf7aWCNe669FAWPNB3Ya2lue7ewPLI84ZUEqcoJwmWn2ci2SU
EXUCAwEAAaNjMGEwHQYDVR0OBBYEFG3hwzikpXqMasw678OHM8uLyjEoMB8GA1Ud
IwQYMBaAFG3hwzikpXqMasw678OHM8uLyjEoMA8GA1UdEwQIMAYBAf8CAQAwDgYD
VR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQA07URxJMI/Ta9y1wIg+k7o
1aHXsl6YOXmd2ymhKZhZHrZlutE2U19IQSoEV0SBddP9D05xD6Ovsrwo7caeYzNt
+2DJnlJ2IY61NqYUIDEoJyNPL/S7WleH+xO+bcSqWvbntTNYAD6WQVfHCAimVE6P
RnSZGqG089i84DRCyrh/6F1OxnBd6j14z+2ctQD+h6NlQXiCAUIwzVirYoE7oGpH
Xta7Ei+RDvBXLXLAQRdXpzSP/Ddf7MCJzmH3VYAy+0sVuHr09hpFMtC59hTrdLVD
/qma0eKrBr1DGH6QrZMZDqpNfv4wUPyVQBsRbbn2/1fL9IqK43CIj8RUllCOsmyU
-----END CERTIFICATE-----

1197
osx/build/i2pd/addressbook/addresses.csv

File diff suppressed because it is too large Load Diff

32
osx/build/i2pd/certificates/reseed/bugme_at_mail.i2p.crt

@ -1,32 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIFezCCA2OgAwIBAgIEUQYyQjANBgkqhkiG9w0BAQ0FADBuMQswCQYDVQQGEwJY
WDELMAkGA1UECBMCWFgxCzAJBgNVBAcTAlhYMR4wHAYDVQQKExVJMlAgQW5vbnlt
b3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEXMBUGA1UEAwwOYnVnbWVAbWFpbC5p
MnAwHhcNMTQxMTA2MDkxMTE0WhcNMjQxMTA1MDkxMTE0WjBuMQswCQYDVQQGEwJY
WDELMAkGA1UECBMCWFgxCzAJBgNVBAcTAlhYMR4wHAYDVQQKExVJMlAgQW5vbnlt
b3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEXMBUGA1UEAwwOYnVnbWVAbWFpbC5p
MnAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCrThOH0eSDT0VnCSBC
sqYmAydWH+O8eNttDXr2mSvZLhvAW+6/xHTkKhaWvkIvvS0Vh8hujMnD90Cgp4Fk
TKCxMj9K527o5xIZwWW05OevbjlBwIpVLO1PjmsfsoD1nIX14eEzJSEoAulKsv7V
jGUC/6hC11mmVvH9buQLSRv6sCjuAcMszmw3TAD+XYBIs+z57KuwYXtX3+OA543c
l1/ZKLYkkwY8cwzZqWDVWqTKP5TfVae58t40HhJk3bOsr21FZsaOjlmao3GO+d/3
exKuUGJRcolSqskL3sZ1ovFqko81obvvx0upI0YA0iMr/NRGl3VPuf/LJvRppYGc
LsJHgy9TIgtHvaXRi5Nt4CbKl9sZh/7WkkTTI5YGvevu00btlabAN+DSAZZqdsB3
wY8HhM1MHiA9SWsqwU65TwErcRrjNna2FiDHEu0xk5+/iAGl6CSKHZBmNcYKXSv8
cwShB0jjmciK0a05nC638RPgj0fng7KRrSglyzfjXRrljmZ40LSBL/GGMZMWpOM7
mEsBH5UZJ/2BEmjc9X9257zBdx8BK8y1TXpAligpNBsERcTw1WP1PJ35einZvlXW
qI3GwMf0sl26sn+evcK0gDl27jVDZ45MtNQEq64M4NV3Tn9zq0eg/39YvjVeqrI5
l7sxmYqYGR6BuSncwdc4x+t6swIDAQABoyEwHzAdBgNVHQ4EFgQU/REZ7NMbVZHr
Xkao6Q8Ccqv2kAMwDQYJKoZIhvcNAQENBQADggIBACc2YjLVNbl1kJUdg2klCLJt
5LjNTiIZa2Cha5GStlC/lyoRRge6+q/y9TN3tTptlzLPS9pI9EE1GfIQaE+HAk+e
/bC3KUOAHgVuETvsNAbfpaVsPCdWpFuXmp/4b9iDN7qZy4afTKUPA/Ir/cLfNp14
JULfP4z2yFOsCQZ5viNFAs1u99FrwobV2LBzUSIJQewsksuOwj96zIyau0Y629oJ
k+og88Tifd9EH3MVZNGhdpojQDDdwHQSITnCDgfRP5yER1WIA4jg6l+mM90QkvLY
5NjWTna5kJ3X6UizvgCk365yzT2sbN3R9UGXfCJa9GBcnnviJtJF3+/gC0abwY2f
NtVYp32Xky45NY/NdRhDg0bjHP3psxmX+Sc0M9NuQcDQ+fUR+CzM0IGeiszkzXOs
RG+bOou2cZ81G4oxWdAALHIRrn7VvLGlkFMxiIZyhYcTGQZzsTPT6n18dY99+DAV
yQWZfIRdm8DOnt0G+cwfeohc/9ZwDmj4jJAAi0aeTXdY6NEGIVydk6MAycEhg2Hx
9EV96kRwZNIW0AGY8CozECFL3Eyo2ClQVV4Q35SsBibsitDjM03usc2DJ/qjynXA
C8HoOSWgbddiBvqZueqK8GdhykOy3J3ysr+MNN/lbG48LqkQr1OWxev9rGGQ6RJT
wpBgPyAFAwouPy1whmnx
-----END CERTIFICATE-----

32
osx/build/i2pd/certificates/reseed/meeh_at_mail.i2p.crt

@ -1,32 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIFeTCCA2GgAwIBAgIEZZozujANBgkqhkiG9w0BAQ0FADBtMQswCQYDVQQGEwJY
WDELMAkGA1UECBMCWFgxCzAJBgNVBAcTAlhYMR4wHAYDVQQKExVJMlAgQW5vbnlt
b3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEWMBQGA1UEAwwNbWVlaEBtYWlsLmky
cDAeFw0xNDA2MjgyMjQ5MDlaFw0yNDA2MjcyMjQ5MDlaMG0xCzAJBgNVBAYTAlhY
MQswCQYDVQQIEwJYWDELMAkGA1UEBxMCWFgxHjAcBgNVBAoTFUkyUCBBbm9ueW1v
dXMgTmV0d29yazEMMAoGA1UECxMDSTJQMRYwFAYDVQQDDA1tZWVoQG1haWwuaTJw
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnVnmPE4uUvCky0yCnnVH
cJEDqzwDPupx0zr0YDlhZk5VOPPecx5haayJ/V6nXPc1aVVWn+CHfedcF2aBgN4K
5aBueS/l6l5WHcv02DofAqlTmyAws3oQeR1qoTuW24cKRtLR7h5bxv63f6bgp6e+
RihFNez6UxErnRPuJOJEO2Im6EgVp6fz7tQ7R35zxAUeES2YILPySvzy2vYm/EEG
jXX7Ap2A5svVo90xCMOeUZ/55vLsjyIshN+tV87U4xwvAkUmwsmWVHm3BQpHkI6z
zMJie6epB8Bqm0GYm0EcElJH4OCxGTvDLoghpswbuUO7iy3JSfoL7ZCnoiQdK9K4
yVVChj8lG+r7KaTowK96iZep+sZefjOt5VFGuW2Fi/WBv3ldiLlJAo/ZfrUM4+vG
fyNBXbl6bX87uTCGOT1p3dazo+zJMsAZ+Y93DlM/mDEWFa1kKNrs74syzaWEqF4L
KQE6VoYn80OOzafSigTVQgSwUtQtB0XGhMzJhyxU2XHWe1LFIy7Pta0B+lDiZj7c
I8nXxYjsDfEu/Elj/Ra9N6bH0awmgB5JDa+Tbir+oEM5SyDfpSaCGuatdGxjweGI
kVmFU0SqCZV/8TXbIu6MUVzTZMZVT94edifFSRad4fqw7eZbSXlPu++3d1/btn6h
ibM04nkv0mm+FxCKB/wdAkECAwEAAaMhMB8wHQYDVR0OBBYEFO7jIkSRkoXyJcho
9/Q0gDOINa5EMA0GCSqGSIb3DQEBDQUAA4ICAQBzfWO7+8HWOKLaYWToJ6XZbpNF
3wXv1yC4W/HRR80m4JSsq9r0d7838Nvd7vLVP6MY6MaVb/JnV76FdQ5WQ6ticD0Y
o3zmpqqbKVSspN0lrkig4surT88AjfVQz/vEIzKNQEbpzc3hC2LCiE2u+cK/ix4j
b9RohnaPvwLnew5RNQRpcmk+XejaNITISr2yQIwXL7TEYy8HdGCfzFSSFhKe9vkb
GsWS5ASrUzRoprswmlgRe8gEHI+d51Z7mWgna0/5mBz9bH/3QXtpxlLWm3bVV+kt
pZjQDTHE0GqG2YsD1Gmp4LU/JFhCojMTtiPCXmr9KFtpiVlx06DuKm5PC8Ak+5w+
m/DQYYfv9z+AA5Y430bjnzwg67bhqVyyek4wcDQinFswv3h4bIB7CJujDcEqXXza
lhG1ufPPCUTMrVjh7AShohZraqlSlyQPY9vEppLwD4W1d+MqDHM7ljOH7gQYaUPi
wE30AdXEOxLZcT3aRKxkKf2esNofSuUC/+NXQvPjpuI4UJKO3eegi+M9dbnKoNWs
MPPLPpycecWPheFYM5K6Ao63cjlUY2wYwCfDTFgjA5q8i/Rp7i6Z6fLE3YWJ4VdR
WOFB7hlluQ//jMW6M1qz6IYXmlUjcXl81VEvlOH/QBNrPvX3I3SYXYgVRnVGUudB
o3eNsanvTU+TIFBh2Q==
-----END CERTIFICATE-----

1
osx/build/preferences/cck2/chrome.manifest

@ -1 +0,0 @@
resource cck2 modules/

154
osx/build/preferences/cck2/modules/CAPSCheckLoadURIFramescript.js

@ -1,154 +0,0 @@
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
const EXPORTED_SYMBOLS = [];
var gForceExternalHandler = false;
XPCOMUtils.defineLazyServiceGetter(this, "extProtocolSvc",
"@mozilla.org/uriloader/external-protocol-service;1", "nsIExternalProtocolService");
var documentObserver = {
observe: function observe(subject, topic, data) {
if (subject instanceof Ci.nsIDOMWindow && topic == 'content-document-global-created') {
var doc = subject.document;
doc.addEventListener("DOMContentLoaded", function onLoad(event) {
event.target.removeEventListener("DOMContentLoaded", onLoad, false);
// If the parent document is a local file, don't do anything
// Links will just work
if (doc.location.href.indexOf("file://") == 0) {
return;
}
var links = event.target.getElementsByTagName("a");
for (var i=0; i < links.length; i++) {
var link = links[i];
if (link.href.indexOf("file://") != 0) {
continue;
}
link.addEventListener("click", function(link) {
return function(event) {
event.preventDefault();
if (gForceExternalHandler) {
extProtocolSvc.loadUrl(Services.io.newURI(link.href, null, null));
} else {
var target = "_self";
if (link.hasAttribute("target")) {
target = link.getAttribute("target");
}
// If we were told somewhere other than current (based on modifier keys), use it
var where = whereToOpenLink(event);
if (where != "current" || target == "_blank") {
sendAsyncMessage("cck2:open-url", {
"url": link.href,
"where": (target == "_blank") ? "tab" : where
});
return;
}
switch (target) {
case "_self":
link.ownerDocument.location = link.href;
break;
case "_parent":
link.ownerDocument.defaultView.parent.document.location = link.href;
break;
case "_top":
link.ownerDocument.defaultView.top.document.location = link.href;
break;
default:
// Attempt to find the iframe that this goes into
var iframes = doc.defaultView.parent.document.getElementsByName(target);
if (iframes.length > 0) {
iframes[0].contentDocument.location = link.href;
} else {
link.ownerDocument.location = link.href;
}
break;
}
}
}
}(link), false);
}
}, false);
}
}
}
// Don't do this check before Firefox 29
if (Services.vc.compare(Services.appinfo.version, "29") > 0) {
try {
if (Services.prefs.getCharPref("capability.policy.default.checkloaduri.enabled") == "allAccess") {
gForceExternalHandler = !extProtocolSvc.isExposedProtocol('file');
Services.obs.addObserver(documentObserver, "content-document-global-created", false);
addEventListener("unload", function() {
Services.obs.removeObserver(documentObserver, "content-document-global-created", false);
})
}
} catch (e) {}
}
/* Copied from http://mxr.mozilla.org/mozilla-central/source/browser/base/content/utilityOverlay.js?raw=1 */
function getBoolPref(prefname, def)
{
try {
return Services.prefs.getBoolPref(prefname);
}
catch(er) {
return def;
}
}
/* whereToOpenLink() looks at an event to decide where to open a link.
*
* The event may be a mouse event (click, double-click, middle-click) or keypress event (enter).
*
* On Windows, the modifiers are:
* Ctrl new tab, selected
* Shift new window
* Ctrl+Shift new tab, in background
* Alt save
*
* Middle-clicking is the same as Ctrl+clicking (it opens a new tab).
*
* Exceptions:
* - Alt is ignored for menu items selected using the keyboard so you don't accidentally save stuff.
* (Currently, the Alt isn't sent here at all for menu items, but that will change in bug 126189.)
* - Alt is hard to use in context menus, because pressing Alt closes the menu.
* - Alt can't be used on the bookmarks toolbar because Alt is used for "treat this as something draggable".
* - The button is ignored for the middle-click-paste-URL feature, since it's always a middle-click.
*/
function whereToOpenLink( e, ignoreButton, ignoreAlt )
{
Components.utils.import("resource://gre/modules/AppConstants.jsm");
// This method must treat a null event like a left click without modifier keys (i.e.
// e = { shiftKey:false, ctrlKey:false, metaKey:false, altKey:false, button:0 })
// for compatibility purposes.
if (!e)
return "current";
var shift = e.shiftKey;
var ctrl = e.ctrlKey;
var meta = e.metaKey;
var alt = e.altKey && !ignoreAlt;
// ignoreButton allows "middle-click paste" to use function without always opening in a new window.
var middle = !ignoreButton && e.button == 1;
var middleUsesTabs = true;
// Don't do anything special with right-mouse clicks. They're probably clicks on context menu items.
var metaKey = AppConstants.platform == "macosx" ? meta : ctrl;
if (metaKey || (middle && middleUsesTabs))
return shift ? "tabshifted" : "tab";
if (alt && getBoolPref("browser.altClickSave", false))
return "save";
if (shift || (middle && !middleUsesTabs))
return "window";
return "current";
}

183
osx/build/preferences/cck2/modules/CAPSClipboardFramescript.js

@ -1,183 +0,0 @@
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
Cu.import("resource://gre/modules/Services.jsm");
const EXPORTED_SYMBOLS = [];
var gAllowedPasteSites = [];
var gAllowedCutCopySites = [];
var gDeniedPasteSites = [];
var gDeniedCutCopySites = [];
var gDefaultPastePolicy = false;
var gDefaultCutCopyPolicy = false;
function allowCutCopy(doc) {
var win = doc.defaultView;
if (win !== win.top) {
// It's an iframe. Use the top level window
// for security purposes
win = win.top;
}
if (gDefaultCutCopyPolicy == true) {
for (var i=0; i < gDeniedCutCopySites.length; i++) {
if (win.location.href.indexOf(gDeniedCutCopySites[i]) == 0) {
return false;
}
}
return true;
} else {
for (var i=0; i < gAllowedCutCopySites.length; i++) {
if (win.location.href.indexOf(gAllowedCutCopySites[i]) == 0) {
return true;
}
}
return false;
}
}
function allowPaste(doc) {
var win = doc.defaultView;
if (win !== win.top) {
// It's an iframe. Use the top level window
// for security purposes
win = win.top;
}
if (gDefaultPastePolicy == true) {
for (var i=0; i < gDeniedPasteSites.length; i++) {
if (win.location.href.indexOf(gDeniedPasteSites[i]) == 0) {
return false;
break;
}
}
return true;
} else {
for (var i=0; i < gAllowedPasteSites.length; i++) {
if (win.location.href.indexOf(gAllowedPasteSites[i]) == 0) {
return true;
break;
}
}
return false;
}
}
function myExecCommand(doc, originalExecCommand) {
return function(aCommandName, aShowDefaultUI, aValueArgument) {
switch (aCommandName.toLowerCase()) {
case "cut":
case "copy":
if (allowCutCopy(doc)) {
var win = Services.wm.getMostRecentWindow("navigator:browser");
win.goDoCommand("cmd_" + aCommandName.toLowerCase());
return true;
}
break;
case "paste":
if (allowPaste(doc)) {
var win = Services.wm.getMostRecentWindow("navigator:browser");
win.goDoCommand("cmd_" + aCommandName.toLowerCase());
return true;
}
break;
}
return originalExecCommand.call(doc, aCommandName, aShowDefaultUI, aValueArgument);
}
}
function myQueryCommandSupported(doc, originalQueryCommandSupported) {
return function(aCommandName) {
switch (aCommandName.toLowerCase()) {
case "cut":
case "copy":
if (allowCutCopy(doc)) {
return true;
}
break;
case "paste":
if (allowPaste(doc)) {
return true;
}
break;
}
return originalQueryCommandSupported.call(doc, aCommandName, aShowDefaultUI, aValueArgument);
}
}
var documentObserver = {
observe: function observe(subject, topic, data) {
if (subject instanceof Ci.nsIDOMWindow && topic == 'content-document-global-created') {
var doc = subject.document;
var cutCopyAllowed = allowCutCopy(doc);
var pasteAllowed = allowPaste(doc);
if (!cutCopyAllowed && !pasteAllowed) {
return;
}
var originalExecCommand = Cu.waiveXrays(doc).execCommand;
Cu.exportFunction(myExecCommand(doc, originalExecCommand), doc, {defineAs: "execCommand"});
var originalQueryCommandSupported = Cu.waiveXrays(doc).queryCommandSupported;
Cu.exportFunction(myQueryCommandSupported(doc, originalQueryCommandSupported), doc, {defineAs: "queryCommandSupported"});
var originalQueryCommandEnabled = Cu.waiveXrays(doc).queryCommandEnabled;
Cu.exportFunction(myQueryCommandSupported(doc, originalQueryCommandEnabled), doc, {defineAs: "queryCommandEnabled"});
}
}
}
// Don't do this check before Firefox 29
if (Services.vc.compare(Services.appinfo.version, "29") > 0) {
try {
if (Services.prefs.getCharPref("capability.policy.default.Clipboard.cutcopy") == "allAccess") {
gDefaultCutCopyPolicy = true;
}
} catch (e) {}
try {
if (Services.prefs.getCharPref("capability.policy.default.Clipboard.paste") == "allAccess") {
gDefaultPastePolicy = true;
}
} catch (e) {}
try {
var policies = [];
policies = Services.prefs.getCharPref("capability.policy.policynames").split(', ');
for (var i=0; i < policies.length; i++ ) {
try {
if (Services.prefs.getCharPref("capability.policy." + policies[i] + ".Clipboard.cutcopy") == "allAccess") {
var allowedCutCopySites = Services.prefs.getCharPref("capability.policy." + policies[i] + ".sites").split(" ");
for (var j=0; j < allowedCutCopySites.length; j++) {
gAllowedCutCopySites.push(allowedCutCopySites[j]);
}
}
} catch(e) {}
try {
if (Services.prefs.getCharPref("capability.policy." + policies[i] + ".Clipboard.cutcopy") == "noAccess") {
var deniedCutCopySites = Services.prefs.getCharPref("capability.policy." + policies[i] + ".sites").split(" ");
for (var j=0; j < deniedCutCopySites.length; j++) {
gDeniedCutCopySites.push(deniedCutCopySites[j]);
}
}
} catch(e) {}
try {
if (Services.prefs.getCharPref("capability.policy." + policies[i] + ".Clipboard.paste") == "allAccess") {
var allowedPasteSites = Services.prefs.getCharPref("capability.policy." + policies[i] + ".sites").split(" ");
for (var j=0; j < allowedPasteSites.length; j++) {
gAllowedPasteSites.push(allowedPasteSites[j]);
}
}
} catch(e) {}
try {
if (Services.prefs.getCharPref("capability.policy." + policies[i] + ".Clipboard.paste") == "noAccess") {
var deniedPasteSites = Services.prefs.getCharPref("capability.policy." + policies[i] + ".sites").split(" ");
for (var j=0; j < deniedPasteSites.length; j++) {
gDeniedPasteSites.push(deniedPasteSites[j]);
}
}
} catch(e) {}
}
} catch (e) {}
if (gDefaultCutCopyPolicy || gDefaultPastePolicy ||
gAllowedCutCopySites.length > 0 || gAllowedPasteSites> 0) {
Services.obs.addObserver(documentObserver, "content-document-global-created", false);
addEventListener("unload", function() {
Services.obs.removeObserver(documentObserver, "content-document-global-created", false);
})
}
}

1495
osx/build/preferences/cck2/modules/CCK2.jsm

File diff suppressed because it is too large Load Diff

111
osx/build/preferences/cck2/modules/CCK2AboutAddonsOverlay.jsm

@ -1,111 +0,0 @@
/* This file overlays about:addons. It does the following: */
/* Workaround https://bugzilla.mozilla.org/show_bug.cgi?id=1132971 */
/* Hide the "Install Add-on From File" menu if xpinstall.enabled is false */
/* Hides the discover pane if xpinstall.enabled is false */
/* Hides the add-on entry if specified in the CCK2 config */
const EXPORTED_SYMBOLS = [];
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://cck2/CCK2.jsm");
var addonId = "cck2wizard@kaply.com";
var observer = {
observe: function observe(subject, topic, data) {
switch (topic) {
case "chrome-document-global-created":
var win = subject.QueryInterface(Components.interfaces.nsIDOMWindow);
win.addEventListener("load", function onLoad(event) {
win.removeEventListener("load", onLoad, false);
var doc = event.target;
var url = doc.location.href.split("?")[0].split("#")[0];
switch (url) {
case "about:addons":
case "chrome://mozapps/content/extensions/extensions.xul":
var configs = CCK2.getConfigs();
var hiddenAddons = [];
var requiredAddons = [];
for (let id in configs) {
var config = configs[id];
if (config && "extension" in config && config.extension.hide) {
hiddenAddons.push(config.extension.id);
}
if (config.requiredAddons) {
requiredAddons.push.apply(requiredAddons, config.requiredAddons.split(","));
}
}
if (hiddenAddons.length > 0 || requiredAddons.length > 0) {
var ss;
for (var i = 0; i < doc.styleSheets.length; i++) {
if (doc.styleSheets[i].href == "chrome://mozapps/skin/extensions/extensions.css") {
ss = doc.styleSheets[i];
break;
}
}
for (var i=0; i < hiddenAddons.length; i++) {
ss.insertRule("richlistitem[value='" + hiddenAddons[i] + "'] { display: none;}", ss.cssRules.length);
}
for (var i=0; i < requiredAddons.length; i++) {
ss.insertRule("richlistitem[value='" + requiredAddons[i] + "'] button[anonid='disable-btn'] { display: none;}", ss.cssRules.length);
ss.insertRule("richlistitem[value='" + requiredAddons[i] + "'] button[anonid='remove-btn'] { display: none;}", ss.cssRules.length);
}
if (requiredAddons.length > 0) {
win.gViewController.commands.cmd_disableItem.origIsEnabled = win.gViewController.commands.cmd_disableItem.isEnabled;
win.gViewController.commands.cmd_disableItem.isEnabled = function(aAddon) { if (aAddon && requiredAddons.indexOf(aAddon.id) != -1) return false; return this.origIsEnabled;}
win.gViewController.commands.cmd_uninstallItem.origIsEnabled = win.gViewController.commands.cmd_disableItem.isEnabled;
win.gViewController.commands.cmd_uninstallItem.isEnabled = function(aAddon) { if (aAddon && requiredAddons.indexOf(aAddon.id) != -1) return false; return this.origIsEnabled;}
}
}
var showDiscoverPane = true;
var xpinstallEnabled = true;
try {
xpinstallEnabled = Services.prefs.getBoolPref("xpinstall.enabled");
} catch (e) {}
try {
showDiscoverPane = Services.prefs.getBoolPref("extensions.getAddons.showPane");
} catch (e) {}
if (!xpinstallEnabled || !showDiscoverPane) {
// Work around Mozilla bug 1132971
// Hide the discover pane if it is the selected pane
if (E("view-port", doc) && E("view-port", doc).selectedIndex == 0) {
try {
win.gViewController.loadView("addons://list/extension");
} catch (ex) {
// This fails with Webconverger installed. Ignore it.
}
}
}
if (!xpinstallEnabled) {
// Hide the "Install Add-on From File" separator
hide(E("utils-installFromFile-separator", doc));
// Hide the "Install Add-on From File" menuitem
hide(E("utils-installFromFile", doc));
win.gDragDrop.onDragOver = function(event) {
event.dataTransfer.dropEffect = "none";
event.stopPropagation();
event.preventDefault();
};
}
break;
}
}, false);
break;
}
}
}
Services.obs.addObserver(observer, "chrome-document-global-created", false);
function E(id, context) {
var element = context.getElementById(id);
return element;
}
function hide(element) {
if (element) {
element.setAttribute("hidden", "true");
}
}

33
osx/build/preferences/cck2/modules/CCK2AboutDialogOverlay.jsm

@ -1,33 +0,0 @@
/* This file is a workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1139509 */
/* It bolds the Firefox version in the about dialog and unbolds the distribution information */
/* It can be removed once Firefox 38 ESR is out of support */
const EXPORTED_SYMBOLS = [];
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
Cu.import("resource://gre/modules/Services.jsm");
var observer = {
observe: function observe(subject, topic, data) {
switch (topic) {
case "chrome-document-global-created":
var win = subject.QueryInterface(Components.interfaces.nsIDOMWindow);
win.addEventListener("load", function onLoad(event) {
win.removeEventListener("load", onLoad, false);
var doc = event.target;
var url = doc.location.href.split("?")[0].split("#")[0];
switch (url) {
case "chrome://browser/content/aboutDialog.xul":
doc.querySelector("#version").style.fontWeight = "bold";
doc.querySelector("#distribution").style.fontWeight = "normal";
doc.querySelector("#distributionId").style.fontWeight = "normal";
break;
}
}, false);
break;
}
}
}
Services.obs.addObserver(observer, "chrome-document-global-created", false);

79
osx/build/preferences/cck2/modules/CCK2AboutHomeFramescript.js

@ -1,79 +0,0 @@
/* This file overrides about:home. It does the following:
* Remove the sync button if Sync is disabled
* Remove the Addons button if Sync is disabled
* Remove the snippets if snippets are disabled
*/
const EXPORTED_SYMBOLS = [];
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
Cu.import("resource://gre/modules/Services.jsm");
var configs = null;
var observer = {
observe: function observe(subject, topic, data) {
switch (topic) {
case "content-document-global-created":
var win = subject.QueryInterface(Components.interfaces.nsIDOMWindow);
win.addEventListener("load", function onLoad(event) {
win.removeEventListener("load", onLoad, false);
var doc = event.target;
var url = doc.location.href.split("?")[0].split("#")[0];
switch (url) {
case "about:home":
case "chrome://browser/content/abouthome/aboutHome.xhtml":
if (!configs) {
// TODO - Make this Async
configs = sendSyncMessage("cck2:get-configs")[0];
}
for (let id in configs) {
var config = configs[id];
if (config.disableSync) {
remove(E("sync", doc));
}
if (config.disableAddonsManager) {
remove(E("addons", doc));
}
if (config.disableWebApps) {
remove(E("apps", doc));
}
if (config.removeSnippets) {
var snippets = E("snippets", doc);
if (snippets) {
snippets.style.display = "none";
}
}
if (config.hiddenUI) {
for (var i=0; i < config.hiddenUI.length; i++) {
var uiElements = doc.querySelectorAll(config.hiddenUI[i]);
for (var j=0; j < uiElements.length; j++) {
var uiElement = uiElements[j];
uiElement.setAttribute("hidden", "true");
}
}
}
}
break;
}
}, false);
break;
}
}
}
Services.obs.addObserver(observer, "content-document-global-created", false);
addEventListener("unload", function() {
Services.obs.removeObserver(observer, "content-document-global-created", false);
})
function E(id, context) {
var element = context.getElementById(id);
return element;
}
function remove(element) {
if (element && element.parentNode)
element.parentNode.removeChild(element);
}

62
osx/build/preferences/cck2/modules/CCK2AboutSupportOverlay.jsm

@ -1,62 +0,0 @@
/* This file overrides about:support It does the following:
* Remove the reset Firefox button if disableResetFirefox is set
* Remove the safe mode Button if disableSafeMode is set
* Remove the box if both are set
*/
const EXPORTED_SYMBOLS = [];
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://cck2/CCK2.jsm");
var configs = null;
var observer = {
observe: function observe(subject, topic, data) {
switch (topic) {
case "chrome-document-global-created":
var win = subject.QueryInterface(Components.interfaces.nsIDOMWindow);
win.addEventListener("load", function onLoad(event) {
win.removeEventListener("load", onLoad, false);
var doc = event.target;
var url = doc.location.href.split("?")[0].split("#")[0];
switch (url) {
case "about:support":
case "chrome://global/content/aboutSupport.xhtml":
if (!configs) {
configs = CCK2.getConfigs();
}
for (let id in configs) {
var config = configs[id];
if (config.disableResetFirefox) {
remove(E("reset-box", doc));
}
if (config.disableSafeMode) {
remove(E("safe-mode-box", doc));
}
if (config.disableResetFirefox &&
config.disableSafeMode) {
remove(E("action-box", doc));
}
}
break;
}
}, false);
break;
}
}
}
Services.obs.addObserver(observer, "chrome-document-global-created", false);
function E(id, context) {
var element = context.getElementById(id);
return element;
}
function remove(element) {
if (element && element.parentNode)
element.parentNode.removeChild(element);
}

373
osx/build/preferences/cck2/modules/CCK2BrowserOverlay.jsm

@ -1,373 +0,0 @@
/* This file modifies the main browser window. It does the following:
* Goes through the hiddenUI list and hides any UI
*
*/
const EXPORTED_SYMBOLS = [];
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource:///modules/CustomizableUI.jsm");
Cu.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
Cu.import("resource://cck2/CCK2.jsm");
var configs = null;
var observer = {
observe: function observe(subject, topic, data) {
switch (topic) {
case "chrome-document-global-created":
var win = subject.QueryInterface(Components.interfaces.nsIDOMWindow);
win.addEventListener("load", function onLoad(event) {
win.removeEventListener("load", onLoad, false);
var doc = event.target;
var url = doc.location.href.split("?")[0].split("#")[0];
switch (url) {
case "chrome://browser/content/browser.xul":
// Workaround https://bugzilla.mozilla.org/show_bug.cgi?id=1149617
var origSetReportPhishingMenu = win.gSafeBrowsing.setReportPhishingMenu;
win.gSafeBrowsing.setReportPhishingMenu = function() {
try {
origSetReportPhishingMenu();
} catch (e) {}
}
win.addEventListener("unload", function onUnload(event) {
win.removeEventListener("unload", onUnload, false);
var panelUIPopup = doc.getElementById("PanelUI-popup");
if (panelUIPopup) {
E("PanelUI-popup", doc).removeEventListener("popupshowing", onPanelShowing, false);
}
});
var panelUIPopup = doc.getElementById("PanelUI-popup");
if (panelUIPopup) {
E("PanelUI-popup", doc).addEventListener("popupshowing", onPanelShowing, false);
}
var appMenuPopup = doc.getElementById("appMenu-popup");
if (appMenuPopup) {
E("appMenu-popup", doc).addEventListener("popupshowing", onAppMenuShowing, false);
}
configs = CCK2.getConfigs();
for (let id in configs) {
config = configs[id];
if (config.disablePrivateBrowsing &&
PrivateBrowsingUtils.isWindowPrivate(win)) {
win.setTimeout(function() {
Services.prompt.alert(win, "Private Browsing", "Private Browsing has been disabled by your administrator");
win.close();
}, 0, false);
}
if (config.disablePrivateBrowsing) {
disablePrivateBrowsing(doc);
}
if (config.disableSync) {
disableSync(doc);
}
if (config.disableAddonsManager) {
disableAddonsManager(doc);
}
if (config.removeDeveloperTools) {
Services.tm.mainThread.dispatch(function() {
removeDeveloperTools(doc);
}, Ci.nsIThread.DISPATCH_NORMAL);
}
if (config.disableErrorConsole) {
disableErrorConsole(doc);
}
if (config.disableFirefoxHealthReport) {
var healthReportMenu = doc.getElementById("healthReport");
if (healthReportMenu) {
healthReportMenu.parentNode.removeChild(healthReportMenu);
}
}
if (config.removeSafeModeMenu) {
hide(E("helpSafeMode", doc));
}
if (config.titlemodifier) {
doc.getElementById("main-window").setAttribute("titlemodifier", config.titlemodifier);
}
if (config.removeSetDesktopBackground) {
// Because this is on a context menu, we can't use "hidden"
if (E("context-setDesktopBackground", doc)) {
E("context-setDesktopBackground", doc).setAttribute("style", "display: none;");
}
}
if (config.disableWebApps) {
CustomizableUI.destroyWidget("web-apps-button");
hide(E("menu_openApps", doc));
}
if (config.disableHello) {
CustomizableUI.destroyWidget("loop-button");
hide(E("menu_openLoop", doc));
}
if (config.disablePocket) {
CustomizableUI.destroyWidget("pocket-button");
}
if (config.disableSharePage) {
CustomizableUI.destroyWidget("social-share-button");
// Because these are on a context menu, we can't use "hidden"
if (E("context-sharelink", doc)) {
E("context-sharelink", doc).setAttribute("style", "display: none;");
}
if (E("context-shareselect", doc)) {
E("context-shareselect", doc).setAttribute("style", "display: none;");
}
if (E("context-shareimage", doc)) {
E("context-shareimage", doc).setAttribute("style", "display: none;");
}
if (E("context-sharevideo", doc)) {
E("context-sharevideo", doc).setAttribute("style", "display: none;");
}
if (E("context-sharepage", doc)) {
E("context-sharepage", doc).setAttribute("style", "display: none;");
}
}
if (config.disableSocialAPI) {
win.SocialActivationListener = {};
}
if (config.disableForget) {
CustomizableUI.destroyWidget("panic-button");
}
if (config.hiddenUI) {
hideUIElements(doc, config.hiddenUI);
}
if (config.helpMenu) {
// We need to run this function on a delay, because we won't know
// if the about menu is hidden for mac until after it is run.
Services.tm.mainThread.dispatch(function() {
var helpMenuPopup = doc.getElementById("menu_HelpPopup");
var menuitem = doc.createElement("menuitem");
menuitem.setAttribute("label", config.helpMenu.label);
if ("accesskey" in config.helpMenu) {
menuitem.setAttribute("accesskey", config.helpMenu.accesskey);
}
menuitem.setAttribute("oncommand", "openUILink('" + config.helpMenu.url + "');");
menuitem.setAttribute("onclick", "checkForMiddleClick(this, event);");
if (!E("aboutName", doc) || E("aboutName", doc).hidden) {
// Mac
helpMenuPopup.appendChild(menuitem);
} else {
helpMenuPopup.insertBefore(menuitem, E("aboutName", doc));
helpMenuPopup.insertBefore(doc.createElement("menuseparator"),
E("aboutName", doc));
}
}, Ci.nsIThread.DISPATCH_NORMAL);
}
if (config.firstrun || config.upgrade) {
if (config.displayBookmarksToolbar || (config.bookmarks && config.bookmarks.toolbar)) {
CustomizableUI.setToolbarVisibility("PersonalToolbar", "true");
}
if (config.displayMenuBar) {
CustomizableUI.setToolbarVisibility("toolbar-menubar", "true");
}
if (config.showSearchBar) {
CustomizableUI.addWidgetToArea("search-container", CustomizableUI.AREA_NAVBAR,
CustomizableUI.getPlacementOfWidget("urlbar-container").position + 1);
}
config.firstrun = false;
config.upgrade = false;
}
}
break;
case "chrome://browser/content/places/places.xul":
case "chrome://browser/content/bookmarks/bookmarksPanel.xul":
case "chrome://browser/content/history/history-panel.xul":
configs = CCK2.getConfigs();
for (let id in configs) {
var config = configs[id];
if (config.disablePrivateBrowsing) {
if (E("placesContext_open:newprivatewindow", doc)) {
E("placesContext_open:newprivatewindow", doc).setAttribute("style", "display: none;");
}
}
if (config.hiddenUI) {
hideUIElements(doc, config.hiddenUI);
}
}
break;
}
}, false);
break;
}
}
}
Services.obs.addObserver(observer, "chrome-document-global-created", false);
function disableSync(doc) {
var win = doc.defaultView;
if (win.gSyncUI) {
var mySyncUI = {
init: function() {
return;
},
initUI: function() {
return;
},
updateUI: function() {
hide(E("sync-setup-state", doc));
hide(E("sync-syncnow-state", doc));
hide(E("sync-setup", doc));
hide(E("sync-syncnowitem", doc));
}
}
win.gSyncUI = mySyncUI;
}
CustomizableUI.destroyWidget("sync-button");
CustomizableUI.removeWidgetFromArea("sync-button");
var toolbox = doc.getElementById("navigator-toolbox");
if (toolbox && toolbox.palette) {
let element = toolbox.palette.querySelector("#sync-button");
if (element) {
element.parentNode.removeChild(element);
}
}
hide(E("sync-setup-state", doc));
hide(E("sync-syncnow-state", doc));
hide(E("sync-setup", doc));
hide(E("sync-syncnowitem", doc));
}
function disablePrivateBrowsing(doc) {
disable(E("Tools:PrivateBrowsing", doc));
hide(E("menu_newPrivateWindow", doc));
// Because this is on a context menu, we can't use "hidden"
if (E("context-openlinkprivate", doc))
E("context-openlinkprivate", doc).setAttribute("style", "display: none;");
if (E("placesContext_open:newprivatewindow", doc))
E("placesContext_open:newprivatewindow", doc).setAttribute("style", "display: none;");
CustomizableUI.destroyWidget("privatebrowsing-button")
}
function disableAddonsManager(doc) {
hide(E("menu_openAddons", doc));
disable(E("Tools:Addons", doc)); // Ctrl+Shift+A
CustomizableUI.destroyWidget("add-ons-button")
}
function removeDeveloperTools(doc) {
var win = doc.defaultView;
// Need to delay this because devtools is created dynamically
win.setTimeout(function() {
CustomizableUI.destroyWidget("developer-button")
hide(E("webDeveloperMenu", doc));
var devtoolsKeyset = doc.getElementById("devtoolsKeyset");
if (devtoolsKeyset) {
for (var i = 0; i < devtoolsKeyset.childNodes.length; i++) {
devtoolsKeyset.childNodes[i].removeAttribute("oncommand");
devtoolsKeyset.childNodes[i].removeAttribute("command");
}
}
}, 0);
try {
doc.getElementById("Tools:ResponsiveUI").removeAttribute("oncommand");
} catch (e) {}
try {
doc.getElementById("Tools:Scratchpad").removeAttribute("oncommand");
} catch (e) {}
try {
doc.getElementById("Tools:BrowserConsole").removeAttribute("oncommand");
} catch (e) {}
try {
doc.getElementById("Tools:BrowserToolbox").removeAttribute("oncommand");
} catch (e) {}
try {
doc.getElementById("Tools:DevAppsMgr").removeAttribute("oncommand");
} catch (e) {}
try {
doc.getElementById("Tools:DevToolbar").removeAttribute("oncommand");
} catch (e) {}
try {
doc.getElementById("Tools:DevToolbox").removeAttribute("oncommand");
} catch (e) {}
try {
doc.getElementById("Tools:DevToolbarFocus").removeAttribute("oncommand");
} catch (e) {}
CustomizableUI.destroyWidget("developer-button")
}
function disableErrorConsole(doc) {
doc.getElementById("Tools:ErrorConsole").removeAttribute("oncommand");
}
function onPanelShowing(event) {
var configs = CCK2.getConfigs();
for (let id in configs) {
var config = configs[id];
if (config.disableSync) {
hide(E("PanelUI-fxa-status", event.target.ownerDocument));
hide(E("PanelUI-footer-fxa", event.target.ownerDocument)); // Firefox 42+
}
}
}
function onAppMenuShowing(event) {
var configs = CCK2.getConfigs();
for (let id in configs) {
var config = configs[id];
if (config.disableSync) {
hide(E("appMenu-fxa-container", event.target.ownerDocument));
}
if (config.removeDeveloperTools) {
hide(E("appMenu-developer-button", event.target.ownerDocument));
}
}
}
function E(id, context) {
var element = context.getElementById(id);
return element;
}
function hide(element) {
if (element) {
element.setAttribute("hidden", "true");
}
}
function disable(element) {
if (element) {
element.disabled = true;
element.setAttribute("disabled", "true");
}
}
function hideUIElements(doc, hiddenUI) {
for (var i=0; i < hiddenUI.length; i++) {
var uiElements = doc.querySelectorAll(hiddenUI[i]);
// Don't use .hidden since it doesn't work sometimes
var style = doc.getElementById("cck2-hidden-style");
if (!style) {
style = doc.createElementNS("http://www.w3.org/1999/xhtml", "style");
style.setAttribute("id", "cck2-hidden-style");
style.setAttribute("type", "text/css");
doc.documentElement.appendChild(style);
}
style.textContent = style.textContent + hiddenUI[i] + "{display: none !important;}";
if (!uiElements || uiElements.length == 0) {
continue;
}
for (var j=0; j < uiElements.length; j++) {
var uiElement = uiElements[j];
if (uiElement.nodeName == "menuitem") {
uiElement.removeAttribute("key");
uiElement.removeAttribute("oncommand");
if (uiElement.hasAttribute("command")) {
var commandId = uiElement.getAttribute("command");
uiElement.removeAttribute("command");
var command = doc.getElementById(commandId);
command.removeAttribute("oncommand");
var keys = doc.querySelectorAll("key[command='" + commandId + "']")
for (var k=0; k < keys.length; k++) {
keys[k].removeAttribute("command");
}
}
}
// Horrible hack to work around the crappy Australis help menu
// Items on the menu always show up in the Australis menu, so we have to remove them.
if (uiElements[j].parentNode.id == "menu_HelpPopup") {
uiElements[j].parentNode.removeChild(uiElements[j]);
}
}
}
}

47
osx/build/preferences/cck2/modules/CCK2FileBlock.jsm

@ -1,47 +0,0 @@
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
var EXPORTED_SYMBOLS = [];
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
let CCK2FileBlock = {
chromeBlacklist: ["browser", "mozapps", "marionette", "specialpowers",
"branding", "alerts"],
shouldLoad: function(aContentType, aContentLocation, aRequestOrigin, aContext, aMimeTypeGuess, aExtra) {
// Prevent the loading of chrome URLs into the main browser window
if (aContentLocation.scheme == "chrome") {
if (aRequestOrigin &&
(aRequestOrigin.spec == "chrome://browser/content/browser.xul" ||
aRequestOrigin.scheme == "moz-nullprincipal")) {
for (var i=0; i < this.chromeBlacklist.length; i++) {
if (aContentLocation.host == this.chromeBlacklist[i]) {
if (aContentLocation.spec.includes(".xul")) {
return Ci.nsIContentPolicy.REJECT_REQUEST;
}
}
}
}
}
return Ci.nsIContentPolicy.ACCEPT;
},
shouldProcess: function(aContentType, aContentLocation, aRequestOrigin, aContext, aMimeTypeGuess, aExtra) {
return Ci.nsIContentPolicy.ACCEPT;
},
classDescription: "CCK2 FileBlock Service",
contractID: "@kaply.com/cck2-fileblock-service;1",
classID: Components.ID('{26e7afc9-e22d-4d12-bb57-c184fe24b828}'),
QueryInterface: XPCOMUtils.generateQI([Ci.nsIContentPolicy]),
createInstance: function(outer, iid) {
return this.QueryInterface(iid);
},
};
var registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
registrar.registerFactory(CCK2FileBlock.classID,
CCK2FileBlock.classDescription,
CCK2FileBlock.contractID,
CCK2FileBlock);
var cm = Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager);
cm.addCategoryEntry("content-policy", CCK2FileBlock.contractID,
CCK2FileBlock.contractID, false, true);

51
osx/build/preferences/cck2/modules/CCK2Framescript.js

@ -1,51 +0,0 @@
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
Cu.import("resource://gre/modules/Services.jsm");
var disableSearchEngineInstall = false;
var documentObserver = {
observe: function observe(subject, topic, data) {
if (subject instanceof Ci.nsIDOMWindow && topic == 'content-document-global-created') {
var doc = subject.document;
doc.addEventListener("DOMContentLoaded", function onLoad(event) {
event.target.removeEventListener("DOMContentLoaded", onLoad, false);
if (disableSearchEngineInstall) {
subject.wrappedJSObject.external.AddSearchProvider = function() {};
}
if (!doc.documentURI.startsWith("about:")) {
return;
}
for (let id in configs) {
var config = configs[id];
if (config.hiddenUI) {
for (var i=0; i < config.hiddenUI.length; i++) {
// Don't use .hidden since it doesn't work sometimes
var style = doc.getElementById("cck2-hidden-style");
if (!style) {
style = doc.createElementNS("http://www.w3.org/1999/xhtml", "style");
style.setAttribute("id", "cck2-hidden-style");
style.setAttribute("type", "text/css");
doc.documentElement.appendChild(style);
}
style.textContent = style.textContent + config.hiddenUI[i] + "{display: none !important;}";
}
}
}
}, false);
}
}
}
var configs = sendSyncMessage("cck2:get-configs")[0];
for (var id in configs) {
var config = configs[id];
if (config.disableSearchEngineInstall) {
disableSearchEngineInstall = true;
break;
}
}
Services.obs.addObserver(documentObserver, "content-document-global-created", false);
addEventListener("unload", function() {
Services.obs.removeObserver(documentObserver, "content-document-global-created", false);
})

123
osx/build/preferences/cck2/modules/CCK2PreferencesOverlay.jsm

@ -1,123 +0,0 @@
/* This file modifies the preferences dialogs. It does the following:
* Removes private browsing from the pref UI if it is disabled
* Removes Sync from the pref UI if it is diabled
* Disables the crash reporter button if crash reporter is disabled
* Removed the master password UI if it is disabled
* Goes through the hiddenUI list and hides any UI
*
*/
const EXPORTED_SYMBOLS = [];
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://cck2/CCK2.jsm");
var configs = null;
var observer = {
observe: function observe(subject, topic, data) {
switch (topic) {
case "chrome-document-global-created":
var win = subject.QueryInterface(Components.interfaces.nsIDOMWindow);
win.addEventListener("load", function onLoad(event) {
win.removeEventListener("load", onLoad, false);
var doc = event.target;
var url = doc.location.href.split("?")[0].split("#")[0];
switch (url) {
case "chrome://browser/content/preferences/preferences.xul":
configs = CCK2.getConfigs();
win.addEventListener("paneload", function(event) {
updatePrefUI(event.target.ownerDocument);
}, false);
updatePrefUI(doc);
for (let id in configs) {
var config = configs[id];
if (!config.disableSync) {
continue;
}
var prefWindow = E("BrowserPreferences", doc);
var paneSyncRadio = doc.getAnonymousElementByAttribute(prefWindow, "pane", "paneSync");
hide(paneSyncRadio);
var paneDeck = doc.getAnonymousElementByAttribute(prefWindow, "anonid", "paneDeck");
var paneSync = E("paneSync", doc);
paneSync.removeAttribute("helpTopic");
var weavePrefsDeck = E("weavePrefsDeck", doc);
if (weavePrefsDeck)
weavePrefsDeck.parentNode.removeChild(weavePrefsDeck);
if (prefWindow.currentPane == E("paneSync", doc))
prefWindow.showPane(E("paneMain", doc));
}
break;
case "about:preferences":
case "chrome://browser/content/preferences/in-content/preferences.xul":
configs = CCK2.getConfigs();
for (let id in configs) {
var config = configs[id];
if (config.disableSync) {
hide(E("category-sync", doc));
}
}
updatePrefUI(doc);
break;
}
}, false);
break;
}
}
}
Services.obs.addObserver(observer, "chrome-document-global-created", false);
// The IDs are the same, so I can reuse this for regular and in-content prefs
function updatePrefUI(doc) {
for (var id in configs) {
var config = configs[id];
if (config.disablePrivateBrowsing) {
hide(E("privateBrowsingAutoStart", doc));
var privateBrowsingMenu = doc.querySelector("menuitem[value='dontremember']");
hide(privateBrowsingMenu, doc);
}
if (config.disableCrashReporter) {
disable(E("submitCrashesBox", doc));
}
if (config.disableSync) {
hide(E("noFxaAccount", doc));
hide(E("hasFxaAccount", doc));
}
if (config.noMasterPassword == true) {
hide(E("useMasterPassword", doc));
hide(E("changeMasterPassword", doc));
}
if (config.hiddenUI) {
for (var i=0; i < config.hiddenUI.length; i++) {
// Don't use .hidden since it doesn't work sometimes
var style = doc.getElementById("cck2-hidden-style");
if (!style) {
style = doc.createElementNS("http://www.w3.org/1999/xhtml", "style");
style.setAttribute("id", "cck2-hidden-style");
style.setAttribute("type", "text/css");
doc.documentElement.appendChild(style);
}
style.textContent = style.textContent + config.hiddenUI[i] + "{display: none !important;}";
}
}
}
}
function E(id, context) {
var element = context.getElementById(id);
return element;
}
function hide(element) {
if (element) {
element.setAttribute("hidden", "true");
}
}
function disable(element) {
if (element) {
element.disabled = true;
}
}

123
osx/build/preferences/cck2/modules/CTPPermissions.jsm

@ -1,123 +0,0 @@
/**
* Copied from https://github.com/jvillalobos/CTP-Manager/blob/master/extension/modules/permissions.js
**/
/**
* Copyright 2013 Jorge Villalobos
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
var EXPORTED_SYMBOLS = ["CTP"];
const Cc = Components.classes;
const Ci = Components.interfaces;
Components.utils.import("resource://gre/modules/Services.jsm");
var CTP = {
/**
* Cleans up the plugin name to a more readable form.
* Taken from /browser/base/content/pageinfo/permissions.js (Firefox 20)
* @param aPluginName the name to clean up.
* @return cleaned up plugin name.
*/
makeNicePluginName : function(aPluginName) {
let newName =
aPluginName.replace(/[\s\d\.\-\_\(\)]+$/, "").
replace(/\bplug-?in\b/i, "").trim();
return newName;
},
/**
* Gets the plugin permission string from the tag object. In Firefox 20, this
* is the plugin filename. In 21 an above, the file extension is removed and
* Flash and Java are special-cased.
* @param aTag the tag object with the plugin information.
* @return permission string that corresponds to the plugin in the tag.
*/
getPluginPermissionFromTag : function(aTag) {
let permission = null;
let majorVersion = Services.appinfo.platformVersion.split(".")[0];
if (21 <= majorVersion) {
let mimeTypes = aTag.getMimeTypes();
if (CTP.isFlashPlugin(mimeTypes)) {
permission = "flash";
} else if (CTP.isJavaPlugin(mimeTypes)) {
permission = "java";
} else {
let lastPeriod = aTag.filename.lastIndexOf(".");
permission =
((0 < lastPeriod) ? aTag.filename.substring(0, lastPeriod) :
aTag.filename);
// Remove digits at the end
permission = permission.replace(/[0-9]+$/, "");
permission = permission.toLowerCase();
}
} else {
permission = aTag.filename;
}
return permission;
},
/**
* Checks if the tag object corresponds to the Java plugin.
* @param aMimeTypes the list of MIME types for the plugin.
* @return true if the tag corresponds to the Java plugin.
*/
isJavaPlugin : function(aMimeTypes) {
let isJava = false;
let mimeType;
for (let i = 0; i < aMimeTypes.length; i++) {
mimeType =
((null != aMimeTypes[i].type) ? aMimeTypes[i].type : aMimeTypes[i]);
if ((0 == mimeType.indexOf("application/x-java-vm")) ||
(0 == mimeType.indexOf("application/x-java-applet")) ||
(0 == mimeType.indexOf("application/x-java-bean"))) {
isJava = true;
break;
}
}
return isJava;
},
/**
* Checks if the tag object corresponds to the Flash plugin.
* @param aMimeTypes the list of MIME types for the plugin.
* @return true if the tag corresponds to the Flash plugin.
*/
isFlashPlugin : function(aMimeTypes) {
let isFlash = false;
let mimeType;
for (let i = 0; i < aMimeTypes.length; i++) {
mimeType =
((null != aMimeTypes[i].type) ? aMimeTypes[i].type : aMimeTypes[i]);
if (0 == mimeType.indexOf("application/x-shockwave-flash")) {
isFlash = true;
break;
}
}
return isFlash;
}
};

629
osx/build/preferences/cck2/modules/Preferences.jsm

@ -1,629 +0,0 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is Preferences.
*
* The Initial Developer of the Original Code is Mozilla.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Myk Melez <myk@mozilla.org>
* Daniel Aquino <mr.danielaquino@gmail.com>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
let EXPORTED_SYMBOLS = ["Preferences"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cr = Components.results;
const Cu = Components.utils;
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
// The minimum and maximum integers that can be set as preferences.
// The range of valid values is narrower than the range of valid JS values
// because the native preferences code treats integers as NSPR PRInt32s,
// which are 32-bit signed integers on all platforms.
const MAX_INT = Math.pow(2, 31) - 1;
const MIN_INT = -MAX_INT;
function Preferences(args) {
if (isObject(args)) {
if (args.branch)
this._prefBranch = args.branch;
}
else if (args)
this._prefBranch = args;
this.isDefaultBranch = false;
}
Preferences.prototype = {
/**
* Get the value of a pref, if any; otherwise return the default value.
*
* @param prefName {String|Array}
* the pref to get, or an array of prefs to get
*
* @param defaultValue
* the default value, if any, for prefs that don't have one
*
* @returns the value of the pref, if any; otherwise the default value
*/
get: function(prefName, defaultValue) {
if (isArray(prefName))
return prefName.map(v => this.get(v, defaultValue));
return this._get(prefName, defaultValue);
},
// In all cases below, the preference might exist as a user pref, but not
// have a default value. In those cases, get* throws. Return the default value.
_get: function(prefName, defaultValue) {
switch (this._prefSvc.getPrefType(prefName)) {
case Ci.nsIPrefBranch.PREF_STRING:
try {
return this._prefSvc.getComplexValue(prefName, Ci.nsISupportsString).data;
} catch (ex) {
if (this.isDefaultBranch)
return defaultValue;
else
return this._prefSvc.getCharPref(prefName);
}
case Ci.nsIPrefBranch.PREF_INT:
try {
return this._prefSvc.getIntPref(prefName);
} catch (ex) {
return defaultValue;
}
case Ci.nsIPrefBranch.PREF_BOOL:
try {
return this._prefSvc.getBoolPref(prefName);
} catch (ex) {
return defaultValue;
}
case Ci.nsIPrefBranch.PREF_INVALID:
return defaultValue;
default:
// This should never happen.
throw "Error getting pref " + prefName + "; its value's type is " +
this._prefSvc.getPrefType(prefName) + ", which I don't know " +
"how to handle.";
}
},
/**
* Set a preference to a value.
*
* You can set multiple prefs by passing an object as the only parameter.
* In that case, this method will treat the properties of the object
* as preferences to set, where each property name is the name of a pref
* and its corresponding property value is the value of the pref.
*
* @param prefName {String|Object}
* the name of the pref to set; or an object containing a set
* of prefs to set
*
* @param prefValue {String|Number|Boolean}
* the value to which to set the pref
*
* Note: Preferences cannot store non-integer numbers or numbers outside
* the signed 32-bit range -(2^31-1) to 2^31-1, If you have such a number,
* store it as a string by calling toString() on the number before passing
* it to this method, i.e.:
* Preferences.set("pi", 3.14159.toString())
* Preferences.set("big", Math.pow(2, 31).toString()).
*/
set: function(prefName, prefValue) {
if (isObject(prefName)) {
for (let [name, value] in Iterator(prefName))
this.set(name, value);
return;
}
this._set(prefName, prefValue);
},
_set: function(prefName, prefValue) {
let prefType;
if (typeof prefValue != "undefined" && prefValue != null)
prefType = prefValue.constructor.name;
var existingPrefType = this._prefSvc.getPrefType(prefName);
if (existingPrefType != Ci.nsIPrefBranch.PREF_INVALID)
{
// convert
if (existingPrefType == Ci.nsIPrefBranch.PREF_INT && prefType == "String")
{
prefValue = parseInt(prefValue);
if (isNaN(prefValue))
throw "Incompatible pref value type - " + prefName;
prefType = "Number";
}
else if (existingPrefType == Ci.nsIPrefBranch.PREF_BOOL && prefType == "String")
{
if (prefValue == "true")
prefValue = true;
else if (prefValue == "false")
prefValue = false;
else
throw "Incompatible pref value type - " + prefName;
prefType = "Boolean";
}
else if (existingPrefType == Ci.nsIPrefBranch.PREF_BOOL && prefType == "Number")
{
prefValue = prefValue != 0;
prefType = "Boolean";
}
}
switch (prefType) {
case "String":
{
try {
this._prefSvc.setStringPref(prefName, prefValue);
} catch (e) {
try {
let string = Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString);
string.data = prefValue;
this._prefSvc.setComplexValue(prefName, Ci.nsISupportsString, string);
} catch (e2) {
Components.utils.reportError(e2);
}
}
}
break;
case "Number":
// We throw if the number is outside the range, since the result
// will never be what the consumer wanted to store, but we only warn
// if the number is non-integer, since the consumer might not mind
// the loss of precision.
if (prefValue > MAX_INT || prefValue < MIN_INT)
throw("you cannot set the " + prefName + " pref to the number " +
prefValue + ", as number pref values must be in the signed " +
"32-bit integer range -(2^31-1) to 2^31-1. To store numbers " +
"outside that range, store them as strings.");
try {
this._prefSvc.setIntPref(prefName, prefValue);
} catch (e) {
throw new Error(e.toString() + " - " + prefName);
}
if (prefValue % 1 != 0)
Cu.reportError("Warning: setting the " + prefName + " pref to the " +
"non-integer number " + prefValue + " converted it " +
"to the integer number " + this.get(prefName) +
"; to retain fractional precision, store non-integer " +
"numbers as strings.");
break;
case "Boolean":
this._prefSvc.setBoolPref(prefName, prefValue);
break;
default:
throw "can't set pref " + prefName + " to value '" + prefValue +
"'; it isn't a String, Number, or Boolean";
}
},
/**
* Whether or not the given pref has a value. This is different from isSet
* because it returns true whether the value of the pref is a default value
* or a user-set value, while isSet only returns true if the value
* is a user-set value.
*
* @param prefName {String|Array}
* the pref to check, or an array of prefs to check
*
* @returns {Boolean|Array}
* whether or not the pref has a value; or, if the caller provided
* an array of pref names, an array of booleans indicating whether
* or not the prefs have values
*/
has: function(prefName) {
if (isArray(prefName))
return prefName.map(this.has, this);
return this._has(prefName);
},
_has: function(prefName) {
return (this._prefSvc.getPrefType(prefName) != Ci.nsIPrefBranch.PREF_INVALID);
},
/**
* Whether or not the given pref has a user-set value. This is different
* from |has| because it returns true only if the value of the pref is a user-
* set value, while |has| returns true if the value of the pref is a default
* value or a user-set value.
*
* @param prefName {String|Array}
* the pref to check, or an array of prefs to check
*
* @returns {Boolean|Array}
* whether or not the pref has a user-set value; or, if the caller
* provided an array of pref names, an array of booleans indicating
* whether or not the prefs have user-set values
*/
isSet: function(prefName) {
if (isArray(prefName))
return prefName.map(this.isSet, this);
return (this.has(prefName) && this._prefSvc.prefHasUserValue(prefName));
},
/**
* Whether or not the given pref has a user-set value. Use isSet instead,
* which is equivalent.
* @deprecated
*/
modified: function(prefName) { return this.isSet(prefName) },
reset: function(prefName) {
if (isArray(prefName)) {
prefName.map(v => this.reset(v));
return;
}
this._reset(prefName);
},
_reset: function(prefName) {
try {
this._prefSvc.clearUserPref(prefName);
}
catch(ex) {
// The pref service throws NS_ERROR_UNEXPECTED when the caller tries
// to reset a pref that doesn't exist or is already set to its default
// value. This interface fails silently in those cases, so callers
// can unconditionally reset a pref without having to check if it needs
// resetting first or trap exceptions after the fact. It passes through
// other exceptions, however, so callers know about them, since we don't
// know what other exceptions might be thrown and what they might mean.
if (ex.result != Cr.NS_ERROR_UNEXPECTED)
throw ex;
}
},
/**
* If you need to know the default values, without resetting the actual
* user prefs, you can use this.
* @returns {Preferences} a new Preferences object, which accesses
* the defaults rather than the user prefs.
* *Only* call get() on this.
* If you call set(), you will modify the defaults, so don't do that!
*/
get defaults() {
// nsIPrefService
let defaultBranch = Services.prefs.
getDefaultBranch(this._prefBranch).
QueryInterface(Ci.nsIPrefBranch);
let prefs = new Preferences(this._prefBranch);
// override. nasty, but this is internal, so OK.
Object.defineProperty(prefs, "_prefSvc", {
get: function() {
return defaultBranch;
}
});
prefs.isDefaultBranch = true;
return prefs;
},
/**
* Lock a pref so it can't be changed.
*
* @param prefName {String|Array}
* the pref to lock, or an array of prefs to lock
* @param prefValue {String} (optional)
* default value of pref to lock only works if prefName isn't an array
*/
lock: function(prefName, prefValue) {
if (isArray(prefName))
prefName.map(this.lock, this);
else if (typeof prefValue != "undefined")
this.defaults.set(prefName, prefValue);
this._prefSvc.lockPref(prefName);
},
/**
* Unlock a pref so it can be changed.
*
* @param prefName {String|Array}
* the pref to lock, or an array of prefs to lock
*/
unlock: function(prefName) {
if (isArray(prefName))
prefName.map(this.unlock, this);
this._prefSvc.unlockPref(prefName);
},
/**
* Whether or not the given pref is locked against changes and
* if it is set to the passedi n value
*
* @param prefName {String|Array}
* the pref to check, or an array of prefs to check
* @param prefValue {String|Number|Boolean}}
* the pref value to compare against
*
* @returns {Boolean|Array}
* whether or not the pref is locked; or, if the caller
* provided an array of pref names, an array of booleans indicating
* whether or not the prefs are locked
* If a pref value was specified returns whether or not the pref
* was locked and equal to the passed in value.
*/
locked: function(prefName, prefValue) {
if (isArray(prefName))
return prefName.map(this.locked, this);
if (prefValue)
return this._prefSvc.prefIsLocked(prefName) && (this.get(prefName) == prefValue);
else
return this._prefSvc.prefIsLocked(prefName);
},
/**
* Start observing a pref.
*
* The callback can be a function or any object that implements nsIObserver.
* When the callback is a function and thisObject is provided, it gets called
* as a method of thisObject.
*
* @param prefName {String}
* the name of the pref to observe
*
* @param callback {Function|Object}
* the code to notify when the pref changes;
*
* @param thisObject {Object} [optional]
* the object to use as |this| when calling a Function callback;
*
* @returns the wrapped observer
*/
observe: function(prefName, callback, thisObject) {
let fullPrefName = this._prefBranch + (prefName || "");
let observer = new PrefObserver(fullPrefName, callback, thisObject);
Preferences._prefSvc.addObserver(fullPrefName, observer, true);
observers.push(observer);
return observer;
},
/**
* Stop observing a pref.
*
* You must call this method with the same prefName, callback, and thisObject
* with which you originally registered the observer. However, you don't have
* to call this method on the same exact instance of Preferences; you can call
* it on any instance. For example, the following code first starts and then
* stops observing the "foo.bar.baz" preference:
*
* let observer = function() {...};
* Preferences.observe("foo.bar.baz", observer);
* new Preferences("foo.bar.").ignore("baz", observer);
*
* @param prefName {String}
* the name of the pref being observed
*
* @param callback {Function|Object}
* the code being notified when the pref changes
*
* @param thisObject {Object} [optional]
* the object being used as |this| when calling a Function callback
*/
ignore: function(prefName, callback, thisObject) {
let fullPrefName = this._prefBranch + (prefName || "");
// This seems fairly inefficient, but I'm not sure how much better we can
// make it. We could index by fullBranch, but we can't index by callback
// or thisObject, as far as I know, since the keys to JavaScript hashes
// (a.k.a. objects) can apparently only be primitive values.
let [observer] = observers.filter(v => v.prefName == fullPrefName &&
v.callback == callback &&
v.thisObject == thisObject);
if (observer) {
Preferences._prefSvc.removeObserver(fullPrefName, observer);
observers.splice(observers.indexOf(observer), 1);
}
},
/**
* Same as observe(), but automatically unregisters itself when
* the window closes, saving you from writing an unload handler and
* calling ignore().
* @param win {nsIDOMWindow} your |window|
*/
observeAuto: function(win, prefName, callback, thisObject) {
if (!win instanceof Ci.nsIDOMWindow)
throw "Need your |window| as first parameter";
this.observe(prefName, callback, thisObject);
var self = this;
win.addEventListener("unload", function()
{
self.ignore(prefName, callback, thisObject);
}, false);
win = null; // don't let closure hold on to window unnecessarily
},
resetBranch: function(prefBranch) {
try {
this._prefSvc.resetBranch(prefBranch);
}
catch(ex) {
// The current implementation of nsIPrefBranch in Mozilla
// doesn't implement resetBranch, so we do it ourselves.
if (ex.result == Cr.NS_ERROR_NOT_IMPLEMENTED)
this.reset(this._prefSvc.getChildList(prefBranch, []));
else
throw ex;
}
},
/**
* Returns all child prefs of this pref branch.
* This equals nsIPrefBranch.getChildList().
* This allows you to do e.g.
* var myPrefs = new Preferences("extensions.cooler.");
* var contents = myPrefs.branch("contents.");
* for each (let prefname in contents.childPrefNames())
* dump("have " + contents.get(prefname) + " " + prefname + "\n");
*
* @returns {Array of String} The names of the children,
* without the base pref branch, but with subbranch.
*/
childPrefNames : function() {
return this._prefSvc.getChildList("", []);
},
/**
* Returns an nsIPrefBranch for the pref branch that this object stands for.
* You can use this to use functions that are not supported here.
* @returns {nsIPrefBranch}
*/
get mozillaPrefBranch() {
return this._prefSvc;
},
/**
* Returns the base pref name that this object stands for.
* E.g. "extensions.yourcooler.";
* @returns {String}
*/
get prefBranchName() {
return this._prefBranch;
},
/**
* Returns an Preferences object for an sub pref branch
* underneath the current pref branch.
* @param subbranch {String} Will be appended to the
* current pref branch. Don't forget the trailing dot,
* where necessary.
* E.g. "contents."
* @returns {Preferences}
*/
branch : function(subbranch) {
return new Preferences(this._prefBranch + subbranch);
},
/**
* The branch of the preferences tree to which this instance provides access.
* @private
*/
_prefBranch: "",
/**
* Preferences Service
* @private
*/
get _prefSvc() {
// nsIPrefService
let prefSvc = Services.prefs.
getBranch(this._prefBranch).
QueryInterface(Ci.nsIPrefBranch);
Object.defineProperty(this, "_prefSvc", {
get: function() {
return prefSvc;
}
});
return this._prefSvc;
}
};
// Give the constructor the same prototype as its instances, so users can access
// preferences directly via the constructor without having to create an instance
// first.
Preferences.__proto__ = Preferences.prototype;
/**
* A cache of pref observers.
*
* We use this to remove observers when a caller calls Preferences::ignore.
*
* All Preferences instances share this object, because we want callers to be
* able to remove an observer using a different Preferences object than the one
* with which they added it. That means we have to identify the observers
* in this object by their complete pref name, not just their name relative to
* the root branch of the Preferences object with which they were created.
*/
let observers = [];
function PrefObserver(prefName, callback, thisObject) {
this.prefName = prefName;
this.callback = callback;
this.thisObject = thisObject;
}
PrefObserver.prototype = {
QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
observe: function(subject, topic, data) {
// The pref service only observes whole branches, but we only observe
// individual preferences, so we check here that the pref that changed
// is the exact one we're observing (and not some sub-pref on the branch).
if (data != this.prefName)
return;
if (typeof this.callback == "function") {
let prefValue = Preferences.get(this.prefName);
if (this.thisObject)
this.callback.call(this.thisObject, prefValue);
else
this.callback(prefValue);
}
else // typeof this.callback == "object" (nsIObserver)
this.callback.observe(subject, topic, data);
}
};
function isArray(val) {
// We can't check for |val.constructor == Array| here, since the value
// might be from a different context whose Array constructor is not the same
// as ours, so instead we match based on the name of the constructor.
return (typeof val != "undefined" && val != null && typeof val == "object" &&
val.constructor.name == "Array");
}
function isObject(val) {
// We can't check for |val.constructor == Object| here, since the value
// might be from a different context whose Object constructor is not the same
// as ours, so instead we match based on the name of the constructor.
return (typeof val != "undefined" && val != null && typeof val == "object" &&
val.constructor.name == "Object");
}

43
osx/build/preferences/cck2/modules/Timer.jsm

@ -1,43 +0,0 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
/**
* JS module implementation of nsIDOMJSWindow.setTimeout and clearTimeout.
*/
this.EXPORTED_SYMBOLS = ["setTimeout", "clearTimeout"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
// This gives us >=2^30 unique timer IDs, enough for 1 per ms for 12.4 days.
let gNextTimeoutId = 1; // setTimeout must return a positive integer
let gTimeoutTable = new Map(); // int -> nsITimer
this.setTimeout = function setTimeout(aCallback, aMilliseconds) {
let id = gNextTimeoutId++;
let args = Array.slice(arguments, 2);
let timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
timer.initWithCallback(function setTimeout_timer() {
gTimeoutTable.delete(id);
aCallback.apply(null, args);
}, aMilliseconds, timer.TYPE_ONE_SHOT);
gTimeoutTable.set(id, timer);
return id;
}
this.clearTimeout = function clearTimeout(aId) {
if (gTimeoutTable.has(aId)) {
gTimeoutTable.get(aId).cancel();
gTimeoutTable.delete(aId);
}
}

10
osx/build/preferences/cck2/modules/Utils.jsm

@ -1,10 +0,0 @@
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
var EXPORTED_SYMBOLS = ["errorCritical"];
Components.utils.import("resource://gre/modules/Services.jsm");
function errorCritical(e)
{
Services.prompt.alert(null, "", e);
}

24
osx/build/preferences/cck2/resources/certs/purplei2p_ca.pem

@ -1,24 +0,0 @@
-----BEGIN CERTIFICATE-----
MIID9zCCAt+gAwIBAgIUervWv7EoWkk4Gt8J34xDR9nhH50wDQYJKoZIhvcNAQEL
BQAwgYIxCzAJBgNVBAYTAldXMRQwEgYDVQQIDAtJMlAgTmV0d29yazESMBAGA1UE
CgwJUHVycGxlSTJQMSowKAYDVQQDDCFQdXJwbGVJMlAgQ2VydGlmaWNhdGlvbiBB
dXRob3JpdHkxHTAbBgkqhkiG9w0BCQEWDnI0c2FzQG1haWwuaTJwMB4XDTE5MDMw
MzE2MjcxNFoXDTI5MDIyODE2MjcxNFowgYIxCzAJBgNVBAYTAldXMRQwEgYDVQQI
DAtJMlAgTmV0d29yazESMBAGA1UECgwJUHVycGxlSTJQMSowKAYDVQQDDCFQdXJw
bGVJMlAgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHTAbBgkqhkiG9w0BCQEWDnI0
c2FzQG1haWwuaTJwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwLEy
A0TamzrfORA+aIM/NRRGrKYkI9o5Q9UB/pTM8IFlSBREGleUfnC6LFHZeNV+Y1Tn
jrMBOZ7PmIKjPIv+fJP7KjhHACZdk6iqVZqkiGqE0/V17kG16g1+g05Bj2lkWr94
mp1rhzBeKJJSI8cG82824qdfDcgWZheziye+O0okENhi0o2bDhg78EnyysJiN/tu
OuoZSGfC9ZdITbpMWgqwuQcdeBg0FNy4hEqUJWoYNgrghe5uc0WMOjTAegSntYPE
MeaaZyzlGICZ2F+rKZgTjnzVYW60QlHqfg7sShieSPYIZmeN5l5hZ5GZk9Giaj/X
4pz4sup2iafKclWAmQIDAQABo2MwYTAdBgNVHQ4EFgQUCARvpDaXqPaF4amObzzV
GaDoZm4wHwYDVR0jBBgwFoAUCARvpDaXqPaF4amObzzVGaDoZm4wDwYDVR0TBAgw
BgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAKcmGUXV
gCw8PRHe0+XlkcSTX69e0TIPP+j5uJxMT3BHasvBdyV4FcjuUokHGjAnHal5OV4N
yWdbRPnIge7su4yLQZzlNM1OzbcRds1wSbqTEpb68R/6E8mv3ms6Rc8AcRoXwusc
byZvzS9tBSXTQ21wCVrltnIARAYabWlWu+URv+DFvlwMik6H8+DklHSVkPC6K3Ov
V1aMJztMnJ/XTTsFDS/yvaTfmJFG16LABIiSsEAW5QK64sWsN4sxvpcg0D6/EjWP
knyLM4KXuD3i08mzwzus8d97AjGxC5RCEFL5ADBpVaDU/5CpmZmZdY1daYjiHrXm
EVNoSbqid1fAVyA=
-----END CERTIFICATE-----

29
osx/build/preferences/cck2/resources/searchengines/legwork.xml

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription
xmlns="http://a9.com/-/spec/opensearch/1.1/"
xmlns:suggestions="http://www.opensearch.org/specifications/opensearch/extensions/suggestions/1.1">
<ShortName>YaCy 'legwork'</ShortName>
<LongName>YaCy.net - Searching the I2P network</LongName>
<Image type="image/gif">http://legwork.i2p/env/grafics/yacy.png</Image>
<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////Chiu+fBm+fRq+fRq+fRq+fRq+fRq8ehXMmk////////////////////////////++exjUqGfZsnjYsXbYsXbYsXbZsnjTp2W+fBr///////////////////////////+9exfs2r/69/L58+z58+z58+z59e/z59bChSn///////////////////////////+9fBnnz638+fX69O369e748un38Ob59O3Ll0fVrGz////////////////////////Jk0HJlUjXuYrWt4jVtYPr28T58+r59OzPn1fPnlX////////////////////////Rolu8eRXCiTPEjTvCijbNnlj169359e7Zs3vLlkf////////////////////////UqmrAgSLt3MP27eH1693169327+T59Ozo0rG/gB////////////////////////////+/gCDv4Mn48+v38Of59Oz58+v48+vr2b2+fRv///////////////////////////+9ehXr17n58+z48ejo0bDp07T48+zx49DBhCj///////////////////////////+/fhzjyJ/59Oz59OzQoVvNmU759Oz58+vKlUbXrnH////////////////////////LlkfUqmn59Oz48+vZtHzNm1D48+v59OzPoFjOnlX////////////////////////OnVPOnFL59e348+vq1rnEiC7u38j69vDXsHTIkT3////////////////////////UqWjIkD327+T58+3s2bzAgSLp07T79/Pmzqq+fBn///////////////////////////+/fx7v4Mr7+PTx5NDHkD3kyqP8+vjs2r+9exf///////////////////////////++fBjQoFnVq2zTp2bGjTjJk0LWrW7SpWC+exf////////////////////////////Nm1C6dQy7eBG8eBK9exe8ehS7dxC6dQzLlkj////////////AH///wB8x+sAf///AD/+PwA///8AP///AD///4A9PU+APoz/gB///4AdxvOAHoz/gB3368AfjU/AHT1PwB/+P
</Image>
<Language>en-us</Language>
<OutputEncoding>UTF-8</OutputEncoding>
<InputEncoding>UTF-8</InputEncoding>
<AdultContent>true</AdultContent>
<Description>YaCy is an open-source GPL-licensed software that can be used for stand-alone search engine installations or as a client for a multi-user P2P-based web indexing cluster. This is the access to peer 'legwork'.</Description>
<Url type="text/html" method="GET" template="http://legwork.i2p/yacysearch.html?query={searchTerms}&amp;startRecord={startIndex?}&amp;maximumRecords={count?}&amp;nav=all&amp;resource=global" />
<Url type="application/rss+xml" method="GET" template="http://legwork.i2p/yacysearch.rss?nav=&amp;query={searchTerms}&amp;startRecord={startIndex?}&amp;maximumRecords={count?}&amp;nav=all&amp;resource=global" />
<Url type="application/atom+xml" method="GET" template="http://legwork.i2p/yacysearch.atom?query={searchTerms}&amp;startRecord={startIndex?}&amp;maximumRecords={count?}&amp;resource=global" />
<Url type="application/x-suggestions+json" template="http://legwork.i2p/suggest.json?query={searchTerms}"/>
<Url type="application/x-suggestions+xml" template="http://legwork.i2p/suggest.xml?query={searchTerms}"/>
<!-- syntax according to http://www.loc.gov/standards/sru/. Set verify=true to get snippets in the search results -->
<Developer>See https://github.com/orgs/yacy/teams/yacy_developers</Developer>
<Query role="example" searchTerms="yacy+free+software" />
<Tags>YaCy Free Software Open Source P2P Peer-to-Peer Uncensored Distributed Web Search Engine</Tags>
<Contact>See http://legwork.i2p/ViewProfile.html?hash=localhash</Contact>
<Attribution>http://yacy.net YaCy Software &amp;copy; 2004-2014 by Michael Christen et al., YaCy.net; Content: ask peer owner</Attribution>
<SyndicationRight>open</SyndicationRight>
</OpenSearchDescription>

1
osx/build/profile/xulstore.json

@ -1 +0,0 @@
{"chrome://browser/content/browser.xul":{"navigator-toolbox":{"iconsize":"small"},"titlebar-placeholder-on-menubar-for-caption-buttons":{"width":"102"},"titlebar-placeholder-on-TabsToolbar-for-captions-buttons":{"width":"102"},"main-window":{"screenX":"30","screenY":"30","width":"1280","height":"720","sizemode":"normal"},"PersonalToolbar":{"collapsed":"false","currentset":"personal-bookmarks"},"toolbar-menubar":{"currentset":"menubar-items"},"TabsToolbar":{"currentset":"tabbrowser-tabs,new-tab-button,alltabs-button"},"addon-bar":{"currentset":"addonbar-closebutton,status-bar"},"nav-bar":{"currentset":"back-button,forward-button,stop-reload-button,urlbar-container,bookmarks-menu-button,downloads-button,_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action"},"sidebar-title":{"value":""}}}
Loading…
Cancel
Save