PSDTool は Photoshop 形式(*.psd または *.psb) のファイルをブラウザで読み込んでレイヤーの表示/非表示を切り替えたり、合成された画像に名前を付けて保存したりできるツールです。
読み込む PSD ファイルはサーバーには一切送信されず完全にブラウザだけで処理されるため、プライベートな用途にも使用できます。
このツールは「イラストを描く人がレイヤーの表示/非表示を切り替えた様々なパターンを PNG で書き出したものを配布する」といった時間の浪費と手間を減らすために、 また配布されているイラストを利用したい人がソフトウェアを何も用意しなくても最新のブラウザさえあれば PSD ファイルを扱えるようにすることを目的に作りました。
Photoshop 形式は sai、CLIP STUDIO PAINT、openCanvas、Krita、メディバンペイント、FireAlpaca など様々なペイントソフトで保存可能な共通の保存フォーマットです。
これを機に、是非 Photoshop 形式での配布を検討してみてください。
PSDTool の使い方を紹介する動画があります。
Microsoft Edge / Google Chrome / Mozilla Firefox 上でブラウザ画面サイズ 1024x600 以上を基準に動作確認しています。
Mac を持っていないので Apple Safari ではテストしていません。
ブラウザは常に最新版をお使いください。
chrome://flags/ をブラウザで開いて「アクセラレーションによる 2D キャンバス表示」を無効にしてみてください。
この設定によって症状が改善される場合があります。
ファイルを開く際に、いくつかのオプションが設定可能です。
自動トリミングを有効にすると PSD ファイルに存在する全てのレイヤーを表示したとしても使われることがない、完全な余白のみを削ります。
ある瞬間に表示している内容でトリミングするわけではないので、「ウサギの耳」「翼」のように一部または全部の方向へ突出するようなレイヤーが存在する場合、その分の余白は常に確保されます。
上記サンプルでは、自動トリミングありの場合は左右はギリギリまでカットされ、上部は「左向き用・主線」レイヤーを表示するための余白が数ピクセルだけ残っています。
なお縮小する場合、縮小後のサイズを例えば 320px としても上記サンプルのように余白の有無によって画像の縮小率が変わってきます。 余白を上手く使って複数の PSD ファイル間で同程度のサイズ感になるよう整えられている場合などもあるため、自動トリミングの使用には注意が必要です。
独自拡張機能を無効化は PSDTool での使用を想定していない PSD ファイルを読む際に使う機能で、PSDTool が持つ独自拡張機能 が認識されないようにします。 レイヤー名が独自拡張機能と衝突してしまい、レイヤー表示切替のチェックボックスがラジオボタンになったり消えてしまっている場合に有用です。
ファイルを開くと画面には以下の様なインターフェイスが現れます。
タブで「レイヤー」が選ばれている時はレイヤーツリー画面 / シンプルビュー画面、「お気に入り」が選ばれている時はお気に入り編集画面が表示されます。
⇄ を押すと左右、⇅ を押すと上下に画像を反転します。文字やアクセサリー、髪型や服の装飾などのように、反転すると問題がある場合もあるため使用には注意が必要ですが、PSD ファイル側で独自拡張機能を使って対策されている場合は正しく表示される場合もあります。
読み込んだ画像が大きすぎる場合、ここで保存前に縮小することができます。 縦か横のどちらかの最大ピクセル数を指定すると、その大きさを超えないように必要に応じて縮小されます。この設定によって元のサイズより画像が拡大されることはありません。
画像を通し番号付きで保存するための機能です。 スクリーンショットのように入力欄がそれぞれ「im5467479_」「0」の状態で「.png」ボタンを押すと「im5467479_0000.png」というファイル名で保存され、そのまま同じボタンを押す度に数字が足されていきます。
数字の入力欄を空欄にすることで、通し番号が付かない、ただの画像保存ボタンとしても利用可能です。
合成結果プレビューには現在のレイヤー選択状態が表示されます。
また、お気に入りを選択した時は一時的にお気に入りの内容を表示するお気に入りプレビューに変化します。 お気に入りプレビューモードはレイヤータブに切り替えたりすることで解除されます。
タブで「レイヤー」を選ぶとレイヤー表示構成の切り替えができるレイヤーツリー画面またはシンプルビュー画面が表示されます。
シンプルビュー画面を使うためにはお気に入りを適切に組み立てる必要があり、使用できない状態の時は「シンプルビューに切り替え」ボタンも表示されません。
レイヤーツリー画面ではチェックボックスやラジオボタンの切り替えで、シンプルビュー画面ではセレクトボックスやスライダーによる切り替えによって、画像のレイヤー表示構成を変更することができます。
また、Ctrl(Command) キーを押しながらチェックボックスをクリックすると、同じ階層にある他のレイヤーのチェックをすべて外すことができます。
タブで「お気に入り」を選ぶとレイヤー表示構成の保存や読み込みができるお気に入り編集画面が表示されます。
作成したお気に入りはシングルクリックでプレビュー、ダブルクリックでレイヤー一覧に読み込むことができます。その他、Shift や Ctrl(Command) を押しながらクリックで複数選択や、ドラッグで項目の入れ替え、Ctrl(Command) を押しながらドラッグでコピーなどもできます。
現在レイヤータブで選択している構成をお気に入りに追加します。
ショートカットキーを使用するとレイヤータブを表示していてもお気に入りに追加することができます。
項目の整理に利用可能なフォルダーを追加します。
項目の名前を変更します。
項目を削除します。削除の際には確認ダイアログはなく、元に戻す手段も用意されていないので気をつけて使用する必要があります。
複数のフォルダーを一気に作成するための機能です。フォルダー名を改行で区切って入力することで、効率的に複数のフォルダーを作成することができます。
お気に入りの項目の名前を効率的に変更するための機能です。変更したい項目が複数ある場合、こちらを使うことで作業効率が改善されるかもしれません。
入力欄を空欄にして名前の変更をすると自動的に連続した番号で埋めていく機能もあり、ダイアログの下に桁数や開始番号を指定する設定項目があります。
シンプルビューに関する設定項目があるダイアログが表示されます。
お気に入りを読み込んだ時に、シンプルビューが使える場合に振る舞いを変えることができます。
選ぶとダイアログが表示されます。
選択された PFV ファイルを読み込みます。
このダイアログを開かなくても、PSD ファイルを開く際に PFV ファイルも一緒にドラッグ&ドロップしたり、お気に入りタブ内のお気に入りツリーに PFV ファイルをドラッグ&ドロップすることで読み込むこともできます。できますが、マニュアルを読まない人は恐らく PFV ファイルを開くためにインポート内を探しに来ると思ったので、ここにも用意してある、というわけなんですよ。
ブラウザに自動保存されたお気に入りからインポートします。手動でインポートしなくても PSD ファイルを読み込んだ時に、読むべき PFV ファイルが特になければこの中からひとつ自動的に読み込まれます。
青い項目は同じ画像から作成されたお気に入りで、読み込んで利用できることが期待できます。
白い項目は読み込んでも画像のレイヤー構造の違いにより利用できない可能性もありますが、PFV ファイルにエクスポートし直すことはできます。
ここに現れるデータはブラウザのデータ削除などにより意図しないタイミングで読めなくなる可能性があるため、重要なデータは別途保存しておくことを推奨します。
選ぶとダイアログが表示されます。
お気に入りの情報を PFV(Psdtool FaVorites) ファイルに書き出します。
書き出した PFV ファイルはあとで自分でインポートして使用したり、PFV ファイルを配布して他人に利用してもらうこともできます。
また PFV ファイルは UTF-8 のテキストファイルなので、テキストエディタで開いて直接編集することもできます。
PSD ファイル / PFV ファイル / テキストファイルの3つを ZIP ファイルに入れておき、解凍せずに直接 PSDTool で開くと全てを読み込むことができます。
この仕組みにより、ZIP ファイルを PSDTool で読み込むだけでおすすめのレイヤー表示構成を最初からお気に入りに読み込んだ状態にもできます。
お気に入りのすべての項目を PNG ファイルで ZIP ファイルに書き出すことができます。 書き出す際には現在の反転や縮小の設定が適用されます。
ZIP ファイルには PFV ファイルも一緒に書き出されており、これを読み込むことで左右反転や縮小率を変えて書き出し直したり、お気に入りに更に項目を追加したい場合などにも利用できます。
もし ZIP ファイルで書き出し可能な容量やファイル数を超過する場合は、自動的に ZIP64 フォーマットで書き出されます。
なお、この項目は右端の ▼ をクリックすることで更に詳細な書き出しオプションを選ぶことができます。
シンプルビューの組み合わせで表現可能な全ての構成を PNG ファイルで ZIP ファイルに書き出すことができます。書き出す際には現在の反転や縮小の設定が適用されます。
ただし、「目」を変えるためのセレクトボックスが複数ある場合のように、全てのスライダーが同じ位置にあっても最後に触った項目によって結果が異なるような構成は正しく出力されません。
もし ZIP ファイルで書き出し可能な容量やファイル数を超過する場合は、自動的に ZIP64 フォーマットで書き出されます。
このボタンを押す場合はサブメニューから書き出し構造を選択する必要があります。
シンプルビューで表現できる画像データを Tiled Map Editor 用フォーマットでエクスポートするための設定ダイアログを新たに開きます。
通常の「シンプルビューの全パターンを ZIP ファイルでエクスポート」でエクスポートした場合に 1GB を超えるようなケースでも、この方式で出力すると数十MB程度にまで容量を縮めることができることがあります。
ただしこの出力方式は 16x16 のタイルチップが集められた PNG ファイルとタイルデータ定義ファイルの組み合わせで出力されるため、一般的な用途に使いやすい形式ではなく、Tiled Map Editor で読み込んだり、ゲーム開発用フレームワークなどで読み込むような用途に向いています。
JavaScript + HTML の形式で出力した場合には簡易的なシンプルビューとして使える HTML ファイルが付属しています。
zip ファイルをそのまま配布することで PSD ファイルを公開しないままで表現可能な組み合わせを確認できるようにしたり、 zip ファイルの中身を解凍して Web にアップロードしてオンラインで使えるようにしたり、ちょっとした用途に使うことができます。
PSD ファイルのレイヤー構造をタブで整形された文字コード UTF-8 改行コード '\n' のテキストファイルとして、概ね以下の様な形で出力します。
!眉 *(`・ω・´) *(´・ω・`) *普通 !くち *あー! *ふぇー *ムー *ワ !目 *つぶり *ぐるぐる *にっこり *通常 !下地 *左向き用・主線 *右向き用・主線
レイヤー名をテキストでコピーしたい場合など、レアケースで役に立ちます。
これはレイヤー一覧でラジオボタンやチェックボックスをクリックした後にショートカットキーを押すことで使用可能な機能です。現在フォーカスがある項目の階層をグループとして、それぞれを単独で選択した全てのパターンでお気に入りを自動生成します。
「グループからお気に入りを自動生成」とほとんど同じですが、生成した項目を入れるためのフィルター付きフォルダーも自動生成します。
お気に入りで作成したフォルダーをダブルクリックすると、フィルター設定画面が現れます。
フィルター機能を有効にすると、お気に入りを読み込む際に現在のレイヤー表示に対しお気に入りを一部にだけ適用することができるようになります。
フィルター機能が有効になっているフォルダーはアイコンが から に変わり、そのフォルダー以下にあるお気に入りはチェックが入っているレイヤーの項目だけを読み込むように変わります。
上記の例では元々は眉、目、口がそれぞれ異なるお気に入りが、フィルターを指定することにより口だけの変化に変わる様子を示しています。
また、口以外は元々の状態を維持しようとするため、レイヤー一覧で他のパーツを変更すればその状態から口だけを変更をすることができます。
この例の場合は直接口レイヤーを切り替えることと本質的な違いがありませんが、例えば複数のパーツの切り替えが必要な服装や、口だけではなく表情全体など大きな単位でフィルターを有効にすると、現在の服装やポーズを維持したまま表情だけをお気に入りから読み込むような使い方ができます。
シンプルビューはレイヤーツリーでチェックボックスやラジオボタンを操作する代わりに、セレクトボックスやスライダーから項目を選んで組み合わせられる画面です。シンプルビューを有効化するためには、お気に入りにシンプルビュー用の項目を作成する必要があります。
このフォルダーの中がシンプルビュー表示用であることを指定します。
フォルダーを作り、その中にパーツを切り替えたお気に入りを一つ以上作成して、そのフォルダーでフィルター機能を有効化します。フィルター機能を有効化していない場合、シンプルビューの選択肢として現れません。
お気に入りの登録順はそのまま選択項目の順番として使用されます。また、選択項目内で一番上にある項目は一番最初にシンプルビューを開いた時のデフォルト項目として使用されます。
必要であればフォルダーはもっと階層を深くすることもできますが、深くなると利用する時の手間が増える可能性もあります。
1 の手順が完了した時点で、レイヤータブに切り替えると「シンプルビューに切り替え」のボタンが表示されるようになります。
2 の手順が完了していれば、作成した項目がシンプルビューでの選択項目として現れるようになります。
なお、お気に入りを1つしか入れていないフォルダーがある場合、その項目はシンプルビュー上で変更できないためグレーアウト状態で表示されます。
これが上記サンプルで作成したお気に入りのシンプルビュー表示例です。それぞれの各項目の一番上にあったものがデフォルトの表示項目として表示され、「体」に関してはお気に入りがひとつしか登録されていないためグレーアウトされています。
お気に入り内にシンプルビュー用の親フォルダーが複数ある場合、一番上の選択項目で選んで切り替えることができるようになります。
実際にシンプルビュー用のお気に入りデータを作成する例です。
PSDTool は「最大公約数的な PSD ファイル読み込みツール」というのを目標に開発しているため、Photoshop 以外のソフトでも頻繁に使われるであろう機能を優先的に実装しています。
ZIP ファイルに格納されている PSD ファイルは、ファイルを取り出さずにそのまま開くことができます。
以下に示す条件のいずれかを満たすことで、PSDTool はあなたのサイトにあるファイルを読むことができます。
あなたのサイトに配置された配布用の ZIP ファイルをこの仕組みで直接開くこともできます。
PSD ファイルを作る際にレイヤー名に特定の記号を付けることで、レイヤーの表示/非表示の使い勝手を改善することができます。
これらの機能を使用しても画像編集ソフトで開く際には今まで通り使用でき、編集が不便になることはありません。
また、PSDTool で読み込む場合でもオプションから独自拡張機能を無効化することで、一般的なソフトと同じ状態で読み込むこともできます。
レイヤー名の先頭に半角のアスタリスク「*」をつけると、選択項目がチェックボックスではなくラジオボタンになります。
ラジオボタンは親のグループレイヤー(画像例では「口」)に所属するようになります。
ラジオボタン内のレイヤーが複数表示されたまま PSD ファイルが保存されていた場合、その中で一番上のものがデフォルト表示されます。
レイヤー名の先頭に半角のエクスクラメーションマーク「!」をつけると、選択項目からチェックボックスが消えます。
チェックボックスがない項目は表示状態になり、非表示にできなくなります。
強制表示設定にしたレイヤーを非表示にして PSD ファイルを保存しても、PSDTool で表示する際は強制的に表示状態になります。
レイヤー名の最後に「:flipx」「:flipy」「:flipxy」のいずれかをつけると、そのレイヤーはそれぞれ左右反転、上下反転、上下左右反転をしている時にだけ使用するレイヤーとして扱われます。同じ階層内に「通常表示用のレイヤー」と「反転表示用のレイヤー」の2つのレイヤーを用意し、その名前を「通常用の名前」「通常用の名前:flipx」のようにすることで、この機能が有効化されます。
例えば「体」というレイヤーを「通常用」と「左右反転用」の2種類用意する場合、それぞれの名前を「体」「体:flipx」などのようにしておきます。正しく設定すると PSDTool で読み込んだ時にレイヤー一覧から「体:flipx」が消え、「体」レイヤーを表示している状態で左右反転すると「体:flipx」の内容で自動的に表示されます。
この機能はグループレイヤーで使うこともできますが、グループレイヤーで使う場合は「通常用のグループレイヤー」と「反転表示用のグループレイヤー」の中に含まれる子レイヤーの名前を完全に一致させておく必要があります。 一致していないレイヤーがある場合、その場所は正しく反転が適用されません。
PFV ファイルは PSDTool で登録したお気に入りの情報が格納された PSDTool 独自のファイル形式です。
ファイルの実態は BOM なし UTF-8、改行コード '\n' のテキストファイルで、概ね以下の構造になっています。
[PSDToolFavorites-v1] root-name/お気に入り //フォルダー名/お気に入り登録名 グループ1/レイヤー1 グループ2/*グループ3 //フォルダー名/空フォルダ~folder
まず固定のヘッダーとして必ずファイルの先頭から [PSDToolFavorites-v1]
が現れ、行頭に //
が現れるまではファイル全体に対する設定が続きます。//
が現れたあとは次の //
が現れるまでがそのお気に入りの設定です。
日本語で書かれている箇所は実際にはそれぞれが以下の JavaScript で示す URL エンコードの亜種によりエンコードされています。 テキストエディタによる編集を容易にするためエンコードされる文字種は絞られていますが、デコードには通常の URL デコーダーが使用できます。
function encode(s) { return s.replace(/[\x00-\x1f\x22\x25\x27\x2f\x5c\x7e\x7f]/g, function(m) { return '%' + ('0' + m[0].charCodeAt(0).toString(16)).slice(-2); }); }
ブックマーク内に空フォルダーがある場合にはそれを示すために //
から始まる識別子は更に後ろに ~folder
が付与される場合があります。
また、フィルターが有効になっているフォルダーがある場合は同じように ~filter
が付与され、通常のお気に入りと同じ形式でフィルタリングしない項目が列挙されます。
例えば //グループ1/レイヤー1
を解析して階層ごとに取得したい場合、まず先頭2文字を捨ててから ~
の有無を検索し、ある場合はまず ~
で分割し、後ろが folder
など既知の識別子であるか確認し、未知の識別子の場合は次の //
まで読み飛ばすようにしてください。これを怠ると将来識別子が追加された際に正しく処理できなくなる可能性があります(やってても互換性が維持できるかはわかりませんが…)。
root-name
にはお気に入りツリーの一番上の名前が保存されています。
レイヤー構造に関するデータは レイヤー1/レイヤー2/レイヤー3
のような形になっていて、この場合だと「レイヤー1」「レイヤー2」「レイヤー3」全てにチェックが入っていることを示しています。また、それぞれのレイヤー名は上記の同じ URL エンコードの亜種によりエンコードされています。
しかし稀に レイヤー1/レイヤー2\1/レイヤー3
のように \
バックスラッシュ(円記号)と数字が入っていることがあり、これは PSD ファイルで同じレイヤーの階層に同じ名前のレイヤーが複数あることを示しています。\
の後ろの数字はレイヤーの重ねあわせ順で、下から 0
から始まるインデックスで付与されていますが、0
の場合は省略されます。
この例の場合だと、レイヤー1
の子階層に レイヤー2
という名前のレイヤーが複数あり、レイヤー2\1
は下から数えて2番めの レイヤー2
です。
レイヤー名自体に \
が含まれている場合はエンコードによって %5c
になっているため、\
の存在はデコード処理の前にチェックすることで見つけることができます。
お使いの ZIP ファイル解凍ソフトが近年普及している仕様(UTF-8ファイル名)に対応していないのが原因です。
Windows7 では KB2704299 が適用された環境で、Windows8 以降ならそのままで、標準で使用可能な「圧縮フォルダ」で正常に解凍できます。 フリーウェアでは 7-zip や PeaZip、Explzh(家庭内や個人利用等の一般での使用のみ無償)などで解凍できます。
明らかにおかしい場合は誤って独自拡張機能が適用されているかもしれません。
画像を開く前にオプションから「独自拡張機能を無効化」を選ぶと誤判定を回避することができます。
この問題は PSDTool で開くことを想定していない PSD ファイルで起こることがあります。
ただし、世の中の大半の PSD ファイルは PSDTool で開くことを想定していませんし、PSD ファイル側に問題があるわけでもありません。
ユーザーが PSDTool(以下「本サービス」)をご利用になる際には事前に以下のプライバシーポリシーをお読みいただき、同意された場合にのみご利用ください。
なお、プライバシーポリシーは予告なく変更される場合があります。
本サービスでは、2018年1月9日より Google アナリティクスを使用しています。
Google アナリティクスを使用しているページにアクセスすると、Web ブラウザは Google に特定の情報(アクセスした Web ページのアドレスや IP アドレスなど)を自動的に送信します。また、Google が Web ブラウザの Cookie を設定および読み取りを行う場合があります。
(Google によるクッキーの収集および利用方法については Google アナリティクス利用規約 および Google 社のプライバシーポリシーによって定められています。)
本サービスではそれらの情報を本サービスの利用者数やトラフィック調査の目的に限り使用します。
なお、ユーザーは Google アナリティクス オプトアウト アドオンを利用することにより、これらの情報収集を無効化することができます。
ユーザーが本サービスで読み込む PSD/PSB/PFV ファイルに関わる全ての情報は本サービスを機能させる目的に限り使用されます。
これらの情報は Web ブラウザの内部でのみ使用され、外部に送信されることは一切ありません。
ユーザーが本サービスでお気に入りの編集を行う際、本サービスは Web ブラウザのローカルストレージにその情報を保存します。
この情報は同一の PSD/PSB ファイルを開いた際にお気に入りを復元させるため、またユーザーの操作によってお気に入りを復元する目的でのみ利用されます。
この情報が外部に送信されることは一切ありません。
本サービスのエクスポート機能で ZIP ファイルを作成する際に、本サービスは Web ブラウザの IndexedDB に一時的な情報を保存します。
これは巨大なファイルを作成する際に Web ブラウザがクラッシュするのを回避する目的で使用されており、保存された情報は ZIP ファイルの作成後に削除されます。
ただしブラウザを閉じるなどで ZIP ファイルの作成が中断された場合は、一定期間経過後に本サービスにアクセスした際に自動的に削除されます。
この情報が外部に送信されることは一切ありません。
PSDTool は以下のオープンソースソフトウェア/ライブラリ/ソースコードを使用して開発されました。
Copyright (c) 2009 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Copyright (c) 2013 Richard Musiol. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The MIT License (MIT) Copyright (c) [2014] [the_platinum_searcher] Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright jQuery Foundation and other contributors, https://jquery.org/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The MIT License (MIT) Copyright (c) 2011-2016 Twitter, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright © 2016 Eli Grey. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2014 - 2016 Simon Hagström Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright © 2012-2015 Craig Campbell. Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS
Copyright (c) 2014 Ivan Bozhanov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
(The MIT License) Copyright (C) 2014-2016 by Vitaly Puzrin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2015, Pierre Curto Copyright (c) 2016, oov All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of xxHash nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The MIT License (MIT) Copyright (c) 2016 oov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.