(57)【特許請求の範囲】
【請求項１】
実位置におけるカスタム製品を可視化するためのコンピュータ実装方法において、前記方法が、
マーカーの基準連結グラフを表す第１のデータを格納するステップ、
少なくとも前記マーカーのデジタル画像を得るステップ、
候補連結グラフを表す第２のデータを生成するために前記デジタル画像を解析するステップ、
前記第１のデータ及び前記第２のデータに少なくともある程度は基づいて、前記候補連結グラフが前記基準連結グラフに一致するか否かを判定するステップ、
前記候補連結グラフが前記基準連結グラフに一致するという判定に応答して、前記基準連結グラフのノードを前記候補連結グラフのノードに少なくともマッピングする第３のデータを生成するステップ、及び
少なくとも前記第３のデータを用いて前記デジタル画像内で前記カスタム製品を可視化する視覚的な資産を構築するステップを含み、
前記視覚的な資産を構築するステップは、前記第３のデータに少なくともある程度は基づいて、前記カスタム製品の画像の少なくとも一部の色、輝度及び／または照度を、前記マーカーの前記デジタル画像の少なくとも一部の色、輝度及び／または照度と一致させるための調整量を決定するステップを含むことを特徴とする方法。
【請求項２】
実位置におけるカスタム製品を可視化するためのコンピュータ実装方法において、前記方法が、
マーカーの基準連結グラフを表す第１のデータを格納するステップ、
少なくとも前記マーカーのデジタル画像を得るステップ、
候補連結グラフを表す第２のデータを生成するために前記デジタル画像を解析するステップ、
前記第１のデータ及び前記第２のデータに少なくともある程度は基づいて、前記候補連結グラフが前記基準連結グラフに一致するか否かを判定するステップ、
前記候補連結グラフが前記基準連結グラフに一致するという判定に応答して、前記基準連結グラフのノードを前記候補連結グラフのノードに少なくともマッピングする第３のデータを生成するステップ、
少なくとも前記第３のデータを用いて前記デジタル画像内で前記カスタム製品を可視化する視覚的な資産を構築するステップ、
１つ以上の明サンプリング点及び１つ以上の暗サンプリング点を検出するために前記デジタル画像を解析するステップ、
前記サンプリング点間に存在するライティングによる明暗の勾配であるライティング勾配を決定するステップ、及び
前記マーカーが写真に撮られた環境におけるライティングをシミュレートするために前記ライティング勾配に基づいて前記視覚的な資産を構築するステップ、
を含むことを特徴とする方法。
【請求項３】
前記第１のデータが、
前記基準連結グラフの前記ノードの総数、
前記基準連結グラフの特定のノードにおいて連結している弧の総数、
前記基準連結グラフの線分または弧の総数、
前記基準連結グラフのポリトープの総数、または
前記基準連結グラフの特定のポリトープのノードの総数、
の内の１つ以上を示すことを特徴とする請求項１または２に記載の方法。
【請求項４】
前記第２のデータが、
前記候補連結グラフの前記ノードの総数、
前記候補連結グラフの特定のノードにおいて連結している弧の総数、
前記候補連結グラフの線分または弧の総数、
前記候補連結グラフのポリトープの総数、または
前記候補連結グラフの特定のポリトープのノードの総数、
の内の１つ以上を示すことを特徴とする請求項１または２に記載の方法。
【請求項５】
前記マーカーが写真に撮られた環境におけるライティングの検出において前記デジタル画像に施されるデジタル画像解析技法を補助するために、前記マーカーが１つ以上の着色されたオープンスペースを有し、前記マーカーが写真に撮られた環境におけるライティングの色の偏りの検出において前記デジタル画像解析技法を補助するために、前記１つ以上の着色されたオープンスペースの内の少なくとも１つが中間調グレーまたはパステルカラー調で着色されることを特徴とする請求項１または２に記載の方法。
【請求項６】
１つ以上の明サンプリング点及び１つ以上の暗サンプリング点を検出するために前記デジタル画像を解析するステップ、
前記サンプリング点間に存在するライティングによる明暗の勾配であるライティング勾配を決定するステップ、及び
前記マーカーが写真に撮られた環境におけるライティングをシミュレートするために前記ライティング勾配に基づいて前記視覚的な資産を構築するステップ、
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記マーカーの線分の寸法範囲内の線構造を白背景上の黒として含むデジタル画像を生成するために前記デジタル画像に閾値バンドパスフィルタまたはエッジフィルタを適用するステップ、及び
前記線構造の内の少なくとも１つを細線化するためにルールベースセルオートマトンを用いるステップ、
をさらに含むことを特徴とする請求項１または２に記載の方法。
【請求項８】
前記第３のデータを生成するステップが、前記基準連結グラフのノードを前記候補連結グラフのノードにマッピングするマーカー変換を計算するステップを含み、前記方法が、前記マーカー変換を用いて前記デジタル画像内の前記マーカーの向きまたは位置を決定するステップをさらに含むことを特徴とする請求項１または２に記載の方法。
【請求項９】
前記第３のデータを生成するステップが、前記基準連結グラフのノードを前記候補連結グラフのノードにマッピングするマーカー変換を計算するステップを含み、前記方法が、前記マーカー変換を決定するために特異値分解を含むポイントマッピング技法を用いるステップをさらに含むことを特徴とする請求項１または２記載の方法。
【請求項１０】
前記第３のデータを生成するステップが、前記基準連結グラフのノードを前記候補連結グラフのノードにマッピングするマーカー変換を計算するステップを含み、前記方法が、
前記マーカーの座標空間内の明サンプリング点の座標を前記デジタル画像の座標空間内の点に変換するために前記マーカー変換を用いるステップ、及び
基準白値を決定するために前記デジタル画像の前記座標空間内の前記点におけるピクセル値をサンプリングするステップ、
をさらに含むことを特徴とする請求項１または２に記載の方法。
【請求項１１】
前記第３のデータを生成するステップが、前記基準連結グラフのノードを前記候補連結グラフのノードにマッピングするマーカー変換を計算するステップを含み、前記視覚的な資産を構築するステップが配置のために前記マーカー変換を用いて前記デジタル画像内にカスタム製品を配置するステップを含むことを特徴とする請求項１または２に記載の方法。
【請求項１２】
１つ以上の明サンプリング点及び１つ以上の暗サンプリング点を検出するために前記デジタル画像を解析するステップ、及び
前記サンプリング点間に存在するライティングによる明暗の勾配であるライティング勾配を決定するステップ、
を含み、
前記視覚的な資産を構築するステップが、前記ライティング勾配に一致するように前記視覚的な資産の照度を修正するステップを含む、
ことを特徴とする請求項１または２に記載の方法。
【請求項１３】
前記視覚的な資産がデジタル画像であることを特徴とする請求項１または２に記載の方法。
【請求項１４】
命令の１つ以上のシーケンスを格納するコンピュータ読取可能記憶媒体において、前記命令の１つ以上のシーケンスが、実行されると、１つ以上のプロセッサに請求項１から１３のいずれかに記載の方法を実施させることを特徴とするコンピュータ読取可能記憶媒体。
【請求項１５】
特定の目的のために用いられる１つ以上の専用コンピューティングデバイスにおいて、
１つ以上のプロセッサ、及び
前記１つ以上のプロセッサに接続された、請求項１から１３のいずれかに記載の前記ステップのそれぞれを実施するための手段、
を備えることを特徴とする１つ以上の専用コンピューティングデバイス。
【請求項１６】
コンピュータシステムにおいて、請求項１から１３のいずれかに記載の方法を実施するための、配線で接続された回路(hard-wired circuity)とプログラム内蔵ロジック(stored program logic)の組合せを備えることを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はカスタム製品の実位置における可視化に関し、特に実位置における可視化のための方法及びその方法を実施するコンピュータシステムに関する。
【背景技術】
【０００２】
本開示のいくつかの節に説明され、「背景技術」または「従来手法」として識別されるいくつかの手法は実行できるであろうが、必ずしも以前に考えられていたかまたは実行されていた手法ではない。したがって、そうではないことが示されない限り、そのように説明される手法のいずれもが「背景技術」または「従来手法」としての指定だけで従来技術として実際に認められるとは見なされるべきではない。
【０００３】
製品のエンドユーザまたは消費者が画像またはグラフィックを取り込んだカスタム製造品を設計し、下検分し、発注することができる、いくつかのコンピュータ自動化システムが現在利用できる。製品の例には、衣服、飲料容器及びアクセサリ用品がある。代表的なシステムにおいて、エンドユーザまたは消費者は、公衆回線を通してサーバコンピュータに接続するため、ブラウザを備えるパーソナルコンピュータのような、汎用コンピュータ端末を用いる。ユーザは格納されたグラフィック画像を選択するか、あるいは、ユーザが入手したかまたは作成したデジタル画像をアップロードする。ユーザはグラフィック画像が貼り付けられるべき製品のタイプを選択し、色、サイズ、画像配置位置またはその他のような、製品に関する様々なパラメータ値を指定する。サーバコンピュータまたは端末は、指定された画像が貼り付けられた製品がカスタム製造後にどのように見えるかを示す、描画像を生成する。ユーザは描画像を承認し、製品に対する注文を入れる。製造業者は発注データを受け取り、指定通りに製品を作成してカスタム製造品をユーザに提供する。
【０００４】
一般的な従来システムでは提供されない−注目する製品の一タイプは、フレーム付マテリアルまたはマウントされたマテリアルである。フレームには、木材成形品、金属品またはプラスチックを含めることができる。マウントには１つ以上のマットを含めることができ、あるいはフロートマウントを含めることができる。マテリアルには、フィルム写真、オリジナルデジタルアート、プリント、油絵、アニメーションセル、あるいはその他のいずれかのグラフィック作品またはビジュアルアートのデジタル画像を含めることができる。既存のシステムを用いる、そのようなフレーム付マテリアルまたはマウントされたマテリアルの個別化オンラインデザイン及びカスタム製造は不可能であるかまたは不完全である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の課題は、カスタム製品が用いられるかまたは展示されることになる環境内の実位置における製品をコンピュータで可視化するための技法を提供することにある。
【図面の簡単な説明】
【０００６】
【図１】図１はカスタム製品を実位置で可視化するためのプロセスのフローチャートである。
【図２】図２はマーカーの一例を示す。
【図３】図３はマーカーの一例を示す。
【図４Ａ】図４Ａはマーカーによりユーザサイトの特徴を決定するためのフローチャートである。
【図４Ｂ】図４Ｂはマーカーによりユーザサイトの特徴を決定するためのフローチャートである(図４と４Ｂを合わせて図４とする)。
【図５】図５は実定ユーザサイトデータによりビジュアルアセットを構築するためのプロセスのフローチャートである。
【図６】図６は本明細書に開示される方法を実施することができるコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【０００７】
以下の記述においては、説明の目的のため、本発明の完全な理解を提供するために数多くの特定の詳細が述べられる。しかし、本発明がそれらの特定の詳細に関わらずに実施され得ることは明らかであろう。他の場合に、周知の構造及びデバイスは、本発明を不必要に曖昧にすることを避けるため、ブロック図形式で示される。
【０００８】
「包含している」、「もっている」または「有する」と同義である、「含んでいる」、「含む」及び「を特徴とする」は本明細書に用いられるように、包括的であるかまたは無制限であることを意味し、別の、挙げられていない、要素または方法工程の排除は意味していない。
【０００９】
カスタム製品の実位置における可視化
本開示の手法の一実施形態は、デジタル画像を受け取って格納し、フレーム付けされるべき画像並びにマット及び／またはフレームのタイプの指定を含むカスタムフレーム付製品の製造のリクエストを受け取り、製品の実外観を可能な限り正確にシミュレートするカスタムフレーム付製品の下検分画像を表示することができる、コンピュータベースシステムの文脈で用いることができる。そのようなシステムによれば、下検分画像は理想化されたライティング及び表示の条件の下で極めて写実的になり得る。しかし、実フレーム付画像の外観は異なる環境においては大幅に変わり得る。例えば、カスタムフレーム付製品は一般に壁に吊されて展示されるが、製品の外観は、ライティングレベルが異なる屋内の部屋、ライティングの種類、壁の種類、壁紙、反射性表面またはその他の背景環境のような環境において大きく変わり得る。
【００１０】
フレーム素子及びマットは、寸法変更を可能にし、異なるビジュアルマテリアルとともに使用するため、パラメータ表示値による３Ｄモデルで表される。例えば、フレーム素子の３Ｄモデルは、第１の表面ミラーに隣接する固定リグに実フレームスティック材料を置くことで作成することができ、フレームスティック材料の表面に対して既知の角度をなしてレーザが投射され、成形品のデジタル画像がレーザラインと合わせて形成され、プログラムされたコンピュータが、レーザラインから、フレームスティック材料の前面の幾何学的形状を推定し、背面プロファイルが第１の表面ミラーから得られる。成形品の表面テクスチャを取り込むため、レーザ線を遮断して次の画像が撮られる。得られた成形品表面テクスチャの透視画像は平面像に変換されて、平面変換像は成形品のコンピュータ生成３Ｄモデル上にマッピングされる。マットについては、実厚を手作業で測定して、パラメータ値として入力することができ、マットテクチャの平面図デジタル画像を撮って３Ｄテクチャマッピングに用いることができる。
【００１１】
一実施形態において、カスタムフレーム付製品の下検分画像は、カスタムフレーム付製品が特定の環境にある場合に有するであろう実外観を正確にシミュレートするように、修飾することができる。
【００１２】
本開示の手法は従来手法に比較して数多くの利点を提供する。例えば、本明細書に示されるマーカー例のデザインと認識の特徴は、スペースの幾何学的形状の特徴を決定するため、異なっている。マーカー例のデザイン及び本明細書に説明される処理ロジックにより、幾何学的形状の特徴決定が、またライティングの特徴決定も、可能になる。このロバストな特徴決定により、特徴決定された環境における可視化製品の幾何学的形状が正確であることの保証が可能になる。さらに、本開示のロジックは、１つのマーカーのユーザイメージ及び１つのユーザ提供写真に基づいてユーザ環境の色またはライティングを補償するために描画の特徴を調節することができる。
【００１３】
さらに、本開示のシステムは、アセンブリの特徴を帯びて、また装飾の特徴を帯びても、構成され得る、カスタム製造品の動的特徴を受容する。システムでは、オンライン市場におけるこれらの特徴決定された環境の、実位置で可視化されるように構成／設計された製品も合わせた、共有が考えられている。システムの「完璧な」特徴では、ユーザによる構成／装飾を可能にし、特徴決定された環境において得られた実施形態を可視化する、構成／装飾のための製品の特徴決定が考えられている。
【００１４】
実位置における可視化のシステム及び方法の説明の目的のため、本明細書に説明される実施形態はカスタムフレーム付製品に関する。しかし、実位置における可視化のシステム及び方法は、カスタム製品の実位置における可視化をユーザに提供することが望ましい、他のマウント可能または展示可能なカスタム製品を可視化するためにも用いることができる。実位置における可視化のシステム及び方法が適用され得るその他のカスタム製品の例には、特注スケートボード、特注グローブ、特注野球バット、特注カートップ及び、例えば特注衣服のような特注刺繍が入った製品またはその他の刺繍可能製品のような、ユーザに提供された画像またはテキストを有するカスタム製品がある。
【００１５】
カスタム製品を実位置で可視化するためのプロセス
図１を参照すれば、一実施形態において、データ処理プロセスは以下の全般的ステップを含む。
【００１６】
マーカーのデジタル表現がユーザに送られる(ブロック１０１)。例えば、商業カスタム製品サービスの末端消費者とすることができる、ユーザがコンピュータ端末を用いてサービスに付帯するサーバコンピュータに接続する。ユーザはサーバとアカウントを確立するか、または既存のアカウントにログインする。ユーザはカスタム製品をデザインするプロセスを開始する。ユーザは、マーカーの表現を収めている、ＰＤＦドキュメントまたはグラフィック画像ファイルのような、デジタルファイルをダウンロードするかまたはプリントするようにプロンプトで促される。
【００１７】
ユーザはシート紙にマーカーをプリントする(ブロック１０２)。一実施形態において、シート紙のプリントサイズはマーカーを表しているデータとともにサービスに格納される。例えば、サービスは、特定のマーカーが８.５×１１インチ(２１５.９ｍｍ×２７９.４ｍｍ)であるか、Ａ４サイズであるか、またはその他いずれかの適するサイズであることを示す、メタデータを格納し、ユーザはそのサイズのシートにマーカーをプリントするようにプロンプトで促されるか、または別の手段で要求される。
【００１８】
ユーザはユーザ環境において、ユーザがカスタム製品を可視化したい場所にマーカーがプリントされた紙を配置する(ブロック１０３)。例えば、ユーザは、特注可能な製品を掛けるかまたは展示しようとしている壁にシート紙を留め付ける。
【００１９】
ユーザは実位置でマーカーのデジタル写真を撮る(ブロック１０４)。本文脈において、「実位置」は環境においてカスタム製品が用いられるかまたは展示されることになる実際の場所を意味する。
【００２０】
ユーザはその写真を実位置における可視化サービスに送る(ブロック１０５)。
【００２１】
本明細書でさらに説明されるように、サービスはユーザ写真の位置、向き及びライティングの特徴を決定するためにマーカーを用いる(ブロック１０６)。
【００２２】
サービスは実位置におけるカスタム品を可視化するデジタルアセットを生成する(ブロック１０７)。デジタルアセットは、カスタム製品が、デジタルアセットで可視化された際に、ユーザ写真内のマーカーの検出された位置及び向き並びにマーカーの実配置におけるライティングを反映するように生成することができる。例えば、デジタルアセットは、ユーザ環境においてユーザが先にシートを配置した場所に実際に掛けられているかまたは展示されているかのようにカスタム製品の写実的外観のシミュレートされた画像をユーザに提供するためにユーザのコンピュータ端末上にサービスが表示させることができる、デジタルグラフィック画像とすることができる。デジタルアセットは、デジタル画像の代わりに、デジタルビデオ、デジタルオーディオ／ビジュアルプログラムまたは化ステム製品のグラフィックも出るとすることができる。
【００２３】
上記全般的プロセスのコンポーネントの態様が次に説明される。
【００２４】
マーカー
一実施形態において、マーカーは以下の特徴を有することができる。マーカーは、画像認識技法を用いて、デジタルカメラで撮られた写真内の直線／曲線として認識され得る、１つ以上の線分コンポーネントを有することができる。例えば、一実施形態において、マーカーは幅または太さが一般に０.２５インチ(６.３５ｍｍ)から０.５インチ(１２.７ｍｍ)の複数本の線分を有する。そのような寸法の線分コンポーネントは、壁の模様、掛けられている他のマテリアル、ドア、壁のコーナー、フロア及びその他の要素のようなユーザ環境の背景要素が存在していても、直線／曲線のコンピュータベース認識を可能にするに十分に、ユーザ画像内で幅広に、または肉太に、見えると考えられる。細すぎる線分は上記環境に関わるスペース内で正確に位置を定めることが困難になり得る。
【００２５】
一実施形態において、マーカーは、印刷されて写真に撮られたときに、線分コンポーネントが環境内の他の写真像要素から分離されるように、縁を有する。縁は余白とすることができる。すなわち、一実施形態において、余白はマーカーを示している印刷されたシートの縁端から線分コンポーネントを分ける。したがって、縁により、環境からのマーカーの一層優れた認識が可能になり、マーカー部ではないその他の画像要素との線分要素の連結を絶つか、またはマーカー部ではないその他の画像要素から線分要素を分離する。
【００２６】
一実施形態において、線分コンポーネントは連結グラフを形成するように配置される。連結グラフは、ノードと称される点において連結されてポリトープと称される複数の閉じた領域を形成する、弧のいずれかの結合である。一実施形態において、それぞれの特定のマーカーは、複数の特徴によって定められるような、他のマーカー例と比較して連結性が異なる、特定の連結グラフを有する。１つの連結グラフを別の連結グラフから弁別し得る特徴の例には、線分の交点の態様、線分の数及び閉じた領域の数がある。実施形態にはいずれか特定のマーカーフォーマットまたはマーカースタイルの使用は必要ではなく、例えば、本明細書に開示される一例は長方形格子の全体的外観を有するが、その他の多くの幾何学的配置を用いることができる。重要なことは、マーカー及び環境のユーザのデジタル写真に見られると予期される基準連結グラフを表す、格納されたメタデータをサービスが有することである。
【００２７】
一実施形態において、マーカーの連結グラフの形態は向きによって様相が異なる。例えば、それぞれのマーカーには、マーカーの向きの変化または回転が見た目の異なる外観を生じるような、１つ以上の特徴が設けられる。この特性により、マーカーがユーザ環境に置かれたときのマーカーに対して用いられた実際の向きを決定するため、ユーザのデジタル画像のコンピュータ解析が可能になる。
【００２８】
一実施形態において、連結グラフの空間関係が記録され、写真内のマーカーの位置及び向きを検出する手段として用いられる。例えば、検出には、ユーザのデジタル画像内の同じ特徴と一致する、基準マーカー内の既知のノード、線分及びポリトープの特徴を認識するための探索を含めることができる。
【００２９】
一実施形態において、ノードの特徴には、マーカーグラフ全体内のノードの総数、与えられたノードにおいて連結している弧の総数、及び与えられたノード総数を有するポリトープへのあるノードのアジャセンシーがある。ノードのこれらの特徴は１つの連結グラフを別の連結グラフから弁別するために用いることができる。すなわち、ノードの総数、与えられたノードにおいて連結する弧の総数、及び与えられたノード総数のポリトープの総数へのアジャセンシーが既知であれば、ユーザのデジタル画像を処理するときに同じ特徴を識別することができ、総数及びアジャセンシーが一致するときに限りユーザのデジタル画像内にマーカーを認識することができる。
【００３０】
一実施形態において、線分の特徴も検出及び弁別に用いることができる。一実施形態において、該当する特徴には、マーカーグラフ内の線分(弧)の数すなわち弧の総数、及び与えられた総弧数のポリトープへのそれぞれの線分のアジャセンシーがある。
【００３１】
一実施形態において、閉じた領域すなわちポリトープの特徴も検出及び弁別に用いることができる。一実施形態において、閉じた領域(ポリトープ)の数に該当する特徴には、マーカーグラフ内のポリトープの総数及びそれぞれのポリトープにおけるノードの総数がある。
【００３２】
いくつかの実施形態において、線分の連結グラフは、会社のブランドまたは商標のような、シンボル、グラフィックまたは銘としてユーザ読取可能となることもできる。
【００３３】
一実施形態において、プリントされたマーカーに１つ以上のオープンスペースが設けられ、プリントされないか、または明るい色または明調でプリントされてユーザサイトのライティングを検出する手段を提供することができる。オープンスペースは「明サンプリング点」と称されることがある。さらに、マーカーの線分グラフの完プリント領域は既知であり、「暗サンプリング点」と称されることがある。「明サンプリング点」及び「暗サンプリング点」が環境におけるマーカーのユーザ画像内に検出されれば、コンピュータが、照度値または標サンプリング点を表すその他のデータに基づいて、サンプリング点間に存在するライティングによる明暗の勾配であるライティング勾配を決定することができ、ユーザ環境における実ライティングをシミュレートするためにデジタルアセットの外観を修正することができる。
【００３４】
色には、一実施形態において、黒、白及びグレーを含めることができ、様々なタイプの画像解析を色によって容易にすることができる。例えば、ユーザ画像内の候補マーカー内のグレースペースをコンピュータが検出できなければ、コンピュータは、ユーザ画像の白レベルが過大であり、すなわち「白とび」していて、正確な認識を可能にするために撮り直しが必要であると決定することができる。
【００３５】
ある環境におけるライティングは、デジタルカメラのようなデジタルデバイスで記録された場合、色の偏り（以下、カラーバイアスとする）がかかって見えることがあり得る。このバイアスは、環境を照明している光は、人間の眼には白色に見えるが、デジタルデバイスは特定の色として記録する、特定のスペクトル分布を有する、日光、白熱電球、水銀灯、蛍光灯、等を含む、異なる様々なタイプ光源の内の１つ以上からの光であることから生じる。
【００３６】
一実施形態において、マーカーは、ユーザ画像におけるライティングバイアスの正確の認識を可能にする、中間調グレー領域を含むことができる。さらにまたはあるいは、ユーザ環境のライティングにおけるカラーバイアスのユーザ認識を補助するためにパステル色調を用いることができる。例えば、ユーザ環境が主に蛍光灯を用いて照明されているかまたは白熱電球を用いて照明されているかを認識し、同じライティングのもとにある環境においてカスタム製造品をシミュレートするデジタルアセットに同様のカラーバイアスを適用するに役立たせるため、基準マーカーの選ばれた領域に既知の緑の色調またはピンクの色調を含めることが有用であり得る。
【００３７】
マーカー例
図２及び図３はマーカーの例を示す。初めに図２を参照すれば、一実施形態において、マーカーは企業体、この場合は米国カリフォルニア州レッドウッドシティ(Redwood City)のZazzle Inc.、の商標に類似する。マーカー２０２は複数の弧２０４を有する。例示のノード２０６Ａ，２０６Ｂは弧の交点であり、マーカーは複数のポリトープを定め、ポリトープ２０８Ａ，２０８Ｂ，２０８Ｃは例である。マーカー２０２のコーナー部２１０は弧交差態様に関して一様ではなく、よってコンピュータ画像解析技法を用いてマーカーの向きを検出することができる。
【００３８】
特定のノードに付随する弧の総数も変わり得る。例えば、ノード２０６Ａは４本の弧の交点であり、ノード２０６Ｂは３本の弧の交点である。したがって、マーカー２０２がユーザ画像内で認識される場合、マーカーをノードの数及びそれぞれのノードにおける弧の総数に関して特徴付け、一致するか否かを決定するために基準マーカーを表す基準データと比較することができる。マーカーはノードに付随する隣接ポリトープの数で特徴付けることもできる。例えば、ノード２０６Ａには４つの隣接ポリトープが付随し、ノード２０６Ｂには３つの隣接ポリトープがある。さらに、特定のマーカーに対する特徴データにより効率的な画像処理が可能になる。例えば、一致する可能性があるとしてユーザ画像内で認識された候補アイテムの内、そのアイテムの特徴が基準マーカーに一致しないアイテムを初期の時点で棄却するように画像認識アルゴリズムを構成することができる。例えば、コンピュータがある候補アイテムの認識に移った際に、その候補アイテムにある弧、ノードまたはポリトープが少なすぎるかまたは多すぎるとコンピュータが判定すると直ちにその候補アイテムを棄却することができ、プロセスは別の候補アイテムの考察に移ることができる。
【００３９】
マーカーに対する特徴項目の数は、冗長なデータ処理時間が必要になることを避けるため、比較的少ないことが好ましい。例えば、マーカーが複雑であり、多数の弧、ノード及びポリトープを有する場合、マーカーを正確に認識するに必要な処理時間及び格納スペースは実施不可能なほど大きくなり得ることが知られている。したがって、比較的単純な連結グラフを有するマーカーが好ましい。
【００４０】
別の例として、図３において、マーカーは長方形格子に類似している。図３の配置は、長方形のレターサイズシート紙にうまく適合するという利点を提供する。
【００４１】
図２及び図３のいずれにおいても、マーカーは、マーカーの周囲の余白、ユーザ画像内で検出するに十分に大きい線分及び、線分、交点及び背景に対して一意的に認識可能である閉じた領域のような、その他の特徴を有する。さらに、図２及び図３は、他の場合では自然環境内ではまれであるが、この場合は認識プロセスの性能を向上させる形状またはグラフを組み入れているマーカーを表す。
【００４２】
様々な実施形態において、サービスは、エンドユーザまたはカスタマーに特有であるマーカーを提供することができ、あるいはエンドユーザが選択してダウンロードできる複数の相異なるマーカーを提供することができる。例えば相異なるマーカーは相異なる製品、サービス、ユーザまたは製品類に付随させるかまたは関連付けることができる。例えば相異なるマーカーは相異なる大きさを有することができ、ユーザは同じ汎環境において相異なる大きさの２つの相異なる製品の可視化を望むことができる。そのような場合、サービスは相異なる大きさの２つの相異なるマーカーを提供することができる。相異なるタイプの相異なる製品が相異なるマーカーの使用を保証することもできる。例えば、カスタム塗装またはカスタムプリントのストレッチキャンバス製品には、カスタム装飾スケートボードデッキとは異なる種類のマーカーを用いることができるであろう。
【００４３】
実位置における可視化サービス
一実施形態において、コンピュータベース実位置における可視化サービスは、以下の全般的タスク、マーカーによるユーザサイトの特徴決定、実定ユーザサイトデータ及び写真またはその他のデジタル画像を用いる視覚的な資産（以下ビジュアルアセットとする）の構築、及びデジタルアセットの描画、を実施するように構成された、１つ以上のコンピュータプログラムまたはその他のソフトウエア要素を有する。
【００４４】
マーカーによるユーザサイトの特徴決定のためのプロセス
一実施形態において、マーカーによるユーザサイトの特徴決定は全般に、図４のフローチャートフォームに示されるプロセスを用いる、基準グラフに基づく連結グラフのデジタル認識を含む。
【００４５】
初めに、上述したように、ユーザはマーカーのプリントコピーをつくり(ブロック１０２)、ユーザ環境内のカスタム製品が展示されるかまたは掛けられるであろう場所にプリントされたマーカーを置き(ブロック１０３)、マーカーを含む環境のデジタル写真または画像を撮り(ブロック１０４)、ユーザ写真をサーバにアップロードしている(ブロック１０５)とする。例えば、ユーザ写真は、マーカーが壁に留め付けられている部屋の内部の一部のデジタル画像とすることができる。
【００４６】
図４のプロセスは、ユーザ写真内のマーカーを認識するためのコンピュータロジックにおいて、例えばユーザ写真、マーカーの場所及び向き、及びマーカー場所のライティングの特徴を決定するためにマーカーのユーザ写真を用いるステップ(ブロック１０６)の一環として、実施することができる。
【００４７】
マーカーの線分の寸法範囲内の線構造が残され、その他の線構造及び非線構造はフィルタ除去されるようにユーザ写真をフィルタリングすることにより、線像がつくられる(ブロック４０１)。例えば、閾値バンドパスフィルタまたはエッジフィルタを用いることができる。結果は、表示されたときにマーカーの線分の寸法範囲内の線構造だけを白背景上の黒として含む出力画像である。
【００４８】
線像はさらに、線分要素の幅が１ピクセルであり、真と設定されているピクセルによってそれぞれの線分が画像内に表されるように、セルオートマトンを用いてフィルタリングされてピクセルのブール配列にされる(ブロック４０２)。セルオートマトンに対する値表の例が以下の擬似コード例に与えられる。セルオートマトン手法は閾値近傍入力をもつルールベースシステムを用いる。セルオートマトン手法において、考察下の特定のピクセルの近傍のピクセルは、入力に基づいて結果ピクセル値を生成するオートマトンへの命令または演算コードを形成し、特定のピクセルは次いで結果ピクセル値で置き換えられる。セルオートマトンの従来の適用と異なり、本手法において、セルオートマトンは細線化に適用される。セルオートマトン手法の擬似コード例が以下に与えられる。
【００４９】
ピクセル配列がトラバースされる(ブロック４０３)。真ピクセルが見つかると、連結されたピクセルをトラバースすることで候補グラフが構築される。例えば、連結されたピクセルが識別されると、次いでノードが認識される。真ピクセルが見つからなければアルゴリズムは終了する。候補グラフが作成されて、メモリに格納されるときに、ノード、弧またはポリトープの総数が基準グラフのノード、弧またはポリトープの総数より多ければ、候補グラフは棄却され、この時点の線ネットワークの全ての連結されたピクセルに対する格納値は偽に設定される。一実施形態において、候補グラフ及び基準グラフはコンピュータ内でウイングドエッジデータ構造を用いて表される。候補連結グラフ及び基準連結グラフを表すために他のデータ構造及びモデルを用いることができ、本発明はウイングドエッジデータ構造に限定されない。
【００５０】
連結グラフを構築して用いることにより、基準グラフの１つ以上の連結規準を満たさない候補グラフを迅速に棄却することができる。このプロセスは、ユーザ画像内の候補グラフの完全な認識及び特徴決定が必要になり得る他の手法と異なる。例えば、本手法においては、過大になり得る、候補グラフの認識を完了する必要がない。規準を満たさない候補グラフは初期の段階で単に棄却され、マーカーを認識するための、性能が高められ、時間が短縮される。候補グラフの完成時に、ノード、弧またはポリトープの総数が基準グラフのノード、弧またはポリトープの総数より少なければ、候補グラフは棄却される。
【００５１】
候補グラフの連結特徴の完全セットが一致すれば(ブロック４０４)、アルゴリズムはブロック４０７に進む。候補グラフが棄却または廃棄され、ピクセル配列にさらに多くの真ピクセルがあれば(ブロック４０５)、ブロック４０３においてピクセル配列のトラバースが続けられる。そうでなければ、ユーザ写真にマーカーを検出できなかったことをおそらくはユーザに告知して、アルゴリズムは終了する(ブロック４０６)。
【００５２】
一致する候補グラフがあると、一致するグラフのユーザ写真内の向き及び位置が、一致するグラフに見いだされるノードに基準グラフ内の既知のノードをマッピングする、マーカー変換の計算(ブロック４０７)によって、見いだされる。すなわち、一致する連結グラフが同定されると、ノード、弧及びポリトープのユーザ画像内のピクセル座標が分かり、これらを基準グラフにマーカー変換を用いてマッピングすることができる。例えば、特異値分解を用いるポイントマッピングを、マーカー変換を決定するために、用いることができる。
【００５３】
マーカー変換が決定されると、写真内に明サンプリング点を見いだすことができる(ブロック４０８)。これらの点は、画像に対する白点、及びビジュアルアセットを描画するための照度勾配またはマップを、決定するために用いられる。例えば、第１の明サンプリング点の基準空間内の座標をユーザ画像空間内の等価な点に、マーカー変換を用いて、変換することができ、これらの点において、ユーザ画像に対する基準白値を決定するためにピクセル値をサンプリングするかまたは得ることができる。一実施形態において、照度勾配はユーザ環境にわたる反射光強度の範囲を表す一組の値であり、画像空間における一組のデルタ値、例えばΔｕ値及びΔｖ値で表すことができる。
【００５４】
マーカー変換は、ビジュアルアセットの描画のための黒点を設定するために用いられる、暗サンプリング点をユーザ画像内に見いだすためにも用いることができる（ブロック４０９）。すなわち、その形状寸法及びライティングを含むユーザ環境に関して情報を外挿することができ、カスタム製造品がユーザ環境に置かれたときのカスタム製造品の実外観と可能な限り同様の画像が、ユーザのコンピュータスクリーン上で、見えるように、色スペクトル、照度、輝度及びその他の属性に関して適切な変更を画像に加えることができる。
【００５５】
実定ユーザサイトデータによるビジュアルアセットの構築のためのプロセス
一実施形態において、実定ユーザサイトデータ及び写真またはその他のデジタル画像を用いるビジュアルアセットの構築は図５のフローチャートに示されるステップを含むことができる。
【００５６】
第１に、レイヤーを用いて以下のようにビジュアルアセットが構築される。明サンプリング点及び暗サンプリング点から得られたデータを用いてユーザ写真が調整される(ブロック５０１)。
【００５７】
配置のためにマーカー変換を用いてカスタム製品基準がユーザ写真内に置かれ(ブロック５０２)、カスタム製品基準は、一意的な名称または識別子、座標系内の長方形のような幾何学的配置ホルダ、及び、ユーザが関心をもつ、カスタム製造品を表すマーカー変換を用いて変形された座標系を有することができる。
【００５８】
ユーザ画像空間内の照度が既知の点に基づいてユーザ写真の照度勾配を一致させるようにカスタム製品の照度を修正するために、照度勾配が適用される(ブロック５０３)。
【００５９】
第２に、以下のステップを用いてカスタム製品が表示される(ブロック５０４)。一実施形態において、ユーザはサーバと対話することによってカスタム製品及びその属性を選ぶ。一実施形態において、ユーザの実位置におけるビジュアルアセットがロードされる。一実施形態において、カスタム製品のための描画アセットが構成される。一実施形態において、カスタム製品基準はカスタム製品アセットに設定される。
【００６０】
最後に、一実施形態において、実位置におけるアセットが描画され、ユーザのディスプレイユニットまたはブラウザに送られる。
【００６１】
実施機構−ハードウエア概要
一実施形態にしたがえば、本明細書に説明される技法は特定の目的のために用いられる１つ以上の専用コンピューティングデバイスによって実施される。専用コンピューティングデバイスは、本技法を実施するためにハードウエアにより実現することができ、あるいは、１つ以上の特定用途集積回路(ＡＳＩＣ)または、本技法を実施するために永続的にプログラムされた、フィールドプログラマブルゲートアレイ(ＦＰＧＡ)のようなデジタル電子デバイスを有することができ、あるいは、ファームウエア、メモリ、その他の記憶装置またはこれらの組合せ内のプログラム命令にしたがって本技法を実施するようにプログラムされた、１つ以上の汎用ハードウエアプロセッサを有することができる。そのような専用コンピューティングデバイスは、カスタムハードワイアードロジック、ＡＳＩＣまたはＦＰＧＡを、本技法を達成するためのカスタムプログラムと組み合わせることもできる。専用コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワーク接続デバイスまたは、本技法を実施するためのハードワイアードロジック及び／またはプログラムロジックを組み込んでいる、その他いずれかのデバイスとすることができる。
【００６２】
例えば、図６はコンピュータシステム６００を示すブロック図である。コンピュータシステム６００は、情報を通信するためのバス６０２またはその他の通信機構及び、情報を処理するための、バス６０２に接続されたハードウエアプロセッサ６０４を備える。ハードウエアプロセッサ６０４は、例えば、汎用マイクロプロセッサとすることができる。
【００６３】
コンピュータシステム６００は、情報及びプロセッサ６０４により実行されるべき命令を格納するための、バス６０２に接続された、ランダムアクセスメモリ(ＲＡＭ)またはその他のダイナミックストレージデバイスのような、メインメモリ６０６も備える。メインメモリ６０６は、プロセッサ６０４により実行されるべき命令の実行中に、一時変数またはその他の中間情報を格納するために用いることもできる。そのような命令は、コンピュータシステム６００を、プロセッサ６０４がアクセスできる非一時的記憶媒体に格納された場合、命令に指定された作業を実施するためにカスタマイズされた専用機に移す。
【００６４】
コンピュータシステム６００はさらに、プロセッサ６０４に対する静的情報及び命令を格納するための、バス６０２に接続された、リードオンリメモリ(ＲＯＭ)６０８またはその他のスタティックストレージデバイスを備える。情報及び命令を格納するため、磁気ディスクまたは光ディスクのような、ストレージデバイスが備えられ、バス６０２に接続される。
【００６５】
コンピュータシステム６００は、コンピュータユーザに情報を表示するため、陰極線管(ＣＲＴ)のような、ディスプレイ６１２にバス６０２を介して接続することができる。情報及びコマンド選択をプロセッサ６０４に伝えるため、英数字キー及びその他のキーを有する、入力デバイス６１４がバス６０２に接続される。別のタイプのユーザ入力デバイスは、方向情報及びコマンド選択をプロセッサ６０４に伝えるため及びディスプレイ６１２上のカーソル移動を制御するための、マウス、トラックボールまたはカーソル方向キーのような、カーソルコントロール６１６である。入力デバイスは一般に、第１の軸(例えばｘ軸)及び第２の軸(例えばｙ軸)の２つの軸において自由度２を有し、デバイスによる平面内の位置の指定を可能にする。
【００６６】
コンピュータシステム６００は、コンピュータシステムと組み合わされて、コンピュータシステム６００を専用機にするかまたはそのようにプログラムする、カスタマイズされたハードワイアードロジック、１つ以上のＡＳＩＣまたはＦＰＧＡ、ファームウエア及び／またはプログラムロジックを用いて、本明細書に説明される技法を実施することができる。一実施形態にしたがえば、本明細書の技法は、メインメモリ６０６に収められた１つ以上の命令の１つ以上のシーケンスを実行するプロセッサ６０４に応答して、コンピュータシステム６００によって実施される。そのような命令は、ストレージデバイス６１０のような、別の記憶媒体からメインメモリ６０６に読み込むことができる。メインメモリ６０６に収められた命令のシーケンスの実行により、本明細書に説明されるプロセスステップをプロセッサ６０４が実施する。別の実施形態において、ソフトウエア命令の代わりに、またはソフトウエア命令と組み合わせて、配線で接続された回路(hard-wired circuity)を用いることができる。
【００６７】
語句「ストレージデバイス」は、本明細書に用いられるように、データ及び／またはマシンに特定の態様で作業させる命令を格納するいずれの非一時的媒体も指す。そのような非一時的媒体には、不揮発性媒体及び／または揮発性媒体を含めることができる。不揮発性媒体には、例えば、ストレージデバイス６１０のような、光ディスクまたは磁気ディスクがある。揮発性媒体には、メインメモリ６０６のような、ダイナミックメモリがある。記憶媒体の普通の形態には、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、固体ドライブ、磁気テープまたはその他のいずれかの磁気データ記憶媒体、ＣＤＲＯＭまたはその他いずれかの光データ記憶媒体、穴のパターンをもついずれかの物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、ＮＶＲＡＭ及びその他いずれかのメモリチップまたはメモリカートリッジがある。
【００６８】
記憶媒体は、通信媒体とは異なるが、通信媒体とともに用いることができる。通信媒体は記憶媒体間の情報の伝送に関わる。例えば、通信媒体には、バス６０２を構成するワイアを含む、同軸ケーブル、銅線及び光ファイバがある。通信媒体は、ラジオ波データ通信及び赤外線データ通信中に発生されるような、音波または光波の形態をとることもできる。
【００６９】
実行のためにプロセッサ６０４に１つ以上の命令の１つ以上のシーケンスを伝えるには、媒体の様々な形態が関わり得る。例えば、命令は初め、リモートコンピュータの磁気ディスクまたは固体ドライブ上に載せることができる。リモートコンピュータはそのダイナミックメモリに命令をロードし、モデムを用いて電話回線を通じ、命令を送ることができる。コンピュータシステム６００側のモデムが電話回線上のデータを受け取り、赤外線送信器を用いてデータを赤外線信号に変換することができる。赤外線検出器が赤外線信号で伝えられるデータを受け取ることができ、適切な回路がデータをバス６０２に載せることができる。バス６０２はデータをメインメモリ６０２に運び、メインメモリ６０６からプロセッサ６０４が命令を取り出して実行する。メインメモリ６０６で受け取られたデータは、必要に応じて、プロセッサ６０４による実行の前または後にストレージデバイス６１０に格納することができる。
【００７０】
コンピュータシステム６００はバス６０２に接続された通信インターフェース６１８も備える。通信インターフェース６１８は、ローカルネットワーク６２２に接続されたネットワークリンク６２０に結合する双方向データ通信を提供する。例えば、通信インターフェース６１８は、サービス総合デジタルネットワーク(ＩＳＤＮ)カード、ケーブルモデム、衛星モデム、または対応するタイプの電話回線へのデータ通信接続を提供するためのモデムとすることができる。別の例として、通信インターフェース６１８は、互換ローカルエリアネットワーク(ＬＡＮ)へのデータ通信接続を提供するための、ＬＡＮカードとすることができる。そのような実施形態のいずれにおいても、通信インターフェース６１８は、様々なタイプの情報を表すデジタルデータストリームを伝える、電気信号、電磁信号または光信号を送信及び受信する。
【００７１】
ネットワークリンク６２０は一般に、他のデバイスへの１つ以上のネットワークを介するデータ通信を提供する。例えば、ネットワークリンク６２０はホストコンピュータ６２４への、またはインターネットサービスプロバイダ(ＩＳＰ)６２６によって運営されるデータ装置への、ローカルネットワーク６２２を介する接続を提供することができる。ＩＳＰ６２６は続いて、今では一般に「インターネット」６２８と称される、ワールドワイドパケットデータ通信ネットワークを介する通信サービスを提供する。ローカルネットワーク６２２及びインターネット６２８はいずれも、デジタルデータストリームを伝える、電気信号、電磁信号または光信号を用いる。コンピュータシステム６００に及びコンピュータシステム６００からデジタルデータを伝える、様々なネットワークを通る信号及びネットワークリンク６２０上及び通信インターフェース６１８を通る信号は通信媒体の形態の例である。
【００７２】
コンピュータシステム６００は、ネットワーク、ネットワークリンク６２０及び通信インターフェース６１８を介して、メッセージを送り、プログラムコートを含む、データを受け取ることができる。インターネットの例において、サーバ６３０は、インターネット６３８，ＩＳＰ６２６，ローカルネットワーク６２２及び通信インターフェース６１８を介して、アプリケーションプログラムに対するリクエストコードを送信できるであろう。
【００７３】
受け取られたコードはコードが受け取られたときにプロセッサ６０４によって実行することができ、及び／または後の実行のためにストレージデバイス６１０またはその他の不揮発性ストレージに格納することができる。
【００７４】
拡張及び代替
上述した明細において、実施毎に変わり得る数多くの特定の詳細を参照して本発明の実施形態を説明した。したがって、これが発明であり、また出願人等によって発明であるとされる、唯一であり、かつ排他的な指標は本出願に基づく特許請求項のセットであり、以降のいずれの補正も含む、そのような特許請求項が示される特定の形態にある。そのような特許請求項に含められる語句に対して本明細書で明白に述べられたいずれの定義も、特許請求項に用いられるそのような語句の意味を律するべきである。したがって、特許請求の範囲に明示的に挙げられていないいずれの限定、要素、特性、特徴、利点または属性も、そのような特許請求項の範囲を決して限定すべきではない。したがって、本明細書及び図面は限定の意味ではなく説明の意味でとらえられるべきである。
【００７５】
擬似コード例
以下は上述した細線化のためのセルオートマトン手法の擬似コード例である。
【００７６】
#define ON 0xff
#define ALWAYS_ON 0xfe
/*********************************************************************
Procedure:
EVAL_NEIGHBOR
Description:
Returns
0 if the pixel value < thresh
1 if the pixel value < ALWAYS_ON
2 if the pixel value >= ALWAYS_ON
*******************************************************************/
#define EVAL_NEIGHBOR(n0)((INT32)(buff[n0] >= thresh) +
(INT32)(buff[n0] >= ALWAYS_ON))
/*********************************************************************
Procedure:
EvaluatePixel
Description:
Evaluates a single pixel by examining its 3x3 neighborhood with 
the rules held in thinTab. This is called for each pixel in an 
image to perform one thin pass. thresh starts at 0 and is 
incremented for each thin pass. thinning is done when thresh is 
not returned during a thinPass
******************************************************************/
UINT8 ThinMap::EvaluatePixel (BYTE *buff, UINT8 thresh, INT32 inc, INT32 row)
{ 
INT32 value; 
INT32 index = 0; 
// build the lookup key for thintab
// thintab stores three states for each
// of the 8 pixels in the neighborhood
index = EVAL_NEIGHBOR(-inc);     // o o o
// x o o
// o o o
value = EVAL_NEIGHBOR(row-inc);  // o o o
index = value + (index * 3);     // o o o
// x o o
value = EVAL_NEIGHBOR(row);      // o o o
index = value + (index * 3);     // o o o 
// o x o
value = EVAL_NEIGHBOR(inc+row);  // o o o
index = value + (index * 3);     // o o o
// o o x
value = EVAL_NEIGHBOR(inc);      // o o o
index = value + (index * 3);     // o o x
// o o o
value = EVAL_NEIGHBOR(+inc-row); // o o x
index = value + (index * 3);     // o o o
// o o o
value = EVAL_NEIGHBOR(-row);     // o x o
index = value + (index * 3);     // o o o
// o o o
value = EVAL_NEIGHBOR(-inc-row); // x o o
index = value + (index * 3);     // o o o
// o o o
value = thinTab[index];
if (value < ALWAYS_ON) 
{ 
return(thresh);
}
return(value)
}
static UINT8 thinTab[] = {
0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 
0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xfe, 0xfe, 
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 
0xfe, 0xfe, 0xfe, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xfe, 0xfe, 0x00, 0xff, 0xff,
0x00, 0xff, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfe, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xfe, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xfe, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff,
0xfe, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
【符号の説明】
【００７７】
２０２    マーカー
２０４    弧
２０６Ａ．２０６Ｂ    ノード
２０８Ａ、２０８Ｂ、２０８Ｃ    ポリトープ
２１０    コーナー部
６００    コンピュータシステム
６０２    バス
６０４    プロセッサ
６０６    メインメモリ
６０８    リードオンリメモリ(ＲＯＭ)
６１０    ストレージデバイス
６１２    ディスプレイ
６１４    入力デバイス
６１６    カーソルコントロール
６１８    通信インターフェース
６２０    ネットワークリンク
６２２    ローカルネットワーク
６２４    ホストコンピュータ
６２６    インターネットサービスプロバイダ(ＩＳＰ)
６２８    インターネット
６３０    サーバ
【図１】
0005646564.tif 000002
【図２】
0005646564.tif 000003
【図３】
0005646564.tif 000004
【図４Ａ】
0005646564.tif 000005
【図４Ｂ】
0005646564.tif 000006
【図５】
0005646564.tif 000007
【図６】
0005646564.tif 000008