Affiliate killer

No more Affiliate Link! Plz Original URL!

目前为 2014-08-27 提交的版本。查看 最新版本

// ==UserScript==
// @id             Affiliate_killer
// @name           Affiliate killer
// @version        3.26
// @namespace      https://gf.qytechs.cn/scripts/456
// @homepageURL    https://gf.qytechs.cn/scripts/456
// @license        https://creativecommons.org/licenses/by-nc/2.1/jp/
// @author         noi
// @description    No more Affiliate Link! Plz Original URL!
// @include        http*
// @grant          GM_log
// @grant          GM_setValue
// @grant          GM_getValue
// @grant          GM_registerMenuCommand
// @grant          GM_xmlhttpRequest
// @grant          unSafeWindow
// ==/UserScript==

/////////////////////////////////////////////////////
// The original script is below:                   //
// アフィリエイト殺し for greasemonkey             //
// http://d.hatena.ne.jp/deraw/20060902/1157143806 //
// and A Killer Mod                                //
// http://www7b.biglobe.ne.jp/~yamj/               //
// and ecl.js autor:drk                            //
// http://www.drk7.jp/                             //
// http://www.drk7.jp/pub/js/ecl_test/ecl_new.js   //
// and show full-title for google author:favril    //
// http://userscripts.org/scripts/show/83916       //
/////////////////////////////////////////////////////


//No more affiliate cookie!
/////////////////////////////////////////////////////
//Access for expand URL                            //
//http://expandurl.appspot.com/                    //
//and Next do it when can't get URL                //
//http://www.getlinkinfo.com/                      //
//and Next                                         //
//http://araishi.com/redirect-check/               //
/////////////////////////////////////////////////////

/************************************************************************
前書き

自分用のスクリプトですが、知人から欲しいという要望があったので公開。
勉強がてら追加してったので正直美しくないです。
このスクリプトの利用は各自の自己責任でお願いします。
当スクリプトを利用したことにより被ったあらゆる損害に対して免責とさせていただきます。

I made this script for myself.
and uploaded it, since my acquaintance wanted it.
Add to Original Script too much ,the source code is dirty.

Please use this script on each one of responsibility. 

IN NO EVENT SHALL EITHER PARTY BE LIABLE TO THE OTHER PARTY.


アフィの修正取りこぼしの報告も受け付けています。
→体調が良ければ直します。
まだ実験段階のためブラウザごとフリーズする場合もあるかもしれないので報告ください。
→体調がry

このソースは基本的に改変、再配布自由です。
「ecl.js」の引用部分は作者のdrkさんに問い合わせてください。
また、配布する場合は引用元として当方の名前を入れてくれるだけでOKです。
とはいえ悪質だったり詐欺などの用途での改変は当然NGです。

注意点はファイル保存の際、文字エンコードはUTF-8で保存してください。(文字化け回避)

*************************************************************************
機能option
CTRL + SHIFT : Show only "added" , Other hide()
CTRL + ALT : Show "before" & "added" & "beforeadded", Other hide
CTRL + ALT + SHIFT : Show "before" & "added" , Other hide

URL list
"added":script added URL.no many redirect.(修正したURL。リダイレクトが多くない)
"beforeadded":script added URL.Many redirect.(修正したURL。沢山転送された最後のURL)
"killed":affiliate URL or tiny URL.(修正する前のアフィリエイトリンクや短縮URL)
"before":Expanded URL,before redirect finalURL("beforeadded").("beforeadded"の直前のURL)

If redirect finalURL("beforeadded") is login page,sometimes can't access address for buy the item.
Plz Use "before".
(もしリダイレクト最後のURL"beforeadded"がログイン画面の場合、商品ページに遷移できないので
リダイレクトの最後から1個手前のURLである"before"を表示してアクセスしてください)
*************************************************************************

[対応状況]

[cookie]
amazon
apple
Dlsite
DMM
Google(cookie"PREF": Overwrite trackingID by random number.)
漫画全巻ドットコム
rakuten


[リダイレクト系]
amazon
anonym.to
bestgate
bloglovin(mouseoverでリンク修正)
coneco
facebook
flog


[アフィリエイト専門系]
a5.tuhan
a8.net
accesstrade
adlantis
ameba
fc2
googleAd
istockphoto
Janet
Kauli
linkshare
linksynergy(linkshare?)
liveads.jp
mediaplex.com
moshimo.com
shinobi.jp
trafficgate.net
tr.webantenna.info(trafficgate?)
valuecommerce

[ショップ系]
7netshopping
amazon
AppleStore(aos.prf.hn)
itunes
ark-pc
askul
askulcorporation
bookwalker
carview(trafficgate)
dena
docomo
dominos
ebay
ks電気
lenovo
lohaco
ニッセン
nls(e-nls.com)
pixiv
rakuten
駿河屋(suruga-ya.jp)
ツクモ(tsukumo)
yahoo
ヨドバシ
tracking.yourguide


[同人系]
アキバイン
d-drop
dd-Style
デジケット
DLげっちゅ
Dlsite
DMM
ぎゅっと(gyutto.com、gyut.to)
メロンブックス
サーパラ(surpara.com

[スマホ]
app-adforce
i-mobile.co.jp

[海外]
affiliate future
Affiliate jlist
Affiliate Window
buy.com
cdJapan
clixgalore
Commission Junction
DGM PRO
esellerate
MoreNiche
Online Media Group
paid on results
secure.strawberrynet
shareasale
Tradedoubler
webgains
Zanox

[トラッカー系]
google ユニバーサルアナリティクス(utm_source、utm_campaign、utm_medium、utm_content)
google search

[2ch系広告クッション]
2ch(ime.nu、ime.st、jump.2ch.net、pinktower.com)
nun.nu
l.moapi.net
READ2CH
Rちゃんねる

[アフィリエイト系トラッカー]
adclr
Linksynergy
netmng
trafficgate
textad
xaid

[短縮URL]
bit.ly
bitly.com
j.mp
goo.gl
is.gd
v.gd
urx.nu
inf.to
tiny.cc
tinyurl.com
tinyly.net
num.to
mcaf.ee
wk.tk
p.tl
y.ahoo.it
ow.ly
u.to
Tinyarro.ws
snipurl.com
go.ascii.jp
ux.nu
x5.to
c23.biz
9oo.jp
miffy.me
hec.su
t.co
fb.me
amzn.to
youtu.be
y2u.be
r10.to (a.r10.to)
s.nikkei.com
t.asahi.com
nico.ms
sdrv.ms
1drv.ms
gigaz.in
g.co
tr.im
cli.gs
short.ie
kl.am
idek.net
budurl.com
hex.io
eweri.com
twurl.cc
tweetburner.com
urlgator.com
tweak.tk
moourl.com
a.gd
tighturl.com
3.ly
x.vu
ul.lc
nazr.in
3step.me
xtw.me
my-tiny.com
mijikaku.jp
snurl.com
ift.tt
dlvr.it
buff.ly
msm.to
su.ms-x.biz
fc2.to
ustre.am
k4wu.com


他

*************************************************************************
前提条件

○必須
・クッキー(cookie)の削除、および定期的な削除

・ポイントサイトなど当スクリプトを動作させたくないサイトを設定する
例)アドオンのScriptishでTポイントサイトの除外を設定する場合
 スクリプト管理画面からAffiliate_Killerの設定をクリックし
 excludeに除外したいサイトのURLを指定する(正規表現が使えない?)
http://tmall.tsite.jp/*
https://tmall.tsite.jp/*
http://tsite.jp/*
https://tsite.jp/*
など(最後のアスタリスク(*)を忘れずに)


○以下は必須ではないけどやった方がいい


1、基本的にadblock系アドオンやDISCONNECTなどと併用推奨(定番)
大体のアフィリエイトはこれで抹殺されます。
日本語のフィルターを適当に購読しましょう。
誤爆(関係ないものまで非表示)もあるので注意

2、PeerBlockなどの通信フィルタリングソフト(初心者向き)
ipを遮断するため表示されなくなりスッキリ(ただしたまに関係ないのも遮断するので注意)
忍者adMaxのような広告が表示されるだけで報酬が発生する仕組みがあるので導入推奨

導入方法など:脱Google@wikiのPeerBlock解説ページ
http://www4.atwiki.jp/nogoogle/pages/19.html

3、可能ならアドオンNoRedirectと併用推奨(やや上級者向け)
リダイレクトをブロックして転送先URLを表示してくれるのでアフィリエイトリンクを修正します。
何故このアドオンかというと他のリダイレクトブロック系アドオンではスルーしてしまうような
metaタグやhttpリクエストなどのリダイレクトもブロック可能だからです。
要設定。(↓の方で簡易解説あります)

※文字化け問題が発生するページあり(403エラーなど)
これは海外のアドオンのため日本語のエンコード・デコードに失敗しているせい。
問題となっているURLへのリダイレクトを許可すると正しいURLへ飛びますが、
アフィリエイトリンクへの許可にならないよう考えて許可しましょう

4、可能ならReferrer Control系アドオンと併用推奨(やや上級者向け)
ツイッターやブログURLなどを登録し、リファラなどを元に報酬を払うアフィリエイトがある模様?
私は「RefControl」というアドオンを使っていますが、Firefox29でアドオンバーが削除されたので
現在のリファラURLが確認できなくなりました。(アドオンバー復活するアドオンを入れれば全機能使えます)
※こちらも文字化け問題あり。

※しっかり設定しないと画像が表示されない、ファイルがダウンロードできないなどの問題が発生します。
一応下の方でお勧め設定を載せます。

5、RSS系は「RSS広告削除社」などの広告削除を利用してください。
当スクリプトでは基本的にRSSのアフィリンクに対応しません。
(対応できない場合がほとんどのため)


○こだわりたい方用
下記サイトで色々とどうぞ

脱Google@wiki
http://www4.atwiki.jp/nogoogle/


*************************************************************************
アドオンのNoRedirectが良くわからない!正規表現って何?って人用(とはいえ自分も勉強中)

まず初期に登録されているものを全部削除

1、以下を追加すると全てのURLでリダイレクトをブロックしてくれるようになる。

^http
(↑転送元にだけチェックを入れる。ここが一番先頭であるという意味のキャレット(^)を忘れずに)
※↑これが絶対に一番下になるようにする。

2、許可したいリダイレクトURLは以下のように追加する。
   ホワイトリストのようなもの。
   ※上記解説1の「^http」よりも上に追加すること

   例:http://hogehoge.co.jpまたはhttps://hogehoge.co.jpを許可する場合

^https?://hogehoge.co.jp
(↑転送元と許可にチェックを入れる。キャレット(^)を忘れずに)

    この場合指定したURLの後に何が来てもいいので
    http://hogehoge.co.jp/homepage/index.htmlなども許可される


3、「転送元」にチェック入れると今表示されているURL(転送元)からのリダイレクトの設定
    チェックを外すと”転送先”のURLに対する設定
    ※↑ここはかなり重要

4、「許可」にチェック入れるとリダイレクトを止めずに転送(パススルー)
    チェックを外すとリダイレクトをブロックして転送先URLを表示
    ホワイトリストのように使うので追加する場合は基本的に許可にチェックを入れる

    例えば
    ^http://hoge.com/shop/ ブロック
    ^http://hoge.com/ 許可
    ^http ブロック
    のように上から設定した場合はhttp://hoge.com/shop/のブロックが最優先で
    それ以外のhttp://hoge.com/は許可(例えばhttp://hoge.com/store/index.htmlなどは許可)となり、
    最後にhttp://hoge.com/以外のURLは全部ブロックとなる。

5、「DNS」に関しては基本的にチェックしなくてOK

※注意点
転送元にチェックを入れるかどうかはちゃんと考えないと
ブロックすべきところをスルーして意味ないことに。
可能ならばドメインだけでなく細かく指定する方が万全。


最低限覚えておくと便利な正規表現規則--------------------------------------------

前提として当然半角英数字です。
誤解覚悟で説明すると、文字を検索するための表現です。

^http
(↑先頭がhttpという意味。キャレット(^)はここが一番先頭であるという意味。)

https?
(↑httpまたはhttpsのどっちでもいいよという意味。クエスチョンマーク(?)の前1文字の有無の2パターン)

(co.jp|com|ne.jp)
(↑co.jpまたはcomまたはne.jpという意味。パイプライン(|)で区切ると何パターンにも対応可能。括弧で囲むのを忘れずに)


**************************************************************************
RefControlのおすすめ設定

【概要】
リファラとは今見ているサイトの前に見ていたサイトURLなどの履歴情報で、
その情報には検索した単語なども含まれる場合があります。
アドオンにより書き換えたり消してしまおうというわけです。

【設定】

1、最初に「一覧にないサイトに関する規定値」を「偽装」(推奨)あるいは「阻止」しよう。

・偽装・・・こちらを推奨。そのサイトのドメインURLをリファラ情報にする
・阻止・・・リファラ情報を消去し、まっさらな状態にする(一部サイトでリファラがまったく無いと表示できなくなる)
・通常・・・本来のリファラです。問題が出て確認するとき以外は選ばない方がいいです。
・カスタム・・・自由にリファラのURLを書き換えることができますが、普通の人は不要でしょう。

2、個別登録でエラー回避

表示されない・ダウンロードされない・変なエラーが出るなど問題が発生したら、
ステップ1で設定した全体のリファラ「偽装」を「通常」に設定して問題が解消されるか確認
もしそれで問題が解消したら以下のように個別追加しよう

問題のサイトで背景を右クリックして右クリックメニューを出す
「このサイトに関する RefControl オプション」をクリック

するとそのサイトのリファラ動作を指定できるのでそのままOKを押す。
※デフォルトで「通常」が選択されているはずです

終わったら忘れずに全体のリファラを「偽装」に戻そう。


3、おすすめ設定

以下のURLをリファラ「通常」で追加する。

※だたし追加は各自の自己責任でお願いします。
(実際に自分で確認してから追加をお勧めします)

・googleアカウント(確かyoutubeかアンドロイドマーケット)
accounts.google.com

・ニコニコ動画系
com.nicovideo.jp
nicoblomaga.jp

・pixiv
www.pixiv.net

・vectorのフリーソフトダウンロードなど
ftp.vector.co.jp
my.vector.co.jp

・ソフマップ
point.sofmap.com

・ソフトバンク系(多分プロバイダや電話料金系)
web-meisai.softbanktelecom.co.jp
webmeisai.jp

・ウェブ魚拓
megalodon.jp

・ちず丸
map.chizumaru.com

・solvemediaキャプチャの画像
api.solvemedia.com

※上記以外でも表示されない・ダウンロードされない・変なエラーが出るなど
問題が発生するサイトはちらほらとあります。
その場合は再度ステップ2に戻ろう

*************************************************************************/

/**更新履歴**************************************************************

08/28/2014 - v3.26 fix:短縮URL展開の処理軽減
08/24/2014 - v3.25 add:buff.ly msm.to su.ms-x.biz fc2.to ustre.am k4wu.com
08/19/2014 - v3.24 add:短縮URL展開やredirect先URL取得などのWEBサービスに変更
08/19/2014 - v3.24 del:実験的に入れた短縮URL展開は環境によってはアフィcookieも拾うので廃止
08/18/2014 - v3.23 add:短縮URL展開
08/18/2014 - v3.23 fix:noscriptタグ内だとtextになってしまう不具合対応。iframe内とも連動してキーボードで非表示できるように修正
08/13/2014 - v3.22 add:キー入力で非表示機能追加
08/13/2014 - v3.22 fix:「A Killer Mod」の引用部分をほぼ完全に刷新。amazonの修正方法を変更。
08/12/2014 - v3.21 fix:amazonのクッキー修正
08/08/2014 - v3.20 fix:楽天の修正、bloglovinのマウスオーバーを廃止しすぐに修正するように変更
08/05/2014 - v3.19 fix:chromeでのエラー修正
08/03/2014 - v3.18 fix:indexOfが遅いと聞いたのでmatchに変更、及び条件文の短縮化
07/28/2014 - v3.17 add:cookie削除(DMM、Dlsite)、googleのcookie修正、folog、l.moapi.net、nun.nu
07/28/2014 - v3.16 add:bloglovin(マウスオーバーでリンク修正)
07/21/2014 - v3.15 fix:気になってたエラー処理追加
07/09/2014 - v3.14 add:リンクにrel="noreferrer"を追加(リファラ除去)
07/09/2014 - v3.13 fix:dmmのサイトでの不具合修正。v3.7での修正ミス続き(AppleStore,DLSite)
07/09/2014 - v3.12 add:lenovo、onamae.com他
07/08/2014 - v3.11 fix:amazonの一部のURL(ex:amazon.co.jp/dp/toc/itemID)での不具合を訂正
07/06/2014 - v3.10 fix:一部のページでループしてフリーズする現象の解消
07/04/2014 - v3.9  fix:引き続き修正ミスの修正
06/29/2014 - v3.8  fix:v3.7での修正ミスの修正・・・
06/29/2014 - v3.7  fix:動作しなかったバグ修正
06/27/2014 - v3.6  fix:価格コムで修正途中で止まる症状修正。他
06/26/2014 - v3.5  add:海外のアフィに一部対応
06/25/2014 - v3.4  fix:要素継ぎ足しに対応(継ぎ足しの多いページなどは処理が重くなる場合あり)
06/21/2014 - v3.3  add:[killer]の文字非表示機能追加(スクリプトがリンクの修正ミスあっても気にしないなら非表示でどうぞ)
06/18/2014 - v3.2  fix:一部のサイトでおかしくなっていたのを修正
06/13/2014 - v3.1  del:@updateURL
06/12/2014 - v3.0  add:すべての要素をチェックするように変更。他色々
06/07/2014 - v2.11 add:googleトラッカー除去
06/07/2014 - v2.10 fix:並び順をアルファベット順に整理
04/16/2014 - v2.4  fix:ページ内スクロール用ボタンは除外
04/02/2014 - v2.3  fix:文字化け回避にecl.jsをrequireするように変更。他色々修正
03/25/2014 - v2.2  del:暫定的にスクリプト実行ディレイを削除
03/25/2014 - v2.1  add:Amazonのリダイレクト除去
03/23/2014 - v2.0  add:AmazonのスマートフォンURLに対応
03/22/2014 - v1.9  fix:GoogleImage検索は除外。onclick除去を修正したリンクのみ適応するように変更。
03/22/2014 - v1.8  fix:説明文吹っ飛んだので書き直し。Amazonの修正
03/14/2014 - v1.0  release

*************************************************************************/

/****************************************************
備忘録
・GoogleImage検索でうまく動かないので@excludeに追加。*tbm=isch*はGoogleImage検索用
  詳細ウィンドウの右側サムネイル画像クリックで起動する特殊なスクリプトで、iframe内に要素を入れ込んでいる様子
  F5リロードするとiframe内をコピーした要素の方(iframeじゃなくなる)に切り替わるなど色々挙動がおかしい
→addEventListenerで監視追加で対応

・デコードエラーはどうやらEUC-JPやShift-JISの文字列が来ると発生する模様?
→ecl.js(Escape Codec Library)をお借りすることに
→requireから埋め込みに変更(GreasyForkでrequire使うと色々と面倒なため)

・amazonで商品のプレビュー画像でz-indexが999なので同じく999指定してある[killer]が表示される
→スクリプトのz-indexは99に変更

・amazonのセッションについて
  amazonはsessionでログインとカートを管理してるようで、
  セッションIDを指定するcookieのsession-id(gest?)かubid-acbjp(login?)どちらか1つでも削除するとログアウト
  session-idは片っ端から他サイトで見たamazon商品の閲覧履歴をため込み、ログインと同時にマージしてると思われ
  ubid-acbjpはログインセッション(各ユーザー固定)
→問題なのはアフィリンクやastoreやAWS経由で直接カートに突っ込むと
  現在のsessionに上記2つのsessionとは別のアフィsessionをマージして  アフィ情報の入ったセッションになること。
  さらにログイン中だとこのセッションがamazonのサーバ側で一定期間保存されてしまう
  sessionIDは999-9999999-9999999の数字3桁7桁7桁
  このアフィリエイトの効果は24時間有効というネットの情報だけどcookieをみると1週間有効
→formのimputを編集してみたけどAPIに弾かれる

・海外製アドオンのためかNoRedirectがブロックすると日本語が文字化けを起こす模様(楽天などで確認)
→アフィリエイトリンクじゃない場合はリダイレクトを許可すると問題は解消する

・ブログパーツの埋め込み型スクリプト(.js系)に関するfunction killJSが頓挫中のため起動箇所をコメントアウト

・以下は閉鎖?ポート8080になったようだけど不安定なのでとりあえずgreasyforkへ移行
  http://userscripts.org/scripts/show/411363
  http://userscripts.org/scripts/source/411363.user.js

・@updateURLを削除(greasyforkで勝手に消されるのと、インストールしたときのURLをアドオンが保持しているようなので更新可能)

・javascriptで取得できるdocument.cookieは制約が多いらしく、ファーストクッキーのみだったり
  httponly属性だったら取得できなかったりする。addonなら全部取得できるらしい

******************************************************
今後の予定

・[killer]非表示のときキーボード操作で表示できるようにする

・formアフィ、FLASH埋め込み型、
などの対策を検討中

・cookie削除の対応サイトを増やす
→URLで修正できないサイトに有効?

・URLで修正できないサイトは上記と合わせてリダイレクト先取得で対応を検討中

******************************************************/




//=============プログラム開始===========================================================
(function() {

	//共通変数-----------------------------------------------------------------

	//ユーザー設定(killer表示設定)
	var hideOriginLink = "one";
	hideOriginLink = userCfg("hideOriginLink");

	var nameDB = {};	//削除用クッキー情報DB
	var cookieDB = {};	//取得したクッキーDB
	var expDB = {};		//URL展開履歴


	//処理開始-----------------------------------------------------------------

	//トラッキング除去(主にgoogle対策)
	remTrack(document);

	//要素の属性に変更が加えられたら(主にgoogleトラッキング除去)
	document.addEventListener('DOMAttrModified', function (evt) {
		var node = evt.target;
		if (node.id == 'foot') {
			remTrack(node);
		}
	}, false);

	//文字エンコード用の関数読み込み
	ecl();

	//メイン処理実行
//	window.setTimeout( function() {main(document)}, 1200 );		//処理の2重化になるけどサイトごとに分けるよりマシかな?

	//dom読み込み後(Noscriptで止めてる場合はdom読み込んでないっぽい。かといってこの起動を消すと読み込み遅延のあるサイトごとに分ける必要がある)
	document.addEventListener("DOMContentLoaded", function(evt){
		var node = evt.target;
		window.setTimeout( function() {main(node);removeCookie();keydownHide();}, 1500 );
	}, false);
	//継ぎ足し要素対応
	document.addEventListener("DOMNodeInserted", function(e) {
		window.setTimeout( function() {main(e.target);keydownHide();}, 1500 );
	}, false);


	//メイン処理===============================================================================================
	function main(node){

//GM_log("tagName="+node.tagName);
//alert(node.innerHTML);
//alert(Object.prototype.toString.call(node));	//オブジェクトの種類


		//継ぎ足し要素に親要素があったらnodeを親要素にする
		if(node.parentNode){ node = node.parentNode;}


		//変数宣言
try{
		var allLinks = node.getElementsByTagName("*");

}catch(e){
	switch( e.name ){
		case 'TypeError':
//			GM_log("INIT-TypeError:" + e);
			return;
	        default:
			GM_log("INIT:" + e);
	}
}

		var strUrl = "";	//修正したURL

try{

		//埋め込み型javaスクリプト
//		killJS(node);


		for (i = 0; i < allLinks.length; i++){

/*			//formの修正
			if(allLinks[i].tagName.match(/^(form|input)$/i)){
				if(allLinks[i].tagName.match(/^(FORM|form)$/) && allLinks[i].hasAttribute("action")){
				//	allLinks[i].setAttribute("action",allLinks[i].getAttribute("action").replace(/\/.*-22\//,"/"));
				}
			}
*/


			//hrefを含まないリンクは除外
			if(!allLinks[i].hasAttribute("href")
			  || allLinks[i].href == undefined
			  || allLinks[i].href == "" || !allLinks[i].href.match(/^http/)
			  || allLinks[i].href.match("megalodon.")
			  || !allLinks[i].getAttribute("akill_URL") && allLinks[i].hasAttribute("Akill_check")
				&& allLinks[i].getAttribute("Akill_check").match(/(^killed$|^before$|_checked$)/)
			  || allLinks[i].hasAttribute("akill_URL") && allLinks[i].getAttribute("akill_URL").match(/^Loading:/)
			  || allLinks[i].href == allLinks[i].getAttribute("akill_URL")		//linkify系併用時のループ防止
			  || !allLinks[i].tagName
			){
				continue;
			}

			var href = allLinks[i].href;

			//一度展開してあった場合
			if(expDB[href] && typeof(expDB[href]) == "string" && expDB[href].match(/^http/)){
				var tmpUrl = expDB[href];
				var urlArray,tmpBeforeUrl;
				//複数の要素
				if(tmpUrl.match("|||||")){
					urlArray = tmpUrl.split("|||||");
					tmpUrl = urlArray[0];
					tmpBeforeUrl = urlArray[1];
				}
				allLinks[i].setAttribute("akill_BeforeURL",tmpBeforeUrl)
				allLinks[i].setAttribute("akill_URL",tmpUrl);
			}

			//短縮URLで展開したURLがあったら
			if(allLinks[i].getAttribute("akill_URL")){
				if(allLinks[i].getAttribute("Akill_check") == "killed"){return;}

				var berforeUrl;
				strUrl = allLinks[i].getAttribute("akill_URL");

				if(strUrl.match(/(expandurl.appspot.com|getlinkinfo.com|araishi.com\/redirect)/)) return;

				if(allLinks[i].hasAttribute("akill_BeforeURL")){ berforeUrl = allLinks[i].getAttribute("akill_BeforeURL");}

				allLinks[i].removeAttribute("akill_URL");
				allLinks[i].removeAttribute("akill_BeforeURL");
				setLink();

				//短縮URLで複数回リダイレクトした場合、ログインチェック画面の前のURLも表示(商品ページに飛べない場合があるため)
				if(berforeUrl && berforeUrl != href){
					//originURL:i addedURL:i+1

					allLinks[i].removeAttribute("Akill_check");
					strUrl = berforeUrl;

					setLink();
					i++;

					//originURL:i-1 beforeURL:i addedURL:i+1

					allLinks[i-1].setAttribute("Akill_check","killed");
					allLinks[i].innerHTML = "BeforeURL";
					allLinks[i].setAttribute("Akill_check","before");
					allLinks[i].setAttribute("style","display:none;");
					allLinks[i+1].setAttribute("Akill_check","added_before");
				}

				continue;
			}

			strUrl = decURI(href);


			//事前修正===================================================================================

			//短縮URL展開
			var reg = new RegExp('^https?:\/\/(bit.ly|bitly.com|j.mp|goo.gl|is.gd|v.gd|urx.nu|inf.to|tiny.cc|tinyurl.com|tinyly.net|'
				+ 'num.to|mcaf.ee|wk.tk|p.tl|y.ahoo.it|ow.ly|u.to|xn--.{3}.ws|snipurl.com|go.ascii.jp|ux.nu|x5.to|'
				+ 'c23.biz|9oo.jp|miffy.me|hec.su|t.co|fb.me|amzn.to|(a.)?r10.to|s.nikkei.com|t.asahi.com|'
				+ 'nico.ms|sdrv.ms|1drv.ms|gigaz.in|g.co|tr.im|cli.gs|short.ie|kl.am|idek.net|budurl.com|hex.io|eweri.com|'
				+ 'twurl.cc|tweetburner.com|urlgator.com|tweak.tk|moourl.com|a.gd|tighturl.com|3.ly|x.vu|ul.lc|nazr.in|'
				+ '3step.me|xtw.me|my-tiny.com|mijikaku.jp|ift.tt|dlvr.it|buff.ly|msm.to|su.ms-x.biz|fc2.to|ustre.am|k4wu.com|'
				+ 'snurl.com)\/.');

			if(href.match(reg)){
				getUrl(1,"GET",allLinks[i],i);
			}

			//youtube展開
			if(href.match(/^https?:\/\/(youtu.be|y2u.be)\/./)){
				var movieId = href.replace(/^https?:\/\/(youtu.be|y2u.be)\//,"");
				strUrl = "https://www.youtube.com/watch?v=" + movieId;
				setLink();
			}

//http://tinyarrows.com/preview.php?page=http%3A%2F%2Fwww.nwlab.com%2F&count=290
			//短縮URL展開
			if(href.match(/tinyarrows.com\/preview.php.*(\?|&)page=http/)){
				strUrl = getRedirectUrl(href,"page");
				setLink();
			}

			//bloglovin用
			if(href.match(/^https?:\/\/www.bloglovin.com.*(\/blog\/|blog=)/) && allLinks[i].tagName.match(/^(a|A)$/)){

				var tmp ="",blogID ="",postID ="";

//https://www.bloglovin.com/blog/ブログID
//http://www.bloglovin.com/viewer?blog=ブログID
				//パラメータのurlに修正---------------------------------
				if( href.match(/^https?:\/\/www.bloglovin.com.*\/blog\/(post|[0-9])/)){
					tmp = href.replace(/.*\/blog\//,"");

					blogID = tmp.replace(/\/.*$/,"").replace(/\/.*$/,"");

//https://www.bloglovin.com/blog/post/ブログID/ポストID
//http://www.bloglovin.com/viewer?blog=ブログID&post=ポストID
					//ポスト指定もあった場合
					if(blogID == "post"){
						blogID = tmp.replace(/post\//,"").replace(/\/.*$/,"");
						postID = "&post=" + tmp.replace("post/" + blogID + "/","").replace(/\/.*$/,"");
					}

					allLinks[i].setAttribute("akill_URL","http://www.bloglovin.com/viewer?blog="+ blogID + postID);
				}

				getUrl(2,"GET",allLinks[i],i);
			}


//http://itrack2.valuecommerce.ne.jp/cgi-bin/2507165/vc_entry.pl?ITRACK_INFO=088226016302392627140602095214&COOKIE_PATH=/cgi-bin/2507165/&COOKIE_DOMAIN=.valuecommerce.ne.jp&VIEW_URL=http%3A%2F%2Fwww.takashimaya.co.jp%2Fshopping%2Ffood%2F0400000115%2F&REFERRER=aHR0cDovL2NrLmpwLmFwLnZhbHVlY29tbWVyY2UuY29tLw&COOKIE_EXPIRES=Fri,%2001%20Aug%202014%2009:52:14%20GMT&va=2392627&vs=3091344&vp=882260163
//http://www.daimaru-matsuzakaya.jp/vcentry/?ITRACK_INFO=088226017702266773140602095722&COOKIE_PATH=/&COOKIE_DOMAIN=www.daimaru-matsuzakaya.jp&VIEW_URL=http%3A%2F%2Fwww.daimaru-matsuzakaya.jp%2F&REFERRER=aHR0cDovL2FkLmpwLmFwLnZhbHVlY29tbWVyY2UuY29tLw&COOKIE_EXPIRES=Fri,%2001%20Aug%202014%2009:57:22%20GMT&vs=3091344&vp=882260177&va=2266773
			//valuecommerce========================================
			//domainが多岐にわたるので事前に修正
			if(href.match(/(\?|&)VIEW_URL=http/)){
				strUrl = getRedirectUrl(href,"VIEW_URL");
				setLink();
			}

//http://anonym.to/?
//http://www.anonym.to/?
			//anonym.to==========================================
			if(href.match(/^https?:\/\/(www.)?anonym.to\/\?/)){
				strUrl = href.replace(/^https?:\/\/(www.)?anonym.to\/\?/,"");
				setLink();

			//bestgate==========================================
			}else if(location.href.match(/^https?:\/\/www.bestgate.net/)){
//http://www.bestgate.net/hop_auction.php?url=http%3A%2F%2Fpage13.auctions.yahoo.co.jp%2Fjp%2Fauction%2Fr112484393&type=at
				//bestgateにあるヤフオクリンク修正
				if(href.match(/hop_auction.php.*(\?|$)url=http/)){
					strUrl = getRedirectUrl(href,"url");
					setLink();
				}

			//conecoの価格比較リスト(レビューの下の方)
			}else if(href.match(/^https?:\/\/www.coneco.net\/frames.asp/)){

//見やすく一度デコードhttp://www.coneco.net/frames.asp?MAIN_URL=AMdp/B008V6D5M0/ref=asc_df_B008V6D5M0977582/?tag=coneco-22&creative=9311&creativeASIN=B008V6D5M0&linkCode=df0&me=AN1VRQENFRJN5&CATEGORY_ID=2832000&SID=CO&SHOP_ID=2832&COMCAT_ID=01802080&COM_ID=1130627295&COM_NAME=%83L%83%84%83m%83%93+%83e%83%93%83L%81%5B%93d%91%EC+X+Mark+I+KRF+%83z%83%8F%83C%83g&ta=57
//                    http://www.coneco.net/frames.asp?MAIN_URL=AMdp%2FB008V6D5M0%2Fref%3Dasc%5Fdf%5FB008V6D5M0977582%2F%3Ftag%3Dconeco%2D22%26creative%3D9311%26creativeASIN%3DB008V6D5M0%26linkCode%3Ddf0%26me%3DAN1VRQENFRJN5&CATEGORY_ID=2832000&SID=CO&SHOP_ID=2832&COMCAT_ID=01802080&COM_ID=1130627295&COM_NAME=%2583L%2583%2584%2583m%2583%2593%2B%2583e%2583%2593%2583L%2581%255B%2593d%2591%25EC%2BX%2BMark%2BI%2BKRF%2B%2583z%2583%258F%2583C%2583g&ta=57
				//amazonの埋め込み
				if(href.match("MAIN_URL=AMdp")){
					strUrl = getRedirectUrl(strUrl,"MAIN_URL").replace(/AMdp/,'http://www.amazon.co.jp/dp');

//http://www.coneco.net/frames.asp?MAIN_URL=RTc/001134ce.0fc3b133/_RTvrgj10000063?url=http%3A%2F%2Fitem.rakuten.co.jp%2Fdtc%2F4960999964164%2F&CATEGORY_ID=2683000&SID=CO&SHOP_ID=2683&COMCAT_ID=01802080&COM_ID=1130627295&COM_NAME=%83L%83%84%83m%83%93+%91%EC%8F%E3%93d%91%EC%81i10%8C%85%81jX+Mark+I+KRF%2DWH%81i%83z%83%8F%83C%83g%81j+%28XMARKIKRFWH%29%28%83%5C%83t%83%7D%83b%83v%8Ay%93V%8Es%8F%EA%93X%29+&ta=18
//http://www.coneco.net/frames.asp?MAIN_URL=RTc%2F001134ce%2E0fc3b133%2F%5FRTvrgj10000063%3Furl%3Dhttp%253A%252F%252Fitem%2Erakuten%2Eco%2Ejp%252Fdtc%252F4960999964164%252F&CATEGORY_ID=2683000&SID=CO&SHOP_ID=2683&COMCAT_ID=01802080&COM_ID=1130627295&COM_NAME=%2583L%2583%2584%2583m%2583%2593%2B%2591%25EC%258F%25E3%2593d%2591%25EC%2581i10%258C%2585%2581jX%2BMark%2BI%2BKRF%252DWH%2581i%2583z%2583%258F%2583C%2583g%2581j%2B%2528XMARKIKRFWH%2529%2528%2583%255C%2583t%2583%257D%2583b%2583v%258Ay%2593V%258Es%258F%25EA%2593X%2529%2B&ta=18
				//楽天の埋め込み
				}else if(strUrl.match(/MAIN_URL=RTc.*(\?|\&)url=http/)){
					strUrl = getRedirectUrl(getRedirectUrl(strUrl,"MAIN_URL"),"url");

//http://www.coneco.net/frames.asp?MAIN_URL=LSfs%2Dbin%2Fclick%3Fid%3Dd7sAqGzcFmA%26offerid%3D261820%2E12%26subid%3D1%26type%3D10%26tmpid%3D10378%26RD%5FPARM1%3Dhttp%25253A%25252F%25252Fwww%25252Esofmap%25252Ecom%25252Fproduct%25255Fdetail%25252Fexec%25252F%25255F%25252Fsku%25253D12052471%25252F%25252D%25252Fgid%25253DPS05020000&CATEGORY_ID=1215000&SID=CO&SHOP_ID=1215&COMCAT_ID=01506010&COM_ID=1120820693&COM_NAME=Fractal%2BDesign%2BDefine%2BR4%2BBlack%2BPearl%2B%2528FD%252DCA%252DDEF%252DR4%252DBL%252FZ1%2529&ta=15.3
				//linkshare埋め込み
				}else if(strUrl.match(/MAIN_URL=LSfs.*(\?|\&)RD_PARM1=http/)){
					//何故か2重エンコードされている
					strUrl = decURI(getRedirectUrl(strUrl,"RD_PARM1"));

//http://www.coneco.net/frames.asp?MAIN_URL=VCservlet%2Freferral%3Fsid%3D13940%26pid%3D877084383%26vc%5Furl%3Dhttp%253A%252F%252Fwww%252Edospara%252Eco%252Ejp%252F5shopping%252Fdetail%255Fparts%252Ephp%253Fic%253D385119%2526waad%253Dvx2bADUp&CATEGORY_ID=1105000&SID=CO&SHOP_ID=1105&COMCAT_ID=01506010&COM_ID=1131228052&COM_NAME=Fulmo%2BQ%2BECA3360B%252DBT%2528U3%2529&ta=29.6
				//netmng埋め込み
				}else if(strUrl.match(/MAIN_URL=VCservlet.*(\?|\&)vc_url=http/)){
					strUrl = getRedirectUrl(strUrl,"vc_url");

//http://www.coneco.net/frames.asp?MAIN_URL=http%3A%2F%2Fshop%2Ehikaritv%2Enet%2Fshopping%2Fcommodity%2Fplala%2F5412674753%2F%3Fsid%3Dc%26cid%3Dc&CATEGORY_ID=3425000&SID=CO&SHOP_ID=3425&COMCAT_ID=01802080&COM_ID=1130627295&COM_NAME=%25C3%25DD%25B7%25B0%2593d%2591%25ECXMarkIKRF%252DWH%2528%25CE%25DC%25B2%25C4%2529%2B5094B005&ta=18
				//通常のURL
				}else if(href.match("MAIN_URL=http")){
					strUrl = getRedirectUrl(href,"MAIN_URL");
				}

				setLink();

//http://l.facebook.com/l.php?u=リダイレクトURL&h=-AQGihBRZ&enc=AZMU0R7z01C_T_ISMpmAMHLyRpW7Wqjdb8Im3TPkOb9Y8XJ3xZJd6mtcIqMzeFiq1f4wvvhbuXdx9TfoAqt46mqa0pAWAa2JjNbYHbfZ2PMnPIKvV-QYbQbi1-VS-2ZSWGBrEzEqijhEL2QJNxT9sHVY&s=1
			//facebookリダイレクト除去
			}else if(href.match("facebook.com/l.php?u=")){
				strUrl = getRedirectUrl(href,"u");
				setLink();

//http://www.flog.jp/w.php/http://www.nicovideo.jp/watch/sm番号?top_flog&num=3
			//flog
			}else if(href.match("www.flog.jp/w.php/http")){
				strUrl = href.replace(/.*\/w.php\//,"").replace(/\?.*$/,"");
				setLink();
			

//http://c.kakaku.com/forwarder/forward.aspx?ShopCD=3904&PrdKey=K0000616989&Url=http%3A%2F%2Fkakaku%2Ecom%2Fjump%2Faf%2F0051%2Foutside%5F30993%2Ehtml&Hash=3f6d5b0c9f3989d76acd2e1697ada044
			//価格コムのURLを事前に修正
			}else if(href.match("kakaku.com/") && href.indexOf("kakaku.com/") < 10){
				if(href.match(/(\?|\&)Url=http/)){
					strUrl = getRedirectUrl(href,"Url");
					setLink();

//http://kakaku.com/ksearch/redirect.asp?u=http%3A%2F%2Fhb%2Eafl%2Erakuten%2Eco%2Ejp%2Fhgc%2Fg00pukw1%2E4f3hl703%2Eg00pukw1%2E4f3hme41%2F%5FRTkcom10000111%3Fpc%3Dhttp%253A%252F%252Fitem%2Erakuten%2Eco%2Ejp%252Fjism%252F4953103168619%2D42%2D4479%2Dn%252F%26amp%3Bm%3Dhttp%253A%252F%252Fm%2Erakuten%2Eco%2Ejp%252Fjism%252Fi%252F10177711%252F&h=81bdf420e29289c4c563172c6ba7eccd
				}else if(href.match("redirect.asp") && href.match(/(\?|\&)u=http/)){
					strUrl = getRedirectUrl(href,"u");
					setLink();
				}

			}else{
			}


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


			//リンク修正開始-----------------------------------------------------------

			//アフィリエイト関連(アフィリエイト専門系)-----------------------------------------------------------


//http://a5.tuhan.ne.jp/r.php?site=coneco&ec=1715&pagetype=coneco&sku=4549210020560&cat=01011010&price=59886&op=category_name%3D%2583%2566%2583%2558%2583%254E%2583%2567%2583%2562%2583%2576%2583%2570%2583%255C%2583%2552%2583%2593%26item_id%3D1130829060%26ta%3D20%26item_name%3DFMVD0502NP%2BESPRIMO%2BD551%252FGX%2BSP%2528Celeron%2BG1610%252F2GB%252F500GB%252FDVD%252FWin7%2BPro%2529&url=http%3A%2F%2Fwww.coneco.net%2Fgoshop.asp%3Fm_id%3Dea2fafcdb4251e13f7c9172f0d089e98%26com_id%3D1130829060%26shop_id%3D1715%26c_id%3D01011010%26goshop%3D1%26ta%3D20
			//a5.tuhan(conecoで確認)==============================================================================
			if(href.match(/a5.tuhan.ne.jp.*(\?|&)url=http/)){
				strUrl = getRedirectUrl(href,"url");
				setLink();

//http://px.a8.net/svt/ejp?a8mat=10FZ8L+9U8XPU+5WS+C28PV&a8ejpredirect=http%3A%2F%2Fitem.rakuten.co.jp%2Ftv-ya%2商品%2F
			//a8.net=========================================================================================
			}else if(href.match(".a8.net")){
				if(href.match("a8ejpredirect")){
					strUrl = getRedirectUrl(href,"a8ejpredirect");
					setLink();

//http://www.a8.net/cgi-bin/redirect?ar=http%3a%2f%2fwww.a8.net%2fas%2fas_promo%2f&a8=gXUI7X-RfAkcnoEcnoU6sRs0XM1RfoURBo4RNolLmpjEY3Bxx
				}else if(href.match(/redirect\?ar=/)){
					strUrl = getRedirectUrl(href,"ar");
					setLink();

//http://px.a8.net/svt/ejp?a8mat=10BM2M+7QMVW2+MZI+15UZJL
//修正http://px.a8.net/svt/ejp?a8mat=++MZI+15UZJL
				}else if(href.match(/a8mat=.*\+/)){
					strUrl = href.replace(/a8mat=.*?\+.*?\+/,"a8mat=?++");
					setLink();
				}

			//accesstrade==========================================================================
			}else if(href.match("accesstrade.net/")){

//http://www.accesstrade.net/at/c.html?rk=英数字&url=http%3A%2F%2Fwww.サイト.html%3Fsort%3D5d%26page%3D1
				if(strUrl.match(/(\?|&)url=http/)){
					strUrl = getRedirectUrl(href,"url");
					setLink();

//http://is.accesstrade.net/cgi-bin/isatV2/AccessTradeP/entryV2.cgi?rk=01004s1s007xy1&nid=g1355613504&rurl=http%3A%2F%2Fwww.accesstrade.ne.jp%2F&media=http%3A%2F%2Fh.accesstrade.net%2F&atss=01004s1s007xy1-3de5b4e75a5ef7f5a8caa975196efb9a
				}else if(href.match(/(\?|&)rurl=http/)){
					strUrl = getRedirectUrl(href,"rurl");
					setLink();
				}

//http://click.adlantis.jp/ad/click?aid=NzQ2MDcw%250A&at=2&cid=NTAwNDY%253D%250A&conv_id=NDQxNDY%253D%250A&url=http%253A%252F%252Fadf.shinobi.jp%252Fr%252F72b87d467739fce5e46f7177eb014e37%253Futm_source%253Dadmcmpny%2526utm_medium%253Dbanner%2526utm_campaign%253D72890&zid=mYt9U98u5Bc79OQYsdPtXw%3D%3D
			//adlantis==============================================================================
			}else if(href.match(/adlantis.jp.*(\?|&)url=http/)){
				strUrl = getRedirectUrl(href,"url");
				setLink();

//http://click.affiliate.ameba.jp/affiliate.do?affiliateId=27389922
			//ameba==============================================================================
			}else if(href.match(/affiliate.ameba.jp.*(\?|&)affiliateId=/)){
				getUrl(1,"GET",allLinks[i],i);

			//fc2==================================================================================
			}else if(href.match("blog.fc2.com/goods/")){
				strUrl = href.replace(/(blog\.fc2\.com\/goods\/\w+\/).+$/i, "$1");
				setLink();

//https://www.gamefeat.net/webapi/v1/reportClick?ad_id=1802&site_id=760
			//gamefeat===========================================================================
			}else if(href.match("gamefeat.net")){
				getUrl(1,"GET",allLinks[i],i);

//http://www.google.co.jp/aclk?sa=l&ai=CscvKshs4U-e6JMHAlAXf74G4BK-Lq5cEv72pjHHHvvOyvgEIBBABKAVQ0tL2oANgicvBhOwToAGZis3bA8gBB6kCxOgqt9HjRD6qBCVP0NYfuJc3xTwD_YPY33CG2FOeBMEPRY4tchOkmx_9saBJpN8wwAUFoAYmgAfP9bIkkAcB4BKqgKnV-7C6z58B&sig=AOD64_1ERLIr2li_OU5jev_gF23LyMkuAw&ctype=5&rct=j&q=%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E3%81%AE%E9%AB%98%E3%81%95&ved=0CCsQwg8&adurl=http://product.rakuten.co.jp/product/-/9ed6c7ead94e3d087fa4f88896cd725c/%3Fsc2id%3Dgmc_211213_9ed6c7ead94e3d087fa4f88896cd725c%26scid%3Ds_kwa_pla&cad=rja
			//googleAd==================================================================================
			}else if(href.match(/https?:\/\/(www.)?google(ads)?./)){
				if(href.match(/(\?|&)adurl=http/)){
					strUrl = getRedirectUrl(href,"adurl");
					strUrl = strUrl.replace(/\?adid=.*$/,"");
					setLink();

//https://www.google.co.jp/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=P5Srr3ocO7LUlM&tbnid=dwrfHg15I_WHmM:&ved=0CAEQjxw&url=http%3A%2F%2Fwww.amazon.co.jp%2FT-mart%25E6%2597%25A5%25E6%259C%25AC-%25E3%2582%25AD%25E3%2583%25BC%25E3%2583%259C%25E3%2583%25BC%25E3%2583%2589%25E3%2582%25B9%25E3%2582%25BF%25E3%2583%25B3%25E3%2583%2589-%25E9%25AB%2598%25E3%2581%2595%25E8%25AA%25BF%25E7%25AF%2580%25E4%25BB%2598%25E3%2581%258D-%25E6%25A5%25BD%25E5%2599%25A8-%25E3%2582%25B7%25E3%2583%25B3%25E3%2582%25BB%25E3%2582%25B5%25E3%2582%25A4%25E3%2582%25B6%25E3%2583%25BC%25E4%25B8%25A6%25E8%25A1%258C%25E8%25BC%25B8%25E5%2585%25A5%25E5%2593%2581%2Fdp%2FB00HV8GIPU&ei=VC84U-u_CYTVkAWI3IDgDw&psig=AFQjCNEwf895lq12uQpb-yS7nneXGbr8aQ&ust=1396277458397147
				}else if(href.match(/(\?|&)url=http/)){
					strUrl = getRedirectUrl(href,"url");
					setLink();
				}

//http://refer.istockphoto.com/ta.php?lc=076750041038004651&atid=124071%7CBannerID%3D124071%7CReferralMethod%3DBanner&url=http%3A%2F%2Fnihongo.istockphoto.com
			//istockphoto=======================================================================================
			}else if(href.match(/.istockphoto..*(\?|\&)url=http/)){
				strUrl = getRedirectUrl(href,"url");
				setLink();

//http://ls.j-a-net.jp/?a=36882&d=494714&url=http%3A%2F%2Fwww%2E10keiya%2Ecom%2Fitem%2F5083%2Ehtml
			//Janet(conecoで確認)==============================================================================
			}else if(href.match(/.j-a-net.jp.*(\?|\&)url=http/)){
				strUrl = getRedirectUrl(href,"url");
				setLink();

//http://clk.kau.li/?dat=CBL9XwBfbF7yua-GPwxErsGTvRp75RNx0zI8g0dwtu6b1GtHV3lKEI6AyXDjh-rlP-FCCmsdf777XWpl9BR61UDSYNhKCKKPS4jNe_L2puIPz__Q0WPH58muaVeFBiHTz5O8hgtVmNg9N1oXi0eRuaSHd12oYC8NhJNz6CQM2eN1nsyAecNxpg&rurl=http%3A%2F%2Fanicobin.ldblog.jp%2F&url=http%3A%2F%2Fanicobin.ldblog.jp%2Farchives%2F39788443.html&rd=http%3A%2F%2Fdaikoku.ebis.ne.jp%2Ftr_set.php%3Fargument%3DtKnnLCT6%26ai%3Da53a298bd5b584
			//Kauli============================================================================================
			}else if(href.match(/.kau.li.*(\?|\&)rd=http/)){
				strUrl = getRedirectUrl(href,"rd");
				setLink();

//http://www.linkshare.ne.jp/scland/mgm/?id=gzfSX9*DI5k
			//linkshare================================================================================================
			}else if(href.match(/.linkshare..*(\?|\&)id=/)){
				strUrl = setParams(href,["id"],"del");
				setLink();

//http://www.sofmap.com/buy/lsurl_entry.aspx?lstid=U4AfXeaTNq4-l7EnG4eSREjOnqPlmXjqpw&lsurl=http%3A%2F%2Fwww.sofmap.com%2F
//http://amanaimages.com/lsgate?lstid=pM6b0jdQgVM-Y9ibFgTe6Zv1N0oD2nYuMA&lsurl=http%3A%2F%2Famanaimages.com%2Flp%2Fcreative%2Fafpl130225.html%3Frtm%3Dad_ls%26waad%3DJGpD1ReZ
//http://www.necdirect.jp/redir/ndentryls.asp?lstid=CBTtYXMkwwI-TaKj1VZm5Y78w0wJpYbXYg&lsurl=http%3A%2F%2Fwww.necdirect.jp%2Fshop%2Fnote%2Flavie%2Fsh%2Findex.html
			//linkshare?(多岐のドメイン)============================================================================================
			}else if(href.match(/(\?|\&)lsurl=http/ && /(\?|\&)lstid=/)){
					strUrl = getRedirectUrl(href,"lsurl");
					setLink();

			//linksynergy linkshareらしい(conecoなどで確認)==============================================================================
			}else if(href.match(/.linksynergy./)){

				if(href.match(/RD_PARM1=/)){
					strUrl = decURI(getRedirectUrl(href,"RD_PARM1"));

//http://click.linksynergy.com/link?id=123456789&offerid=300091.2&type=3&murl=http%3A%2F%2Fwww.bestbuy.com%2Fsite%2Fcanon-eos-60d-dslr-camera-with-18-135mm-is-lens-black%2F1221963.p%3Fid%3D1218237703503%26skuId%3D1221963%26cmp%3DRMX%26ky%3D2dN2vg9ikE823Sb2cqFFchnSnf6JkvQna
				}else if(href.match(/(\?|\&)murl=http/)){
					strUrl = decURI(getRedirectUrl(href,"murl"));

				}else if(href.match(/(\?|\&)subid=http/)){
					strUrl = decURI(getRedirectUrl(href,"subid"));
				}
				setLink();

//https://www2.liveads.jp/widgets_src/cc.php?c=vs%3D2439871%26amp%3Bvp%3D876489954%26amp%3Bvcptn%3Dfeb92ec1_2_106001%26amp%3Bvc_url%3Dhttp%253A%252F%252F
			//liveads.jp==================================================================================
			}else if(href.match(/www2.liveads.jp.*vc_url/)){
				strUrl = href.replace(/&amp;/g, "&");
				strUrl = getRedirectUrl(strUrl,"vc_url");
				setLink();

//http://altfarm.mediaplex.com/ad/ck/10591-62045-26616-588?ACD=XQu4C3KR0Oc-QSMuOOkWxZkxzlLa6Riubw&DURL=http%3A%2F%2Falienware.jp%2F
//http://adfarm.mediaplex.com/ad/ck/10591-173392-30165-0?ACD=10591173392301650&!mpro=http://lt.dell.com/lt/lt.aspx?CID=21501&LID=4996848&DGC=LS&DGSeg=DHS&ACD=GSAXENiMcvI-CV438pQz9B3coGmNm0VKeg&DURL=http%3A%2F%2Fwww.dell.com%2Fjp%2Fp%2Fdeals%23!dlpgid%3Dmobility-laptop-deals

			//mediaplex.com(検索するとウィルスがどうのとか出てくるリダイレクトサイト)=========================================
			}else if(href.match(/.mediaplex.com.*(\?|\&)DURL=http/)){
				strUrl = getRedirectUrl(href,"DURL");
				setLink();

//http://c.af.moshimo.com/af/c/click?a_id=420859&p_id=170&pc_id=185&pl_id=4062&url=http://www.amazon.co.jp/dp/B000MGBPNI
			//もしもアフィリエイト==============================================================================
			}else if(href.match(/.moshimo.com.*(\?|\&)url=/)){
				strUrl = getRedirectUrl(href,"url");
				setLink();

//http://intr.shinobi.jp/LandingHandler?nm=46095&commercial_id=2
			//忍者admax紹介================================================================================
			}else if(href.match("shinobi.jp/LandingHandler")){
				strUrl = href.replace(/\?.*$/,"");
				setLink();

			//trafficgate==============================================================================
			}else if(strUrl.match("trafficgate.net")){

//http://ad2.trafficgate.net/t/r/18/702/44662/0/-/https://shop.elecom.co.jp/Store/Product.aspx?JanCd=4953103062849
				if(href.match("/-/http")){
					strUrl = href.replace(/.*\/-\/http/,"http");
					setLink();

//http://ad2.trafficgate.net/t/r/1/45/175962_199702/0/TSTOXPz14TNbPnh19Y2tV_oDFr6RLlN
//修正http://ad2.trafficgate.net/t/r/1/45/175962_199702/0/
				}else if(href.match(/trafficgate.net\/t\/r\//)){
					strUrl = href.replace(/(.*trafficgate.net\/t\/r\/.*?\/.*?\/.*?\/.*?\/).*$/i,"$1");
					setLink();
				}

			//trafficgateのwebantenna(gaが広告主情報)==============================================================================
//http://tr.webantenna.info/rd?waad=vOAmxCtv&ga=WAylLT-1
			}else if(href.match(/tr.webantenna.info.*(\?|&)ga=/)){
				//何故かパラメータごと消すとエラーが出るので数値だけ削除
				strUrl = setParams(href,["ga"],"");
				setLink();
				continue;

//http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=13940&pid=877084383&vc_url=http://www.dospara.co.jp/5shopping/detail_parts.php?ic=80552&waad=vx2bADUp
//http://atq.ck.valuecommerce.com/servlet/atq/referral?sid=2219441&pid=877510753&vcptn=auct/p/lvqz8ovHd60uhKFgupcFng--&vc_url=http%3A%2F%2Fpage3.auctions.yahoo.co.jp%2Fjp%2Fauction%2Fc424445646
			//valuecommerce(conecoで確認)==============================================================================
			}else if(href.match("valuecommerce.")){

				if(href.match(/(\?|&)vc_url/)){
					strUrl = getRedirectUrl(href,"vc_url");

//http://ck.jp.ap.valuecommerce.com/servlet/referral?va=2266773&sid=3091344&pid=882260177&vcid=bGmU_AHjllv84Mt-fZ4weDItjcOmmGcAFaJssucpwdz9kF75jqBDmQ&vcpub=0.621401729893042
				//valuecommerce不完全(無駄だけど不要なパラメータを削除)==============================
				//vc_urlの指定がないものはpid(ユーザーID?)とofferid(商店ID?)によってオリジナルリンクへ飛ぶ模様
				}else{
					strUrl = setParams(href,["va","vcid","vcpub"],"");
				}

				setLink();

			}else{

			}

			//RSS-------------------------------------------------------------------
			//基本的には対応しない(「RSS広告削除社」などすでに広告削除してくれるサービスがあるため)


//http://psrd.yahoo.co.jp/PAGE=P/LOC=PRD/R=1/O=P/MID=store-wax/TBID=/SIG=1243tval6/EXP=1206101243/*-http%3A//rd.store.yahoo.co.jp/wax/fu-esa-10ce.html
			//yahooのRSS?==============================================================================
			if(href.match(/.yahoo..*\*\-http/)){
					strUrl = decURI(href.replace(/.*\/\*\-http/,"http"));
					setLink();

			//その他::::::::::::::::::::::::::::::::::::::::::::::::

			}else{
			}



			//サイト別----------------------------------------------------------------

			//Shop系::::::::::::::::::::::::::::::::::::::::::::::::::::::::

			//
//http://www.7netshopping.jp/relay/affiliate/entranceProcess.do?url=http%3A%2F%2Fwww.7netshopping.jp%2Fbooks%2Fdetail%2F-%2Fisbn%2F9784088798349&affid=1231517777783348&site=0&link=6
			if(href.match(/7netshopping..*(\?|&)url=http/)){
				strUrl = getRedirectUrl(href,"url");
				setLink();

			//amazon==============================================================================
			}else if(href.match(/^https?:\/\/(www.|affiliate.)?amazon.(jp|co.jp|com|ca|com.br|com.mx|co.uk|de|fr|it|es|cn|in|com.au)\/./)){

//http://www.amazon.co.jp/gp/product/images/4048919377/ref=dp_otherviews_z_0?ie=UTF8&img=0&s=books
				//商品画像の切り替えURLだったら除外
				if(href.match("/gp/product/images/")){
					//何もしない

				//アマゾンのリダイレクト除去
				}else if(href.match(/\/redirect.*=/) ){


//http://www.amazon.co.jp/exec/obidos/redirect?tag=bestgate-22&path=http%3A%2F%2Fwww.amazon.co.jp%2Fgp%2Foffer-listing%2FB00CL7LC3O%2F%3Fcondition%3Dnew
					if(href.match(/(\&|\?)path=http/)){
						strUrl = getRedirectUrl(href,"path");

//http://www.amazon.co.jp/gp/redirect.html/ref=amb_link_68694429_2?ie=UTF8&location=http%3A%2F%2Fwww.amazon.co.jp%2Fgp%2Fhelp%2Fcustomer%2Fdisplay.html%3FnodeId%3D200505800&token=0AE1DFACC954F91986074504F57C1362C85FB6E8&pf_rd_m=AN1VRQENFRJN5&pf_rd_s=merchandised-search-left-2&pf_rd_r=0PW7G1RFAKKV592CEXCJ&pf_rd_t=101&pf_rd_p=157968649&pf_rd_i=2799399051
					}else if(href.match(/(\?|\&)location=http/)){
						strUrl = getRedirectUrl(href,"location");

//http://www.amazon.co.jp/exec/obidos/redirect?link_code=ur2&camp=247&tag=naritanetmap-22&creative=1211&path=external-search%3Fsearch-type=ss%26keyword=%25E3%2583%25AA%25E3%2582%25B9%25E3%2583%2588%25E3%2583%25A9%25E6%2592%2583%25E9%2580%2580%25EF%25BC%25A1%25EF%25BC%25A2%25EF%25BC%25A3%25E3%2580%2580%26index=books-jp
//http://www.amazon.co.jp/exec/obidos/redirect?link_code=ur2&camp=247&tag=naritanetmap-22&creative=1211&path=external-search?search-type=ss&keyword=%E3%83%AA%E3%82%B9%E3%83%88%E3%83%A9%E6%92%83%E9%80%80%EF%BC%A1%EF%BC%A2%EF%BC%A3%E3%80%80&index=books-jp
					}else if(href.match(/(\?|\&)path=/)){
						strUrl = href.replace(/(.*)redirect\?.*$/i,'$1' + getRedirectUrl(href,"path"));
					}

//http://www.amazon.co.jp//ref=as_sl_pd_tf_lc?tag=a8-affi-62498-22&camp=1&creative=1&linkCode=ur1&ref-refURL=http%3A%2F%2Frcm-jp.amazon.co.jp%2F
				//rcm-jp.amazon(アマゾンのURLの後に//が来るパターンはトップページへのリンクだけ?)
				}else if(href.match(/amazon.(jp|co.jp|com|ca|com.br|com.mx|co.uk|de|fr|it|es|cn|in|com.au)\/\//)){
					strUrl = href.replace(/(.*.amazon..*?\/)\/(.*$)/i,"$1");


//正しいアドレスhttp://www.amazon.co.jp/gp/aw/d/B003YU3XUM
//http://www.amazon.co.jp/gp/aw/rd.html?uid=アフィIDらしきもの&at=アフィIDらしきもの&a=B003YU3XUM&url=%2Fgp%2Faw%2Fd.html&lc=msn
				//スマホ用アドレス(暫定対応)
				}else if(href.match(/\/gp\/aw\//)){
					strUrl = setParams(href,["uid","at"],"del");

					//修正
					strUrl=strUrl.replace(/(\/gp\/aw\/d\/)(.*?)(\/|\?).*$/i, "$1" + "$2/");

					//商品説明のリンクで必要なパラメータまで消すので補てん
					if(!strUrl.match("dsc=") && href.match("dsc=")){
						var params  =  createParamArray(href);	//パラメータ格納
						strUrl = strUrl + "?dsc=" + params["dsc"];
					}
					//詳細説明のリンクで必要なパラメータまで消すので補てん
					if(!strUrl.match("pd=") && href.match("pd=")){
						var params  =  createParamArray(href);	//パラメータ格納
						strUrl = strUrl + "?pd=" + params["pd"];
					}

//http://www.amazon.co.jp/G246%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-24%E5%9E%8B%E3%83%AF%E3%82%A4%E3%83%89%E6%B6%B2%E6%99%B6%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-1920%C3%971080-%E5%85%A5%E5%8A%9B%E7%AB%AF%E5%AD%90%E3%83%9F%E3%83%8BD-Sub15%E3%83%94%E3%83%B3%E3%83%BBDVI-D%E2%80%BBHDCP%E5%AF%BE%E5%BF%9C%E3%83%BBHDMI-G246HLABID/dp/B00ADGM1A8%3FSubscriptionId%3D0571BBGTQZ5YYPEDSY02%26tag%3Dkakaku-pc-pcother-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00ADGM1A8%26me%3dAN1VRQENFRJN5
				//通常の商品URL
				}else {

					//修正
					//strUrl=href.replace(/(amazon\.(jp|co.jp|com|ca|com.br|com.mx|co.uk|de|fr|it|es|cn|in|com.au))\/(.*\/)?(ASIN|product|dp)(\/.*?)(\/|\?).*$/i, "$1/" + "dp" + "$5/");

					//商品IDの前にTOCなど入るURLもある(ex:amazon.co.jp/dp/toc/商品ID)
					//product-descriptionが入る場合もあるがどちらも消さない

					var amaUrl = href.split("/");
					var amaTmp = amaUrl[0] + "/" + amaUrl[1] + "/" + amaUrl[2] + "/";
					strUrl = amaTmp;

					//ama=2がドメインのところ
					for(ama=3;ama<amaUrl.length;ama++){
						//GM_log(amaUrl[ama]);

						if(amaUrl[ama].match(/^(ASIN|asin|product|dp)$/)){
							//商品IDなら
							if(amaUrl[ama+1].length == 10 || amaUrl[ama+1].match(/(\?|%3F)/)){
								//GM_log(amaUrl[ama+1]);
								strUrl += "dp/" + decURI(amaUrl[ama+1]).replace(/\?.*/,"") ;
								break;

							//商品IDじゃない
							}else{
								//GM_log(amaUrl[ama+1]);
								strUrl += "dp/" + amaUrl[ama+1] + "/" + amaUrl[ama+2].replace(/\?.*/,"") + "/";
								break;
							}
						}

						if(amaUrl[ama].match(/^b\?.*node=/) && ama != 3){
							strUrl = href.replace(amaUrl[ama-1]+"/","");
						}
					}

					if(amaTmp == strUrl){ strUrl = href; }
//if(strUrl.match(/\/$/)){alert(strUrl);}
				}//通常ここまで


				//残ったアフィリエイトパラメータ削除
				if(strUrl.match(/(\?|\&).*?=/)){
					var dataDB = ["tag","linkCode","creative","ref-refURL","adid","SubscriptionId","AssociateTag"];

					var params  =  createParamArray(strUrl);	//パラメータ格納
					for(key in params){
						if(key.match("pf_rd_")){ dataDB.push(key); };
					}

					strUrl = setParams(strUrl,dataDB,"del");
				}

				//リファラ削除
				if(strUrl.match("/ref=")){
					var amaRef = strUrl.split("?")[0].match(/\/ref=.*/);
					strUrl = strUrl.replace(amaRef,"/");
				}

				//URL修正
				if(strUrl.match("amazon.jp")){
					strUrl = strUrl.replace(/amazon.jp/,"amazon.co.jp");
				}

				setLink();	//リンク変更


			//AppleStore==============================================================================
			}else if(href.match("aos.prf.hn")){
//デコードhttp://aos.prf.hn/click/camref:10ld4j/pubref:Orbotix Sphero/destination:http://store.apple.com/jp/product/HD162LL/A/orbotix-sphero-20-ロボティックボール?fnode=43
//デコードhttp://aos.prf.hn/click/camref:10ldan/pubref:Iphone 5s Case/destination:http://store.apple.com/jp/product/MF041FE/A/iphone-5s-case-ブラウン?fnode=47
				strUrl = setParams(strUrl,["fnode"],"del");
				strUrl = strUrl.replace(/.*destination:/,"");
				setLink();

//http://store.apple.com/us/browse/home/specialdeals/mac/macbook_pro?afid=p231%7Ccamref%3AikL5&cid=AOS-US-AFF-PHG
			//AppleStoreその2==============================================================================
			}else if(href.match(/store.apple.com.*(\?|&)afid=/)){
				strUrl = setParams(href,["afid","cid"],"del");
				setLink();

//https://itunes.apple.com/jp/app/camera+/id329670577?mt=8&uo=4&at=11lc2w
//https://widgets.itunes.apple.com/widget.html?c=jp&brc=FFFFFF&blc=FFFFFF&trc=FFFFFF&tlc=FFFFFF&d=&t=&m=music&e=album&w=250&h=300&ids=660107804&wt=discovery&partnerId=&affiliate_id=&at=11lc2w&ct=
			//itunes(パラメータatがアフィリエイトID。uoはついでに削除)==============================================================================
			}else if(href.match(/itunes.apple.com.*\?.*=/)){
				strUrl = setParams(href,["at","uo","aId","ct"],"del");
				setLink();


//http://www.ark-pc.co.jp/i/20104755/?cid=kakaku
			//ark-pcのトラッカー==============================================================================
			}else if(href.match(/ark-pc.co.jp.*(\?|&)cid=/)){
				strUrl = href.replace(/(\?|&)cid=.*$/,"");
				setLink();

//正しいhttp://www.askul.co.jp/p/商品ID/
//http://www.askul.co.jp/stn?mode=affiliate&tool=215&frameURL=/p/商品ID/&sc_e=cp_a_as_vc_ps_a_p_kakaku
			//askul==============================================================================
			}else if(href.match(/www.askul.co.jp.*\/p\//)){
				strUrl = href.replace(/(www.askul.co.jp)\/.*(\/p\/)(.*\/).*$/i,"$1"+ "$2" + "$3");
				setLink();

//http://askulcorporation.tt.omtrdc.net/m2/askulcorporation/ubox/page?mbox=Lohaco_pc_yshppoint_redirect&mboxDefault=http%3A%2F%2Flohaco.jp%2Fevent%2Fbonus_winter%2F%3Fbk%3Dy%26sc_e%3Dj_as_ya_pc_n_pc
//http://askulcorporation.tt.omtrdc.net/m2/askulcorporation/ubox/page?mbox=Lohaco_pc_yshppoint_redirect&mboxDefault=http://lohaco.jp/event/bonus_winter/?bk=y
			//askulcorporation==============================================================================
			}else if(href.match(/askulcorporation.*(\?|&)mboxDefault/)){
				strUrl = getRedirectUrl(href,"mboxDefault");
				strUrl = href.replace(/(\?|\&)bk=.*$/,'');
				setLink();

//http://bookwalker.jp/series/492/?adpcnt=7qM_Wzs
			//bookwalker========================================================================
			}else if(href.match(/bookwalker.jp.*(\?|&)adpcnt=/)){
				strUrl = setParams(href,["adpcnt"],"del");
				setLink();

//http://bicycle.kaigai-tuhan.com/rd.php?url=https%3A%2F%
			//bicycle.kaigai-tuhan.com==============================================================
			}else if(href.match(/bicycle.kaigai-tuhan.com.*(\?|&)url=http/)){
				strUrl = getRedirectUrl(href,"url");
				setLink();

			//carview(trafficgate)===============================================================
			}else if(href.match(/.carview.co.jp\/.*(\?|\&)dest=/)){
//http://www.carview.co.jp/link/outbound.asp?orgpoint=mk%5Feditersblog%5Fmypage02&dest=http%3A%2F%2Fminkara%2Ecarview%2Eco%2Ejp%2Fuserid%2F285744%2Fblog%2F
				if(href.match(/(\?|\&)dest=http/)){
				strUrl = getRedirectUrl(href,"dest");
				setLink();

//https://kaitori.carview.co.jp/route.aspx?src=cv_minkara_20140501_kijinaka50040_0450_01_assess_032&dest=/service/assess/lp/032/
				}else if(href.match(/route.aspx/)){
					strUrl = "https://kaitori.carview.co.jp" + getRedirectUrl(href,"dest");
					setLink();
				}

//http://www.dena-ec.com/item/167425291?aff_id=ckk
			//dena==============================================================================
			}else if(href.match(/dena-ec.com.*(\?|\&)aff_id=/)){
				strUrl = setParams(href,["aff_id"],"del");
				setLink();

//https://www.mydocomo.com/onlineshop/products/smart_phone/SO02F.html?cid=OLS_PRD_SO02F_from_kdc_PRD_SO02F
			//docomo==============================================================================
			}else if(href.match(/mydocomo.com.*.html\?/)){
				strUrl = href.replace(/.html?.*$/,".html");
				setLink();

//http://www.dominos.jp/affiliate/lsdlp.php?siteID=2xz7U9Rg3UU-EQa7KfIyfr1jMEoV07nNfw
			//dominos==============================================================================
			}else if(href.match(/dominos.jp.*(\?|\&)siteID=/)){
				strUrl = setParams(href,["siteID"],"del");
				setLink();

//http://rover.ebay.com/rover/1/711-53200-19255-0/1?ff3=4&pub=5575046443&toolid=10001&campid=5337310214&customid=&mpre=http%3A%2F%2Fwww.ebay.com%2Fitm%2FBULK-WHOLESALE-ARACHNOPHOBIA-ALUMINIUM-METAL-CASE-COVER-BUMPER-FOR-IPHONE-5-%2F111042804375%3Fpt%3DUK_MobilePhones_MobilePhonesCasesPouches%26var%3D%26hash%3Ditem19daaaba97
			//ebay===============================================================================
			}else if(href.match(/.ebay.com.*\?/)){

				if(href.match("mpre=http")){
					strUrl = getRedirectUrl(href,"mpre");
					setLink();

//http://www.ebay.com/rpp/verabradley/vera-bradley-on-ebay/?customid=wKpbcDqpEeOGLorIgZYqDQ1xf4_s7wk3_0_0_0&pub=5574652453&afepn=5337259887&campid=5337259887&_trksid=p2050601.m1256&_ipg=192&_trkparms=%26clkid%3D2130385891313813204&afepn=5337259887
				}else{
					strUrl = setParams(href,["customid","_trksid"],"del");
					setLink();
				}

//http://www.ksdenki.com/ec/commodity/00000000/4905524811384&vcptn=DPF-C70A%20W/
			//ks電気の不要で不明なパラメータ削除==============================================================================
			}else if(href.match(/(\?|\&)vcptn/)){
				strUrl = setParams(href,["vcptn"],"del");
				setLink();

//http://shopap.lenovo.com/SEUILibrary/controller/e/jpweb/LenovoPortal/ja_JP/catalog.workflow:item.detail?GroupID=460&Code=0B47190&category-id=3FB2CEB78A0F49D18148731559AF4603&hide_menu_area=yes&cid=jp:affiliate:iVOuRL&&cid=jp:615300&
//正しいhttp://shopap.lenovo.com/jp/itemdetails/0B47190/460/3FB2CEB78A0F49D18148731559AF4603
			//lenovo===============================================================================
			//code:商品ID、category-id:商品カテゴリー、GroupID:不明(460固定?)
			}else if(href.match(/https?:\/\/shopap.lenovo.com.*(\?|\&)Code=/)){
				var params  =  createParamArray(href);	//パラメータ格納

				strUrl = "http://shopap.lenovo.com/jp/itemdetails/" + params["Code"] + "/" + params["GroupID"] + "/" + params["category-id"];
				setLink();

//http://lohaco.jp/product/2690832/?sc_e=a_as_vc_ps_a_kakaku
//http://lohaco.jp/lksearch/?categoryLl=&categoryL=&categoryM=&categoryS=&searchWord=%E6%8E%83%E9%99%A4%E6%A9%9F&andOr=&itemExpl=0&resultType=&resultCount=&itemSpec=&sortDir=&sc_e=l_dt_ya_se_c_pc_58000000000_458653&ioneid=SI_692255038__1&sissr=1
			//lohaco==============================================================================
			}else if(href.match(/lohaco.jp.*(\?|\&)sc_e=/)){
				strUrl = setParams(href,["sc_e","ioneid","gclid"],"del");
				setLink();

//http://www.nissen.co.jp/sho_item/regular/6400/6400_12861.asp?book=6400&cat=other003/
			//ニッセンの不要で不明なパラメータ削除==============================================================================
			}else if(href.match(/nissen.co.jp.*\?/)){
				strUrl = href.replace(/.asp.*$/,".asp");
				setLink();


//http://www.e-nls.com/access_prod.php?agency_id=af739546-o08&pcode=7713
			//nls===============================================================================
			}else if(href.match(/e-nls.com.*(\?|\&)agency_id/)){
				var params  =  createParamArray(href);	//パラメータ格納
				strUrl = setParams(href,["agency_id"],"del");
				setLink();

//http://comic.pixiv.net/works/59?ads=tx-w59
			//pixiv=============================================================================
			}else if(href.match(/pixiv.net.*(\?|\&)ads=/)){
				strUrl = setParams(href,["ads"],"del");
				setLink();

//http://pt.afl.rakuten.co.jp/c/数字/_RTvrgj数字?url=http%3A%2F%2Fitem.rakuten.co.jp%2Fサイト名とか
			//楽天==============================================================================
			}else if(href.match(/rakuten.co(.jp|m)/)){

//http://item.rakuten.co.jp/jet-pc/4300_15/--hybrid--http://item.rakuten.co.jp/jet-pc/4300_15/&subid=&type=10&tmpid=11045
				//楽天のリダイレクト除去
				if(strUrl.match("--hybrid--http")){
					strUrl = strUrl.replace(/.*--hybrid--http/,"http").replace(/(\?|\&)subid=.*$/,'');
				}

				//アフィリエイト除去
				if(href.match(/pt.afl.rakuten.co.*(\?|\&)url=http/)){
					strUrl = getRedirectUrl(href,"url");

				}else if(href.match(/hb.afl.rakuten.co.*(\?|\&)pc=http/)){
					strUrl = getRedirectUrl(href,"pc");
				}

//http://rd.rakuten.co.jp/a/?R2=http://ranking.rakuten.co.jp/daily/gender=female/?scid=s_kwa_dsa&lsid=000006
				if(href.match(/rd.rakuten.co.*(\?|\&)R2=http/)){
					strUrl = getRedirectUrl(href,"R2");
				}

//http://ecustom.listing.rakuten.co.jp/rms/sd/ecustom/mall?cl=FFB82E&nm=アフィサイトタイトル&bk=アフィサイトURL&hd=&aid=アフィID&sg=&g=ジャンル&v=2&p=0&s=2&sub=0&min=&max=&f=A&sw=検索ワード&nw=
				//誰かのショッピングモール
				if(strUrl.match(/(\?|\&)(\?|\&)(nm|bk|aid)=/)){
					strUrl = setParams(strUrl,["nm","bk","aid"],"del");
				}

//http://affiliate.rakuten.com/deeplink?id=xxxxxxxxxxx&mid=36342&murl=http%3A%2F%2Fwww.rakuten.com%2Fprod
				//rakuten.comのアフィリエイト(linkshare)
				if(href.match(/(\?|\&)murl=http/)){
					strUrl = getRedirectUrl(href,"murl");
				}

				//おそらくパラメータのscidはトラッカーでsc2idがアフィIDと思われるのでまとめて削除
				if(strUrl.match(/\?/)){ strUrl = setParams(strUrl,["scid","sc2id","cad"],"del"); }

				setLink();

//http://affiliate.suruga-ya.jp/modules/af/af_jump.php?user_id=227&goods_url=http%3A%2F%2Fwww.suruga-ya.jp%2Fgame.html
			//駿河屋==============================================================================
			}else if(href.match(/suruga-ya..*(\?|\&)goods_url=http/)){
					strUrl = getRedirectUrl(href,"goods_url");
					setLink();

			//ツクモのトラッカー==============================================================================
			}else if(href.match(/tsukumo.co.jp.*(\?|\&)cid=/)){
				strUrl = href.replace(/(\?|\&)cid=.*$/,"");
				setLink();

			//yahoo=============================================================================================
			}else if(href.match(".yahoo.")){

//http://rd.listing.yahoo.co.jp/o/shop/FOR=S1i43IwqjlY6D7pQe57uxmGLnstXXQo1xbvXhyeuVhgpSb9J7jjgtHs1.cDrqA--;/aclk;_ylt=A3JvdlJIaDFTX34AMlOkKdhE;_ylu=X3oDMTRkZTBza3F0BE9WTANOBFIDMQRhZGdyaWQDOTI1MTE5NDAxMwRjb3N0A29aLllOSHhLaFd2awRjcnR2aWQDMzA1NzM2NTc2NTMEZ2NsbnRpZANleHRlcm5hbC15ai1wYXJ0bmVyLWczLWFkLTAwMDA0MARvbW0DZQRzZWMDb3YtdG9wBHNwYWNlaWQDMTE1NTAxNzEyNA--?sa=l&ai=CbBULSGgxU8-OLNHB-QOe8IC4Br3T8t4EzYnri3KbnsnhUAgAEAEgiq3GGygCUOOCuL35_____wFgicvBhOwToAG7jvPZA8gBAakCobEkFGAGRT6qBCBP0PlWubvcavx2c1oHxugF_cK0CWlnZeNXj4yL7OLhyKoGAIAHrfGMJpAHAQ&sig=zOu8r1I75B6If2Q8VWzjkkTKFV4_a1yaiXW_2MQWxJ4geCFv5_y7/**http://www.yodobashi.com/ec/category/index.html%3Fword%3DHD598%26yad1%3De%26yad3%3Dhd598%26yad4%3D30573657653%26xfr%3Dyad%26utm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3DHD598
				//yahoo広告 スポンサードサーチ
				if(href.match(/\*\*http/)){
					strUrl = strUrl.replace(/.*\/\*\*http(.*$)/i,'http$1' );
					setLink();
				}

//http://rd.yahoo.co.jp/shopping/adwords/evt=71758/0bc80r6/*http://rd.yahoo.co.jp/shp/listing/ad/evt=86270/evj=0bc80r6/?http://store.shopping.yahoo.co.jp/eastnoboru/y00119.html
				//yahoo広告(ヤフオクのカレンダー追加が文字化けのため調整中。
				//アフィIDが含まれるかもわからないので一時凍結)→/ad/のURLのみに変更で様子見
				if(href.match(/\/(adwords|ad)\/.*\?http/)){
					strUrl = href.replace(/.*\/\?http/,"http");
					setLink();
				}

//http://ard.yahoo.co.jp/SIG=159riqdlj/M=300839622.301691697.303279450.312101179/D=jp_auc_sjp/S=2084231756:SQB/_ylt=A7dPeB51J4VTtSoAerBM2jp8/Y=jp/EXP=1401242517/L=mQR8z7dPe_IFrZpbUytdIwJHdvB8IlOFJ3UACIjt/B=OsbWALdPhAs-/J=1401235317631220/SIG=12469dh71/A=301897421/R=0/*http://8190.co.jp/rd/rd.php?aid=yau_south_140526_3
//http://ard.yahoo.co.jp/SIG=159f1c93q/M=300842054.301694579.303279426.312441763/D=jp_auc_dir/S=2084000003:YSP/Y=jp/EXP=1401243943/L=7v8Go7dPF9kFrZpbUytdIwAjdvB8IlOFLQcABB.a/B=DVX9ALdPhAs-/J=1401236743377411/SIG=11j2mllb9/A=301897373/R=0/*http://card.yahoo.co.jp/campaign/
				//yahoo広告
				if(href.match(/\/\*http/)){
					strUrl = strUrl.replace(/.*\/\*http/,"http");
					setLink();
				}

//http://rd.ane.yahoo.co.jp/rd?ep=Zu8M71vT9mdngAGwggXc7XSnf9kuszvHyFc5TZbjl2TngsfCpch0pxpjcag_g.93uqTr2ZyM1ZNOlxs2LxSkPO1NdV.l3tpu9e6mhYL8G9wqOKRxhOJW4xj3XQKKxQvtqyqtUJKeifRur24Svte1UnOJ_0KWk0JT8NNDyGpvrdMGYw--&a=hY1Vje8_xD5MDIo7Jw--&s=FSi8Pp49lQ--&t=DpEYQJl6yQAvrid1soQ834am&C=9&D=1&I=&RI=b819b94c4e16443476c39e842f1bc244&S=124a3ff80a84&as=1&f=1&ff=0&fq_d=1,1,1,0&fq_m=3,3,3,0&fq_w=1,1,1,0&g=4&lp=http%3a//promotionalads.yahoo.co.jp/ads/listing04/%3fo=JP1000&maf=0&mid=0&o=9&p=9&qfid=&r=0&rfm=&sfid=0&skwid=0&F=0&tlid=0&u=detail.chiebukuro.yahoo.co.jp/qa/question_detail/
				//yahoo広告 Yahoo!ディスプレイアドネットワーク(YDN)
				if(href.match(/lp=http/)){
					strUrl = getRedirectUrl(href,"lp");
					setLink();
				}

//http://openuser.auctions.yahoo.co.jp/jp/show/auctions?userID=出品ユーザーID&u=アフィID
				//yahooオークションのアフィトラッカーらしきもの
				if(href.match(/auctions.yahoo..*(\?|\&)u=/)){
					strUrl = setParams(href,["u"],"del");
					setLink();
				}

/*必須のため除去不可。コメントアウト
//http://navi.auctions.yahoo.co.jp/jp/config/remember?aID=185394159&.crumb=g//sIm7P2rd&.done=http://auctions.search.yahoo.co.jp/search?ei=UTF-8&p=roventa&auccat=0&tab_ex=commerce&ei=UTF-8
				//yahooのセキュリティ用のトラッカーというかリファラみたいなもの(個人情報確認のログインで必須のため除去不可)
				//.doneというパラメータはリファラ的なものと思われる
				if(href.match(/done=http/)){
					strUrl = href.replace(/\&.done=http.*$/,"");
					setLink();
				}
*/

//http://www.yodobashi.com/ec/category/index.html?word=HD598&yad1=e&yad3=hd598&yad4=30573657653&xfr=yad
			//ヨドバシ==============================================================================
			}else if(href.match(/yodobashi.com.*yad/)){
				var dataDB = ["xfr"];

				var params  =  createParamArray(strUrl);	//パラメータ格納
				for(key in params){
					if(key.match(/^yad/)){ dataDB.push(key); };
				}
				strUrl = setParams(strUrl,dataDB,"del");

				setLink();

//http://tracking.yourguide.co.jp/in/ya-575042/http://shopping.yourguide.co.jp/word/HD598/
			//tracking.yourguide==============================================================================
			}else if(href.match(/tracking.yourguide.co.jp.*\/http/)){
				strUrl = href.replace(/.*http/,"http");
				setLink();

			}else{
			}


			//同人系::::::::::::::::::::::::::::::::::::::::::::::::::::::::

//http://www.akibain.com/afbc.php?afid=アフィリエイトID(数字)&url=d6/
//http://www.akibain.com/affiliate.php?afbid=商品ID&type=0&link=1&dir=1&afid=2
			//アキバイン========================================================================
			if(href.match(/akibain.com.*(\?|\&)afid=/)){
				strUrl = setParams(href,["afid"],"del");

//http://www.akibain.com/afb.php?afbid=商品ID&type=4&link=0&dir=1(←カテゴリ)&afid=アフィリエイトID(数字)
//正しいURLhttp://www.akibain.com/d1(←カテゴリ)/?cls=cntdtl&cid=商品ID
				if(href.match(/(\?|\&)afbid=/ && /(\?|\&)dir=/)){
					var params  =  createParamArray(href);	//パラメータ格納
					strUrl = "http://www.akibain.com/d" + params["dir"] + "/?cls=cntdtl&cid=" + params["afbid"];
				}

//http://www.digiket.com/index/_data/AFID=dldoujin/
//http://www.digiket.com/work/show/_data/ID=ITM0099465/AFID=dldoujin/
				if(href.match(/AFID=/)){
					strUrl = href.replace(/AFID=.*\//,"");
				}

				setLink();


//http://www.d-drops.com/?af_cd=AF12696
			//d-drop(閉鎖→再開?)========================================================================
			}else if(href.match(/d-drops.com.*(\?|\&)af_cd=/)){
				strUrl = setParams(href,["af_cd"],"del");
				setLink();

//http://www.dd-style.com/index.php?ad=2041
			//dd-Style========================================================================
			}else if(href.match(/dd-style.com.*(\?|\&)ad=/)){
				strUrl = href.replace(/(\?|\&)ad=.*$/,"");
				setLink();

			//デジケット========================================================================
			}else if(href.match("digiket.com")){
//http://www.digiket.com/p/aflink/_data/AFID=dldoujin/?URL=http%3A%2F%2Fwww.digiket.com%2Fcommon%2Faffiliate%2F
				if(href.match(/(\?|\&)URL=http/)){
					strUrl = getRedirectUrl(href,"URL");
					setLink();
				}

//http://www.digiket.com/work/show/_data/ID=ITM0092020/AFID=k1040041/
				if(href.match(/\/AFID=/)){
					strUrl = href.replace(/\AFID=.*?\//,"");
					setLink();
				}


			//DLげっちゅ========================================================================
			}else if(href.match(/getchu.com.*af/)){
				//念のため先にアフィID消去
				if(href.match(/(\?|\&)aff=/)){
					strUrl = getRedirectUrl(href,"aff");
				}

//http://order.getchu.com/r.php?aff=001560-01-00&t=2&gcd=D0025474
//正しいURLhttp://dl.getchu.com/index.php?action=gd&gcd=D0028859
				if(href.match(/(\?|\&)gcd=/)){
					var params  =  createParamArray(href);	//パラメータ格納
					strUrl = "http://dl.getchu.com/index.php?action=gd&gcd=" + params["gcd"];
				}

//正しいURLhttp://dl.getchu.com/index.php?action=mStatic&tno=StgPLog_NEW
//デコードURLhttp://order.getchu.com/r.php?aff=&url=http://dl.getchu.com/index.php?action=mStatic&tno=StgPLog_NEW+
//http://order.getchu.com/r.php?aff=000010-02-00&url=http%3A%2F%2Fdl.getchu.com%2Findex.php%3Faction%3DmStatic%26tno%3DStgPLog_NEW+
				//URLリダイレクトの場合
				if(href.match(/(\?|\&)url=http/)){
					strUrl = getRedirectUrl(href,"url");

					//不要な最後の+を削除
					if(strUrl.match(/\+$/)){
						strUrl = strUrl.slice(0,-1);
					}
				}

//http://image.getchu.com/api/geturl.phtml/id/769002/af/601/aftype/1/sid/851/url/soft.phtml-/?id=769002
//正しいURLhttp://www.getchu.com/soft.phtml?id=769002
				if(href.match(/\/af\// && /\/aftype\// && /\/sid\//)){
					strUrl = href.replace(/\/af\/.*?\//,"/");
					strUrl = strUrl.replace(/\/aftype\/.*?\//,"/");
					strUrl = strUrl.replace(/\/sid\/.*?\//,"/");
					
					strUrl = "http://www.getchu.com/" + strUrl.replace(/.*\/url\/(.*?)-\//i,"$1");
				}

				setLink();

			//Dlsite==============================================================================
			}else if(href.match(/.dlsite.com.*(\/|%2F)dlaf(\/|%2F)/)){

//正しいURL http://www.dlsite.com/maniax(←ジャンル)/work/=/product_id/RJ番号/
//http://www.dlsite.com/home/dlaf/=/aid/アフィID/url/http://www.dlsite.com/maniax/work/=/product_id/RJ番号.html/?medium=blog&program=on_sale&source=blogparts_v_ranking
//http://www.dlsite.com/maniax/work/=/product_id/RJ番号/?medium=blog&program=on_sale&source=blogparts_RankingParts&unique_op=af
				//商品ページへのジャンプクッションを削除
				if(href.match("/url/http")){
					strUrl = decURI(strUrl.replace(/.*\/url\/http/,"http")).replace(/.html.*$/,"/");

//正しいURL http://www.dlsite.com/maniax/work/=/product_id/RJ番号/
//http://www.dlsite.com/maniax/dlaf/=/link/work/aid/アフィID/id/RJ番号.html
//http://maniax.dlsite.com/dlaf/=/link/work/aid/アフィID/id/RJ番号.html
				//商品ページ
				}else if(href.match(/id\/(R|B|V)J/) ){
					strUrl=href.replace(/.html.*$/,"/").replace(/aid\/.*?\/id/,'=/product_id').replace(/\/dlaf\/=\/link/,'');

//正しいURLhttp://www.dlsite.com/maniax/circle/profile/=/maker_id/RG番号.html
//http://www.dlsite.com/maniax/dlaf/=/link/profile/aid/アフィID/maker/RG番号.html
				//出版グループ
				}else if(href.match(/maker\/(R|B)G/)){
					strUrl=href.replace(/dlaf\/.*?\/maker/,'circle/profile/=/maker_id');

//http://www.dlsite.com/home/dlaf/=/aid/アフィID/link/top.html
//http://www.dlsite.com/maniax/dlaf/=/aid/アフィID/year/2014/month/5/day/31/link/news.html
//こうするとアフィリエイト消せるhttp://www.dlsite.com/maniax/dlaf/=/year/2014/month/5/day/31/link/news.html
//dlaf/=/ありでサイトに行くとトラッカーパラメータが付いちゃうけど肝心のアフィリエイトID無いのでおそらく無害
//正しいURLhttp://www.dlsite.com/maniax/new/=/year/2014/mon/5/day/31/
				//その他
				}else if(href.match("/aid/")){
					strUrl = href.replace(/\/aid\/.*?\//,"/");
				}

				setLink();
				//CSS修正
				dlsiteCSS()

			//Dlsite残り===========================================================================
			}else if(href.match(/^https?:\/\/www.dlsite.com/)){
				if(href.match(/\/\?/)){
					strUrl=href.replace(/\/\?.*$/,"/");
					setLink();
					dlsiteCSS()
				}


			//DMM==============================================================================
			}else if(href.match(/.dmm.co(m|.jp)/)){


//http://ad.dmm.com/ad/p/r?_site=2287&_article=3472&_link=32470&_image=32512&_lurl=http://www.dmm.co.jp/mono/pcgame/-/detail/=/cid=746apc10797/?/tag=1
				if(href.match(/(\?|\&)_lurl=/)){
					strUrl=decURI(href.replace(/.*_lurl=/,""));

//http://www.dmm.co.jp/ppm/=/_jloff=1/123d-006
//http://www.dmm.co.jp/digital/doujin/=/_jloff=1/doujin-001
//http://www.dmm.com/rental/-/detail/=/cid=000_384/_jloff=1/
				}else if(href.match("_jloff=")){
					strUrl=href.replace(/\/_jloff=.*$/i,'/');
				
//http://www.dmm.com/digital/video/mondo/moroyama_porori/index_html/=/ch_navi=/jloff-001
				}else if(href.match("jloff-")){
					strUrl=href.replace(/\/jloff-.*$/,'/');

//http://www.dmm.co.jp/dc/doujin/-/list/=/article=maker/id=商品IDらしき/アフィリエイトID
//http://www.dmm.co.jp/mono/book/-/detail/=/cid=商品IDらしき/アフィリエイトID
//http://www.dmm.co.jp/mono/book/-/detail/=/cid=商品IDらしき/sort=英文字/page=数字/アフィリエイトID
				}else if(href.match(/\/c?id=.*\//)){

					var dmmParams = href.replace(/.*\/c?id=.*?\/(.*$)/i,"$1").split("/");	//パラメータ(複数)
					var dmmAffi = "";		//アフィID

					//アフィリエイトIDかどうかURLを「/」で区切って調べる()
					for(var j=0; j < dmmParams.length; j++) {
						if(!dmmParams[j].match("=") 
						&& !dmmParams[j].match(/^#/) && !dmmParams[j].match(/^\?/)){	//ページ内ショートカットリンクなどは除外
							dmmAffi = dmmParams[j];
						}
					}

					//アフィID削除
					if(dmmAffi != ""){	//「レビューを見る」などのショートカット除外

						strUrl = href.replace("/" + dmmAffi,'');
					}
				}

				setLink();


			//ぎゅっと==============================================================================
			}else if(href.match(/gyutto.com.*\/af-/)){


//gyutto.com/book/af-1299/b-61/aftype-2/(←最後のスラッシュが無いURLもあるので注意)
				if(href.match(/aftype.*\//)){
					strUrl = href.replace(/\/af-.*aftype.*?\//,"/");

//http://gyutto.com/cart/af-9256/aftype-1?action=add&id=104409&item_price_id=152819
//正しいURLhttp://gyutto.com/cart/?action=add&id=104409&item_price_id=152819
				}else if(href.match(/(\?|\&)id=/ && /(\?|\&)item_price_id/)){
					strUrl = href.replace(/af-.*\?/,"?");

//http://gyutto.com/af-9878(←アフィリエイトID)/search/search_list.php?prePage=&action=sort&genre_id=20687&mode=search&sub_category_id=16&search_item_search_id=&set_category_flag=1&stype=new
				}else if(href.match(/\/af-.*?\//) && !href.match("aftype")){
					strUrl = href.replace(/\/af-.*?\//,"/");

				}else{
					strUrl = href.replace(/\/af-.*$/,"");
				}

				setLink();

//http://gyut.to/category.phtml?afid=767-T&item=115684
//修正http://gyut.to/item115684
//その後飛ぶhttp://gyutto.com/i/item115684
			//ぎゅっと==============================================================================
			}else if(href.match("gyut.to")){
				if(href.match(/(\?|\&)afid=/ && /(\?|\&)item=/)){
					var params  =  createParamArray(href);	//パラメータ格納
					strUrl = "http://gyutto.com/i/item" + params["item"];
				}

				setLink();

//http://www.melonbooks.com/index.php?main_page=affi_go&affi_url=http%3A%2F%2Fwww.melonbooks.com%2Findex.php%3Fmain_page%3Dindex%26age%3D1%26category%3D0&affi_id=doujin
			//メロンブックス==============================================================================
			}else if(href.match("melonbooks.com")){
				if(href.match(/(\?|\&)affi_url=/)){
					strUrl = getRedirectUrl(href,"affi_url");
					setLink();
				}
//http://www.melonbooks.com/index.php?main_page=product_info&products_id=IT0000159969#.U4nnw1FQJUM.twitter
				if(href.match("#.")){
					strUrl = href.replace(/#\..*$/,"");
					setLink();
				}

//http://market.surpara.com/go/?IID=商品ID&AFID=アフィリエイトID
//http://market.surpara.com/go/?AFID=アフィリエイトID&IID=商品ID
			//サーパラ==============================================================================
			}else if(href.match(/surpara.com.*(\?|\&)AFID/)){
				strUrl = setParams(href,["AFID"],"del");
				setLink();

			//その他::::::::::::::::::::::::::::::::::::::::::::::::::::::::
			}else{
			}


			//スマホ関連(無駄かもしれないけど余分なパラメータ削除)-----------------------------------------

//http://appdriver.jp/s/smart-c/click?digest=ff3e42b83eea658736cade80fd6c0a7faaf447484fcdad0d00acf253a2a4c23d&campaign_id=17571&identifier=2w4olVtC
			//app-adforce====================================================================
			if(href.match("appdriver.jp/s/")){
				strUrl = setParams(strUrl,["identifier"],"del");
				setLink();

//http://spnet33.i-mobile.co.jp/ad_link.ashx?pid=26079&asid=184265&advid=837756&ctid=2&vh=9eee599e712138198a3a1ea8b5f134f6
			//アイモバイルi-mobile.co.jp=======================================================
			}else if(href.match(/^http:\/\/spnet.*.i-mobile.*(\?|\&)pid=/)){
				strUrl = setParams(href,["pid"],"99999999");
				strUrl = setParams(strUrl,["vh"],"del");
				
				setLink();


			//その他:::::::::::::::::::::::::::::::::::::::::::::::::::::
			}else{
			}


			//海外アフィサイト関連(無駄かもしれないけど余分なパラメータ削除)-----------------------------------------

//http://scripts.affiliatefuture.com/AFClick.asp?affiliateID=306800&merchantID=6286&programmeID=17357&mediaID=141595&tracking=Ebsetphotos.com&url=
//http://scripts.affiliatefuture.com/AFClick.asp?merchantID=99999999&programmeID=17357&mediaID=999999999&tracking=
			//affiliate future(海外)=================================================================
			//programmeIDは残す
			if(href.match(/affiliatefuture.com.*(\?|\&)affiliateID=/)){
				if(href.match(/(\?|&)url=http/)){ strUrl = getRedirectUrl(href,"url"); setLink(); return;}

				strUrl = setParams(href,["merchantID","mediaID"],"99999999");
				strUrl = setParams(strUrl,["tracking"],"");
				strUrl = setParams(strUrl,["url"],"del");
				setLink();


//http://affiliates.jlist.com/click/4721?url=http://www.jlist.com/product/PRE3657
			//Affiliate jlist(海外系)==============================================================================
			}else if(href.match("affiliates.jlist.com")){
				if(href.match(/(\?|\&)url=http/)){
					strUrl = getRedirectUrl(href,"url");
					setLink();
				}

//http://www.awin1.com/cread.php?awinmid=5618&awinaffid=!!!id!!!&clickref=&p=http%3A%2F%2Fwww.okadirect.com%2Foutlet%2F 
			//Affiliate Window(海外系)==============================================================================
			}else if(href.match("awin1.com")){
				if(href.match(/(\?|\&)p=http/)){
					strUrl = getRedirectUrl(href,"p");
					setLink();

//https://www.awin1.com/awclick.php?mid=1074&id=176917
				}else if(href.match(/(\?|\&)id=/)){
					strUrl = setParams(href,["id"],"del");
					setLink();
				}

//http://affiliate.buy.com/deeplink?id= & mid = & murl =
			//buy.com(linkshare)=====================================================================
			}else if(href.match(/.buy.com.*(\?|\&)murl=http/)){
				strUrl = getRedirectUrl(href,"murl");
				setLink();

//http://www.cdjapan.co.jp/aff/click.cgi/PytJTGW7Lok/4759/A013611/goods%2Fgoods_detail.html?KEY=NEOGDS-106499
//正しいhttp://www.cdjapan.co.jp/product/NEOGDS-106499
			//cdJapan(海外)==========================================================================
			}else if(href.match(/www.cdjapan.co.jp\/aff\//)){
				var params  =  createParamArray(href);	//パラメータ格納

				if(params["KEY"] != ""){
					strUrl = href.replace(/\/aff\/.*/,"/product/") + params["KEY"];
					setLink();
				}

//http://www.cdjapan.co.jp/cgi-bin/affclick.cgi?KEY=&to=http%3A%2F%2Fwww.cdjapan.co.jp%2Fdetailview.html&click=59cTi%2FH.dYDAsTAqe1uaTO5Pa8WB&is_neolog=0
			//cdJapan(海外)==========================================================================
			}else if(href.match(/www.cdjapan.co.jp\/cgi-bin\/affclick.cgi.*(\?|\&)to=http/)){
				strUrl = getRedirectUrl(href,"to");
				setLink();

//http://www.clixgalore.com/PSale.aspx?BID=33228&AfID=181601&AdID=4685&LP=www.winemakerschoice.com.au
			//clixgalore(海外系アフィ)===============================================================
			}else if(href.match(/clixgalore.com.*(\?|\&)LP=[a-zA-Z]/)){
				strUrl = getRedirectUrl(href,"LP");
				if(!strUrl.match(/^http/)){
					strUrl = "http://" + strUrl;
				}
				setLink();

//http://www.jdoqocy.com/click-7474779-10676026?url=http%3A%2F%2Fwww.disneystore.com%2Ftransfer%2F224510%2Ftees-tops-shirts-clothes-country-bear-jamboree-attraction-poster-tee-for-adults-limited-availability%2Fmp%
//http://www.tkqlhce.com/click-7474779-10676026?url=http%3A%2F%2Fwww.disneystore.com%2Ftransfer%2F224510%2Ftees-tops-shirts-clothes-country-bear-jamboree-attraction-poster-tee-for-adults-limited-availability%2Fmp%2F1356296%2F1000228%2F%3FCMP%3DAFL-AffLSGen%26att%3DLSGenAffl&cjsku=7505055880490M
			//Commission Junction(海外)==============================================================
			//リダイレクト後に気休め程度に修正
			}else if(href.match(/(jdoqocy.com | tkqlhce.com)/)){
				if(href.match(/(\?|\&)url=http/)){
					strUrl = getRedirectUrl(href,"url");
					setLink();

//http://www.jdoqocy.com/click-7474779-10676026
				}else{
					strUrl = href.replace(/\/click-.*?-/,"/click-0-");
					setLink();
				}

//http://cj.dotomi.com/pb115gv32L/v16/KKMNMOQJ/J/J/J/J?w=d%3C%3Cq22y%3A%2F%2F555.smxzxl7.lxv%3AH9%2Flurlt-9-AACDCEG9%3C%3CP%3Cq22y%3A%2F%2F555.smxzxl7.lxv%2F%3C
			//Commission Junction(海外)==============================================================
			}else if(href.match(/dotomi.com.*\?/)){
				strUrl = href.replace(/\?.*$/,"");
				setLink();

//http://www.s2d6.com/x/?x=c&z=s&v=736781&t=http%3A%2F%2Fitunes.apple.com%2Fau%2Falbum%2Fborn-this-way-bonus-track%2Fid438662372%3Fuo%3D4%26partnerId%3D1002
			//DGM PRO===========================================================================
			}else if(href.match(/s2d6.com\/x\//)){
				if(href.match(/(\?|&)t=http/)){ strUrl = getRedirectUrl(href,"t"); setLink();}

//http://get.esellerate.net/get/ALP404895636/default.htm?skuid=SKU82916413320&affid=AFL8391650620&at=
			//esellerate(海外系)====================================================================================
			}else if(href.match(/esellerate.net.*(\?|\&)affid=AFL/)){
				strUrl = setParams(href,["affid"],"del");
				setLink();

//http://track.moreniche.com/hit.php?w=245362&s=256
			//MoreNiche(海外系)====================================================================================
			}else if(href.match(/track.moreniche.com.*(\?|\&)w=/)){
				strUrl = setParams(href,["w"],"del");
				setLink();

//http://track.omguk.com/?AID=573874&MID=519512&PID=11285&CID=4148223&CRID=62355&WID=50210
			//Online Media Group(海外)=======================================================================
			//AIDがアフィPIDがページでどちらも消せない。飛んだあとのページを修正して対応
			//CRIDは画像URLっぽい
			}else if(href.match(/track.omg(uk|2|.*).com.*WID=/)){
				strUrl = setParams(href,["MID","CID","WID"],"del");
				setLink();

//http://www.mydeal.com.my/travel/?a_aid=1234567891
			//Online Media Group(海外)=======================================================================
			}else if(href.match(/mydeal.com.my.*(\?|\&)a_aid=/)){
				strUrl = setParams(href,["a_aid"],"del");
				setLink();

//http://www.paidonresults.net/c/37645/1/876/0
			//paid on results(海外)==================================================================
			}else if(href.match(/paidonresults.net\/c\//)){
				strUrl = href.replace(/paidonresults.net\/c\/(.*?)\/i/,"9999999999");
				setLink();

//http://secure.strawberrynet.com/cjPage.aspx?url=http%3A//us.strawberrynet.com/new-customer/
			//secure.strawberrynet?海外なのでよくわかんないけどCommission Junctionから飛んだ
			}else if(href.match(/secure.strawberrynet.com.*(\?|\&)url=http/)){
				strUrl = getRedirectUrl(href,"url");
				setLink();

//https://www.shareasale.com/r.cfm?u=841156&b=234786&m=27601&afftrack=&urllink=www%2Eticketfly%2Ecom%
			//shareasale(海外)=============================================================
			//urllinkの指定がないものもあったけど、修正不可能だった(パラメータuとmを自分の物に差し替えれば行けるみたい)
			//b=本来のURL、u=アフィリエイトID、m=アフィリエイトIDと紐づいている何かの数値
			}else if(href.match(/shareasale.com.*(\?|\&)urllink=/)){
				strUrl = getRedirectUrl(href,"urllink");

				if(strUrl != ""){
					if(strUrl.match(/^http/)){
						setLink();
					}else{
						strUrl = "http://" + strUrl;
						setLink();
					}
				}

//http://clkuk.tradedoubler.com/click?p=21874&a=2212750&g=21225632&epi=bdpcsdbpcuk2712
			//Tradedoubler(海外系)===============================================================
			}else if(href.match(/tradedoubler.com\//)){
				//pとaは必須。gがアフィっぽい
				if(href.match("g=")){
					strUrl = setParams(href,["g","epi"],"del");
					setLink();
				}

//http://solutions.tradedoubler.com/redirect/expedia/?td_program_id=21874&AFFCID=expe.uk.001.000.2212750.0&cuid=e61021eaf3ce284c164782552a09e100&AFFLID=&url=http%3A%2F%2Fwww.expedia.co.uk
				if(href.match(/(\?|\&)url=http/)){
					strUrl = getRedirectUrl(href,"url");
					setLink();
				}

//http://track.webgains.com/click.html?wgprogramid=5586&wgcampaignid=%5E%5E%5Ecampaign_id%5E%5E%5E&wgtarget=http://track.webgains.com/click.html?wgcampaignid=%5E%5E%5Ecampaign_id%5E%5E%5E&wgprogramid=5586&wgtarget=http://www.identitydirect.co.uk/my-special-christmas-adventure-big.html?mid=13064&utm_source=webgains&utm_medium=affiliate&utm_campaign=13064
			//webgains(海外)====================================================================
			}else if(href.match(/track.webgains.com.*(\?|\&)wgtarget=http/)){
				strUrl = getRedirectUrl(href,"wgtarget");
				setLink();

//http://ad.zanox.com/ppc/?12621111C1452709100T&ULP=http%3A%リダイレクト先
			//Zanox(海外)===============================================================
			}else if(href.match(/ad.zanox.com.*(\?|\&)ULP=http/)){
				strUrl = getRedirectUrl(href,"ULP");
				setLink();

//http://1006-ant.conversive.nl/in/?c_id=1006&n_id=40&l_id=0&a_id=21771&aff_id=153289&aff_x=444671%3A%3A153289%3A%3A%3A%3A%3A%3A1408947807&pu=http%3A%2F%2Fwww.bobshop.nl%2Fnl%2Fpersoonlijke-verzorging%2Fvoor-hem%2Fscheerapparaten%2Fphilips%2Frq1175-sensotouch-scheerapparaat%2Fp45611%253Fref%253Dconversive&ant_sid=MF5zMGd2NTZoZnFsbzY2NDd1ZjFmc2ZvaWlidTQyZHA1bw%3D%3D
			//Zanox(海外)===============================================================
			}else if(href.match(/ant.conversive.nl.*(\?|\&)aff_.*=/)){
				if(href.match(/(\?|&)pu=http/)){ strUrl = getRedirectUrl(href,"pu"); setLink();
				}else{
					strUrl = setParams(href,["aff_id=","aff_x"],"del");
					setLink();
				}

//http://r.refinedads.com/bs-mapping.php?v=z1&aid=3814&oid=1031&zanpid=1916947465651987456&userid=1021583&url=http%3A%2F%2Fwww3.base.de%2Fads%3Frt%3D8%26et%3D16%26i%3D63027%26se%3Dp%26cs%3D5044%26ev%3D[MEDIACODE]%26userid%3D1021583
			//Zanox(海外)===============================================================
			}else if(href.match(/refinedads.com.*(\?|\&)url=http/)){
				strUrl = getRedirectUrl(href,"url");
				setLink();

			}else{

			}






			//共通トラッカー系(トラッカー専門系)---------------------------------------------------------------------

			//行動分析系::::::::::::::::::::::::::::::::::::::::::::::::

//http://www.suruga-ya.jp/database/107100001000.html?utm_source=coneco&utm_medium=CPC&utm_campaign=kakaku_new&i4c=190&i4a=5
//http://www.caravan-yu.com/shop/g/g4905524811384/?utm_source=kakaku.com&utm_medium=priceComparison&utm_campaign=kakaku.com
//http://p.tl/6bXQ?utm_content=bufferd0045
			//google ユニバーサルアナリティクス
			//utm_source,,utm_campaign,utm_medium,utm_content
			if(href.match(/(\?|\&)utm_/)){
				if(href.match(/utm_[a-z]/)){
					strUrl = href.replace(/(\?|\&)utm_.*$/,"");
				}

				setLink();

			//2ch系クッション::::::::::::::::::::::::::::::::::::::::::::::::::::


			//2ch==============================================================================
			}else if(href.match(/^https?:\/\/((ime|nun).(nu|st)\/\??|jump.2ch.net\/\?|pinktower.com\/)/)){
				strUrl=href.replace(/.*(\/(ime|nun).(nu|st)\/\??|jump.2ch.net\/\?|pinktower.com\/)/,"http://").replace("http://http","http");
				setLink();

//http://l.moapi.net/https://addons.mozilla.jp/firefox/details/293780
			//l.moapi.net
			}else if(href.match(/l.moapi.net\/http/)){
				strUrl=href.replace(/.*l.moapi.net\//,"");
				setLink();


//http://route5.org/?q=http://www.kincho.co.jp/wnew/200903/liquid_cordless/index.html
			//READ2CH
			}else if(href.match(/route5.org\/\?q=/)){
				strUrl = getRedirectUrl(href,"q");
				setLink();

//http://bubjs.com/http://www.4gamer.net/games/106/G010649/20140305012/
			//Rちゃんねる==============================================================================
			}else if(href.match(/bubjs.com\/http/)){
				strUrl = href.replace(/https?:\/\/bubjs.com\/http/,"http");
				setLink();
			}


			//アフィリエイト系トラッカー::::::::::::::::::::::::::::::::::::::::::::::::
			//※ショップ系独自のトラッカーなどはショップ別に追加

//http://adclr.jp/c/qojdmuij?pc_maist_buyer=2581&_cvpoint=811&_xuid=xuidx4677b0cf38x31c
			//adclr=============================================================================
			if(href.match(/adclr.jp.*\?/)){
				strUrl = href.replace(/\?.*$/,"");
				setLink();

//http://dms.netmng.com/si/CM/Tracking/TrackRedirect.aspx?siclientid=2520&redirecturl=http%3A%2F%2Fpt.afl.rakuten.co.jp%2Fc%2F001134ce.0fc3b133%2F_RTvrgj10000063%3Furl%3Dhttp%3A%2F%2Fitem.rakuten.co.jp%2Fdtc%2F4960999964164%2F&SICustTransType=9854&transactionamount=18&x1=2683&x2=01802080&x3=1130627295&x4=&jscript=0
//http://dms.netmng.com/si/CM/Tracking/TrackRedirect.aspx?siclientid=2520&redirecturl=http://www.amazon.co.jp/dp/B0019DPHVO/ref=asc_df_B0019DPHVO953949/?tag=coneco-ce-22&creative=9311&creativeASIN=B0019DPHVO&linkCode=asn&me=AN1VRQENFRJN5&SICustTransType=9854&transactionamount=52.6&x1=2828&x2=01109999&x3=1090909212&x4=8f001b2487cda54cc46496c3308668c1&jscript=0
			//netmng==============================================================================
			}else if(href.match(/dms.netmng.com.*(\?|&)redirecturl=http/)){
					strUrl = getRedirectUrl(href,"redirecturl");
					setLink();

//http://textad.net:10001/cgi-bin/redir.cgi?uid=10473&bid=2&from=video&site=http://www.2ica.net/%E6%96%99%E9%87%91/
			//textad
			}else if(href.match(/textad.net.*(\?|&)site=http/)){
				strUrl = getRedirectUrl(href,"site");
				setLink();

			//その他::::::::::::::::::::::::::::::::::::::::::::::::

			}else{
			}





			//最終修正(パラメータ削除系)=========================================================================
			if(strUrl.match(/\?.*=/)){
				//wapr 広告経由後にオリジナルURLの後につくらしい(trafficgate?)
				//LSID Commission Junction(海外系)の残り?
				//_xuid xaid追跡パラメータ削除
				//waad 実験的に削除
				//"banner_id","s_kwcid"onamae.comなどのパラメータ
				strUrl = setParams(strUrl,["affiliate_id","affiliate_type","afid","AFID","banner_id","bannerid","jaehuid","LSID",
					"partnerid","partnerId","s_kwcid","vos","waad","wapr","_xuid"],"del");

				//ad_codeは広告の精度をあげるらしいので削除
				strUrl = setParams(strUrl,["ad_code","AD_CODE"],"del");

				setLink();
			}
				
			//aidはアクセスIDというものらしく、広告の精度をあげるらしいので削除============================
			if(href.match(/(\?|\&)aid=/)
			  //okwaveとoshieteは除外
			  && !location.href.match("okwave.jp") && !location.href.match(".oshiete.")
			  //ヤフオク、amazon、affiliate window(海外)、Zanox(海外)も除外
			  && !location.href.match(/(auctions.yahoo|.amazon.|affiliatewindow.com|refinedads.com)/)
			  ){
				var params = createParamArray(href);	//パラメータ格納
				strUrl = href.replace(params["aid"],"").replace(/(\?|&)aid=/,"");
				setLink();
			}


//http://dms.netmng.com/si/cm/tracking/clickredirect.aspx?sitrackingid=565231550&siclientid=7722&siadtrackid=31891032366&sinetwork=s&simobile=&sidevice=c
//http://track.searchignite.com/si/cm/tracking/clickredirect.aspx?sitrackingid=696296406&siclientid=9992&siadtrackid=42697278684&sinetwork=s&simobile=&sidevice=c
			//パラメータsitrackingid以降除去(実験的実装)==============================================================================
			if(href.match("sitrackingid")){
				var params  =  createParamArray(href);	//パラメータ格納
				strUrl = href.replace(/(.*sitrackingid).*$/i,'$1=') + params["sitrackingid"];
				setLink();
			}


//http://ad.c-ats.jp/ad/p/r?_site=67&_article=74&_link=93&_image=93
//http://ad.maist.jp/ad/p/r?_site=10165&_loc=10450&_campaign=663&_article=5777&_link=34346&_image=35521&_deliver=1
//http://ad.dmm.com/ad/p/r?_site=9999999&_article=1052&_link=転送先のURL指定用の数字&_image=不明な数字
//http://app-adforce.jp/ad/p/r?_site=9364&_article=56674&_link=1731290&_image=1731291&suid=eae08ff6d51e68e81788caa37cd7eb80435272c7aa68bf6432373904dffe967c&sad=324379238
//最小構成(_linkが必要な場合もある?)http://app-adforce.jp/ad/p/r?_article=56674&_image=1731291
			//DMM系なのかな?_siteがアフィと思われるが消すと怒られる場合があるのでありえない大きい数字指定。_articleがURL指定=================
			//残すパラメータ:"_article","_site"
			if(href.match(/(\?|\&)_article=/)){
				if(href.match("dmm.com")){
					//DMMで対策されたようで9999999999などではエラーに。自分のアフィIDあるならそれを指定してもいいかもしれない?
//					strUrl = setParams(href,["_site"],"your affiliate id");
				}else{
					strUrl = setParams(href,["_site"],"999999999");
				}
				strUrl = setParams(strUrl,["_image","_link","_campaign","_loc","_deliver","suid"],"del");
				setLink();
			}

			//最終修正ここまで===========================================================================


		}//main for文ここまで=====================================================================================
}catch(e){
//	throw(e);
	GM_log("main:" + e);
}


/*対応不可能だったもの一覧**********************************************************************************************


//http://store.shopping.yahoo.co.jp/(半角英数字のマイショップID)/(半角英数字の商品ID).html
	//yahooのマイショップURL=======================================================

//http://rd.ane.yahoo.co.jp/rd?ep=RW.u2fu1jtrsPgkAoS3opUvVhweDEINbjKWJzbLEeq0x1LpxtoSU1.PcS0c9xdsEhra31XT1Dwv_uzVABEwWiv7_wo_hatLF_Mki1oPQi3p6.u4uubeHQeXCZBWs9S2MYqp9980zKI_EnXINbYdv901S18EQYsF0DGTb5qdinn7_WKzvFxjCqLsPdkkq&a=2a_7Utg_xD5h9rKdTA--&s=G7pHVLA9xD3KlA--&t=t5.nAjN_0z2cvg--&C=9&D=1&I=&RI=66bf3d12641c18a39e24a33f6ab8fc51&S=36c2c1a0dc04&as=1&f=1&ff=0&fq_d=1,1,1,0&fq_m=1,1,1,0&fq_w=1,1,1,0&g=4&lp=&maf=0&mid=0&o=9&p=9&qfid=&r=0&rfm=&sfid=0&skwid=0&F=0&tlid=0&u=auctions.yahoo.co.jp
//正しいURLhttp://www.cho-rei.com/
	//yahooの広告=======================================================

//http://click.linksynergy.com/fs-bin/click?id=GSAXENiMcvI&offerid=39250.10000239&type=4&subid=0
	//linksharelinksynergy=======================================================

//http://ck.jp.ap.valuecommerce.com/servlet/referral?va=2266773&sid=3091344&pid=882260177&vcid=bGmU_AHjllv84Mt-fZ4weDItjcOmmGcAFaJssucpwdz9kF75jqBDmQ&vcpub=0.621401729893042
	//valuecommerce不完全(無駄だけど不要なパラメータを削除)←スクリプトに追加済
	/↑のリンクの後もアフィリンクを経由するのだけど、修正可能だったのでそちらは修正(効果があるかは不明)


//http://coinurl.com/get.php?id=20487
//↑のURLから↓のURLが生成される。
//http://coinurl.com/newclick.php?p=tAbcleV5kjueMCrTWd4w3yVE6tJPph9X0uFmjsQiYiyYxLN%2BKR%2B5N6UsGWjdL3VeSjps%2Bk%2F5174VMvk010qvopudBqVYRABOtkQZSr70UEVK8cT8UHmCq7vgtNuHbNpjcy2D3nUOav4J577M60GxUmmR%2Fh1gEGXrVX0ph0pQ4Tmyz47MabsfCKAQL3SObCV%2B
	//ビットコイン(仮想通貨)===================================================================
	//どちらも修正不可なのでそもそも削除した方がいい


//amazonスライドショーウィジェット
//amazonくるくるウィジェット
//↑アフィリエイトIDを書き換えると非表示になる。アフィID必須?

**対応不可能だったもの一覧ここまで**************************************************************************************/



//javascriptタグ(未実装調整実験中)=======================================================================================

//<script type="text/javascript" src="http://www.dlsite.com/js/blog_parts.js" charset="UTF-8"></script><script type="text/javascript">window["http://www.dlsite.com/"].createBlogParts({"type":"RankingParts","type":"RankingParts","aid":"dojin","display":"image","image":"large","count":"5","site":"maniax","announce":"1","gro":"0","men":"0","loli":"0","shota":"0","kinshin":"0","jyuukan":"0","period":"24h","title":"24時間ランキング","width":"190","round":"0","decoration":"0","character":"","logo":"dlsite","banner":"1","wrapper":"1","buttonType":"02","bodyColor":"#ffe3ea","titleColor":"#ffa600","titleTextColor":"#ffffff"});</script>
		//DLsite埋め込みjavascript
		//スクリプトに自動読み込み関数があってアフィリエイトリンクが復活してしまう。対策方法考え中
		//候補1:スクリプトのアフィリエイトID箇所を変更してオブジェクトを新規で生成→何故かオートロードでスクリプトだけのページに飛ぶ
		//候補2:http://www.dlsite.com/js/blog_parts.jsの関数を上書き→勉強中
		function killJS(document){

			var allScripts = document.getElementsByTagName("script");

			for (var i = 0; i < allScripts.length; i++){
				var blogParts = allScripts[i].innerHTML;

				if(blogParts.match(/"aid":.*,/)){
//alert(allScripts[i].innerHTML);
					blogParts = blogParts.replace(/"aid":.*,"display"/,'"aid":"","display');


//↓アフィリエイトIDの入ったスクリプトタグを消してみたけどすでにインスタンス化された後だと意味がない?
allScripts[i].parentNode.removeChild(allScripts[i]);

//最初のスクリプトタグを生成。blog_parts.jsを読み込むだけだし最初から読み込まれてるし追加不要?
var ele = document.createElement("script");
ele.type = "text/javascript";
ele.src = "http://www.dlsite.com/js/blog_parts.js";
ele.charset = "UTF-8";

//次のスクリプトタグ。ブログパーツを生成するための引数のみ
var ele2 = document.createElement("script");
ele2.type = "text/javascript";
ele2.innerHTML = blogParts;

//allScripts[i].parentNode.appendChild(ele);
//allScripts[i].parentNode.appendChild(ele2);
//↑オブジェクトele2を要素として追加すると何故かページを遷移してしまう

				}
			}//for文ここまで

/*
			//スクリプトタグに生成される実際のブログパーツに変更を加えてみる?
			var allScripts = document.getElementsByClassName("DLsite_bp_body");
			for (i = 0; i < allScripts.length; i++){

			}//for文ここまで
*/
		}

//javascriptタグここまで=======================================================================================




	//==================================mainの共通ファンクション===============================================

		//URLを変更&オリジナルURL追加
		function setLink(){
try{

			//ページ遷移を消しすぎてたら復元
			if(href.match("#") && !strUrl.match("#") && !href.match(/#.*(\?|&)/)){
				strUrl = strUrl + href.replace(/.*(#.*$)/i,"$1");
			}

			//特殊文字の修正
			strUrl = strUrl.replace(/amp;/gi,"");

			//何もしない
			if(href.match("coneco.net/point")
			  //ループ防止用
			  || decURI(decURI(href)) == strUrl || decURI(href) == strUrl || href == strUrl
			  //ページスクロール系は除外
			  || href.slice(-1) == "#"
			  //googleイメージ検索の除外(サムネイル一覧。詳細画面の方ではない)
			  || allLinks[i].hasAttribute("class") && allLinks[i].getAttribute("class").match("rg_l")
			  //googleイメージ検索の除外(詳細画面の右側サムネ一覧には触れない)
			  || allLinks[i].hasAttribute("class") && allLinks[i].getAttribute("class").match("irc_rimask")
			  //strUrlがおかしい数値
			  || strUrl == "" || strUrl == "http://" || href == strUrl
			  || allLinks[i].hasAttribute("Akill_check") && allLinks[i].getAttribute("Akill_check").match(/^(killed|before|checked)$/)
			){

				//これ以上修正できない場合完了フラグを立てる
				if(href == strUrl){
					//リダイレクトのフラグは消さない
//					if(!allLinks[i].hasAttribute("Akill_check") || allLinks[i].getAttribute("Akill_check").match(/^added$/i)){
						var flag = "";
						if(allLinks[i].hasAttribute("Akill_check")){flag = allLinks[i].getAttribute("Akill_check");}
						allLinks[i].setAttribute("Akill_check",flag + "_checked");
//					}
				}
				
				//何もしない
				return;
			}

			//"?"を消し過ぎた場合最初の&を?に戻す
			if(strUrl.match("&") && !strUrl.match(/\?/)){
				strUrl = strUrl.replace(/(.*?)&(.*=.*$)/i,"$1?$2");
			}

			//class名も引き継がないと配置がずれるため継承(Amazonで確認。対象のclassにCSSで設定してる?)
			var setClass = "";
			if(allLinks[i].hasAttribute("class")){ setClass = allLinks[i].getAttribute("class"); }

			//ヤフオクなどで修正したリンクにidがないと位置がずれて画像がなくなるので設定
			var setId = "";
			if(allLinks[i].hasAttribute("id")){ setId = allLinks[i].getAttribute("id"); }

			//AREAタグの場合引き継ぎ必須?
			var setCoords = "";
			if(allLinks[i].hasAttribute("coords")){ setCoords = allLinks[i].getAttribute("coords") }

			//新しいウィンドウ(タブ)に開く設定だけは継承
			var setBlank = "";
			if(allLinks[i].target == "_blank"){
				setBlank = ' target="_blank"';
			}

			//元のリンクにcssで背景指定してあった場合継承
			var setStyle ="";
			if(allLinks[i].hasAttribute("style")){
				if(allLinks[i].getAttribute("style").match(/background.*url/)){
					setStyle = allLinks[i].getAttribute("style");
				}
			}

			//imgタグがあった場合
			var strHW = "";
			var objPic = "";
			if(allLinks[i].innerHTML.match(/(<img |<IMG )/)){
				//solty designのAmazon Modern Rankingに対応
				//元のリンクに高さと幅の設定があった場合変数にセットして後で復元
				if(allLinks[i].hasAttribute("style")){
					if(allLinks[i].getAttribute("style").match("height:")){	
						strHW = "height:" + allLinks[i].getAttribute("style").replace(/.*height:(.*?)\;.*$/i,"$1") + ";"
					}
					if(allLinks[i].getAttribute("style").match("width:")){	
						strHW += "width:" + allLinks[i].getAttribute("style").replace(/.*width:(.*?)\;.*$/i,"$1") + ";"
					}
				}

				//noscriptタグ内にimgタグがあった場合このままだと何故かtextとして追加されるのでオブジェクトとしてimgを追加しなおす
				if(allLinks[i].innerHTML.match(/<noscript/)){
					var beforeNoscript = allLinks[i].getElementsByTagName("noscript")[0];
					var objImg = beforeNoscript.getElementsByTagName("img")[0];
					if(beforeNoscript && objImg){
						objPic = document.createElement("img");
						objPic.src = objImg.getAttribute("src");
						objPic.alt = objImg.getAttribute("alt");
						objPic.style = objImg.getAttribute("style");
						
						beforeNoscript.removeChild(objImg);	//削除後、後でobjPicを追加
					}
				}
			}

			//修正したリンク内に元のタグ内の要素を残す(imgなど)
			var strTxt = allLinks[i].innerHTML;


			//元のリンクの後に修正したリンクを追加
			var domLink = document.createElement(allLinks[i].tagName);
			domLink.id = setId;
			domLink.className = setClass;
			domLink.target = setBlank;
			domLink.href = strUrl;
			domLink.rel = "noreferrer";
			domLink.innerHTML = strTxt;
			allLinks[i].parentNode.insertBefore(domLink, allLinks[i].nextSibling);
/*
			//旧設定(noscriptタグ内だと要素ではなく文章になるので廃止予定の様子見)
			var setTxt = '<' + allLinks[i].tagName
				+ ' id="' + setId + '"'
				+ ' class="' + setClass + '"'
				+ ' target="' + setBlank + '"'
				+ ' coords="' + setCoords + '"'
				+ ' href="' + strUrl + '"' 
				+ ' rel="noreferrer"'
				+ '>' + strTxt + '</' + allLinks[i].tagName + '>';
			allLinks[i].insertAdjacentHTML('afterend', setTxt); 
*/

			//元のリンクがaタグじゃなかった場合、aタグにしてノード修正
			if(!allLinks[i].tagName.match(/^a$/i)){
				var oldNode = allLinks[i];

				var newNode = document.createElement('a');
				newNode.href = oldNode.href;
				newNode.innerHTML = oldNode.innerHTML;

				oldNode.parentNode.replaceChild( newNode, oldNode );
			}

			var beforeCheck = allLinks[i].getAttribute("Akill_check");

			//修正直前に修正済みという判定用フラグ追加
			allLinks[i].setAttribute("Akill_check","killed");
			//(※※注意!!!!!この間に処理を挟まない!!!!※※※)
			//元のリンクは中身を消してリンクだけ残す
			//killer全部表示
			if(hideOriginLink == "show"){
				allLinks[i].innerHTML = '[Killer]';

			//全部消す
			}else if(hideOriginLink == "hide"){
				allLinks[i].innerHTML = '';

			//[kill]を最初だけ表示する設定の場合
			}else if(hideOriginLink == "one"){
				//一個前の要素が修正済みkilledだった場合非表示
				if(allLinks[i-1].getAttribute("Akill_check") == "killed"){
					allLinks[i].innerHTML = '';
				}else{
					allLinks[i].innerHTML = '[Killer]';
				}
			}
			//(※※注意!!!!!この間に処理を挟まない!!!!※※※)
			//修正直後に追加済みという判定用フラグ追加
			if(beforeCheck!="added_before"){allLinks[i+1].setAttribute("Akill_check","added");
			}else{ allLinks[i+1].setAttribute("Akill_check",beforeCheck); }

			//amazonなどで元のリンクにclassがないと位置がずれるので復元
			if(allLinks[i+1].hasAttribute("class")){
				allLinks[i].setAttribute("class",allLinks[i+1].getAttribute("class"));
			}

			//ヤフオクなどで元のリンクにidがないと位置がずれるので復元
			if(allLinks[i+1].hasAttribute("id")){
				allLinks[i].setAttribute("id",allLinks[i+1].getAttribute("id"));
			}

			//価格コムとconecoのボタンからonclickで起動されるトラッカーを除去(実験的実装)
			allLinks[i+1].removeAttribute("onclick");
			allLinks[i+1].removeAttribute("onmouseclick");

			//共通スタイル
			var strStyle = 'max-height:20px;max-width:80px;height:auto;width:auto;background:rgba(255,0,0,0.2);margin:0!important;padding:0!important;z-index:99;text-indent:0;';

			//AREAタグまたは要素内にimgタグがあった場合
			if(setCoords != ""
			  || allLinks[i+1].innerHTML.match(/(<img |<IMG )/)){

				//元のリンクにCSS付加
				allLinks[i].setAttribute("style", strStyle + 'position:absolute;');

				//元のリンクにstyleで高さと幅の指定があった場合は上書き
				if(strHW != ""){
					allLinks[i+1].setAttribute("style", strHW);
				}

				//AREAタグの場合、修正したリンクが最初の子ノードじゃないといけないので入れ替え
				if(setCoords != ""){
					allLinks[i+1].parentNode.appendChild(allLinks[i]);	//入れ替え
//						allLinks[i].parentNode.removeChild(allLinks[i]);	//削除
				}


				//noscriptタグ内にimgタグがあった場合の後処理
				if(objPic){
					var afterNoscript = allLinks[i+1].getElementsByTagName("noscript")[0];
					afterNoscript.appendChild(objPic);
				}

			//それ以外
			}else{
				//元のリンクにCSS付加
				allLinks[i].setAttribute("style", strStyle + 'position:relative;');
			}

			//元のリンクにcssで背景指定があった場合
			if(setStyle != ""){
				allLinks[i+1].setAttribute("style", setStyle);
			}

}catch(e){
//	throw(e);
	GM_log("set:" + e);
}
//			throw new Error();

		}//setLinkここまで


		//Dlsiteのリンク修正用CSS
		function dlsiteCSS(){
			if(href != strUrl){

				//CSS付加
				allLinks[i].setAttribute("style", 'height:auto;width:auto;float:left;position:absolute;z-index:99;background:rgba(255,0,0,0.2);margin:0!important;padding:0!important;');
				//画像埋め込みタイプ以外にCSS付加
				if(!allLinks[i+1].innerHTML.match("src=")){
					allLinks[i+1].setAttribute("style", "margin-left:55px;");
				}
			}
		}


/***パラメータ多すぎなので凍結。元から必要ないかも?(so many whitelist.blacklist is ...? I have no idea.)
		//楽天パラメータ
		function rakutenParam(){
				var strSitem = "";	//検索
				var strNitem = "";	//検索除外
				var strPage = "";	//ページ数
				var strType = "";	//サーバ?
				var strSid = "";	//ショップID(ショップ内検索用?)
				var strGenre = "";	//ジャンル
				var strView = "";	//表示方法
				var strFromD = "";	//発売日範囲始点
				var strToD = "";	//発売日範囲終点
				var strMinp = "";	//最低価格
				var strMaxp = "";	//最大価格
		}
*/
	}//main終了





//================================= 追加関数 ==============================================================

//パラメータ削除
function setParams(url,name,flag){
try{
	if(!name || name.length == 0 && !url.match(/\?/)){ return url; }
//alert(name.length);

	var tmpUrl = url;

	for(k=0; k < name.length; k++){
		var params  =  createParamArray(tmpUrl);	//パラメータ格納

		if(!(name[k] in params)){ continue; }

		var tmpReg;

		//全部削除("?param=data" > "")
		if(flag == "del"){
			tmpReg = new RegExp("(\\?|&)" + name[k] + "=" + params[name[k]]);
			tmpUrl = tmpUrl.replace(tmpReg,"");
		//パラメータの数値変更((?param=999999))。""指定で数値だけ削除(?param=)
		}else{
			tmpReg = new RegExp(name[k] + "=" + params[name[k]]);
			tmpUrl = tmpUrl.replace(tmpReg,name[k] + "=" + flag);
		}

		//"?"を消し過ぎた場合最初の&を?に戻す
		if(tmpUrl.match("&") && !tmpUrl.match(/\?/)){
			tmpUrl = tmpUrl.replace(/(.*?)&(.*=.*$)/i,"$1?$2");
		}
//alert(tmpReg);
	}//for文ここまで

//alert("setParams:"+tmpUrl);
	return tmpUrl;

}catch(e){
	GM_log("setParams:"+url + e);
	return tmpUrl;
}
}


//Googleトラッカー除去==================================================================

function remTrack(node){

	var resultLinks = document.evaluate('.//a[@onmousedown]', node, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

	for (l = 0; l < resultLinks.snapshotLength; l++){
		var oldLink = resultLinks.snapshotItem(l);	//検索結果のURL(Original URL)

		if (oldLink.hasAttribute('onmousedown')) {
			oldLink.removeAttribute('onmousedown');
		}
	}
}

//url取得
function getUrl(pattern,type,obj,i){
	if(obj.hasAttribute("Akill_check") && obj.getAttribute("Akill_check").match(/^(killed|before|checked)$/)){return;}

	var url = obj.href;

	if(obj.hasAttribute("akill_URL") && !obj.getAttribute("akill_URL").match(/^Loading:/)){
		url = obj.getAttribute("akill_URL");
		obj.setAttribute("akill_URL","Loading:" + url);
	}

	//GM_xmlhttpRequestが非同期のため、その対応
	if(!expDB[url] && !url.match(/(getlinkinfo.com|araishi.com|expandurl.appspot.com)/)){ 
		expDB[url] = [];
		expDB[url].push(i);
//alert(expDB[url][0])

	}else{
		if(expDB[url] instanceof Array){
			//要素番号があるかどうか
			reg = new RegExp('(,|^)' + i + '(,|$)');

			if(expDB[url].join().match(reg)){
				return;
			}else{
				expDB[url].push(i);
			}

		}else if(expDB[url].match(/^http/)){
//			obj.setAttribute("akill_URL",""expDB[url]);
//			main(obj);
			return;
		}
		
	}


	if(pattern == 1 && !url.match(/(getlinkinfo.com|araishi.com)/)){ url = "http://expandurl.appspot.com/expand?url=" + url;}


//GM_log(i + ":" + url);

	//url修正ここまで---------------------------------------

	GM_xmlhttpRequest({
		method: type,
		url: url,
		onload: function (res) {

//GM_log(res.responseText);
			if(type == "GET"){
				if(pattern == 1){
					var tmp,finalUrl,beforeUrl,redirectNum;

					//最初のURL展開
					if(url.match(/expandurl.appspot.com/)){
						var apiRes = JSON.parse(res.responseText);	//連想配列
						var status = apiRes["status"];
						var startUrl = apiRes["start_url"];
						finalUrl = apiRes["end_url"];
						var urlAll = apiRes["urls"];			//普通の配列
						redirectNum = apiRes["redirects"];

						if(status == "OK" && redirectNum != 0){
							if(redirectNum > 1){
								beforeUrl = urlAll[redirectNum -1];
								obj.setAttribute("akill_BeforeURL", beforeUrl);
							}
						//何らかの原因でリダイレクト先に行けなかった場合
						}else{ finalUrl = url;}

					
					//最初の展開がミスったら別のURL展開
					}else if(url.match(/getlinkinfo.com/)){
						var startUrl = url.replace("http://www.getlinkinfo.com/info?link=","")
						var strGet = '<li><a href="(http.*?)"';
						var regGetAll = new RegExp(strGet,"g");
						var regGet = new RegExp(strGet,"i");
						tmp = res.responseText.match(regGetAll);	//リダイレクト経路すべてのURL配列

						if(tmp){
							redirectNum = tmp.length;
							finalUrl = tmp[redirectNum-1].replace(regGet,"$1");	//最後の要素

							//リダイレクト最後の直前のURLを保存する
							if(redirectNum > 1){
								beforeUrl = tmp[redirectNum -2].replace(regGet,"$1");
								obj.setAttribute("akill_BeforeURL", beforeUrl);
							}
						//何らかの原因でリダイレクト先に行けなかった場合
						}else{ finalUrl = url;}

					//次の展開がミスった場合
					}else if(url.match(/araishi.com/)){
						var startUrl = url.replace("http://araishi.com/redirect-check/?submit=&url=","")
						var strAraishi = '<td>(http.*?)<\/td>';
						var regAraishiAll = new RegExp(strAraishi,"g");
						var regAraishi = new RegExp(strAraishi,"i");
						tmp = res.responseText.match(regAraishiAll);

						if(tmp){
							redirectNum = tmp.length;
							finalUrl = tmp[redirectNum-1].replace(regAraishi,"$1");	//最後の要素

							if(redirectNum > 1){
								beforeUrl = tmp[redirectNum -2].replace(regAraishi,"$1");
								obj.setAttribute("akill_BeforeURL", beforeUrl);
							}
						//何らかの原因でリダイレクト先に行けなかった場合
						}else{ finalUrl = url;}
					}

					obj.setAttribute("akill_URL",finalUrl);
					//GM_log(url+" || "+finalUrl);

					var strBefore = "";
					if(beforeUrl && beforeUrl != "") strBefore = "|||||" + beforeUrl;
					expDB[startUrl] = "";
					expDB[startUrl] = finalUrl + strBefore;

					//何らかの原因でリダイレクト先に行けなかった場合
					var reg = new RegExp(finalUrl + "$");
					if(url.match(reg) || url == finalUrl){
						if(url.match(/expandurl.appspot.com/)){
							obj.setAttribute("akill_URL","http://www.getlinkinfo.com/info?link=" + startUrl);
						}else if(url.match(/getlinkinfo.com/)){
							obj.setAttribute("akill_URL","http://araishi.com/redirect-check/?submit=&url=" + startUrl);
						}else{return;}
						getUrl(1,"GET",obj,i);
						return;
					}

					main(obj);

					return;
				}

				//bloglovin埋め込み用
				if(obj.innerHTML.match("killer")){ return; }	//ループ防止

//サンプル<iframe frameborder="0" src="http://url/" class="bl-viewer">
				var strOrigin = res.responseText.match(/<iframe frameborder="0" src="(.*?)" class="bl-viewer">/)[1];

				obj.insertAdjacentHTML('afterend', '<a' + ' Akill_check=added href="' + strOrigin + '" rel="noreferrer">' + obj.innerHTML + '</a>');
				obj.innerHTML = "[killer]";

				expDB[url] = "";
				expDB[url] = strOrigin;

				//一個前のURLが重複修正してたら不要な要素削除
				if(obj.parentNode.firstChild.getAttribute("Akill_check") == "killed"){
					obj.parentNode.removeChild(obj);
				}else{
					obj.setAttribute("Akill_check","killed");
				}
			}else if(type == "HEAD"){
//				obj.setAttribute("akill_URL",res.finalUrl);
//				main(obj.parentNode);
			}
		}
	});
}



//クッキー削除
function removeCookie(){

	//どうせcookie仕込まれるので、有効期限切れで消さずに値を空文字に変更する
	//※注意 同じクッキー名で別ドメイン・別ホストの場合最初の要素(区別用の適当な名前)を別にする
	//sample	makeDB("区別用の適当な名前","cookie名","domain名","host名","path"); ←domain or host must be ""

	//amazonのsession-idとubid-acbjpはログイン情報っぽいので削除不可
	makeDB("amazon","UserPref",".amazon.co.jp","","/");	//アフィ確定
	makeDB("amazon","csm-hit","","www.amazon.co.jp","/");
	makeDB("amazon","sess-at-acbjp",".amazon.co.jp","","/");
	makeDB("amazon","at-acbjp",".amazon.co.jp","","/");
	makeDB("amazon","session-id-time",".amazon.co.jp","","/");
	makeDB("amazon","session-token",".amazon.co.jp","","/");
	makeDB("amazon","a-ogbcbff",".amazon.co.jp","","/");
	makeDB("amazon","x-wl-uid",".amazon.co.jp","","/");
	makeDB("amazon","x-acbjp",".amazon.co.jp","","/");
	makeDB("apple","a",".apple.com","","/");		//アフィ関連
	makeDB("dlsite","DL_PTAFID",".dlsite.com","","/");	//アフィ確定
	makeDB("dmm","uid","","ad.dmm.com","/");		//アフィ関連
	makeDB("dmm","_clicks","","ad.dmm.com","/");		//アフィ関連
	makeDB("dmm","Aff_A",".affiliate.dmm.com","","/");	//アフィ関連
	makeDB("dmm","deai_xid",".dmm.co.jp","","/");		//アフィ関連
	makeDB("google","PREF",".google.","","/");		//トラッキングIDと個人設定
	makeDB("mangazenkan","CITEM_TAB_TARGET_ID_I","","af-mangazenkan.com","/");	//アフィ?
	makeDB("mangazenkan","CSITE_TAB_ID_I","","af-mangazenkan.com","/");		//アフィ?
	makeDB("mangazenkan","CITEM_TAB_ID_I","","af-mangazenkan.com","/");		//アフィ?
	makeDB("rakuten","tg_af_histid",".pt.afl.rakuten.co.jp","","/");	//アフィ確定
	makeDB("rakuten","afl-u",".affiliate.rakuten.co.jp","","/");	//アフィ関連
	makeDB("shareasale","DATA27601",".shareasale.com","","/");	//アフィ
	makeDB("shareasale","MERCHANT27601",".shareasale.com","","/");	//アフィ


//httponly属性のせいで取得できない?addonにすればComponents.classesで取得できそう
//	makeDB("a8.net","A8_SHARED",".a8.net","","/");
//	makeDB("a8.net","A8FLYID_N1","","rpx.a8.net","/");


	for(site in nameDB){
		for(title in nameDB[site]){
			getCookie(site,title);

			if(Object.keys(cookieDB).length > 0 && title in cookieDB){
				setCookie(site,title);
			}
		}
	}
}

//クッキーの値を取得
function getCookie(site,title){
	var tmpUrl = "";
	if(nameDB[site][title]["domain"] != ""){ tmpUrl = nameDB[site][title]["domain"];
	}else{ tmpUrl = nameDB[site][title]["host"]; }

	if(!document.cookie || document.cookie.length <= 0){
		GM_log("httponly? Can't get Cookie.");
		return;
	}else if(!location.href.match(tmpUrl)){ return; }

//alert(document.cookie);

	var tmpDB = {};
	tmpDB = document.cookie.split("; ");

	for(key in tmpDB){
		var title = tmpDB[key].replace(/(.*?)=.*$/i,"$1");	//クッキー名
		var data = tmpDB[key].replace(/.*?=(.*$)/i,"$1");	//クッキー値
		cookieDB[title] = data;
	}
}

//クッキーの値をセット
function setCookie(site,title){
	if(!document.cookie || document.cookie.length <= 0){ return; }
	var domain="",host="",data="";

	if(nameDB[site][title]["domain"] != ""){
		domain = " domain=" + nameDB[site][title]["domain"] + ";";
		if(!location.href.match(nameDB[site][title]["domain"])){ return; }
	}else{
		host = " host=" + nameDB[site][title]["host"] + ";";
		if(!location.href.match(nameDB[site][title]["host"])){ return; }
	}
//alert(document.cookie);
//GM_log(window.location.href + "||" + domain + host);
	if(site.match("google") && title == "PREF" && !window.location.href.match("preferences")){
		data = cookieGoogle();
		domain = " domain=" + window.location.href.replace(/.*(google.*?)\/.*$/,"$1") + ";";
	}
		document.cookie = title + "=" + data + ";" + domain + host + " path=" + nameDB[site][title]["path"] + ";";
}

//クッキー情報DB作成
function makeDB(site,title,domain,host,path){
	if(!nameDB[site]){ nameDB[site] = {}; }
	if(!nameDB[site][title]){ nameDB[site][title] = {}; }
	nameDB[site][title]["domain"] = domain;
	nameDB[site][title]["host"] = host;
	nameDB[site][title]["path"] = path;

}

//googleクッキー
function cookieGoogle(){
	var tmp = cookieDB["PREF"];
	if(!tmp || tmp == "undefined"){return "";}

	//FakeTrackingID 偽のトラッキングID(IDとU)を毎回作って追跡お断り(16桁の英数字だけど面倒なので数字だけ)
	var id = Math.floor(Math.random() * (8999999999999999)) + 1000000000000000;

	var tmpDB = {};
	var prefDB = {};
	tmpDB = tmp.split(":");

	for(key in tmpDB){
		var title = tmpDB[key].replace(/(.*?)=.*$/i,"$1");	//設定名
		var data = tmpDB[key].replace(/.*?=(.*$)/i,"$1");	//設定値
		prefDB[title] = data;
	}

//alert(prefDB["ID"]);

	return tmp.replace(prefDB["ID"],id).replace(prefDB["U"],id).replace(prefDB["S"],"").replace(prefDB["TM"],"").replace(prefDB["LM"],"");
}



//URLデコード
function decURI(str){
	var charCode = "";
	if (str.match("%")) {
		try {
			charCode = GetEscapeCodeType(str);
			if ( charCode == "UTF8" ) {
				str = UnescapeUTF8(str);
			}else if ( charCode == "EUCJP" ) {
				str = UnescapeEUCJP(str);
			}else if ( charCode == "SJIS" ) {
				str = UnescapeSJIS(str);
			}else if ( charCode == "Unicode" ) {
				str = unescape(str);
			}
			
			return str;
			
		}catch(e){
			//throw(e);
			GM_log("URL-DECODE:" + e);
		}
	}else{
		return str;
	}
//throw new Error();
}

//キー入力で要素非表示
function keydownHide(){

	//post messageでiframeにまたがる要素にも対応-----------------------------------------

	//メッセージ送信
	function sendMessage(msg){
		var target;

		//親window
		if(window==parent){
			target = window.frames;
			//複数のiframeに送信
			for(m=0; m < target.length; m++){
				target[m].postMessage(msg,"*");
			}
		//iframe内
		}else{
			target = (parent.postMessage ? parent : (parent.document.postMessage ? parent.document : undefined));
			target.postMessage(msg,"*");
		}
	}

	//メッセージ受信
	function receiveMessage(e){
//alert(e.origin);
//alert(e.data);

		if(e.data.match(/^show_added/)){
			body.setAttribute("ToT_hide","show_added");
		}else if(e.data.match(/^show_beforeadded/)){
			body.setAttribute("ToT_hide","show_beforeadded");
		}else if(e.data.match(/^show_before$/)){
			body.setAttribute("ToT_hide","show_before");
		}else if(e.data.match(/^ak_show$/)){
			body.setAttribute("ToT_hide",false);
		}
	}
	window.addEventListener('message', receiveMessage, false);
	//post messageここまで-----------------------------------------------------


	//キー入力で要素非表示----------------------------------------------------
	var keyCheck = [];
	var body = document.getElementsByTagName("body")[0];

	document.onkeydown = function(evt){
		if (evt){
			var kc = evt.keyCode;
		}else{
			var kc = event.keyCode;
		}

		if(kc != 16 && kc != 17 && kc != 18){ return; } //ログ解析で、入力内容を漏洩しないように除外

//GM_log(kc);

		switch(kc){
			case 16://shift
				keyCheck[16] = true;
				break;
			case 17://ctrl
				keyCheck[17] = true;
				break;
			case 18://alt
				keyCheck[18] = true;
				break;
			default:
				break;
		}

		actionKey();
	};

	document.onkeyup = function(evt){
		if (evt){
			var kc = evt.keyCode;
		}else{
			var kc = event.keyCode;
		}

		if(kc != 16 && kc != 17 && kc != 18){ return; } //ログ解析で、入力内容を漏洩しないように除外

		switch(kc){
			case 16://shift
				keyCheck[16] = false;
				if(!keyCheck[18]){body.setAttribute("ToT_hide",false);}
				sendMessage('ak_show');
				break;
			case 17://ctrl
				keyCheck[17] = false;
				body.setAttribute("ToT_hide",false);
				sendMessage('ak_show');
				break;
			case 18://alt
				keyCheck[18] = false;
				if(!keyCheck[16]){body.setAttribute("ToT_hide",false);}
				sendMessage('ak_show');
				break;
			default:
				break;
		}

		actionKey();

	};//キー入力で要素非表示ここまで----------------------------------------------------

	function actionKey(){
		//CTRL ALT show beforeURL & addedURL & added_before
		if(keyCheck[17] && keyCheck[18]){
			//GM_log("同時押し");
			body.setAttribute("ToT_hide","show_before");
			sendMessage('show_before');
		}

		//SHIFT CTRL show only addedURL
		if(keyCheck[16] && keyCheck[17]){
			//GM_log("同時押し");
			body.setAttribute("ToT_hide","show_added");
			sendMessage('show_added');
		}

		//CTRL ALT SHIFT show only beforeURL & addedURL
		if(keyCheck[16] && keyCheck[17] && keyCheck[18]){
			//GM_log("同時押し");
			body.setAttribute("ToT_hide","show_beforeadded");
			sendMessage('show_beforeadded');
		}
	}
}

//======================================================================================


function userCfg(name){
	//ユーザ設定から読み込み(Load user's settings)
	var strText = GM_getValue(name);

	if(strText == "hide"){
		GM_registerMenuCommand("show all [killer] -now hide all-", showCfg);

	}else if(strText == "show"){
		GM_registerMenuCommand("show a [killer] only original -now show all-", oneCfg);

//	}else if(strText == "one"){
	}else{
		GM_registerMenuCommand("hide all [killer](It's troubled,when correction mistook.) -now only one-", hideCfg);

		if(strText != "one"){
			strText = "one";
			GM_setValue( name, strText);
//延々とリロードする場合があるので無効
//			window.document.location.reload();
		}
	}
	return strText;
}
function showCfg(){
	GM_setValue( "hideOriginLink", "show");
	window.document.location.reload();
}
function hideCfg(){
	GM_setValue( "hideOriginLink", "hide");
	window.document.location.reload();
}
function oneCfg(){
	GM_setValue( "hideOriginLink", "one");
	window.document.location.reload();
}



//For Chrome:Change "GM_setValue & GM_getValue" to WebStrage-------------------------------------------
if (!this.GM_getValue || this.GM_getValue.toString().indexOf("not supported")>-1) {
	this.GM_getValue=function (key,def) {
		return window.localStorage.getItem(key);
	};
	this.GM_setValue=function (key,value) {
		return window.localStorage.setItem(key, value);
	};
}



//パラメータ取得
function createParamArray(url){
try{
	var params = {};

	var tmp = url.replace(/.*\?/,"");
	var tmpAry = tmp.split("&");

	for(prm=0;prm<tmpAry.length;prm++){
		if(!tmpAry[prm].match("=")){  continue; }
//GM_log(tmpAry[prm].split("=")[0]);
		params[tmpAry[prm].split("=")[0]] = tmpAry[prm].split("=")[1];
	}
	return params;

}catch(e){
	GM_log("Error_createParamArray:"+e);
}

}

function getRedirectUrl(url, paramName){
try{
    var params = createParamArray(url);
    var redirectUrl = decURI(params[paramName]);
    return redirectUrl;
}catch(e){
	GM_log("Error_getRedirectUrl:"+e);
}

}


/*****************************css追加*************************
要素説明(akill_check)
<a>tag
added:追加したURL。複数リダイレクトじゃない
added_before:追加したURL。複数リダイレクトされてきた場合
before:複数リダイレクトの最後から一個前のURL(デフォルトは非表示)
killed:修正前の元のURL

<body>tag
show_added:CTRL SHIFT @show added & added_before  @hide before & killed
show_before:CTRL ALT @show before & added & added_before@hide killed
show_beforeadded:全部押し @show before & hide killed
***************************************************************/
var css = 'A[akill_check="killed"]{ color:rgb(26,13,171)!important; text-shadow:1px 1px 0 rgb(255,255,255);}'
	+ 'A[akill_check="killed"]:hover{ color: rgba(26,13,171,0.3)!important; text-shadow:1px 1px 0 rgba(255,255,255,0.5)!important; }'
	//非表示
	+ 'BODY[ToT_hide="show_added"] A[akill_check="killed"],'
	+ 'BODY[ToT_hide="show_before"] A[akill_check="killed"],'
	+ 'BODY[ToT_hide="show_beforeadded"] A[akill_check="added_before_checked"],'
	+ 'BODY[ToT_hide="show_beforeadded"] A[akill_check="killed"]{ display:none!important; }'
	//表示
	+ 'BODY[ToT_hide="show_before"] A[akill_check="before"],'
	+ 'BODY[ToT_hide="show_beforeadded"] A[akill_check="before"]{ display:inline!important; }'
	;//ここまで

addStyle(css);

//CSSを追加------------------------------------------------
function addStyle(css) {
	var head = document.getElementsByTagName('head')[0];
	if (!head) { return };

	var style = document.createElement('style');
	style.type = 'text/css';
	style.innerHTML = css;
	head.appendChild(style);
}



//==============================================================
//GreaseForkがrequireの審査必要なのでいっそのこと埋め込みました。
//require (c)http://www.drk7.jp/pub/js/ecl_test/ecl_new.js
//==============================================================



function ecl(){
try{

//============================引用開始===================================

	//
	// Escape Codec Library: ecl.js (Ver.041208)
	//
	// Copyright (C) http://nurucom-archives.hp.infoseek.co.jp/digital/
	//

	EscapeSJIS=function(str){
	    return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){
	        var c=s.charCodeAt(0),m;
	        return c<128?(c<16?"%0":"%")+c.toString(16).toUpperCase():65376<c&&c<65440?"%"+(c-65216).toString(16).toUpperCase():(c=JCT11280.indexOf(s))<0?"%81E":"%"+((m=((c<8272?c:(c=JCT11280.lastIndexOf(s)))-(c%=188))/188)<31?m+129:m+193).toString(16).toUpperCase()+(64<(c+=c<63?64:65)&&c<91||95==c||96<c&&c<123?String.fromCharCode(c):"%"+c.toString(16).toUpperCase())
	    })
	};

	UnescapeSJIS=function(str){
	    return str.replace(/%(8[1-9A-F]|[9E][0-9A-F]|F[0-9A-C])(%[4-689A-F][0-9A-F]|%7[0-9A-E]|[@-~])|%([0-7][0-9A-F]|A[1-9A-F]|[B-D][0-9A-F])/ig,function(s){
	        var c=parseInt(s.substring(1,3),16),l=s.length;
	        return 3==l?String.fromCharCode(c<160?c:c+65216):JCT11280.charAt((c<160?c-129:c-193)*188+(4==l?s.charCodeAt(3)-64:(c=parseInt(s.substring(4),16))<127?c-64:c-65))
	    })
	};

	EscapeEUCJP=function(str){
	    return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){
	        var c=s.charCodeAt(0);
	        return (c<128?(c<16?"%0":"%")+c.toString(16):65376<c&&c<65440?"%8E%"+(c-65216).toString(16):(c=JCT8836.indexOf(s))<0?"%A1%A6":"%"+((c-(c%=94))/94+161).toString(16)+"%"+(c+161).toString(16)).toUpperCase()
	    })
	};

	UnescapeEUCJP=function(str){
	    return str.replace(/(%A[1-9A-F]|%[B-E][0-9A-F]|%F[0-9A-E]){2}|%8E%(A[1-9A-F]|[B-D][0-9A-F])|%[0-7][0-9A-F]/ig,function(s){
	        var c=parseInt(s.substring(1),16);
	        return c<161?String.fromCharCode(c<128?c:parseInt(s.substring(4),16)+65216):JCT8836.charAt((c-161)*94+parseInt(s.substring(4),16)-161)
	    })
	};

	EscapeJIS7=function(str){
	    var u=String.fromCharCode,ri=u(92,120,48,48,45,92,120,55,70),rj=u(65377,45,65439,93,43),
	    H=function(c){
	        return 41<c&&c<58&&44!=c||64<c&&c<91||95==c||96<c&&c<123?u(c):"%"+c.toString(16).toUpperCase()
	    },
	    I=function(s){
	        var c=s.charCodeAt(0);
	        return (c<16?"%0":"%")+c.toString(16).toUpperCase()
	    },
	    rI=new RegExp;rI.compile("[^*+.-9A-Z_a-z-]","g");
	    return ("g"+str+"g").replace(RegExp("["+ri+"]+","g"),function(s){
	        return "%1B%28B"+s.replace(rI,I)
	    }).replace(RegExp("["+rj,"g"),function(s){
	        var c,i=0,t="%1B%28I";while(c=s.charCodeAt(i++))t+=H(c-65344);return t
	    }).replace(RegExp("[^"+ri+rj,"g"),function(s){
	        var a,c,i=0,t="%1B%24B";while(a=s.charAt(i++))t+=(c=JCT8836.indexOf(a))<0?"%21%26":H((c-(c%=94))/94+33)+H(c+33);return t
	    }).slice(8,-1)
	};

	UnescapeJIS7=function(str){
	    var i=0,p,q,s="",u=String.fromCharCode,
	    P=("%28B"+str.replace(/%49/g,"I").replace(/%1B%24%4[02]|%1B%24@/ig,"%1B%24B")).split(/%1B/i),
	    I=function(s){
	        return u(parseInt(s.substring(1),16))
	    },
	    J=function(s){
	        return u((3==s.length?parseInt(s.substring(1),16):s.charCodeAt(0))+65344)
	    },
	    K=function(s){
	        var l=s.length;
	        return JCT8836.charAt(4<l?(parseInt(s.substring(1),16)-33)*94+parseInt(s.substring(4),16)-33:2<l?(37==(l=s.charCodeAt(0))?(parseInt(s.substring(1,3),16)-33)*94+s.charCodeAt(3):(l-33)*94+parseInt(s.substring(2),16))-33:(s.charCodeAt(0)-33)*94+s.charCodeAt(1)-33)
	    },
	    rI=new RegExp,rJ=new RegExp,rK=new RegExp;
	    rI.compile("%[0-7][0-9A-F]","ig");rJ.compile("(%2[1-9A-F]|%[3-5][0-9A-F])|[!-_]","ig");
	    rK.compile("(%2[1-9A-F]|%[3-6][0-9A-F]|%7[0-9A-E]){2}|(%2[1-9A-F]|%[3-6][0-9A-F]|%7[0-9A-E])[!-~]|[!-~](%2[1-9A-F]|%[3-6][0-9A-F]|%7[0-9A-E])|[!-~]{2}","ig");
	    while(p=P[i++])s+="%24B"==(q=p.substring(0,4))?p.substring(4).replace(rK,K):"%28I"==q?p.substring(4).replace(rJ,J):p.replace(rI,I).substring(2);
	    return s
	};

	EscapeJIS8=function(str){
	    var u=String.fromCharCode,r=u(92,120,48,48,45,92,120,55,70,65377,45,65439,93,43),
	    H=function(c){
	        return 41<c&&c<58&&44!=c||64<c&&c<91||95==c||96<c&&c<123?u(c):"%"+c.toString(16).toUpperCase()
	    },
	    I=function(s){
	        var c=s.charCodeAt(0);
	        return (c<16?"%0":"%")+(c<128?c:c-65216).toString(16).toUpperCase()
	    },
	    rI=new RegExp;rI.compile("[^*+.-9A-Z_a-z-]","g");
	    return ("g"+str+"g").replace(RegExp("["+r,"g"),function(s){
	        return "%1B%28B"+s.replace(rI,I)
	    }).replace(RegExp("[^"+r,"g"),function(s){
	        var a,c,i=0,t="%1B%24B";while(a=s.charAt(i++))t+=(c=JCT8836.indexOf(a))<0?"%21%26":H((c-(c%=94))/94+33)+H(c+33);return t
	    }).slice(8,-1)
	};

	UnescapeJIS8=function(str){
	    var i=0,p,s="",
	    P=("%28B"+str.replace(/%1B%24%4[02]|%1B%24@/ig,"%1B%24B")).split(/%1B/i),
	    I=function(s){
	        var c=parseInt(s.substring(1),16);
	        return String.fromCharCode(c<128?c:c+65216)
	    },
	    K=function(s){
	        var l=s.length;
	        return JCT8836.charAt(4<l?(parseInt(s.substring(1),16)-33)*94+parseInt(s.substring(4),16)-33:2<l?(37==(l=s.charCodeAt(0))?(parseInt(s.substring(1,3),16)-33)*94+s.charCodeAt(3):(l-33)*94+parseInt(s.substring(2),16))-33:(s.charCodeAt(0)-33)*94+s.charCodeAt(1)-33)
	    },
	    rI=new RegExp,rK=new RegExp;
	    rI.compile("%([0-7][0-9A-F]|A[1-9A-F]|[B-D][0-9A-F])","ig");
	    rK.compile("(%2[1-9A-F]|%[3-6][0-9A-F]|%7[0-9A-E]){2}|(%2[1-9A-F]|%[3-6][0-9A-F]|%7[0-9A-E])[!-~]|[!-~](%2[1-9A-F]|%[3-6][0-9A-F]|%7[0-9A-E])|[!-~]{2}","ig");
	    while(p=P[i++])s+="%24B"==p.substring(0,4)?p.substring(4).replace(rK,K):p.replace(rI,I).substring(2);
	    return s
	};

	EscapeUnicode=function(str){
	    return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){
	        var c=s.charCodeAt(0);
	        return (c<16?"%0":c<256?"%":c<4096?"%u0":"%u")+c.toString(16).toUpperCase()
	    })
	};

	UnescapeUnicode=function(str){
	    return str.replace(/%u[0-9A-F]{4}|%[0-9A-F]{2}/ig,function(s){
	        return String.fromCharCode("0x"+s.substring(s.length/3))
	    })
	};

	EscapeUTF7=function(str){
	    var B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),
	    E=function(s){
	        var c=s.charCodeAt(0);
	        return B[c>>10]+B[c>>4&63]+B[(c&15)<<2|(c=s.charCodeAt(1))>>14]+(0<=c?B[c>>8&63]+B[c>>2&63]+B[(c&3)<<4|(c=s.charCodeAt(2))>>12]+(0<=c?B[c>>6&63]+B[c&63]:""):"")
	    },
	    re=new RegExp;re.compile("[^+]{1,3}","g");
	    return (str+"g").replace(/[^*+.-9A-Z_a-z-]+[*+.-9A-Z_a-z-]|[+]/g,function(s){
	        if("+"==s)return "+-";
	        var l=s.length-1,w=s.charAt(l);
	        return "+"+s.substring(0,l).replace(re,E)+("+"==w?"-+-":"*"==w||"."==w||"_"==w?w:"-"+w)
	    }).slice(0,-1)
	};

	UnescapeUTF7=function(str){
	    var i=0,B={};
	    while(i<64)B["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(i)]=i++;
	    return str.replace(RegExp("[+][+/-9A-Za-z]*-?","g"),function(s){
	        if("+-"==s)return "+";
	        var b=B[s.charAt(1)],c,i=1,t="";
	        while(0<=b){
	            if((c=i&7)<6)c=c<3?b<<10|B[s.charAt(++i)]<<4|(b=B[s.charAt(++i)])>>2:(b&3)<<14|B[s.charAt(++i)]<<8|B[s.charAt(++i)]<<2|(b=B[s.charAt(++i)])>>4;
	            else{c=(b&15)<<12|B[s.charAt(++i)]<<6|B[s.charAt(++i)];b=B[s.charAt(++i)]}
	            if(c)t+=String.fromCharCode(c)
	        }
	        return t
	    })
	};

	EscapeUTF8=function(str){
	    return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){
	        var c=s.charCodeAt(0);
	        return (c<16?"%0"+c.toString(16):c<128?"%"+c.toString(16):c<2048?"%"+(c>>6|192).toString(16)+"%"+(c&63|128).toString(16):"%"+(c>>12|224).toString(16)+"%"+(c>>6&63|128).toString(16)+"%"+(c&63|128).toString(16)).toUpperCase()
	    })
	};

	UnescapeUTF8=function(str){
	    return str.replace(/%(E(0%[AB]|[1-CEF]%[89AB]|D%[89])[0-9A-F]|C[2-9A-F]|D[0-9A-F])%[89AB][0-9A-F]|%[0-7][0-9A-F]/ig,function(s){
	        var c=parseInt(s.substring(1),16);
	        return String.fromCharCode(c<128?c:c<224?(c&31)<<6|parseInt(s.substring(4),16)&63:((c&15)<<6|parseInt(s.substring(4),16)&63)<<6|parseInt(s.substring(7),16)&63)
	    })
	};

	EscapeUTF16LE=function(str){
	    var H=function(c){
	        return 41<c&&c<58&&44!=c||64<c&&c<91||95==c||96<c&&c<123?String.fromCharCode(c):(c<16?"%0":"%")+c.toString(16).toUpperCase()
	    };
	    return str.replace(/[^ ]| /g,function(s){
	        var c=s.charCodeAt(0);return H(c&255)+H(c>>8)
	    })
	};

	UnescapeUTF16LE=function(str){
	    var u=String.fromCharCode,b=u(92,120,48,48,45,92,120,70,70);
	    return str.replace(/^%FF%FE/i,"").replace(RegExp("%[0-9A-F]{2}%[0-9A-F]{2}|%[0-9A-F]{2}["+b+"]|["+b+"]%[0-9A-F]{2}|["+b+"]{2}","ig"),function(s){
	        var l=s.length;
	        return u(4<l?"0x"+s.substring(4,6)+s.substring(1,3):2<l?37==(l=s.charCodeAt(0))?parseInt(s.substring(1,3),16)|s.charCodeAt(3)<<8:l|parseInt(s.substring(2),16)<<8:s.charCodeAt(0)|s.charCodeAt(1)<<8)
	    })
	};

	GetEscapeCodeType=function(str){
	    if(/%u[0-9A-F]{4}/i.test(str))return "Unicode";
	    if(/%([0-9A-DF][0-9A-F]%[8A]0%|E0%80|[0-7][0-9A-F]|C[01])%[8A]0|%00|%[7F]F/i.test(str))return "UTF16LE";
	    if(/%E[0-9A-F]%[8A]0%[8A]0|%[CD][0-9A-F]%[8A]0/i.test(str))return "UTF8";
	    if(/%F[DE]/i.test(str))return /%8[0-9A-D]|%9[0-9A-F]|%A0/i.test(str)?"UTF16LE":"EUCJP";
	    if(/%1B/i.test(str))return /%[A-D][0-9A-F]/i.test(str)?"JIS8":"JIS7";
	    var S=str.substring(0,6143).replace(/%[0-9A-F]{2}|[^ ]| /ig,function(s){
	        return s.length<3?"40":s.substring(1)
	    }),c,C,i=0,T;
	    while(0<=(c=parseInt(S.substring(i,i+=2),16))&&i<4092)if(128<=c){
	        if((C=parseInt(S.substring(i,i+2),16))<128)i+=2;
	        else if(194<=c&&c<240&&C<192){
	            if(c<224){T="UTF8";i+=2;continue}
	            if(2==parseInt(S.charAt(i+2),16)>>2){T="UTF8";i+=4;continue}
	        }
	        if(142==c&&161<=C&&C<224){if(!T)T="EUCJP";if("EUCJP"==T)continue}
	        if(c<161)return "SJIS";
	        if(c<224&&!T)
	            if((164==c&&C<244||165==c&&C<247)&&161<=C)i+=2;
	            else T=224<=C?"EUCJP":"SJIS";
	        else T="EUCJP"
	    }
	    return T?T:"EUCJP"
	};

	JCT11280=Function('var a="zKV33~jZ4zN=~ji36XazM93y!{~k2y!o~k0ZlW6zN?3Wz3W?{EKzK[33[`y|;-~j^YOTz$!~kNy|L1$353~jV3zKk3~k-4P4zK_2+~jY4y!xYHR~jlz$_~jk4z$e3X5He<0y!wy|X3[:~l|VU[F3VZ056Hy!nz/m1XD61+1XY1E1=1y|bzKiz!H034zKj~mEz#c5ZA3-3X$1~mBz$$3~lyz#,4YN5~mEz#{ZKZ3V%7Y}!J3X-YEX_J(3~mAz =V;kE0/y|F3y!}~m>z/U~mI~j_2+~mA~jp2;~m@~k32;~m>V}2u~mEX#2x~mBy+x2242(~mBy,;2242(~may->2&XkG2;~mIy-_2&NXd2;~mGz,{4<6:.:B*B:XC4>6:.>B*BBXSA+A:X]E&E<~r#z+625z s2+zN=`HXI@YMXIAXZYUM8X4K/:Q!Z&33 3YWX[~mB`{zKt4z (zV/z 3zRw2%Wd39]S11z$PAXH5Xb;ZQWU1ZgWP%3~o@{Dgl#gd}T){Uo{y5_d{e@}C(} WU9|cB{w}bzvV|)[} H|zT}d||0~{]Q|(l{|x{iv{dw}(5}[Z|kuZ }cq{{y|ij}.I{idbof%cu^d}Rj^y|-M{ESYGYfYsZslS`?ZdYO__gLYRZ&fvb4oKfhSf^d<Yeasc1f&a=hnYG{QY{D`Bsa|u,}Dl|_Q{C%xK|Aq}C>|c#ryW=}eY{L+`)][YF_Ub^h4}[X|?r|u_ex}TL@YR]j{SrXgo*|Gv|rK}B#mu{R1}hs|dP{C7|^Qt3|@P{YVV |8&}#D}ef{e/{Rl|>Hni}R1{Z#{D[}CQlQ||E}[s{SG_+i8eplY[=[|ec[$YXn#`hcm}YR|{Ci(_[ql|?8p3]-}^t{wy}4la&pc|3e{Rp{LqiJ],] `kc(]@chYnrM`O^,ZLYhZB]ywyfGY~aex!_Qww{a!|)*lHrM{N+n&YYj~Z b c#e_[hZSon|rOt`}hBXa^i{lh|<0||r{KJ{kni)|x,|0auY{D!^Sce{w;|@S|cA}Xn{C1h${E]Z-XgZ*XPbp]^_qbH^e[`YM|a||+=]!Lc}]vdBc=j-YSZD]YmyYLYKZ9Z>Xcczc2{Yh}9Fc#Z.l{}(D{G{{mRhC|L3b#|xK[Bepj#ut`H[,{E9Yr}1b{[e]{ZFk7[ZYbZ0XL]}Ye[(`d}c!|*y`Dg=b;gR]Hm=hJho}R-[n}9;{N![7k_{UbmN]rf#pTe[x8}!Qcs_rs[m`|>N}^V})7{^r|/E}),}HH{OYe2{Skx)e<_.cj.cjoMhc^d}0uYZd!^J_@g,[[[?{i@][|3S}Yl3|!1|eZ|5IYw|1D}e7|Cv{OHbnx-`wvb[6[4} =g+k:{C:}ed{S]|2M]-}WZ|/q{LF|dYu^}Gs^c{Z=}h>|/i|{W]:|ip{N:|zt|S<{DH[p_tvD{N<[8Axo{X4a.^o^X>Yfa59`#ZBYgY~_t^9`jZHZn`>G[oajZ;X,i)Z.^~YJe ZiZF^{][[#Zt^|]Fjx]&_5dddW]P0C[-]}]d|y {C_jUql] |OpaA[Z{lp|rz}:Mu#]_Yf6{Ep?f5`$[6^D][^u[$[6^.Z8]]ePc2U/=]K^_+^M{q*|9tYuZ,s(dS{i=|bNbB{uG}0jZOa:[-]dYtu3]:]<{DJ_SZIqr_`l=Yt`gkTnXb3d@kiq0a`Z{|!B|}e}Ww{Sp,^Z|0>_Z}36|]A|-t}lt{R6pi|v8hPu#{C>YOZHYmg/Z4nicK[}hF_Bg|YRZ7c|crkzYZY}_iXcZ.|)U|L5{R~qi^Uga@Y[xb}&qdbd6h5|Btw[}c<{Ds53[Y7]?Z<|e0{L[ZK]mXKZ#Z2^tavf0`PE[OSOaP`4gi`qjdYMgys/?[nc,}EEb,eL]g[n{E_b/vcvgb.{kcwi`~v%|0:|iK{Jh_vf5lb}KL|(oi=LrzhhY_^@`zgf[~g)[J_0fk_V{T)}I_{D&_/d9W/|MU[)f$xW}?$xr4<{Lb{y4}&u{XJ|cm{Iu{jQ}CMkD{CX|7A}G~{kt)nB|d5|<-}WJ}@||d@|Iy}Ts|iL|/^|no|0;}L6{Pm]7}$zf:|r2}?C_k{R(}-w|`G{Gy[g]bVje=_0|PT{^Y^yjtT[[[l!Ye_`ZN]@[n_)j3nEgMa]YtYpZy].d-Y_cjb~Y~[nc~sCi3|zg}B0}do{O^{|$`_|D{}U&|0+{J3|8*]iayx{a{xJ_9|,c{Ee]QXlYb]$[%YMc*]w[aafe]aVYi[fZEii[xq2YQZHg]Y~h#|Y:thre^@^|_F^CbTbG_1^qf7{L-`VFx Zr|@EZ;gkZ@slgko`[e}T:{Cu^pddZ_`yav^Ea+[#ZBbSbO`elQfLui}.F|txYcbQ`XehcGe~fc^RlV{D_0ZAej[l&jShxG[ipB_=u:eU}3e8[=j|{D(}dO{Do[BYUZ0/]AYE]ALYhZcYlYP/^-^{Yt_1_-;YT`P4BZG=IOZ&]H[e]YYd[9^F[1YdZxZ?Z{Z<]Ba2[5Yb[0Z4l?]d_;_)a?YGEYiYv`_XmZs4ZjY^Zb]6gqGaX^9Y}dXZr[g|]Y}K aFZp^k^F]M`^{O1Ys]ZCgCv4|E>}8eb7}l`{L5[Z_faQ|c2}Fj}hw^#|Ng|B||w2|Sh{v+[G}aB|MY}A{|8o}X~{E8paZ:]i^Njq]new)`-Z>haounWhN}c#{DfZ|fK]KqGZ=:u|fqoqcv}2ssm}.r{]{nIfV{JW)[K|,Z{Uxc|]l_KdCb%]cfobya3`p}G^|LZiSC]U|(X|kBlVg[kNo({O:g:|-N|qT}9?{MBiL}Sq{`P|3a|u.{Uaq:{_o|^S}jX{Fob0`;|#y_@[V[K|cw[<_ }KU|0F}d3|et{Q7{LuZttsmf^kYZ`Af`}$x}U`|Ww}d]| >}K,r&|XI|*e{C/a-bmr1fId4[;b>tQ_:]hk{b-pMge]gfpo.|(w[jgV{EC1Z,YhaY^q,_G[c_g[J0YX]`[h^hYK^_Yib,` {i6vf@YM^hdOKZZn(jgZ>bzSDc^Z%[[o9[2=/YHZ(_/Gu_`*|8z{DUZxYt^vuvZjhi^lc&gUd4|<UiA`z]$b/Z?l}YI^jaHxe|;F}l${sQ}5g}hA|e4}?o{ih}Uz{C)jPe4]H^J[Eg[|AMZMlc}:,{iz}#*|gc{Iq|/:|zK{l&}#u|myd{{M&v~nV};L|(g|I]ogddb0xsd7^V})$uQ{HzazsgxtsO^l}F>ZB]r|{7{j@cU^{{CbiYoHlng]f+nQ[bkTn/}<-d9q {KXadZYo+n|l[|lc}V2{[a{S4Zam~Za^`{HH{xx_SvF|ak=c^[v^7_rYT`ld@]:_ub%[$[m](Shu}G2{E.ZU_L_R{tz`vj(f?^}hswz}GdZ}{S:h`aD|?W|`dgG|if{a8|J1{N,}-Ao3{H#{mfsP|[ bzn+}_Q{MT{u4kHcj_q`eZj[8o0jy{p7}C|[}l){MuYY{|Ff!Ykn3{rT|m,^R|,R}$~Ykgx{P!]>iXh6[l[/}Jgcg{JYZ.^qYfYIZl[gZ#Xj[Pc7YyZD^+Yt;4;`e8YyZVbQ7YzZxXja.7SYl[s]2^/Ha$[6ZGYrb%XiYdf2]H]kZkZ*ZQ[ZYS^HZXcCc%Z|[(bVZ]]:OJQ_DZCg<[,]%Zaa [g{C00HY[c%[ChyZ,Z_`PbXa+eh`^&jPi0a[ggvhlekL]w{Yp^v}[e{~;k%a&k^|nR_z_Qng}[E}*Wq:{k^{FJZpXRhmh3^p>de^=_7`|ZbaAZtdhZ?n4ZL]u`9ZNc3g%[6b=e.ZVfC[ZZ^^^hD{E(9c(kyZ=bb|Sq{k`|vmr>izlH[u|e`}49}Y%}FT{[z{Rk}Bz{TCc/lMiAqkf(m$hDc;qooi[}^o:c^|Qm}a_{mrZ(pA`,}<2sY| adf_%|}`}Y5U;}/4|D>|$X{jw{C<|F.hK|*A{MRZ8Zsm?imZm_?brYWZrYx`yVZc3a@f?aK^ojEd {bN}/3ZH]/$YZhm^&j 9|(S|b]mF}UI{q&aM]LcrZ5^.|[j`T_V_Gak}9J[ ZCZD|^h{N9{~&[6Zd{}B}2O|cv]K}3s}Uy|l,fihW{EG`j_QOp~Z$F^zexS`dcISfhZBXP|.vn|_HYQ|)9|cr]<`&Z6]m_(ZhPcSg>`Z]5`~1`0Xcb4k1{O!bz|CN_T{LR|a/gFcD|j<{Z._[f)mPc:1`WtIaT1cgYkZOaVZOYFrEe[}T$}Ch}mk{K-^@]fH{Hdi`c*Z&|Kt{if[C{Q;{xYB`dYIX:ZB[}]*[{{p9|4GYRh2ao{DS|V+[zd$`F[ZXKadb*A] Ys]Maif~a/Z2bmclb8{Jro_rz|x9cHojbZ{GzZx_)]:{wAayeDlx}<=`g{H1{l#}9i|)=|lP{Qq}.({La|!Y{i2EZfp=c*}Cc{EDvVB|;g}2t{W4av^Bn=]ri,|y?|3+}T*ckZ*{Ffr5e%|sB{lx^0]eZb]9[SgAjS_D|uHZx]dive[c.YPkcq/}db{EQh&hQ|eg}G!ljil|BO]X{Qr_GkGl~YiYWu=c3eb}29v3|D|}4i||.{Mv})V{SP1{FX}CZW6{cm|vO{pS|e#}A~|1i}81|Mw}es|5[}3w{C`h9aL]o{}p[G`>i%a1Z@`Ln2bD[$_h`}ZOjhdTrH{[j_:k~kv[Sdu]CtL}41{I |[[{]Zp$]XjxjHt_eThoa#h>sSt8|gK|TVi[Y{t=}Bs|b7Zpr%{gt|Yo{CS[/{iteva|cf^hgn}($_c^wmb^Wm+|55jrbF|{9^ q6{C&c+ZKdJkq_xOYqZYSYXYl`8]-cxZAq/b%b*_Vsa[/Ybjac/OaGZ4fza|a)gY{P?| I|Y |,pi1n7}9bm9ad|=d{aV|2@[(}B`d&|Uz}B}{`q|/H|!JkM{FU|CB|.{}Az}#P|lk}K{|2rk7{^8^?`/|k>|Ka{Sq}Gz}io{DxZh[yK_#}9<{TRdgc]`~Z>JYmYJ]|`!ZKZ]gUcx|^E[rZCd`f9oQ[NcD_$ZlZ;Zr}mX|=!|$6ZPZYtIo%fj}CpcN|B,{VDw~gb}@hZg`Q{LcmA[(bo`<|@$|o1|Ss}9Z_}tC|G`{F/|9nd}i=}V-{L8aaeST]daRbujh^xlpq8|}zs4bj[S`J|]?G{P#{rD{]I`OlH{Hm]VYuSYUbRc*6[j`8]pZ[bt_/^Jc*[<Z?YE|Xb|?_Z^Vcas]h{t9|Uwd)_(=0^6Zb{Nc} E[qZAeX[a]P^|_J>e8`W^j_Y}R{{Jp__]Ee#e:iWb9q_wKbujrbR}CY`,{mJ}gz{Q^{t~N|? gSga`V_||:#mi}3t|/I`X{N*|ct|2g{km}gi|{={jC}F;|E}{ZZjYf*frmu}8Tdroi{T[|+~}HG{cJ}DM{Lp{Ctd&}$hi3|FZ| m}Kr|38}^c|m_|Tr{Qv|36}?Up>|;S{DV{k_as}BK{P}}9p|t`jR{sAm4{D=b4pWa[}Xi{EjwEkI}3S|E?u=X0{jf} S|NM|JC{qo^3cm]-|JUx/{Cj{s>{Crt[UXuv|D~|j|d{YXZR}Aq}0r}(_{pJfi_z}0b|-vi)Z mFe,{f4|q`b{}^Z{HM{rbeHZ|^x_o|XM|L%|uFXm}@C_{{Hhp%a7|0p[Xp+^K}9U{bP}: tT}B|}+$|b2|[^|~h{FAby[`{}xgygrt~h1[li`c4vz|,7p~b(|mviN}^pg[{N/|g3|^0c,gE|f%|7N{q[|tc|TKA{LU}I@|AZp(}G-sz{F |qZ{}F|f-}RGn6{Z]_5})B}UJ{FFb2]4ZI@v=k,]t_Dg5Bj]Z-]L]vrpdvdGlk|gF}G]|IW}Y0[G| /bo|Te^,_B}#n^^{QHYI[?hxg{[`]D^IYRYTb&kJ[cri[g_9]Ud~^_]<p@_e_XdNm-^/|5)|h_{J;{kacVopf!q;asqd}n)|.m|bf{QW|U)}b+{tL|w``N|to{t ZO|T]jF}CB|0Q{e5Zw|k |We}5:{HO{tPwf_uajjBfX}-V_C_{{r~gg|Ude;s+}KNXH}! `K}eW{Upwbk%ogaW}9EYN}YY|&v|SL{C3[5s.]Y]I]u{M6{pYZ`^,`ZbCYR[1mNg>rsk0Ym[jrE]RYiZTr*YJ{Ge|%-lf|y(`=[t}E6{k!|3)}Zk} ][G{E~cF{u3U.rJ|a9p#o#ZE|?|{sYc#vv{E=|LC}cu{N8`/`3`9rt[4|He{cq|iSYxY`}V |(Q|t4{C?]k_Vlvk)BZ^r<{CL}#h}R+[<|i=}X|{KAo]|W<`K{NW|Zx}#;|fe{IMr<|K~tJ_x}AyLZ?{GvbLnRgN}X&{H7|x~}Jm{]-| GpNu0}.ok>|c4{PYisrDZ|fwh9|hfo@{H~XSbO]Odv]%`N]b1Y]]|eIZ}_-ZA]aj,>eFn+j[aQ_+]h[J_m_g]%_wf.`%k1e#Z?{CvYu_B^|gk`Xfh^M3`afGZ-Z|[m{L}|k3cp[it ^>YUi~d>{T*}YJ{Q5{Jxa$hg|%4`}|LAgvb }G}{P=|<;Ux{_skR{cV|-*|s-{Mp|XP|$G|_J}c6cM{_=_D|*9^$ec{V;|4S{qO|w_|.7}d0|/D}e}|0G{Dq]Kdp{}dfDi>}B%{Gd|nl}lf{C-{y}|ANZr}#={T~|-(}c&{pI|ft{lsVP}){|@u}!W|bcmB{d?|iW|:dxj{PSkO|Hl]Li:}VYk@|2={fnWt{M3`cZ6|)}|Xj}BYa?vo{e4|L7|B7{L7|1W|lvYO}W8nJ|$Vih|{T{d*_1|:-n2dblk``fT{Ky|-%}m!|Xy|-a{Pz}[l{kFjz|iH}9N{WE{x,|jz}R {P|{D)c=nX|Kq|si}Ge{sh|[X{RF{t`|jsr*fYf,rK|/9}$}}Nf{y!1|<Std}4Wez{W${Fd_/^O[ooqaw_z[L`Nbv[;l7V[ii3_PeM}.h^viqYjZ*j1}+3{bt{DR[;UG}3Og,rS{JO{qw{d<_zbAh<R[1_r`iZTbv^^a}c{iEgQZ<exZFg.^Rb+`Uj{a+{z<[~r!]`[[|rZYR|?F|qppp]L|-d|}K}YZUM|=Y|ktm*}F]{D;g{uI|7kg^}%?Z%ca{N[_<q4xC]i|PqZC]n}.bDrnh0Wq{tr|OMn6tM|!6|T`{O`|>!]ji+]_bTeU}Tq|ds}n|{Gm{z,f)}&s{DPYJ`%{CGd5v4tvb*hUh~bf]z`jajiFqAii]bfy^U{Or|m+{I)cS|.9k:e3`^|xN}@Dnlis`B|Qo{`W|>||kA}Y}{ERYuYx`%[exd`]|OyiHtb}HofUYbFo![5|+]gD{NIZR|Go}.T{rh^4]S|C9_}xO^i`vfQ}C)bK{TL}cQ|79iu}9a];sj{P.o!f[Y]pM``Jda^Wc9ZarteBZClxtM{LW}l9|a.mU}KX}4@{I+f1}37|8u}9c|v${xGlz}jP{Dd1}e:}31}%3X$|22i<v+r@~mf{sN{C67G97855F4YL5}8f{DT|xy{sO{DXB334@55J1)4.G9A#JDYtXTYM4, YQD9;XbXm9SX]IB^4UN=Xn<5(;(F3YW@XkH-X_VM[DYM:5XP!T&Y`6|,^{IS-*D.H>:LXjYQ0I3XhAF:9:(==.F*3F1189K/7163D,:@|e2{LS36D4hq{Lw/[email protected]:0307::6D7}&l{Mx657;89;,K5678H&93D(H<&<>0B90X^I;}Ag1{P%3A+>><975}[S{PZE453?4|T2{Q+5187;>447:81{C=hL6{Me^:=7ii{R=.=F<81;48?|h8}Uh{SE|,VxL{ST,7?9Y_5Xk3A#:$%YSYdXeKXOD8+TXh7(@>(YdXYHXl9J6X_5IXaL0N?3YK7Xh!1?XgYz9YEXhXaYPXhC3X`-YLY_XfVf[EGXZ5L8BXL9YHX]SYTXjLXdJ: YcXbQXg1PX]Yx4|Jr{Ys4.8YU+XIY`0N,<H%-H;:0@,74/:8546I=9177154870UC]d<C3HXl7ALYzXFXWP<<?E!88E5@03YYXJ?YJ@6YxX-YdXhYG|9o{`iXjY_>YVXe>AYFX[/(I@0841?):-B=14337:8=|14{c&93788|di{cW-0>0<097/A;N{FqYpugAFT%X/Yo3Yn,#=XlCYHYNX[Xk3YN:YRT4?)-YH%A5XlYF3C1=NWyY}>:74-C673<69545v {iT85YED=64=.F4..9878/D4378?48B3:7:7/1VX[f4{D,{l<5E75{dAbRB-8-@+;DBF/$ZfW8S<4YhXA.(5@*11YV8./S95C/0R-A4AXQYI7?68167B95HA1*<M3?1/@;/=54XbYP36}lc{qzSS38:19?,/39193574/66878Yw1X-87E6=;964X`T734:>86>1/=0;(I-1::7ALYGXhF+Xk[@W%TYbX7)KXdYEXi,H-XhYMRXfYK?XgXj.9HX_SX]YL1XmYJ>Y}WwIXiI-3-GXcYyXUYJ$X`Vs[7;XnYEZ;XF! 3;%8;PXX(N3Y[)Xi1YE&/ :;74YQ6X`33C;-(>Xm0(TYF/!YGXg8 9L5P01YPXO-5%C|qd{{/K/E6,=0144:361:955;6443@?B7*7:F89&F35YaX-CYf,XiFYRXE_e{}sF 0*7XRYPYfXa5YXXY8Xf8Y~XmA[9VjYj*#YMXIYOXk,HHX40YxYMXU8OXe;YFXLYuPXP?EB[QV0CXfY{:9XV[FWE0D6X^YVP*$4%OXiYQ(|xp|%c3{}V`1>Y`XH00:8/M6XhQ1:;3414|TE|&o@1*=81G8<3}6<|(f6>>>5-5:8;093B^3U*+*^*UT30XgYU&7*O1953)5@E78--F7YF*B&0:%P68W9Zn5974J9::3}Vk|-,C)=)1AJ4+<3YGXfY[XQXmT1M-XcYTYZXCYZXEYXXMYN,17>XIG*SaS|/eYJXbI?XdNZ+WRYP<F:R PXf;0Xg`$|1GX9YdXjLYxWX!ZIXGYaXNYm6X9YMX?9EXmZ&XZ#XQ>YeXRXfAY[4 ;0X!Zz0XdN$XhYL XIY^XGNXUYS/1YFXhYk.TXn4DXjB{jg|4DEX]:XcZMW=A.+QYL<LKXc[vV$+&PX*Z3XMYIXUQ:ZvW< YSXFZ,XBYeXMM)?Xa XiZ4/EXcP3%}&-|6~:1(-+YT$@XIYRBC<}&,|7aJ6}bp|8)K1|Xg|8C}[T|8Q.89;-964I38361<=/;883651467<7:>?1:.}le|:Z=39;1Y^)?:J=?XfLXbXi=Q0YVYOXaXiLXmJXO5?.SFXiCYW}-;|=u&D-X`N0X^,YzYRXO(QX_YW9`I|>hZ:N&X)DQXP@YH#XmNXi$YWX^=!G6YbYdX>XjY|XlX^XdYkX>YnXUXPYF)FXT[EVTMYmYJXmYSXmNXi#GXmT3X8HOX[ZiXN]IU2>8YdX1YbX<YfWuZ8XSXcZU%0;1XnXkZ_WTG,XZYX5YSX Yp 05G?XcYW(IXg6K/XlYP4XnI @XnO1W4Zp-9C@%QDYX+OYeX9>--YSXkD.YR%Q/Yo YUX].Xi<HYEZ2WdCE6YMXa7F)=,D>-@9/8@5=?7164;35387?N<618=6>7D+C50<6B03J0{Hj|N9$D,9I-,.KB3}m |NzE0::/81YqXjMXl7YG; [.W=Z0X4XQY]:MXiR,XgM?9$9>:?E;YE77VS[Y564760391?14941:0=:8B:;/1DXjFA-564=0B3XlH1+D85:0Q!B#:-6&N/:9<-R3/7Xn<*3J4.H:+334B.=>30H.;3833/76464665755:/83H6633:=;.>5645}&E|Y)?1/YG-,93&N3AE@5 <L1-G/8A0D858/30>8<549=@B8] V0[uVQYlXeD(P#ID&7T&7;Xi0;7T-$YE)E=1:E1GR):--0YI7=E<}n9|aT6783A>D7&4YG7=391W;Zx<5+>F#J39}o/|cc;6=A050EQXg8A1-}D-|d^5548083563695D?-.YOXd37I$@LYLWeYlX<Yd+YR A$;3-4YQ-9XmA0!9/XLY_YT(=5XdDI>YJ5XP1ZAW{9>X_6R(XhYO65&J%DA)C-!B:97#A9;@?F;&;(9=11/=657/H,<8}bz|j^5446>.L+&Y^8Xb6?(CYOXb*YF(8X`FYR(XPYVXmPQ%&DD(XmZXW??YOXZXfCYJ79,O)XnYF7K0!QXmXi4IYFRXS,6<%-:YO(+:-3Q!1E1:W,Zo}Am|n~;3580534*?3Zc4=9334361693:30C<6/717:<1/;>59&:4}6!|rS36=1?75<8}[B|s809983579I.A.>84758=108564741H*9E{L{|u%YQ<%6XfH.YUXe4YL@,>N}Tv|ve*G0X)Z;/)3@A74(4P&A1X:YVH97;,754*A66:1 D739E3553545558E4?-?K17/770843XAYf838A7K%N!YW4.$T19Z`WJ*0XdYJXTYOXNZ 1XaN1A+I&Xi.Xk3Z3GB&5%WhZ1+5#Y[X<4YMXhQYoQXVXbYQ8XSYUX4YXBXWDMG0WxZA[8V+Z8X;D],Va$%YeX?FXfX[XeYf<X:Z[WsYz8X_Y]%XmQ(!7BXIZFX]&YE3F$(1XgYgYE& +[+W!<YMYFXc;+PXCYI9YrWxGXY9DY[!GXiI7::)OC;*$.>N*HA@{C|}&k=:<TB83X`3YL+G4XiK]i}(fYK<=5$.FYE%4*5*H*6XkCYL=*6Xi6!Yi1KXR4YHXbC8Xj,B9ZbWx/XbYON#5B}Ue}+QKXnF1&YV5XmYQ0!*3IXBYb71?1B75XmF;0B976;H/RXU:YZX;BG-NXj;XjI>A#D3B636N;,*%<D:0;YRXY973H5)-4FXOYf0:0;/7759774;7;:/855:543L43<?6=E,.A4:C=L)%4YV!1(YE/4YF+ F3%;S;&JC:%/?YEXJ4GXf/YS-EXEYW,9;E}X$}547EXiK=51-?71C%?57;5>463553Zg90;6447?<>4:9.7538XgN{|!}9K/E&3-:D+YE1)YE/3;37/:05}n<}:[email protected]=.(A Q3%6K>3(P3#AYE$-6H/456*C=.XHY[#S.<780191;057C)=6HXj?955B:K1 E>-B/9,;5.!L?:0>/.@//:;7833YZ56<4:YE=/:7Z_WGC%3I6>XkC*&NA16X=Yz2$X:Y^&J48<99k8}CyB-61<18K946YO4{|N}E)YIB9K0L>4=46<1K0+R;6-=1883:478;4,S+3YJX`GJXh.Yp+Xm6MXcYpX(>7Yo,/:X=Z;Xi0YTYHXjYmXiXj;*;I-8S6N#XgY}.3XfYGO3C/$XjL$*NYX,1 6;YH&<XkK9C#I74.>}Hd`A748X[T450[n75<4439:18A107>|ET}Rf<1;14876/Yb983E<5.YNXd4149>,S=/4E/<306443G/06}0&}UkYSXFYF=44=-5095=88;63844,9E6644{PL}WA8:>)7+>763>>0/B3A545CCnT}Xm|dv}Xq1L/YNXk/H8;;.R63351YY747@15YE4J8;46;.38.>4A369.=-83,;Ye3?:[email protected]+N353;/;@(X[YYD>@/05-I*@.:551741Yf5>6A443<3535;.58/86=D4753442$635D1>0359NQ @73:3:>><Xn?;43C14 ?Y|X611YG1&<+,4<*,YLXl<1/AIXjF*N89A4Z576K1XbJ5YF.ZOWN.YGXO/YQ01:4G38Xl1;KI0YFXB=R<7;D/,/4>;$I,YGXm94@O35Yz66695385.>:6A#5}W7n^4336:4157597434433<3|XA}m`>=D>:4A.337370?-6Q96{`E|4A}C`|Qs{Mk|J+~r>|o,wHv>Vw}!c{H!|Gb|*Ca5}J||,U{t+{CN[!M65YXOY_*B,Y[Z9XaX[QYJYLXPYuZ%XcZ8LY[SYPYKZM<LMYG9OYqSQYM~[e{UJXmQYyZM_)>YjN1~[f3{aXFY|Yk:48YdH^NZ0|T){jVFYTZNFY^YTYN~[h{nPYMYn3I]`EYUYsYIZEYJ7Yw)YnXPQYH+Z.ZAZY]^Z1Y`YSZFZyGYHXLYG 8Yd#4~[i|+)YH9D?Y^F~Y7|-eYxZ^WHYdYfZQ~[j|3>~[k|3oYmYqY^XYYO=Z*4[]Z/OYLXhZ1YLZIXgYIHYEYK,<Y`YEXIGZI[3YOYcB4SZ!YHZ*&Y{Xi3~[l|JSY`Zz?Z,~[m|O=Yi>??XnYWXmYS617YVYIHZ(Z4[~L4/=~[n|Yu{P)|];YOHHZ}~[o33|a>~[r|aE]DH~[s|e$Zz~[t|kZFY~XhYXZB[`Y}~[u|{SZ&OYkYQYuZ2Zf8D~[v}% ~[w3},Q[X]+YGYeYPIS~[y}4aZ!YN^!6PZ*~[z}?E~[{3}CnZ=~[}}EdDZz/9A3(3S<,YR8.D=*XgYPYcXN3Z5 4)~[~}JW=$Yu.XX~] }KDX`PXdZ4XfYpTJLY[F5]X~[2Yp}U+DZJ::<446[m@~]#3}]1~]%}^LZwZQ5Z`/OT<Yh^ -~]&}jx[ ~m<z!%2+~ly4VY-~o>}p62yz!%2+Xf2+~ly4VY-zQ`z (=] 2z~o2",C={" ":0,"!":1},c=34,i=2,p,s=[],u=String.fromCharCode,t=u(12539);while(++c<127)C[u(c)]=c^39&&c^92?i++:0;i=0;while(0<=(c=C[a.charAt(i++)]))if(16==c)if((c=C[a.charAt(i++)])<87){if(86==c)c=1879;while(c--)s.push(u(++p))}else s.push(s.join("").substr(8272,360));else if(c<86)s.push(u(p+=c<51?c-16:(c-55)*92+C[a.charAt(i++)]));else if((c=((c-86)*92+C[a.charAt(i++)])*92+C[a.charAt(i++)])<49152)s.push(u(p=c<40960?c:c|57344));else{c&=511;while(c--)s.push(t);p=12539}return s.join("")')();

	JCT8836=JCT11280.substring(0,8836);

//============================引用ここまで===================================

}catch(e){
	GM_log("ecl:" + e);
}


}//-------------ecl()ここまで--------------------



})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址