Wednesday, July 10, 2024

ပျူစကားသံ - ၂

၂၀၂၂ မတ်လ ၂၇ ရက်နေ့က ကျနော့ရဲ့တောလား (Syllvan Stroll) ဘလော့မှာရေးခဲ့တဲ့ “ပျူစကားသံ - ၁” ကိုအကျဉ်းချုံးပြီးဖေ့ဘုတ်မှာတင်လိုက်တော့ IT နယ်ပယ်ကတူမလေးတယောက်က “ဂြိုလ်သားဇာတ်ကားတွေထဲက အသံမျိုး” လို့မှတ်ချက်ပေးပါတယ်။

html_tag_audio("PYU-1.wav", type = "wav")

တကယ်တော့ကျနော်လောကြီးပြီးမှားခဲ့တာပါ။ ဟလင်းပျူမြို့ဟောင်းမှာတွေ့ရတဲ့ကျောက်စာတိုင်ပေါ်ကပျူစာနှစ်ကြောင်းထဲကပထမအကြောင်းကို စာကနေအသံထုတ်ပေးတဲ့ ကွန်ပျူတာပရိုဂရမ်တခုကိုသုံးပြီးအသံထုတ်ကြည့်ခဲ့တယ်။ ဒီမှာမှားသွားခဲ့တာက ပျူစာကိုအက္ခရာဖလှယ်ထားတာက ISO 15919 စနစ်နဲ့ဖြစ်တာကို နိုင်ငံတကာအသံထွက်အက္ခရာလို့ခေါ်တဲ့သင်္ကေတ (IPA - International Phonetic Alphabet) နဲ့ရေးထားတယ် လို့အမှတ်တမဲ့ အလွဲသုံးခဲ့တာဖြစ်ပါတယ်။

မကြာခင်ကတော့ Sanskrit Text-to-Speech ဆိုတဲ့ JavaScript ပရိုဂရမ်တွေ့တယ်။ အိန္ဒိယနွယ်အက္ခရာ တွေ (Indic scripts) နဲ့ရေးထားတဲ့စာအမျိုးအစား ၁၈-မျိုးကို စကားသံအဖြစ် ဒီပရိုဂရမ်ကပြောင်းပေးနိုင်ပါတယ်။ ဒီမှာ ISO 15919 စနစ်နဲ့ရေးထားတဲ့စာသားလဲအကြုံးဝင်လို့စမ်းကြည့်ပါတယ်။
ဒီပရိုဂရမ်သုံးပြီး ထွက်လာတဲ့စကားသံက ပျူစကားသံနဲ့ပိုပြီးနီးစပ်နိုင်လောက်တယ်။ နားထောင်ကြည့်ပါဦး -

html_tag_audio("PYU-1_ln1.mp3", type = "mpeg")

တကယ်တော့ကျနော်ကကွန်ပျူတာနဲ့ဆော့နေတဲ့သက်ကြားအိုတယောက်မို့ဂျာဗားပရိုဂရမ်နဲ့မနီးစပ်လို့ ရွာလည်သွားတယ်။ တခါမှလုပ်မကြည့်ခဲ့ဘူးမဟုတ်လား။ ဒါပေမဲ့ AI (ဉာဏ်ရည်တုပညာ) ကအတော်ထွန်းကားလာတောတော့ မေးချင်ရာမေးလူစကားနဲ့ပြန်ဖြေပေးနိုင်တဲစက်ရုပ် (chatbot) တွေပေါ်လာတယ်။ ကျနော်ကလဲအခွင့်ကောင်းယူပြီး ကျနော့်ကွန်ပျူတာပေါ်က Windows 11 မှာပါတဲ့ “Copilot” chatbot ကိုမေးလိုက်၊စမ်းလိုက်၊ပြင်လိုက်နဲ့ Sanskrit Text-to-Speech ဆိုတဲ့ JavaScript ပရိုဂရမ်ကိုသုံးတတ်သွားတာပါ။ စိတ်ဝင်စားသူတွေစမ်းကြည့်နိုင်ဖို့ ကျနော့အတွေ့အကြုံကိုမျှဝေပါရစေ။

ဝင်းဒိုးသုံးကွန်ပျူတာမှာ ပျူစကားသံကြားရအောင် Sanskrit Text-to-Speech သုံးဖို့လုပ်နည်းအဆင့်ဆင့်က -
(၁) Sanskrit Text-to-Speech ကို install လုပ်နိုင်ဖို့ Node.js နဲ့ npm ဆော့ဝဲတွေကိုအရင် install လုပ်ရမယ်၊
(၂) “sanskrit-tts” package ကို install လုပ်ရမယ်၊
(၃) iso 15919 နဲ့အက္ခရာဖထှယ်ထားတဲ့ပျူစာကြောင်းကိုအသံဖိုင်လုပ်ပေးဖို့ Java script ကိုရေးပြီး run မှာဖြစ်ပါတယ်။

Node.js ကို install လုပ်

  1. Node.js ကိုဒေါင်းလုတ်ဆွဲပါ:
  1. Node.js ကို Install လုပ်ပါ:
  • ဒေါင်းလုတ်ဆွဲထားတဲ့ installer ကို run ပါ။ Node.js နဲ့ npm နှစ်မျိုးစလုံးကို တင်ပေးပါလိမ့်မယ်။
  1. Installation မှန်မမှန်စစ်ပါ
  • Command Prompt သို့မဟုတ် PowerShell ကိုဖွင့်ပါ၊
  • node -v လို့စာရိုက်ပြီး Enter ကိုနှိပ်ရင် Node.js version ပေါ်လာမယ်၊
  • npm -v လို့စာရိုက်ပြီး Enter ကိုနှိပ်ရင် npm version ပေါ်လာမယ်။ version နှစ်ခုစလုံးပေါ်ရင် Installation အောင်မြင်ပါပြီ။

sanskrit-tts package ကို install လုပ်

  1. Terminal ကိုဖွင့်
  • Windows Terminal ဖွင့်ဖို့ Start ကိုနှိပ်၊ “Windows Terminal” လို့စာရိုက်၊ ပေါ်လာတဲ့အထဲက Windows Terminal ကိုရွေးမယ်။
  1. သင့်ရဲ့လုပ်ငန်း Directory သို့ပြောင်း
  • ဥပမာ PYU-speech လို့ C: အောက်မှာဖွင့်ထားရင် cd C:-speech လို့စာရိုက်ပြီးနှိပ်ပါ။
  1. sanskrit-tts Package ကို install လုပ်
    npm install sanskrit-tts လို့စာရိုက်ပြီးနှိပ်ပါ။

JavaScript ဖိုင်လုပ်

သင့်လုပ်ငန်း directory ထဲမှာ JavaScript ဖိုင်အသစ်၊ ဥပမာmyPyuTTS.js ကိုဖွင့်မယ်။ ဒါကပျူကမ္ဗည်းစာတွေကိုစုထားပြီး iso 51919 အက္ခရာနဲ့ရေးထားတဲ့အထဲက ပထမကမ္ဗည်းစာရဲ့ပထမစာကြောင်ကိုအသံဖိုင်ထုတ်ခိုင်းတဲ့ JavaScript ရေးဖို့ပါ။

Script ရေး

  • အောက်ပါစာကိုကူးပါ -

// Import the sanskrit-tts module
const tts = require('sanskrit-tts');

// Define the Pyu text (in ISO 15919)
const text = '|| ḅay·ṁḥ dak·ṃ viy·ṃṁ tim·ṁ mlik· °o saḥ tgaṃ knon· °o [p]li'; 

// Convert the text to speech and save it as an MP3 file
tts.saveFile(text, { 
    script: 'iso15919', 
    fileName: 'myPyuSpeech.mp3' 
});
  • Notepad ကိုဖွင့်ပြီး ကူးထားတဲ့စာတွေကို paste လုပ်မယ်။

  • myPyuTTS.js နာမယ်နဲ့ save လုပ်မယ်။

သင့် Script ကို run ပါ

  • Terminal ကိုဖွင့်၊ myPyuTTS.js ဖိုင်ရှိတဲ့နေရာကိုသွားပြီး သင့် Script ကို “node myPyuTTS.js” ဆိုတဲ့အမိန့်ပေးပြီး Node.js နဲ့ run မယ်။

ဒါကနေ myPyuSpeech.mp3 ဆိုတဲ့ ပျူစာသားကိုအသံထွက်ပေးထားတဲ့အသံဖိုင်ဖြစ်သွားတာတွေ့ရမယ်။

ဖွင့်ပြီးနားထောင်ကြည့်ရင် ဒီဆောင်းပါးအစမှာနားထောင်ခဲ့ရတဲ့ ဒုတိယအသံဖိုင်နဲ့တူတာကိုတွေ့ရပါမယ်။

LS0tDQp0aXRsZTogIuGAleGAu+GAsOGAheGAgOGArOGAuOGAnuGAtiAtIOGBgiINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCuGBguGBgOGBguGBgiDhgJnhgJDhgLrhgJwg4YGC4YGHIOGAm+GAgOGAuuGAlOGAseGAt+GAgCDhgIDhgLvhgJThgLHhgKzhgLfhgJvhgLLhgLfhgJDhgLHhgKzhgJzhgKzhgLggKFN5bGx2YW4gU3Ryb2xsKSDhgJjhgJzhgLHhgKzhgLfhgJnhgL7hgKzhgJvhgLHhgLjhgIHhgLLhgLfhgJDhgLLhgLcg4oCc4YCV4YC74YCw4YCF4YCA4YCs4YC44YCe4YC2IC0g4YGB4oCdICDhgIDhgK3hgK/hgKHhgIDhgLvhgInhgLrhgLjhgIHhgLvhgK/hgLbhgLjhgJXhgLzhgK7hgLjhgJbhgLHhgLfhgJjhgK/hgJDhgLrhgJnhgL7hgKzhgJDhgIThgLrhgJzhgK3hgK/hgIDhgLrhgJDhgLHhgKzhgLcgSVQg4YCU4YCa4YC64YCV4YCa4YC64YCA4YCQ4YCw4YCZ4YCc4YCx4YC44YCQ4YCa4YCx4YCs4YCA4YC64YCAIOKAnOGAguGAvOGAreGAr+GAnOGAuuGAnuGArOGAuOGAh+GArOGAkOGAuuGAgOGArOGAuOGAkOGAveGAseGAkeGAsuGAgCDhgKHhgJ7hgLbhgJnhgLvhgK3hgK/hgLjigJ0g4YCc4YCt4YCv4YC34YCZ4YC+4YCQ4YC64YCB4YC74YCA4YC64YCV4YCx4YC44YCV4YCr4YCQ4YCa4YC64YGLIA0KDQoNCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQpodG1sX3RhZ19hdWRpbyA8LSBmdW5jdGlvbihmaWxlLCB0eXBlID0gYygibXBlZyIsICJ3YXYiKSkgew0KICB0eXBlIDwtIG1hdGNoLmFyZyh0eXBlKQ0KICBodG1sdG9vbHM6OnRhZ3MkYXVkaW8oDQogICAgY29udHJvbHMgPSAiIiwNCiAgICBodG1sdG9vbHM6OnRhZ3Mkc291cmNlKA0KICAgICAgc3JjID0gZmlsZSwNCiAgICAgIHR5cGUgPSBnbHVlOjpnbHVlKCJhdWRpby97dHlwZX0iLCB0eXBlID0gdHlwZSkNCiAgICApDQogICkNCn0NCmBgYA0KDQpgYGB7cn0NCmh0bWxfdGFnX2F1ZGlvKCJQWVUtMS53YXYiLCB0eXBlID0gIndhdiIpDQpgYGANCg0K4YCQ4YCA4YCa4YC64YCQ4YCx4YCs4YC34YCA4YC74YCU4YCx4YCs4YC64YCc4YCx4YCs4YCA4YC84YCu4YC44YCV4YC84YCu4YC44YCZ4YC+4YCs4YC44YCB4YCy4YC34YCQ4YCs4YCV4YCr4YGLIOGAn+GAnOGAhOGAuuGAuOGAleGAu+GAsOGAmeGAvOGAreGAr+GAt+GAn+GAseGArOGAhOGAuuGAuOGAmeGAvuGArOGAkOGAveGAseGAt+GAm+GAkOGAsuGAt+GAgOGAu+GAseGArOGAgOGAuuGAheGArOGAkOGAreGAr+GAhOGAuuGAleGAseGAq+GAuuGAgOGAleGAu+GAsOGAheGArOGAlOGAvuGAheGAuuGAgOGAvOGAseGArOGAhOGAuuGAuOGAkeGAsuGAgOGAleGAkeGAmeGAoeGAgOGAvOGAseGArOGAhOGAuuGAuOGAgOGAreGAryDhgIXhgKzhgIDhgJThgLHhgKHhgJ7hgLbhgJHhgK/hgJDhgLrhgJXhgLHhgLjhgJDhgLLhgLcg4YCA4YC94YCU4YC64YCV4YC74YCw4YCQ4YCs4YCV4YCb4YCt4YCv4YCC4YCb4YCZ4YC64YCQ4YCB4YCv4YCA4YCt4YCv4YCe4YCv4YC24YC44YCV4YC84YCu4YC44YCh4YCe4YC24YCR4YCv4YCQ4YC64YCA4YC84YCK4YC34YC64YCB4YCy4YC34YCQ4YCa4YC64YGLIOGAkuGAruGAmeGAvuGArOGAmeGAvuGArOGAuOGAnuGAveGArOGAuOGAgeGAsuGAt+GAkOGArOGAgCDhgJXhgLvhgLDhgIXhgKzhgIDhgK3hgK/hgKHhgIDhgLnhgIHhgJvhgKzhgJbhgJzhgL7hgJrhgLrhgJHhgKzhgLjhgJDhgKzhgIAgSVNPIDE1OTE5IOGAheGAlOGAheGAuuGAlOGAsuGAt+GAluGAvOGAheGAuuGAkOGArOGAgOGAreGAryDhgJThgK3hgK/hgIThgLrhgIThgLbhgJDhgIDhgKzhgKHhgJ7hgLbhgJHhgL3hgIDhgLrhgKHhgIDhgLnhgIHhgJvhgKzhgJzhgK3hgK/hgLfhgIHhgLHhgKvhgLrhgJDhgLLhgLfhgJ7hgIThgLrhgLnhgIDhgLHhgJAgKElQQSAtIEludGVybmF0aW9uYWwgUGhvbmV0aWMgQWxwaGFiZXQpIOGAlOGAsuGAt+GAm+GAseGAuOGAkeGArOGAuOGAkOGAmuGAuiDhgJzhgK3hgK/hgLfhgKHhgJnhgL7hgJDhgLrhgJDhgJnhgLLhgLcg4YCh4YCc4YC94YCy4YCe4YCv4YC24YC44YCB4YCy4YC34YCQ4YCs4YCW4YC84YCF4YC64YCV4YCr4YCQ4YCa4YC64YGLDQoNCuGAmeGAgOGAvOGArOGAgeGAhOGAuuGAgOGAkOGAseGArOGAtyBTYW5za3JpdCBUZXh0LXRvLVNwZWVjaCDhgIbhgK3hgK/hgJDhgLLhgLcgSmF2YVNjcmlwdCDhgJXhgJvhgK3hgK/hgILhgJvhgJnhgLrhgJDhgL3hgLHhgLfhgJDhgJrhgLrhgYsg4YCh4YCt4YCU4YC54YCS4YCt4YCa4YCU4YC94YCa4YC64YCh4YCA4YC54YCB4YCb4YCsIOGAkOGAveGAsSAoSW5kaWMgc2NyaXB0cykg4YCU4YCy4YC34YCb4YCx4YC44YCR4YCs4YC44YCQ4YCy4YC34YCF4YCs4YCh4YCZ4YC74YCt4YCv4YC44YCh4YCF4YCs4YC4IOGBgeGBiC3hgJnhgLvhgK3hgK/hgLjhgIDhgK3hgK8g4YCF4YCA4YCs4YC44YCe4YC24YCh4YCW4YC84YCF4YC6IOGAkuGAruGAleGAm+GAreGAr+GAguGAm+GAmeGAuuGAgOGAleGAvOGAseGArOGAhOGAuuGAuOGAleGAseGAuOGAlOGAreGAr+GAhOGAuuGAleGAq+GAkOGAmuGAuuGBiyDhgJLhgK7hgJnhgL7hgKwgSVNPIDE1OTE5IOGAheGAlOGAheGAuuGAlOGAsuGAt+GAm+GAseGAuOGAkeGArOGAuOGAkOGAsuGAt+GAheGArOGAnuGArOGAuOGAnOGAsuGAoeGAgOGAvOGAr+GAtuGAuOGAneGAhOGAuuGAnOGAreGAr+GAt+GAheGAmeGAuuGAuOGAgOGAvOGAiuGAt+GAuuGAleGAq+GAkOGAmuGAuuGBiyAgIA0K4YCS4YCu4YCV4YCb4YCt4YCv4YCC4YCb4YCZ4YC64YCe4YCv4YC24YC44YCV4YC84YCu4YC4IOGAkeGAveGAgOGAuuGAnOGArOGAkOGAsuGAt+GAheGAgOGArOGAuOGAnuGAtuGAgCDhgJXhgLvhgLDhgIXhgIDhgKzhgLjhgJ7hgLbhgJThgLLhgLfhgJXhgK3hgK/hgJXhgLzhgK7hgLjhgJThgK7hgLjhgIXhgJXhgLrhgJThgK3hgK/hgIThgLrhgJzhgLHhgKzhgIDhgLrhgJDhgJrhgLrhgYsg4YCU4YCs4YC44YCR4YCx4YCs4YCE4YC64YCA4YC84YCK4YC34YC64YCV4YCr4YCm4YC4IC0NCg0KYGBge3J9DQpodG1sX3RhZ19hdWRpbygiUFlVLTFfbG4xLm1wMyIsIHR5cGUgPSAibXBlZyIpDQpgYGANCg0K4YCQ4YCA4YCa4YC64YCQ4YCx4YCs4YC34YCA4YC74YCU4YCx4YCs4YC64YCA4YCA4YC94YCU4YC64YCV4YC74YCw4YCQ4YCs4YCU4YCy4YC34YCG4YCx4YCs4YC34YCU4YCx4YCQ4YCy4YC34YCe4YCA4YC64YCA4YC84YCs4YC44YCh4YCt4YCv4YCQ4YCa4YCx4YCs4YCA4YC64YCZ4YCt4YCv4YC34YCC4YC74YCs4YCX4YCs4YC44YCV4YCb4YCt4YCv4YCC4YCb4YCZ4YC64YCU4YCy4YC34YCZ4YCU4YCu4YC44YCF4YCV4YC64YCc4YCt4YCv4YC3IOGAm+GAveGArOGAnOGAiuGAuuGAnuGAveGArOGAuOGAkOGAmuGAuuGBiyDhgJDhgIHhgKvhgJnhgL7hgJzhgK/hgJXhgLrhgJnhgIDhgLzhgIrhgLfhgLrhgIHhgLLhgLfhgJjhgLDhgLjhgJnhgJ/hgK/hgJDhgLrhgJzhgKzhgLjhgYsg4YCS4YCr4YCV4YCx4YCZ4YCy4YC3IEFJICjhgInhgKzhgI/hgLrhgJvhgIrhgLrhgJDhgK/hgJXhgIrhgKwpIOGAgOGAoeGAkOGAseGArOGAuuGAkeGAveGAlOGAuuGAuOGAgOGArOGAuOGAnOGArOGAkOGAseGArOGAkOGAseGArOGAtyDhgJnhgLHhgLjhgIHhgLvhgIThgLrhgJvhgKzhgJnhgLHhgLjhgJzhgLDhgIXhgIDhgKzhgLjhgJThgLLhgLfhgJXhgLzhgJThgLrhgJbhgLzhgLHhgJXhgLHhgLjhgJThgK3hgK/hgIThgLrhgJDhgLLhgIXhgIDhgLrhgJvhgK/hgJXhgLogKGNoYXRib3QpIOGAkOGAveGAseGAleGAseGAq+GAuuGAnOGArOGAkOGAmuGAuuGBiyDhgIDhgLvhgJThgLHhgKzhgLrhgIDhgJzhgLLhgKHhgIHhgL3hgIThgLfhgLrhgIDhgLHhgKzhgIThgLrhgLjhgJrhgLDhgJXhgLzhgK7hgLgg4YCA4YC74YCU4YCx4YCs4YC34YC64YCA4YC94YCU4YC64YCV4YC74YCw4YCQ4YCs4YCV4YCx4YCr4YC64YCAIFdpbmRvd3MgMTEg4YCZ4YC+4YCs4YCV4YCr4YCQ4YCy4YC3IOKAnENvcGlsb3TigJ0gY2hhdGJvdCDhgIDhgK3hgK/hgJnhgLHhgLjhgJzhgK3hgK/hgIDhgLrhgYrhgIXhgJnhgLrhgLjhgJzhgK3hgK/hgIDhgLrhgYrhgJXhgLzhgIThgLrhgJzhgK3hgK/hgIDhgLrhgJThgLLhgLcgU2Fuc2tyaXQgVGV4dC10by1TcGVlY2gg4YCG4YCt4YCv4YCQ4YCy4YC3IEphdmFTY3JpcHQg4YCV4YCb4YCt4YCv4YCC4YCb4YCZ4YC64YCA4YCt4YCv4YCe4YCv4YC24YC44YCQ4YCQ4YC64YCe4YC94YCs4YC44YCQ4YCs4YCV4YCr4YGLDQrhgIXhgK3hgJDhgLrhgJ3hgIThgLrhgIXhgKzhgLjhgJ7hgLDhgJDhgL3hgLHhgIXhgJnhgLrhgLjhgIDhgLzhgIrhgLfhgLrhgJThgK3hgK/hgIThgLrhgJbhgK3hgK/hgLcg4YCA4YC74YCU4YCx4YCs4YC34YCh4YCQ4YC94YCx4YC34YCh4YCA4YC84YCv4YC24YCA4YCt4YCv4YCZ4YC74YC+4YCd4YCx4YCV4YCr4YCb4YCF4YCx4YGLDQoNCuGAneGAhOGAuuGAuOGAkuGAreGAr+GAuOGAnuGAr+GAtuGAuOGAgOGAveGAlOGAuuGAleGAu+GAsOGAkOGArOGAmeGAvuGArCDhgJXhgLvhgLDhgIXhgIDhgKzhgLjhgJ7hgLbhgIDhgLzhgKzhgLjhgJvhgKHhgLHhgKzhgIThgLogU2Fuc2tyaXQgVGV4dC10by1TcGVlY2gg4YCe4YCv4YC24YC44YCW4YCt4YCv4YC34YCc4YCv4YCV4YC64YCU4YCK4YC64YC44YCh4YCG4YCE4YC34YC64YCG4YCE4YC34YC64YCAIC0gICAgICANCijhgYEpICBTYW5za3JpdCBUZXh0LXRvLVNwZWVjaCDhgIDhgK3hgK8gaW5zdGFsbCDhgJzhgK/hgJXhgLrhgJThgK3hgK/hgIThgLrhgJbhgK3hgK/hgLcgTm9kZS5qcyDhgJThgLLhgLcgbnBtICDhgIbhgLHhgKzhgLfhgJ3hgLLhgJDhgL3hgLHhgIDhgK3hgK/hgKHhgJvhgIThgLogIGluc3RhbGwg4YCc4YCv4YCV4YC64YCb4YCZ4YCa4YC64YGKICANCijhgYIpIOKAnHNhbnNrcml0LXR0c+KAnSBwYWNrYWdlICDhgIDhgK3hgK8gaW5zdGFsbCDhgJzhgK/hgJXhgLrhgJvhgJnhgJrhgLrhgYogIA0KKOGBgykgaXNvIDE1OTE5ICDhgJThgLLhgLfhgKHhgIDhgLnhgIHhgJvhgKzhgJbhgJHhgL7hgJrhgLrhgJHhgKzhgLjhgJDhgLLhgLfhgJXhgLvhgLDhgIXhgKzhgIDhgLzhgLHhgKzhgIThgLrhgLjhgIDhgK3hgK/hgKHhgJ7hgLbhgJbhgK3hgK/hgIThgLrhgJzhgK/hgJXhgLrhgJXhgLHhgLjhgJbhgK3hgK/hgLcgSmF2YSBzY3JpcHQg4YCA4YCt4YCv4YCb4YCx4YC44YCV4YC84YCu4YC4IHJ1biDhgJnhgL7hgKzhgJbhgLzhgIXhgLrhgJXhgKvhgJDhgJrhgLrhgYsNCg0KIyMjICBOb2RlLmpzIOGAgOGAreGAryBpbnN0YWxsIOGAnOGAr+GAleGAuiAgICAgDQoxLiAqKk5vZGUuanMg4YCA4YCt4YCv4YCS4YCx4YCr4YCE4YC64YC44YCc4YCv4YCQ4YC64YCG4YC94YCy4YCV4YCrKio6DQogLSBOb2RlLmpzIOGAneGAmOGAuuGAheGArOGAmeGAu+GAgOGAuuGAlOGAvuGArCAoaHR0cHM6Ly9ub2RlanMub3JnL2VuL2Rvd25sb2FkL3ByZWJ1aWx0LWluc3RhbGxlcikg4YCA4YCt4YCv4YCW4YC94YCE4YC34YC64YCV4YCr4YGLDQogLSAqKkRvd25sb2FkIE5vZGUuanMqKiDhgIDhgK3hgK/hgJThgL7hgK3hgJXhgLrhgJXhgKvhgYsNCjIuICoqTm9kZS5qcyDhgIDhgK3hgK8gSW5zdGFsbCDhgJzhgK/hgJXhgLrhgJXhgKsqKjoNCiAtIOGAkuGAseGAq+GAhOGAuuGAuOGAnOGAr+GAkOGAuuGAhuGAveGAsuGAkeGArOGAuOGAkOGAsuGAtyBpbnN0YWxsZXIg4YCA4YCt4YCvIHJ1biDhgJXhgKvhgYsgTm9kZS5qcyDhgJThgLLhgLcgbnBtIOGAlOGAvuGAheGAuuGAmeGAu+GAreGAr+GAuOGAheGAnOGAr+GAtuGAuOGAgOGAreGAryAg4YCQ4YCE4YC64YCV4YCx4YC44YCV4YCr4YCc4YCt4YCZ4YC34YC64YCZ4YCa4YC64YGLDQozLiAqKkluc3RhbGxhdGlvbiDhgJnhgL7hgJThgLrhgJnhgJnhgL7hgJThgLrhgIXhgIXhgLrhgJXhgKsqKg0KIC0gKipDb21tYW5kIFByb21wdCoqIOGAnuGAreGAr+GAt+GAmeGAn+GAr+GAkOGAuiAqKlBvd2VyU2hlbGwqKiDhgIDhgK3hgK/hgJbhgL3hgIThgLfhgLrhgJXhgKvhgYoNCiAtIGBub2RlIC12YCDhgJzhgK3hgK/hgLfhgIXhgKzhgJvhgK3hgK/hgIDhgLrhgJXhgLzhgK7hgLggKipFbnRlcioqIOGAgOGAreGAr+GAlOGAvuGAreGAleGAuuGAm+GAhOGAuiBOb2RlLmpzIHZlcnNpb24g4YCV4YCx4YCr4YC64YCc4YCs4YCZ4YCa4YC64YGKDQogLSBgbnBtIC12YCDhgJzhgK3hgK/hgLfhgIXhgKzhgJvhgK3hgK/hgIDhgLrhgJXhgLzhgK7hgLggKipFbnRlcioqIOGAgOGAreGAr+GAlOGAvuGAreGAleGAuuGAm+GAhOGAuiBucG0gdmVyc2lvbiDhgJXhgLHhgKvhgLrhgJzhgKzhgJnhgJrhgLrhgYsgdmVyc2lvbiDhgJThgL7hgIXhgLrhgIHhgK/hgIXhgJzhgK/hgLbhgLjhgJXhgLHhgKvhgLrhgJvhgIThgLogSW5zdGFsbGF0aW9uIOGAoeGAseGArOGAhOGAuuGAmeGAvOGAhOGAuuGAleGAq+GAleGAvOGAruGBiw0KIVtdKEM6L0RBVEEvbXlQb3N0cy9jaGVja05vZGVOcG1faW5zdGFsbC5wbmcpeyNpZCAuY2xhc3Mgd2lkdGg9NjAlIGhlaWdodD02MCV9ICANCg0KIyMjIHNhbnNrcml0LXR0cyBwYWNrYWdlICDhgIDhgK3hgK8gaW5zdGFsbCDhgJzhgK/hgJXhgLogIA0KMS4gKipUZXJtaW5hbCoqIOGAgOGAreGAr+GAluGAveGAhOGAt+GAug0KIC0gKipXaW5kb3dzIFRlcm1pbmFsKiog4YCW4YC94YCE4YC34YC64YCW4YCt4YCv4YC3ICoqU3RhcnQqKiDhgIDhgK3hgK/hgJThgL7hgK3hgJXhgLrhgYogKioiV2luZG93cyBUZXJtaW5hbCIqKiDhgJzhgK3hgK/hgLfhgIXhgKzhgJvhgK3hgK/hgIDhgLrhgYog4YCV4YCx4YCr4YC64YCc4YCs4YCQ4YCy4YC34YCh4YCR4YCy4YCAIFdpbmRvd3MgVGVybWluYWwg4YCA4YCt4YCv4YCb4YC94YCx4YC44YCZ4YCa4YC64YGLDQoyLiAqKuGAnuGAhOGAt+GAuuGAm+GAsuGAt+GAnOGAr+GAleGAuuGAhOGAlOGAuuGAuCBEaXJlY3RvcnkqKiDhgJ7hgK3hgK/hgLfhgJXhgLzhgLHhgKzhgIThgLrhgLgNCiAtIOGApeGAleGAmeGArCBQWVUtc3BlZWNoICDhgJzhgK3hgK/hgLcgICBDOiDhgKHhgLHhgKzhgIDhgLrhgJnhgL7hgKzhgJbhgL3hgIThgLrhgLfhgJHhgKzhgLjhgJvhgIThgLogY2QgQzpcUFlVLXNwZWVjaCDhgJzhgK3hgK/hgLfhgIXhgKzhgJvhgK3hgK/hgIDhgLrhgJXhgLzhgK7hgLjhgJThgL7hgK3hgJXhgLrhgJXhgKvhgYsNCjMuICoqc2Fuc2tyaXQtdHRzIFBhY2thZ2Ug4YCA4YCt4YCvIGluc3RhbGwg4YCc4YCv4YCV4YC6KiogICANCiBucG0gaW5zdGFsbCBzYW5za3JpdC10dHMg4YCc4YCt4YCv4YC34YCF4YCs4YCb4YCt4YCv4YCA4YC64YCV4YC84YCu4YC44YCU4YC+4YCt4YCV4YC64YCV4YCr4YGLICANCiFbXShDOlxEQVRBXG15UG9zdHNcaW5zdGFsbF9TU3R0cy5wbmcpeyNpZCAuY2xhc3Mgd2lkdGg9NjAlIGhlaWdodD02MCV9ICAgDQoNCiMjIyBKYXZhU2NyaXB0IOGAluGAreGAr+GAhOGAuuGAnOGAr+GAleGAuiAgDQrhgJ7hgIThgLfhgLrhgJzhgK/hgJXhgLrhgIThgJThgLrhgLggZGlyZWN0b3J5IOGAkeGAsuGAmeGAvuGArCBKYXZhU2NyaXB0IOGAluGAreGAr+GAhOGAuuGAoeGAnuGAheGAuuGBiiDhgKXhgJXhgJnhgKxgbXlQeXVUVFMuanNgIOGAgOGAreGAr+GAluGAveGAhOGAt+GAuuGAmeGAmuGAuuGBiyDhgJLhgKvhgIDhgJXhgLvhgLDhgIDhgJnhgLnhgJfhgIrhgLrhgLjhgIXhgKzhgJDhgL3hgLHhgIDhgK3hgK/hgIXhgK/hgJHhgKzhgLjhgJXhgLzhgK7hgLggaXNvIDUxOTE5IOGAoeGAgOGAueGAgeGAm+GArOGAlOGAsuGAt+GAm+GAseGAuOGAkeGArOGAuOGAkOGAsuGAt+GAoeGAkeGAsuGAgCDhgJXhgJHhgJnhgIDhgJnhgLnhgJfhgIrhgLrhgLjhgIXhgKzhgJvhgLLhgLfhgJXhgJHhgJnhgIXhgKzhgIDhgLzhgLHhgKzhgIThgLrhgIDhgK3hgK/hgKHhgJ7hgLbhgJbhgK3hgK/hgIThgLrhgJHhgK/hgJDhgLrhgIHhgK3hgK/hgIThgLrhgLjhgJDhgLLhgLcgSmF2YVNjcmlwdCDhgJvhgLHhgLjhgJbhgK3hgK/hgLfhgJXhgKvhgYsgIA0KIA0KIyMjIyBTY3JpcHQg4YCb4YCx4YC4ICAgDQotIOGAoeGAseGArOGAgOGAuuGAleGAq+GAheGArOGAgOGAreGAr+GAgOGAsOGAuOGAleGAqyAtICANCmBgYA0KDQovLyBJbXBvcnQgdGhlIHNhbnNrcml0LXR0cyBtb2R1bGUNCmNvbnN0IHR0cyA9IHJlcXVpcmUoJ3NhbnNrcml0LXR0cycpOw0KDQovLyBEZWZpbmUgdGhlIFB5dSB0ZXh0IChpbiBJU08gMTU5MTkpDQpjb25zdCB0ZXh0ID0gJ3x8IOG4hWF5wrfhuYHhuKUgZGFrwrfhuYMgdml5wrfhuYPhuYEgdGltwrfhuYEgbWxpa8K3IMKwbyBzYeG4pSB0Z2HhuYMga25vbsK3IMKwbyBbcF1saSc7IA0KDQovLyBDb252ZXJ0IHRoZSB0ZXh0IHRvIHNwZWVjaCBhbmQgc2F2ZSBpdCBhcyBhbiBNUDMgZmlsZQ0KdHRzLnNhdmVGaWxlKHRleHQsIHsgDQoJc2NyaXB0OiAnaXNvMTU5MTknLCANCglmaWxlTmFtZTogJ215UHl1U3BlZWNoLm1wMycgDQp9KTsNCg0KYGBgDQoNCiAtIE5vdGVwYWQg4YCA4YCt4YCv4YCW4YC94YCE4YC34YC64YCV4YC84YCu4YC4IOGAgOGAsOGAuOGAkeGArOGAuOGAkOGAsuGAt+GAheGArOGAkOGAveGAseGAgOGAreGAryBwYXN0ZSDhgJzhgK/hgJXhgLrhgJnhgJrhgLrhgYsgIA0KIVtdKEM6XERBVEFcbXlQb3N0c1xqc2NyaXB0VHh0LnBuZyl7I2lkIC5jbGFzcyB3aWR0aD02MCUgaGVpZ2h0PTYwJX0gICANCg0KIC0gbXlQeXVUVFMuanMg4YCU4YCs4YCZ4YCa4YC64YCU4YCy4YC3IHNhdmUg4YCc4YCv4YCV4YC64YCZ4YCa4YC64YGLICANCiFbXShDOlxEQVRBXG15UG9zdHNcanNGaWxlU2F2ZS5wbmcpeyNpZCAuY2xhc3Mgd2lkdGg9NjAlIGhlaWdodD02MCV9ICAgDQoNCiMjIyDhgJ7hgIThgLfhgLogU2NyaXB0IOGAgOGAreGAryBydW4g4YCV4YCrICAgDQogLSBUZXJtaW5hbCDhgIDhgK3hgK/hgJbhgL3hgIThgLfhgLrhgYogbXlQeXVUVFMuanMg4YCW4YCt4YCv4YCE4YC64YCb4YC+4YCt4YCQ4YCy4YC34YCU4YCx4YCb4YCs4YCA4YCt4YCv4YCe4YC94YCs4YC44YCV4YC84YCu4YC4IOGAnuGAhOGAt+GAuiBTY3JpcHQg4YCA4YCt4YCvIOKAnG5vZGUgbXlQeXVUVFMuanPigJ0g4YCG4YCt4YCv4YCQ4YCy4YC34YCh4YCZ4YCt4YCU4YC34YC64YCV4YCx4YC44YCV4YC84YCu4YC4ICBOb2RlLmpzIOGAlOGAsuGAtyBydW4g4YCZ4YCa4YC64YGLICAgDQogIVtdKEM6XERBVEFcbXlQb3N0c1xydW5UVFNzY3JpcHQucG5nKXsjaWQgLmNsYXNzIHdpZHRoPTYwJSBoZWlnaHQ9NjAlfSAgIA0KDQrhgJLhgKvhgIDhgJThgLEgYG15UHl1U3BlZWNoLm1wM2Ag4YCG4YCt4YCv4YCQ4YCy4YC3IOGAleGAu+GAsOGAheGArOGAnuGArOGAuOGAgOGAreGAr+GAoeGAnuGAtuGAkeGAveGAgOGAuuGAleGAseGAuOGAkeGArOGAuOGAkOGAsuGAt+GAoeGAnuGAtuGAluGAreGAr+GAhOGAuuGAluGAvOGAheGAuuGAnuGAveGArOGAuOGAkOGArOGAkOGAveGAseGAt+GAm+GAmeGAmuGAuuGBiyAgICANCiFbXShDOlxEQVRBXG15UG9zdHNccHl1QXVkaW9HZW5lcmF0ZWQucG5nKXsjaWQgLmNsYXNzIHdpZHRoPTYwJSBoZWlnaHQ9NjAlfQ0KDQrhgJbhgL3hgIThgLrhgLfhgJXhgLzhgK7hgLjhgJThgKzhgLjhgJHhgLHhgKzhgIThgLrhgIDhgLzhgIrhgLfhgLrhgJvhgIThgLog4YCS4YCu4YCG4YCx4YCs4YCE4YC64YC44YCV4YCr4YC44YCh4YCF4YCZ4YC+4YCs4YCU4YCs4YC44YCR4YCx4YCs4YCE4YC64YCB4YCy4YC34YCb4YCQ4YCy4YC3IOGAkuGAr+GAkOGAreGAmuGAoeGAnuGAtuGAluGAreGAr+GAhOGAuuGAlOGAsuGAt+GAkOGAsOGAkOGArOGAgOGAreGAr+GAkOGAveGAseGAt+GAm+GAleGAq+GAmeGAmuGAuuGBiw0KDQoNCg==

No comments:

Post a Comment