| スピーカー |
トランスクリプト |
| ハイディ・ハードナー |
こんにちは。ミネソタ州ミネアポリスからお話をさせていただいているハイディ・ハードナーです。 |
| セルカイ・オルメズ |
こちらはセルケイ・オルメスです。コロラド州ロングモントから電話しています。 |
| ハイディ・ハードナー |
私たちはSeagate Technologyで働いており、JMPとJSLを長年使い、同僚とJMPスクリプトを共有してきました。今回は、JMPデータテーブル内の???画像を使ったユースケースをいくつか紹介し、関連するJSLツールをいくつか紹介します。 |
| |
Seagate では、記録ヘッドはウェハ製造からドライブへの取り付けまで、多数の工場プロセスを経ます。 |
| |
したがって、各見出しが行で、非常に多くの列がある非常に幅広いデータを頻繁に見ることになります。 |
| |
多くのプロセスでは、ヘッドごとに多くの異なる画像が含まれる画像が生成されたり、単一のプロセスを通過する多数のヘッドから非常に高いデータが生成されたりする可能性があるため、計測画像では互いに非常によく似ていることがあります。 |
| |
今日のダウンロード データ セットは Seagate イメージではありませんが、これらの状況との類似点があり、これらの類似点を描くことで、皆さんのユース ケースとの類似点を描くのに役立つことを願っています。 |
| |
JMP には数年前から画像やデータ テーブルの機能がありましたが、私は個人的にその価値を理解するのが遅れていました。 |
| |
これらのユースケースでは、特に画像と他のデータとの柔軟でインタラクティブな接続を通じて、さまざまな方法で価値が得られることがわかると思います。 |
| |
また、特にパスを共有できる場合は、画像パスをテーブルに保存することの価値についても強調したいと思います。 |
| |
最後に、補足資料でデモするJSLを2人とも共有します。これは文字通りの持ち帰りです。このPowerPointの最後に、JSLのディレクトリがあります。 |
| |
画像に役立つ探索の多くは非常に基本的なもので、当社のスクリプトは JSL の知識がなくてもすぐに使用できますが、独自の JMP スクリプトで構築できるさまざまな機能も含まれています。 |
| |
公開アクセス可能な画像パスから私の 2 番目のポイントまでの 3 つの点について説明します。 |
| |
1つ目は、メッツのオンラインカタログからのデータテーブルです。データテーブル内のオブジェクトまたは行ごとに複数の画像が含まれる例が含まれています。 |
| |
カタログを閲覧するのは私にとって大きな落とし穴でした。ぜひお勧めします。2つ目のデータセットは天文画像です。シェッド・オブ・サイエンス天文台のラス・ダーキー氏に感謝します。 |
| |
これは画像ごとの行単位の計測データであり、一見すると画像は非常に類似しています。先ほどお話しした記録ヘッド工場のデータ使用事例との類似点に注目してください。 |
| |
私が陥ったウサギの穴といえば、3つ目はOmeka APIを実装するJSLです |
| |
学術コレクションにオンラインでアクセスするには、ヘザー・シャイリー博士のデータベースへのアクセス支援が不可欠です。彼女の都市芸術マッピング・プロジェクトもぜひオンラインでチェックしてみてください。 |
| |
しかし、ここでの技術的なポイントは、誰でもこのコードを使用してデータベースをクエリし、イメージパスと他のデータを組み合わせた結果を取得して、私たちのツールの中心となる種類のテーブルを作成できることです。 |
| |
それでは、JMPのライブデモに移りましょう。これらのデータセットを見る前に、大量の画像がある場合はどうなるでしょうか? |
| |
フォルダから画像テーブルを作成します。これはフォルダを選択する機能です。サンプル画像が入ったフォルダがあります |
| |
メトロカタログデータです。いくつかのフォルダがあり、このフォルダを選択するとすぐにテーブルが表示されます。 |
| |
列にすべてのタブが画像に表示されています。画像と思われるファイル拡張子を探し、いくつかのフォルダに分割しています。 |
| |
ご存知のとおり、サブフォルダはデータの属性として扱われます。フォルダ名が、データに何らかの意味のある属性として扱われるユースケースはよくあります。 |
| |
これは、私の Seagate バージョンでさらにカスタマイズできるスクリプトです。通常、ファイル名にはヘッド識別子が埋め込まれているので、それを解析する機能が、このスクリプトの私の個人バージョンに自動的に組み込まれています。 |
| |
それでは早速、主要なサンプルデータセットの一つを見てみましょう。これは先ほど触れた博物館のデータです。これはより詳細なデータで、 |
| |
オブジェクトごとに行があり、数値データも含まれています。つまり、オブジェクトがリスト化されているということです。属性データもたくさんあります。つまり、たくさんの… |
| |
より充実したデータセットです。スクロールすると、データセットの中身には画像へのパス、つまり画像が保存されているURLが入っています。 |
| |
ホストされており、行によっては最大 5 つの異なる画像があることがわかります。 |
| |
私のツールの2つ目の画像テーブル「important images」は、実際にテーブルに画像を取り込むためのもので、複数のパスに対応しています。ローカルパスも指定できます。URLである必要はありません。 |
| |
デモデータが共有されれば、すぐに入手できるようになります。もう完了しています。少しだけ、舞台裏で何が行われているのかお話ししたいと思います。 |
| |
JMPが画像として認識するものを開く場合、それは画像オブジェクトである可能性があります。画像オブジェクトは、サイズの取得、ピクセルの取得、画像の保存など、多くのJSLコマンドメッセージを受け取ることができます。これらは、共有しているコードで確認できます。 |
| |
さあ、結果を見てみましょう。…画像をテーブルに挿入します。このスクリプトは、画像を挿入する以外にもいくつかの処理を行っています。 |
| |
そうですね…これに関する別のコードスニペットの例を見てみましょう。画像は列、つまり式型の列に格納されます。つまり、式データ型を作成して、そこに画像を格納する方法です。 |
| |
この列のイベントハンドラも作成しています。グラフボックス用の特別なメッセージを使って、画像オブジェクトに画像を追加するとグラフボックスに直接追加されます。これが何をするのかは後ほど説明しますが、これは…クリックイベントハンドラです。 |
| |
また、サイズも変更されており、少し大きいサイズに対応するために高さも高くなっています。 |
| |
これはスクリプトで実行できますが、デフォルトでは画像を挿入するとこのように非常に小さな画像が表示されるので、これはクールかもしれません。 |
| |
大きな配列を見るために、知っておく価値はあると思いますが、JMP で画像が非常に小さく表示されるため、どのように表示したらよいか分からない場合は、手動で拡大することもできます。 |
| |
そしてスクリプトはテーブルに埋め込まれます。これは知っておくと便利なことです。ここでのロジックは、 |
| |
これらすべての画像を埋め込んだため、データテーブルは非常に大きくなりました。 |
| |
こうなると、画像全体のデータが埋め込まれます。そのため、このデータセットを誰かに送信し、特別なツールメニューについて何も知らなくても、このデータセットを取得できるようにしたい場合があります。このツールを実行することで、画像を再インポートできます。 |
| |
私がお見せしたいのは、「クリック時」とは、これをクリックすると、ここにある画像のフルサイズまたは拡大バージョンが表示され、表示されるというものです。 |
| |
先ほども申し上げたように、データテーブルに画像を入れることのメリットの多くは、JMPの非常にシンプルな探索機能にあります。例えば、これらの列を取得して並べ替えることができます。 |
| |
そして、それらを他のいくつかのものに移動するだけで、ファイル サイズのテーブル全体を見るのがより面白くなります。 |
| |
この方法を使えば、閲覧したり、並べ替えたりすることができ、画像が数で並べ替えられているか、または行が有効な画像の数で並べ替えられているかを確認できます。 |
| |
下にスクロールすると、並べ替えることで、興味のある列が隣に並び替えられ、視覚的に確認できます。グリッド内にたくさんの画像を表示できます。 |
| |
テーブルの上に。ここにグループがあり、独自のグループ化の列を作成しました。列を並べ替えるだけで、画像の横に貼り付けることができます。 |
| |
スクロールして確認したい場合に備えて。つまり、画像を移動したり、並べ替えたり、並べ替えたりできるのは、画像を整理して管理することの利点の一つです。 |
| |
表です。私の個人的なユースケースの一つは、画像から得られる重要なメトリクスを監視することです。私の場合、それらのメトリクスは実際には複数の画像の組み合わせから得られています。 |
| |
そして、私はこのデータを調べて、データに繰り返し現れる外れ値や疑わしいモードを探します。 |
| |
このユースケースでは、85 行ではなく、何万行も調べているので、データは何が問題なのかを調べる上で役立ちます。 |
| |
ここで、博物館の展示物の高さと幅のグラフの例を描いてみます。少し戻って、できることを一つお見せしましょう。ここを右クリックすると、最初の列にラベルを作成できます。 |
| |
そしてデータを見ると、何かが突き出ているのが分かります。なぜ高さよりも幅が広いのでしょうか?これは間違いではありません。本当に幅が広いのです。 |
| |
そこにアート作品があるから、納得できます。つまり、一つの事実がポップアップ表示されるということです。もし私が興味を持っている様々なものが、このクラスターの中に挟まれていたら、たくさんのものがあるように見えます。 |
| |
大きさが似ているこれらの人達は、おそらく興味深いように思えます。 |
| |
ラベルを使って個別に確認することもできます。しかし、データが非常に大きい場合は、他の探索的な作業を行うこともできます。データに戻ってF7キーでページ送りすることもできます。 |
| |
選択されたものについては、もちろん、選択したものの一部だけを取得して、 |
| |
データセットが小さいだけです。私がお見せしたい探索的な機能の一つ、特にお気に入りの一つは、行選択機能です。 |
| |
名前の選択と列の設定もできます。つまり、これは奇妙なモードだと言う人もいるでしょうし、これをやると「変わり者」と呼びたくなるのも当然でしょう。 |
| |
それで、データの中に、私が調べたい奇妙なものがいくつかある、と仮定します。すると、最後に、奇妙なものかどうかを示す1と0の列が表示されます。 |
| |
これの便利な点の一つは、データセットが非常に大きいと想像してみてください。ただページをめくるだけでは、あまり良い結果にはなりません。 |
| |
データが大きすぎて、画像を入れたくないんです。画像を取り込むのは無理なので、無理でした。それで、データセットを戻しました。 |
| |
そして、私には興味のある奇妙なデータがあります。そして、サブセット化することができ、それらすべてをサブセット化するのではなく、このグループにはおそらく何千人もいるだろう、その列を使用して層別化を行うことができます。 |
| |
例えば、11個しか選んでいないので、5個を選ぶとします。そして、奇数個を層別化することにします。 |
| |
すると、ランダムに選ばれた5つの奇妙な画像と5つの奇妙な画像が出てきます。そして、ここでそれらを並べ替えて、画像を取り出すことができます。つまり、こうすればいいのです。 |
| |
1と2だけ見たいとか、小さなセットでもいいです。繰り返しますが、これらのパスに沿ってドラッグすると、非常に大きなデータでも、役に立たないように見えることがわかります。 |
| |
画像があれば、あるいは画像を挿入できるのであれば、サブセットを取得するだけで済みます。そして、それらを閲覧して、変わったものは何が違うのかを考え、選別することができます。 |
| |
ここでもう一つのユースケースを紹介したいと思います。 |
| |
このユースケースでは、画像のディープラーニング分類を学ぶことになりました。 |
| |
この場合、画像がまさに文字通りデータであるということが、私に強く印象に残りました。 |
| |
これがその例です。私の場合、もちろん、記録を見ると様々な視点があります。私はこれらの異なる視点を分類しようとしていました。 |
| |
右向きの感触?そして、頭の別の部分に焦点を当てた何か他のもの。ここでは、アートデータから猫の像をシミュレートして分類しています。こちらは後ろ向き、右向き、正面向きなどです。 |
| |
ご存知のとおり、この機械学習のプロジェクトはJMPでは行われていませんが、そこにはニーズがあります |
| |
このPython用のTensorFlow分類ツールは、トレーニングデータを提供します。そして最終的に、返される結果を確認すると、フォルダ内にネストされたファイルという形になります。それでは、もう一つのツールを簡単に紹介しましょう。この画像です。 |
| |
さあ、始めましょう。画像テーブル。これらのツール。 |
| |
2 つのフォルダーがあり、ここには画像を選択できます。 |
| |
これらはデータテーブル内のパスまたは画像であり、いくつかの属性列を選択してそれらを変換することができます。 |
| |
ネストされたファイルフォルダカテゴリ用のファイルフォルダ。ここでは、ファイル名の列を名前として使用するように指示します。 |
| |
一般的にプレフィックスを付けたり、サイズを変更したりできます。サイズ変更もこの機械学習で特に重要になりました。モデルは、特定のサイズの画像をアップロードすることを想定して設定しました。そして、これが実行されると、画像が送信されます。 |
| |
フォルダに。 |
| |
ここで混乱が生じました。 |
| |
もう一度やってみましょう。画像…画像テーブルをフォルダに。 |
| |
間違ったものをクリックしたようです。ここに機械学習用の画像フォルダがあるので、そこにすぐに保存したいのですが。 |
| |
それを修正してください。 |
| |
ファイル名をクリックします。 |
| |
そしてそれらをフォルダ内に整理します。 |
| |
ここにテストデータセットとトレーニングデータセットがあります。おっと、カテゴリの選択を間違えてしまいました。列で選択したものに基づいて、これらを分類してみましょう。 |
| |
つまり、分類したデータをファイル フォルダー構造に格納する必要があるということです。 |
| |
もう 1 つ、データ テーブルで JMP を使ってこれを行うと、これらのカテゴリのトレーニングを行うときに役立ちます。 |
| |
JMP内でグループ分けができることはすでに示しましたが、ここでは別の例を示します。データが存在するため、部門などの他のデータ列は |
| |
データセットで。戻って、テストセットとトレーニングセットをバランスよく分けたかどうか確認できます。例えば、エジプト美術のデータセットでは、エジプト美術はうまくいったと言えるでしょう。 |
| |
タスクとトレーニングの両方に関わっていて、他のカテゴリーにはそれほど関わっていないので、JMPでは他のデータも持っていることが分かります |
| |
列です。テスト用のトレーニングセットを作成するのに便利です。グループのバランスが取れていることを確認したり、この表を保存して、その内容を記録したりすることもできます。 |
| |
私が受けた研修の内容は、まさにそれです。最後に言いたかったのは、この博物館のデータは、実際にはあまりよく捉えられていないということです。 |
| |
計測画像がどれも似たようなものに見えるという考え方です。これらの猫はどれも個性的なので、スクロールしながらよく見ないとわからないかもしれません。 |
| |
これは猫の背中なのか、それとも顔が削ぎ落とされた前面なのか、あるいは他の何かなのか、そして |
| |
計測画像が非常に類似している場合について、もう少し詳しくお話しします。画像を見ながらスクロールしていくだけでも、目で見て確認できるので非常に便利です。Serkay氏によるPowerPointツールの使い方を伺った後、改めてお話します。 |
| セルカイ・オルメズ |
わかりました。画面を共有します。 |
| |
大丈夫。 |
| |
私がお話しするのは、JMP テーブルにリストされている画像を PowerPoint にプッシュできるようにするスクリプトです。 |
| |
では、表にリストされているリンクから画像を集め、選択したテンプレートを使ってPowerPointに貼り付けるという手順を踏んでみましょう。これで、この表を作成できます。 |
| |
コード スニペットは Heidi がすでに示しており、このスクリプトでは、テーブルがすでに存在し、そこにリンクがあることを前提としています。 |
| |
それではスクリプトを実行して、スクリプトが何を行うのかを説明します。 |
| |
これを実行すると、列を属性として選択できるインターフェースが表示されます。まず、JMPが画像をどこから収集するかを認識できるように、画像のパスを選択する必要があります。 |
| |
ラベルを追加することもできます。これらのラベルはPowerPointの列として表示されます。また、PowerPointでどのようなレイアウトにしたいかを決めることもできます。ここではグリッドを表示しています。 |
| |
まずレイアウトです。この場合、4列2行になります。そしてエクスポートをクリックします。するとPowerPointが起動し、PowerPointが起動します。 |
| |
これらの画像を収集するとスライドが作成されますが、サーバーから 20 枚の画像を取得するため、これには 10 ~ 20 秒かかります。 |
| |
完了すると、きれいにレイアウトされた構造のPowerPointが完成します。そして、これらの列は、UIで最初に選択した列から表が作成されていることを覚えておいてください。これはすぐに作成でき、もちろん変更も可能です。 |
| |
ここでレイアウトについて説明します。例えば、 |
| |
違うことです。ここにレイアウト選択があります。例えば、1行だけ残して、下にコメントを入れられるようにスペースを残したいとします。この設定をもう一度実行します。 |
| |
JMPはPowerPointにレイアウトの設定方法を指示します。これが完了すると、スライドごとに画像用の行が作成されます。 |
| |
こんな感じで |
| |
このスクリプトのもう一つの機能は、スライドをカテゴリに分割することです。あるいは、データに上位の属性があり、新しいスライドを開始したい場合もあるでしょう。 |
| |
その属性が変更されると、例えばメディアをスライドラベルに配置すると、上部にスライドラベルが作成されます。タイトルのようなものです。 |
| |
また、この小さなPowerPointプレゼンテーションをカテゴリに分割しました。つまり、メディア属性が変わるたびに新しいスライドが開始されます。これを実行すれば、 |
| |
10~20秒後に同じ処理が繰り返されます。今度は、画像が様々なカテゴリーにグループ化されます。これで、見やすいレイアウトが完成します。 |
| |
スライドセット、 |
| |
分割されます。例えば、真鍮に相当するミディアムサイズのスライドがあり、ブロンズサイズのスライドもあるとします。そこからは1つのアイテムしか取得できないようです。データで???行を選択すると、セラミックなどが表示されます。これでスライドが分割されます。 |
| |
最後にデモとしてお見せしたいのは、もう少し複雑なレイアウトを望む人がいるということです。例えばテンプレートでは、1枚の画像を見たい場合もあるでしょう。 |
| |
大きく表示したいので、左側に大きな画像を配置し、右側にもいくつか配置したいと考えます。そのため、複雑なテンプレートを作成できます |
| |
別のレイアウトを選択することで、スクリプトによって処理されます。例えば、大きな画像から小さな画像までのレイアウトを作成した場合、左側に大きな画像が1つ、右側に小さな画像が2つ重なって表示されます。 |
| |
同じことを行いますが、レイアウトが異なります。 |
| |
スライドの作成には 10 ~ 20 秒かかります。 |
| |
はい、できました。左側に大きな画像が1つ、右側に小さな画像が2つあります。 |
| |
最後に、ツールのカスタマイズについてご紹介します。このツールは、画像操作全般を行うこの大きなアドインの一部としてリリースされます。このアドインを少し開いてみると、 |
| |
これはユーザーがカスタマイズできるので、ユーザーは自動的にロールにどのような列を配置するかを変更できます。 |
| |
ユーザーは自分好みにデザインを変えることができます。最後に、専用のテンプレートについて触れておきます。これらのテンプレートは |
| |
先ほど、大小さまざまなものをご紹介しましたが、これらはツール外部のスクリプトによって作成されます。そのため、2つ提供する予定です。ただし、ユーザーが十分な経験があれば、自分で開発できるという考え方です。 |
| |
独自のテンプレートを作成し、ツールに組み込むとツールがそれを認識します。また、開発者がさらに多くのテンプレートを開発することもできます。 |
| |
特定の顧客やユーザーに特化したものです。これはこれからリリースするアドインの一部になります。私が持っているのはこれだけです。ハイディが持ち帰ってくれます。 |
| ハイディ・ハードナー |
はいはい。 |
| |
申し訳ありません。戻ってきました。 |
| |
今度は別のデータセットを見ていきます。シェッド・オブ・サイエンスの天文学画像です。 |
| |
宣伝通り、これらの画像は計量画像であり、この非常に小さな画像で夜空の一部をご覧いただくことができます。そして、この非常に小さなサイズと範囲の画像であっても、 |
| |
そこに動きがあるのが見えます。そして、何かが飛び出したときのように、ここにあるような異常なものも見えます。 |
| |
これは、機械学習プロジェクトで分類ツールを使っていた時に言いたかったことの一つです。画像同士は一見非常によく似ているのですが、スクロールしていくうちに、このように異常なものが簡単に見つかります。 |
| |
でも、もっと分かりやすく説明するために、これを拡大してスクロールしてみましょう。それでは、 |
| |
これから見るものを説明します。ここには、これらの画像における白の強度を時間の関数として表した図があります。スクロールすると、時間順に並んでいます。 |
| |
そして、目に見えない、目で確認しにくいことが 1 つあります。それは、強度のこの大きな緩やかな傾向です。 |
| |
ラベルを付けます。ここでもラベルの使い方が分かります。強度が非常に高いかどうかは、60秒露出画像に筋状のものが見えることから分かります。これは、画像の中で何かが通過していることを示しています。また、データの凹凸も確認できます。そして、それが |
| |
望遠鏡がドリフトし、背景が少し動いてリセットされます。スクロールするとそれが分かります。それでは、少しだけプレビューをご覧ください。 |
| |
これをさらに大きく拡大して、データ テーブル内でも、画像のかなり大きなビューを少しだけ大きく表示できるようにします。 |
| |
では、時間の始まりに戻ってください。データをスクロールしながら、この場所、あの物体に注目してください。 |
| |
背景の星々を背景に、左に動いているのが見えると思います。これは小惑星「2171 キエフ」です。 |
| |
つまり、これらの計測画像の真の意図がそこにあったのです。適切な状況であれば、表内の画像をスクロールするだけで計測できることをグラフィックで示しました。 |
| |
画像テーブルアノテーション。これは、画像を1枚ずつ確認したい場合など、逆のケースに使用します。 |
| |
これをクリックすると、パスを使用するか、埋め込まれた画像を使用するかを選択できるようになります。 |
| |
ここに日付を入れるか行番号だけを入れるかといった識別子をつけるオプションがあります。また、もう一つの属性として望遠鏡を入れることもできます。 |
| |
これはちょっとしたマークアップツールで、これを使えば |
| |
一般的な分類をいくつかしてみましょう。これは3です。何か言いたいことがあります。データについて何かコメントを。 |
| |
十字線も付いているので、計測もできます。画像上のピクセルを計測し、十字線を動かして位置を記録します。 |
| |
記録をクリックすると、そこにデルタとピクセルが表示されます。さて、それを行う前に、商用のマークアップには様々な方法がある理由の一つは |
| |
ツールの場合、JMP でこれを行う理由の 1 つは、画像とともに、その他のすべてのデータがテーブルに含まれていることです。 |
| |
ここでは1列で表されているだけですが、これはカスタマイズの余地が十分にあります。私の小さなバージョンでは、画像を見ています |
| |
このビューには、ヘッドがウェハ上のどこにあったかを示す小さなマップや、その他の様々なデータを印刷しています。あるいは、イメージレシピに寸法が書かれていたら、それを検証してみるのもいいかもしれません。 |
| |
画像とアイテムを結合する機能は、実際に可能ですか?記録をクリックすると、右側に列を追加して、 |
| |
(列が高すぎるので、少し縮小しましょう。) |
| |
3行目に記録されているのがわかります。いいえ、白い十字線を動かさないようにしたかったので、縦方向の距離を取得しています。十字線の位置とコメントと分類は、正しい行の表にそのまま固定されています。 |
| |
もう一つ、ここに画像の列があります。ここにJMPプロットの画像をいくつか配置しています。JMPプロットは画像にもなります。 |
| |
共有しているデータテーブルには、これらの画像を作成するコードが埋め込まれています。これは、画像に対してGet Pixelsメッセージを使用するものです。 |
| |
データのマトリックスを取得し、小惑星の移動方向に沿ってスライスを切り出し、強度を平均化します。ページをめくると、 |
| |
これらの画像では山頂が動いています。しかし、私にとってこのことの本当のポイントは、先ほど述べたことです。 |
| |
Seagateでは常にヘッドのデータが1行あり、そこにはスペクトル全体から得られたピーク周波数や最適化スイープから得られた最適値などの値が含まれています。 |
| |
これらのスイープは、実際にはデータ内の画像になる可能性があります。もちろん、画像や複雑な曲線に対してこのような特徴抽出を行うのには、十分な理由があります。 |
| |
頻度のような単純な値は、JMPのさまざまな分析でより直接的に使用できます。 |
| |
JMP の統計プラットフォームですが、他のデータ列と関連させて画像をテーブルに取り込めば、さらに多くの便利な機能を実行できることをお見せできたと思います。 |
| |
特に、プロットを画像として見ると、Serkay の PowerPoint デモをすぐに思い出すと思いますが、プロットは PowerPoint で特定の方法で配置するようなものです。 |
| |
とにかく、私たちが共有した様々なJSLが皆さんのお役に立ち、画像を使ってもっと色々なことをしてみようという気持ちになっていただければ幸いです。ありがとうございます。 |