Built motion from commit ffdca78c.|2.6.24
[motion2.git] / server / services / agi / scripts / index.js
index 92754d9..6a97939 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xdc43=['googleDialogflowV2','replace','SessionsClient','sessionPath','detectIntent','queryResult','allRequiredParamsPresent','diagnosticInfo','fields','end_conversation','boolValue','fulfillmentText','intent','displayName','languageCode','queryText','responseId','intentDetectionConfidence','tildeASR','transcript','Tilde\x20ASR\x20confidence','awsPolly','polly','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','freeform=3','sestekNDA','nda','channelData','CustomAction','AudioFromTts','Data','audiofile','dirName','apiai-promise','http','https','md5','path','request-promise','randomstring','sox','google-tts-api','url','parse','./aws','./google','./sestek','../../../config/logger','agi','https://api.ispeech.org/api/rest','protocol','host','WHAT_EVER','get','statusCode','error','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','finish','finish\x20download\x20file','close','unlink','download\x20error','end','data','transcode','wav','info','finish\x20to\x20convert','resolve','tmp','generate','.wav','writeFileSync','then','chmodSync','777','split','readFileSync','toString','base64','googleCloudTTS','https://texttospeech.googleapis.com/v1/','?key=','ssml','input','voice','audioConfig','text:synthesize','POST','writeFile','googleCloudTTS\x20path','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','application/x-www-form-urlencoded','f.req=','stringify','jQ1olc','null','generic','parse\x20response\x20failed:\x0a','length','text\x20length\x20limit\x20reached','lang\x20\x22','\x22\x20might\x20not\x20exist','.mp3','goggleTTS\x20path','googleASR','asr','uri','results','map','alternatives','confidence','join','catch','[%s]\x20%s:%s','name','message','googleDialogflow','result','source','resolvedQuery','action','actionIncomplete','fulfillment','speech','score','code','metadata'];(function(_0xe75a26,_0x43f414){var _0x3b3497=function(_0xae6ce7){while(--_0xae6ce7){_0xe75a26['push'](_0xe75a26['shift']());}};_0x3b3497(++_0x43f414);}(_0xdc43,0x135));var _0x3dc4=function(_0x1d9bc5,_0x1df574){_0x1d9bc5=_0x1d9bc5-0x0;var _0xacaba7=_0xdc43[_0x1d9bc5];return _0xacaba7;};'use strict';var apiai=require(_0x3dc4('0x0'));var BPromise=require('bluebird');var dialogflow=require('dialogflow');var fs=require('fs');var http=require(_0x3dc4('0x1'));var https=require(_0x3dc4('0x2'));var md5=require(_0x3dc4('0x3'));var path=require(_0x3dc4('0x4'));var querystring=require('querystring');var rp=require(_0x3dc4('0x5'));var rs=require(_0x3dc4('0x6'));var sox=require(_0x3dc4('0x7'));var tts=require(_0x3dc4('0x8'));var urlParse=require(_0x3dc4('0x9'))[_0x3dc4('0xa')];var util=require('util');var aws=require(_0x3dc4('0xb'));var google=require(_0x3dc4('0xc'));var sestek=require(_0x3dc4('0xd'));var tilde=require('./tilde');var logger=require(_0x3dc4('0xe'))(_0x3dc4('0xf'));var ISPEECH_API=_0x3dc4('0x10');function downloadFile(_0x37451c,_0x3349d5){return new BPromise(function(_0x21126d,_0xe6124d){var _0x3db764=urlParse(_0x37451c);var _0x341325=_0x3db764[_0x3dc4('0x11')]==='https:'?https:http;var _0xfe8208={'host':_0x3db764[_0x3dc4('0x12')],'path':_0x3db764['path'],'headers':{'user-agent':_0x3dc4('0x13')}};_0x341325[_0x3dc4('0x14')](_0xfe8208,function(_0x4e3a1c){if(_0x4e3a1c[_0x3dc4('0x15')]!==0xc8){logger[_0x3dc4('0x16')](_0x3dc4('0x17')+_0x37451c+_0x3dc4('0x18')+_0x4e3a1c[_0x3dc4('0x15')]+'\x20('+_0x4e3a1c[_0x3dc4('0x19')]+')');_0xe6124d(new Error(_0x3dc4('0x17')+_0x37451c+_0x3dc4('0x18')+_0x4e3a1c['statusCode']+'\x20('+_0x4e3a1c[_0x3dc4('0x19')]+')'));return;}var _0x3f5141=fs[_0x3dc4('0x1a')](_0x3349d5);_0x3f5141['on'](_0x3dc4('0x1b'),function(){logger['info'](_0x3dc4('0x1c'));_0x3f5141[_0x3dc4('0x1d')](_0x21126d);});_0x3f5141['on'](_0x3dc4('0x16'),function(_0x96829e){fs[_0x3dc4('0x1e')](_0x3349d5);logger[_0x3dc4('0x16')](_0x3dc4('0x1f'),_0x96829e);_0xe6124d(_0x96829e);});_0x4e3a1c['pipe'](_0x3f5141);})['on']('error',function(_0x58fb31){logger['error'](_0x58fb31);_0xe6124d(_0x58fb31);})[_0x3dc4('0x20')]();});}function uploadFile(_0x299021){return new BPromise(function(_0x5be7f8,_0x3aae36){var _0x29cb18=urlParse(_0x299021);var _0x85e8ee=_0x29cb18[_0x3dc4('0x11')]==='https:'?https:http;var _0x5e1af4={'host':_0x29cb18[_0x3dc4('0x12')],'path':_0x29cb18['path'],'headers':{'user-agent':_0x3dc4('0x13')}};_0x85e8ee[_0x3dc4('0x14')](_0x5e1af4,function(_0x1785f7){if(_0x1785f7['statusCode']!==0xc8){_0x3aae36(new Error(_0x3dc4('0x17')+_0x299021+_0x3dc4('0x18')+_0x1785f7['statusCode']+'\x20('+_0x1785f7[_0x3dc4('0x19')]+')'));return;}var _0x20cb52='';_0x1785f7['on'](_0x3dc4('0x21'),function(_0x26b67d){_0x20cb52+=_0x26b67d;});_0x1785f7['on']('end',function(){_0x5be7f8(_0x20cb52);});})['on'](_0x3dc4('0x16'),function(_0x35732c){_0x3aae36(_0x35732c);})[_0x3dc4('0x20')]();});}function convertFile(_0xf63abd,_0x26f30c){return new BPromise(function(_0x2b22bc,_0xe30826){var _0x217e5b=sox[_0x3dc4('0x22')](_0xf63abd,_0x26f30c,{'sampleRate':0x1f40,'format':_0x3dc4('0x23'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x217e5b['on'](_0x3dc4('0x16'),function(_0x2a14cd){logger[_0x3dc4('0x16')]('error\x20convert',_0x2a14cd);_0xe30826(_0x2a14cd);});_0x217e5b['on']('end',function(){logger[_0x3dc4('0x24')](_0x3dc4('0x25'));_0x2b22bc();});_0x217e5b['start']();});}function base64Decode(_0x35ab60,_0x3079f1){var _0xddd0a=path[_0x3dc4('0x26')](__dirname,_0x3dc4('0x27'),rs[_0x3dc4('0x28')](0x4)+_0x3dc4('0x29'));fs[_0x3dc4('0x2a')](_0xddd0a,_0x35ab60,'base64');return convertFile(_0xddd0a,_0x3079f1)[_0x3dc4('0x2b')](function(){try{fs[_0x3dc4('0x1e')](_0xddd0a);fs[_0x3dc4('0x2c')](_0x3079f1,_0x3dc4('0x2d'));}catch(_0x467c57){logger[_0x3dc4('0x16')](_0x467c57);}return _0x3079f1[_0x3dc4('0x2e')]('.')[0x0];});}function base64Encode(_0x295b9f){var _0x128beb=fs[_0x3dc4('0x2f')](_0x295b9f);return new Buffer(_0x128beb)[_0x3dc4('0x30')](_0x3dc4('0x31'));}exports[_0x3dc4('0x32')]=function(_0x539829,_0x56ad53,_0x10c623,_0x4a0ec8,_0x3bc72d,_0x1dfe0d){var _0xd62236,_0x46fd29;var _0x29de89=_0x3dc4('0x33');var _0x16b2ed=_0x3dc4('0x34')+_0x539829;var _0x352a22={};if(_0x56ad53===_0x3dc4('0x35')){_0x352a22[_0x3dc4('0x36')]={'ssml':_0x10c623};}else{_0x352a22[_0x3dc4('0x36')]={'text':_0x10c623};};_0x352a22[_0x3dc4('0x37')]={'languageCode':_0x4a0ec8,'ssmlGender':_0x3bc72d};_0x352a22[_0x3dc4('0x38')]={'audioEncoding':'MP3','sampleRateHertz':0x1f40};var _0x3b5666={'url':_0x29de89+_0x3dc4('0x39')+_0x16b2ed,'method':_0x3dc4('0x3a'),'json':!![],'body':_0x352a22};return rp(_0x3b5666)[_0x3dc4('0x2b')](function(_0x5c40d9){return new BPromise(function(_0x40723c,_0x5edb31){_0xd62236=path[_0x3dc4('0x26')](__dirname,_0x3dc4('0x27'),rs[_0x3dc4('0x28')](0x4)+'.mp3');var _0x41d98f=Buffer['from'](_0x5c40d9['audioContent'],'base64');return fs[_0x3dc4('0x3b')](_0xd62236,_0x41d98f,function(_0x1f7e4){_0x5edb31(_0x1f7e4);},function(_0x188b6c){fs[_0x3dc4('0x2c')](_0xd62236,'777');_0x40723c(_0x188b6c);});});})[_0x3dc4('0x2b')](function(_0x2668f9){_0x46fd29=path[_0x3dc4('0x26')](__dirname,'tmp',rs[_0x3dc4('0x28')](0x4)+_0x3dc4('0x29'));return convertFile(_0xd62236,_0x46fd29);})[_0x3dc4('0x2b')](function(){try{fs['unlink'](_0xd62236);fs[_0x3dc4('0x2c')](_0x46fd29,_0x3dc4('0x2d'));}catch(_0x41d40f){logger['error'](_0x41d40f);}logger[_0x3dc4('0x24')](_0x3dc4('0x3c'),_0x46fd29[_0x3dc4('0x2e')]('.')[0x0]);return _0x46fd29[_0x3dc4('0x2e')]('.')[0x0];});};exports[_0x3dc4('0x3d')]=function(_0x2a86bf,_0x376cd4){var _0x2cf004=_0x3dc4('0x3e');var _0x1ec8a8,_0x29f2d9;var _0x33fcf1;var _0x1d520d={'encoding':'utf8','method':_0x3dc4('0x3a'),'timeout':0x2710,'url':_0x2cf004,'headers':{'Content-Type':_0x3dc4('0x3f')},'body':_0x3dc4('0x40')+encodeURIComponent(JSON[_0x3dc4('0x41')]([[[_0x3dc4('0x42'),JSON[_0x3dc4('0x41')]([_0x2a86bf,_0x376cd4||'en',![],_0x3dc4('0x43')]),null,_0x3dc4('0x44')]]]))};return rp(_0x1d520d)[_0x3dc4('0x2b')](function(_0x53c9dc){try{_0x33fcf1=eval(_0x53c9dc['slice'](0x5))[0x0][0x2];}catch(_0x2807af){throw new Error(_0x3dc4('0x45')+_0x53c9dc['data']);}if(!_0x33fcf1){if(_0x2a86bf[_0x3dc4('0x46')]>0xc8){throw new Error(_0x3dc4('0x47'));}else{throw new Error(_0x3dc4('0x48')+_0x376cd4+_0x3dc4('0x49'));}}try{_0x33fcf1=eval(_0x33fcf1)[0x0];}catch(_0xcd3634){throw new Error('parse\x20response\x20failed:\x0a'+res['data']);}const _0x2a9807=_0x33fcf1;_0x1ec8a8=path[_0x3dc4('0x26')](__dirname,_0x3dc4('0x27'),rs[_0x3dc4('0x28')](0x4)+_0x3dc4('0x4a'));fs['writeFileSync'](_0x1ec8a8,_0x33fcf1,{'encoding':'base64'});_0x29f2d9=path[_0x3dc4('0x26')](__dirname,_0x3dc4('0x27'),rs[_0x3dc4('0x28')](0x4)+_0x3dc4('0x29'));return convertFile(_0x1ec8a8,_0x29f2d9);})[_0x3dc4('0x2b')](function(){try{fs[_0x3dc4('0x1e')](_0x1ec8a8);fs[_0x3dc4('0x2c')](_0x29f2d9,_0x3dc4('0x2d'));}catch(_0x3b6a92){logger['error'](_0x3b6a92);}logger[_0x3dc4('0x24')](_0x3dc4('0x4b'),_0x29f2d9['split']('.')[0x0]);return _0x29f2d9['split']('.')[0x0];});};exports[_0x3dc4('0x4c')]=function(_0x23e967,_0x540e0f,_0x4d3dd1){return google[_0x3dc4('0x4d')](_0x23e967,_0x540e0f,_0x4d3dd1)['then'](function(_0x11770f){logger[_0x3dc4('0x24')](_0x11770f[_0x3dc4('0x4e')]);return rp(_0x11770f);})[_0x3dc4('0x2b')](function(_0x1838ae){var _0x47f759='';var _0x304c6d=0x0;try{fs[_0x3dc4('0x1e')](_0x23e967);}catch(_0x2dd559){logger[_0x3dc4('0x16')](_0x2dd559);}if(_0x1838ae&&_0x1838ae[_0x3dc4('0x4f')]){_0x47f759=_0x1838ae[_0x3dc4('0x4f')][_0x3dc4('0x50')](function(_0x513ccd){return _0x513ccd&&_0x513ccd[_0x3dc4('0x51')][0x0]&&_0x513ccd[_0x3dc4('0x51')][0x0]['transcript']?_0x513ccd[_0x3dc4('0x51')][0x0]['transcript']:'';})['join']('\x0a');_0x304c6d=_0x1838ae[_0x3dc4('0x4f')][_0x3dc4('0x50')](function(_0x220352){return _0x220352&&_0x220352[_0x3dc4('0x51')][0x0]&&_0x220352[_0x3dc4('0x51')][0x0][_0x3dc4('0x52')]?_0x220352[_0x3dc4('0x51')][0x0][_0x3dc4('0x52')]:0x0;})[_0x3dc4('0x53')]('\x0a');}logger[_0x3dc4('0x24')]('googleASR\x20transcription',_0x47f759);logger[_0x3dc4('0x24')]('googleASR\x20confidence',_0x304c6d);return{'transcript':_0x47f759,'confidence':_0x304c6d};})[_0x3dc4('0x54')](function(_0x2fe1fb){logger[_0x3dc4('0x16')](_0x3dc4('0x55'),_0x2fe1fb[_0x3dc4('0x15')],_0x2fe1fb[_0x3dc4('0x56')],_0x2fe1fb[_0x3dc4('0x57')]);});};exports[_0x3dc4('0x58')]=function(_0x21689d,_0x3e18ac,_0x14fccd,_0x577be0){var _0x1a6fa4=apiai(_0x3e18ac,{'language':_0x577be0||'en'});return _0x1a6fa4['textRequest'](_0x14fccd,{'sessionId':md5(_0x21689d)})[_0x3dc4('0x2b')](function(_0x4acd66){logger[_0x3dc4('0x24')](JSON[_0x3dc4('0x41')](_0x4acd66));return{'source':_0x4acd66[_0x3dc4('0x59')][_0x3dc4('0x5a')],'resolvedQuery':_0x4acd66[_0x3dc4('0x59')][_0x3dc4('0x5b')],'action':_0x4acd66[_0x3dc4('0x59')][_0x3dc4('0x5c')],'actionIncomplete':_0x4acd66['result'][_0x3dc4('0x5d')],'speech':_0x4acd66[_0x3dc4('0x59')][_0x3dc4('0x5e')][_0x3dc4('0x5f')],'score':_0x4acd66[_0x3dc4('0x59')][_0x3dc4('0x60')],'statusCode':_0x4acd66['status'][_0x3dc4('0x61')],'endConversation':_0x4acd66['result'][_0x3dc4('0x62')]['endConversation']||![],'isFallbackIntent':_0x4acd66['result'][_0x3dc4('0x62')]['isFallbackIntent']};});};exports[_0x3dc4('0x63')]=function(_0x7d30bd,_0x3cdc07,_0xb11f91,_0x105c5a,_0x458547,_0x46f256){var _0x343d8d=_0x105c5a[_0x3dc4('0x64')](/\\n/g,'\x0a');var _0x317ca4={'credentials':{'private_key':_0x343d8d,'client_email':_0xb11f91}};var _0x43b0ee=new dialogflow[(_0x3dc4('0x65'))](_0x317ca4);var _0x19dc41=_0x43b0ee[_0x3dc4('0x66')](_0x3cdc07,md5(_0x7d30bd));var _0x493e94={'session':_0x19dc41,'queryInput':{'text':{'text':_0x458547,'languageCode':_0x46f256}}};return _0x43b0ee[_0x3dc4('0x67')](_0x493e94)[_0x3dc4('0x2b')](function(_0x4ce448){if(_0x4ce448&&_0x4ce448['length']){logger[_0x3dc4('0x24')]('Dialogflow\x20V2\x20response:',JSON[_0x3dc4('0x41')](_0x4ce448));var _0x23e49f=_0x4ce448[0x0];if(_0x23e49f){var _0x4b04af={'action':_0x23e49f['queryResult']['action'],'allRequiredParamsPresent':_0x23e49f[_0x3dc4('0x68')][_0x3dc4('0x69')],'endConversation':_0x23e49f['queryResult']['diagnosticInfo']&&_0x23e49f[_0x3dc4('0x68')][_0x3dc4('0x6a')][_0x3dc4('0x6b')]?_0x23e49f[_0x3dc4('0x68')][_0x3dc4('0x6a')]['fields'][_0x3dc4('0x6c')][_0x3dc4('0x6d')]:![],'fulfillmentText':_0x23e49f['queryResult'][_0x3dc4('0x6e')],'intentName':_0x23e49f[_0x3dc4('0x68')][_0x3dc4('0x6f')][_0x3dc4('0x56')],'intentDisplayName':_0x23e49f['queryResult'][_0x3dc4('0x6f')][_0x3dc4('0x70')],'isFallbackIntent':_0x23e49f[_0x3dc4('0x68')][_0x3dc4('0x6f')]['isFallback'],'languageCode':_0x23e49f[_0x3dc4('0x68')][_0x3dc4('0x71')],'queryText':_0x23e49f[_0x3dc4('0x68')][_0x3dc4('0x72')],'responseId':_0x23e49f[_0x3dc4('0x73')],'score':_0x23e49f[_0x3dc4('0x68')][_0x3dc4('0x74')],'speech':_0x23e49f[_0x3dc4('0x68')][_0x3dc4('0x6e')],'providerResponse':JSON[_0x3dc4('0x41')](_0x4ce448)};return _0x4b04af;}}});};exports[_0x3dc4('0x75')]=function(_0x32e561,_0x50f0b8,_0x2c3d89,_0x42e653){return tilde[_0x3dc4('0x4d')](_0x32e561,_0x50f0b8,_0x2c3d89,_0x42e653)[_0x3dc4('0x2b')](function(_0x1b7e26){try{fs[_0x3dc4('0x1e')](_0x32e561);}catch(_0x336912){logger[_0x3dc4('0x16')](_0x336912);}logger[_0x3dc4('0x24')]('Tilde\x20ASR\x20transcription',_0x1b7e26[_0x3dc4('0x76')]);logger['info'](_0x3dc4('0x77'),_0x1b7e26[_0x3dc4('0x52')]);return _0x1b7e26;});};exports[_0x3dc4('0x78')]=function(_0x1a2609,_0xae700e,_0x11a26f,_0x425c71,_0x1699c3,_0x3a754c){var _0x2fafeb=path[_0x3dc4('0x26')](__dirname,_0x3dc4('0x27'),rs['generate'](0x4)+_0x3dc4('0x4a'));var _0xac2d58;return aws[_0x3dc4('0x79')](_0x1a2609,_0xae700e,_0x11a26f,_0x425c71,_0x1699c3,_0x3a754c,_0x2fafeb)[_0x3dc4('0x2b')](function(){_0xac2d58=path['resolve'](__dirname,'tmp',rs['generate'](0x4)+_0x3dc4('0x29'));return convertFile(_0x2fafeb,_0xac2d58);})[_0x3dc4('0x2b')](function(){try{fs[_0x3dc4('0x1e')](_0x2fafeb);fs[_0x3dc4('0x2c')](_0xac2d58,_0x3dc4('0x2d'));}catch(_0x1388cb){logger[_0x3dc4('0x16')](_0x1388cb);}return _0xac2d58[_0x3dc4('0x2e')]('.')[0x0];});};exports['awsLex']=function(_0x39c36f,_0x16f6d6,_0x78fd71,_0xc509ea,_0x4305cb,_0x133cfa){return aws[_0x3dc4('0x7a')](_0x39c36f,_0x16f6d6,_0x78fd71,_0xc509ea,_0x4305cb,_0x133cfa)[_0x3dc4('0x2b')](function(_0x2684f7){logger[_0x3dc4('0x24')](JSON['stringify'](_0x2684f7));return _0x2684f7;});};exports[_0x3dc4('0x7b')]=function(_0x45525c,_0x22d76a,_0x484339,_0x5f2d87){var _0x4332e2=util[_0x3dc4('0x7c')](_0x3dc4('0x7d'),ISPEECH_API,_0x45525c,encodeURIComponent(_0x22d76a),_0x484339,_0x5f2d87);var _0x21b1e0=path[_0x3dc4('0x26')](__dirname,'tmp',rs[_0x3dc4('0x28')](0x4)+'.mp3');var _0xe9495c;return downloadFile(_0x4332e2,_0x21b1e0)[_0x3dc4('0x2b')](function(){_0xe9495c=path[_0x3dc4('0x26')](__dirname,_0x3dc4('0x27'),rs['generate'](0x4)+'.wav');return convertFile(_0x21b1e0,_0xe9495c);})['then'](function(){try{fs[_0x3dc4('0x1e')](_0x21b1e0);fs[_0x3dc4('0x2c')](_0xe9495c,_0x3dc4('0x2d'));}catch(_0x358f89){logger[_0x3dc4('0x16')](_0x358f89);}return _0xe9495c[_0x3dc4('0x2e')]('.')[0x0];});};exports[_0x3dc4('0x7e')]=function(_0x5045ca,_0x292b36,_0xc95cd3,_0x556492){var _0x5c8f1c=util[_0x3dc4('0x7c')]('%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s',ISPEECH_API,_0x292b36,_0xc95cd3,base64Encode(_0x5045ca),_0x556492?util[_0x3dc4('0x7c')]('model=%s',encodeURIComponent(_0x556492)):_0x3dc4('0x7f'));return uploadFile(_0x5c8f1c)[_0x3dc4('0x2b')](function(_0x34cbc3){return querystring[_0x3dc4('0xa')](_0x34cbc3);});};exports[_0x3dc4('0x80')]=function(_0x329ef1,_0x3a258b){return sestek[_0x3dc4('0x81')](_0x329ef1,_0x3a258b)[_0x3dc4('0x2b')](function(_0x2267a2){logger[_0x3dc4('0x24')](JSON[_0x3dc4('0x41')](_0x2267a2));var _0x1bd719={'speech':_0x2267a2['text'],'action':_0x2267a2[_0x3dc4('0x82')]?_0x2267a2[_0x3dc4('0x82')][_0x3dc4('0x83')]:undefined,'actiondata':_0x2267a2[_0x3dc4('0x82')]?_0x2267a2[_0x3dc4('0x82')]['CustomActionData']:undefined};if(_0x2267a2[_0x3dc4('0x82')]&&_0x2267a2[_0x3dc4('0x82')][_0x3dc4('0x84')]){return base64Decode(_0x2267a2[_0x3dc4('0x82')][_0x3dc4('0x84')][_0x3dc4('0x85')],path[_0x3dc4('0x26')](__dirname,_0x3dc4('0x27'),rs['generate'](0x4)+'.wav'))[_0x3dc4('0x2b')](function(_0x4e0b5a){_0x1bd719[_0x3dc4('0x86')]=_0x4e0b5a;return _0x1bd719;});}return _0x1bd719;});};exports[_0x3dc4('0x87')]=function(){return __dirname;};
\ No newline at end of file
+var _0x8cbd=['generate','.wav','base64','then','unlink','chmodSync','777','split','https://texttospeech.googleapis.com/v1/','?key=','ssml','input','voice','audioConfig','MP3','text:synthesize','POST','.mp3','audioContent','writeFile','resolve','googleCloudTTS\x20path','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','utf8','f.req=','stringify','null','slice','parse\x20response\x20failed:\x0a','length','lang\x20\x22','writeFileSync','goggleTTS\x20path','uri','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','message','result','resolvedQuery','action','actionIncomplete','fulfillment','speech','score','metadata','isFallbackIntent','googleDialogflowV2','replace','SessionsClient','detectIntent','Dialogflow\x20V2\x20response:','queryResult','allRequiredParamsPresent','diagnosticInfo','fields','boolValue','fulfillmentText','intent','name','displayName','isFallback','languageCode','queryText','responseId','intentDetectionConfidence','asr','Tilde\x20ASR\x20transcription','awsLex','lex','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','format','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','model=%s','freeform=3','nda','text','channelData','CustomAction','CustomActionData','AudioFromTts','audiofile','apiai-promise','https','path','querystring','request-promise','randomstring','sox','google-tts-api','parse','util','./aws','./google','./sestek','./tilde','../../../config/logger','agi','https://api.ispeech.org/api/rest','protocol','host','get','statusCode','error','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','info','finish\x20download\x20file','close','download\x20error','end','https:','request\x20to\x20','data','transcode','error\x20convert','start','tmp'];(function(_0x26b4e8,_0x1c1a98){var _0x448057=function(_0x30c3d4){while(--_0x30c3d4){_0x26b4e8['push'](_0x26b4e8['shift']());}};_0x448057(++_0x1c1a98);}(_0x8cbd,0x158));var _0xd8cb=function(_0x459c09,_0x596ed4){_0x459c09=_0x459c09-0x0;var _0x2aee20=_0x8cbd[_0x459c09];return _0x2aee20;};'use strict';var apiai=require(_0xd8cb('0x0'));var BPromise=require('bluebird');var dialogflow=require('dialogflow');var fs=require('fs');var http=require('http');var https=require(_0xd8cb('0x1'));var md5=require('md5');var path=require(_0xd8cb('0x2'));var querystring=require(_0xd8cb('0x3'));var rp=require(_0xd8cb('0x4'));var rs=require(_0xd8cb('0x5'));var sox=require(_0xd8cb('0x6'));var tts=require(_0xd8cb('0x7'));var urlParse=require('url')[_0xd8cb('0x8')];var util=require(_0xd8cb('0x9'));var aws=require(_0xd8cb('0xa'));var google=require(_0xd8cb('0xb'));var sestek=require(_0xd8cb('0xc'));var tilde=require(_0xd8cb('0xd'));var logger=require(_0xd8cb('0xe'))(_0xd8cb('0xf'));var ISPEECH_API=_0xd8cb('0x10');function downloadFile(_0x539cc1,_0x39f3b2){return new BPromise(function(_0x3fe643,_0x98803d){var _0xe8a40d=urlParse(_0x539cc1);var _0x42ba3e=_0xe8a40d[_0xd8cb('0x11')]==='https:'?https:http;var _0x32c019={'host':_0xe8a40d[_0xd8cb('0x12')],'path':_0xe8a40d[_0xd8cb('0x2')],'headers':{'user-agent':'WHAT_EVER'}};_0x42ba3e[_0xd8cb('0x13')](_0x32c019,function(_0x321ba2){if(_0x321ba2[_0xd8cb('0x14')]!==0xc8){logger[_0xd8cb('0x15')]('request\x20to\x20'+_0x539cc1+'\x20failed,\x20status\x20code\x20=\x20'+_0x321ba2['statusCode']+'\x20('+_0x321ba2['statusMessage']+')');_0x98803d(new Error('request\x20to\x20'+_0x539cc1+_0xd8cb('0x16')+_0x321ba2[_0xd8cb('0x14')]+'\x20('+_0x321ba2[_0xd8cb('0x17')]+')'));return;}var _0x41de93=fs[_0xd8cb('0x18')](_0x39f3b2);_0x41de93['on']('finish',function(){logger[_0xd8cb('0x19')](_0xd8cb('0x1a'));_0x41de93[_0xd8cb('0x1b')](_0x3fe643);});_0x41de93['on']('error',function(_0x1c9ee2){fs['unlink'](_0x39f3b2);logger['error'](_0xd8cb('0x1c'),_0x1c9ee2);_0x98803d(_0x1c9ee2);});_0x321ba2['pipe'](_0x41de93);})['on']('error',function(_0x51d8ec){logger['error'](_0x51d8ec);_0x98803d(_0x51d8ec);})[_0xd8cb('0x1d')]();});}function uploadFile(_0x45bb3e){return new BPromise(function(_0x18b256,_0x3b0992){var _0xbb90b6=urlParse(_0x45bb3e);var _0x4b4dc1=_0xbb90b6[_0xd8cb('0x11')]===_0xd8cb('0x1e')?https:http;var _0x456709={'host':_0xbb90b6[_0xd8cb('0x12')],'path':_0xbb90b6['path'],'headers':{'user-agent':'WHAT_EVER'}};_0x4b4dc1[_0xd8cb('0x13')](_0x456709,function(_0x515bbf){if(_0x515bbf[_0xd8cb('0x14')]!==0xc8){_0x3b0992(new Error(_0xd8cb('0x1f')+_0x45bb3e+_0xd8cb('0x16')+_0x515bbf[_0xd8cb('0x14')]+'\x20('+_0x515bbf[_0xd8cb('0x17')]+')'));return;}var _0x374dfa='';_0x515bbf['on'](_0xd8cb('0x20'),function(_0x24e439){_0x374dfa+=_0x24e439;});_0x515bbf['on'](_0xd8cb('0x1d'),function(){_0x18b256(_0x374dfa);});})['on'](_0xd8cb('0x15'),function(_0x30e083){_0x3b0992(_0x30e083);})['end']();});}function convertFile(_0x15389d,_0x5e013a){return new BPromise(function(_0x5296b5,_0x3ac216){var _0x470c03=sox[_0xd8cb('0x21')](_0x15389d,_0x5e013a,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x470c03['on'](_0xd8cb('0x15'),function(_0xe27ec3){logger['error'](_0xd8cb('0x22'),_0xe27ec3);_0x3ac216(_0xe27ec3);});_0x470c03['on'](_0xd8cb('0x1d'),function(){logger[_0xd8cb('0x19')]('finish\x20to\x20convert');_0x5296b5();});_0x470c03[_0xd8cb('0x23')]();});}function base64Decode(_0x40fef3,_0x4b76cb){var _0x194c31=path['resolve'](__dirname,_0xd8cb('0x24'),rs[_0xd8cb('0x25')](0x4)+_0xd8cb('0x26'));fs['writeFileSync'](_0x194c31,_0x40fef3,_0xd8cb('0x27'));return convertFile(_0x194c31,_0x4b76cb)[_0xd8cb('0x28')](function(){try{fs[_0xd8cb('0x29')](_0x194c31);fs[_0xd8cb('0x2a')](_0x4b76cb,_0xd8cb('0x2b'));}catch(_0xc6713a){logger[_0xd8cb('0x15')](_0xc6713a);}return _0x4b76cb[_0xd8cb('0x2c')]('.')[0x0];});}function base64Encode(_0x56cdd6){var _0x417e06=fs['readFileSync'](_0x56cdd6);return new Buffer(_0x417e06)['toString']('base64');}exports['googleCloudTTS']=function(_0x59b700,_0x2d85d6,_0x124f26,_0x3c287e,_0x437d7d,_0x2ea7b6){var _0x2bb21f,_0x1d6517;var _0x419ed4=_0xd8cb('0x2d');var _0x525bfb=_0xd8cb('0x2e')+_0x59b700;var _0x1da4cd={};if(_0x2d85d6===_0xd8cb('0x2f')){_0x1da4cd[_0xd8cb('0x30')]={'ssml':_0x124f26};}else{_0x1da4cd[_0xd8cb('0x30')]={'text':_0x124f26};};_0x1da4cd[_0xd8cb('0x31')]={'languageCode':_0x3c287e,'ssmlGender':_0x437d7d};_0x1da4cd[_0xd8cb('0x32')]={'audioEncoding':_0xd8cb('0x33'),'sampleRateHertz':0x1f40};var _0x73a98a={'url':_0x419ed4+_0xd8cb('0x34')+_0x525bfb,'method':_0xd8cb('0x35'),'json':!![],'body':_0x1da4cd};return rp(_0x73a98a)[_0xd8cb('0x28')](function(_0x5dc331){return new BPromise(function(_0x54ea9a,_0x9b186a){_0x2bb21f=path['resolve'](__dirname,_0xd8cb('0x24'),rs[_0xd8cb('0x25')](0x4)+_0xd8cb('0x36'));var _0x1ba6d5=Buffer['from'](_0x5dc331[_0xd8cb('0x37')],_0xd8cb('0x27'));return fs[_0xd8cb('0x38')](_0x2bb21f,_0x1ba6d5,function(_0x603b16){_0x9b186a(_0x603b16);},function(_0x20ef43){fs[_0xd8cb('0x2a')](_0x2bb21f,_0xd8cb('0x2b'));_0x54ea9a(_0x20ef43);});});})[_0xd8cb('0x28')](function(_0x1950f9){_0x1d6517=path[_0xd8cb('0x39')](__dirname,_0xd8cb('0x24'),rs['generate'](0x4)+_0xd8cb('0x26'));return convertFile(_0x2bb21f,_0x1d6517);})[_0xd8cb('0x28')](function(){try{fs[_0xd8cb('0x29')](_0x2bb21f);fs[_0xd8cb('0x2a')](_0x1d6517,_0xd8cb('0x2b'));}catch(_0x52b3f9){logger[_0xd8cb('0x15')](_0x52b3f9);}logger[_0xd8cb('0x19')](_0xd8cb('0x3a'),_0x1d6517[_0xd8cb('0x2c')]('.')[0x0]);return _0x1d6517[_0xd8cb('0x2c')]('.')[0x0];});};exports[_0xd8cb('0x3b')]=function(_0x3b5f0a,_0xe3a8d9){var _0xce1cfe=_0xd8cb('0x3c');var _0x33f763,_0x4849fe;var _0x44d9b4;var _0x37652b={'encoding':_0xd8cb('0x3d'),'method':_0xd8cb('0x35'),'timeout':0x2710,'url':_0xce1cfe,'headers':{'Content-Type':'application/x-www-form-urlencoded'},'body':_0xd8cb('0x3e')+encodeURIComponent(JSON[_0xd8cb('0x3f')]([[['jQ1olc',JSON['stringify']([_0x3b5f0a,_0xe3a8d9||'en',![],_0xd8cb('0x40')]),null,'generic']]]))};return rp(_0x37652b)['then'](function(_0x27ead2){try{_0x44d9b4=eval(_0x27ead2[_0xd8cb('0x41')](0x5))[0x0][0x2];}catch(_0xf4a79e){throw new Error(_0xd8cb('0x42')+_0x27ead2[_0xd8cb('0x20')]);}if(!_0x44d9b4){if(_0x3b5f0a[_0xd8cb('0x43')]>0xc8){throw new Error('text\x20length\x20limit\x20reached');}else{throw new Error(_0xd8cb('0x44')+_0xe3a8d9+'\x22\x20might\x20not\x20exist');}}try{_0x44d9b4=eval(_0x44d9b4)[0x0];}catch(_0x102660){throw new Error(_0xd8cb('0x42')+res[_0xd8cb('0x20')]);}const _0x275ab6=_0x44d9b4;_0x33f763=path[_0xd8cb('0x39')](__dirname,_0xd8cb('0x24'),rs['generate'](0x4)+'.mp3');fs[_0xd8cb('0x45')](_0x33f763,_0x44d9b4,{'encoding':_0xd8cb('0x27')});_0x4849fe=path[_0xd8cb('0x39')](__dirname,_0xd8cb('0x24'),rs[_0xd8cb('0x25')](0x4)+_0xd8cb('0x26'));return convertFile(_0x33f763,_0x4849fe);})[_0xd8cb('0x28')](function(){try{fs[_0xd8cb('0x29')](_0x33f763);fs[_0xd8cb('0x2a')](_0x4849fe,_0xd8cb('0x2b'));}catch(_0x1554eb){logger['error'](_0x1554eb);}logger[_0xd8cb('0x19')](_0xd8cb('0x46'),_0x4849fe[_0xd8cb('0x2c')]('.')[0x0]);return _0x4849fe[_0xd8cb('0x2c')]('.')[0x0];});};exports['googleASR']=function(_0x221a13,_0x498dd2,_0xd98d23){return google['asr'](_0x221a13,_0x498dd2,_0xd98d23)[_0xd8cb('0x28')](function(_0x467e89){logger[_0xd8cb('0x19')](_0x467e89[_0xd8cb('0x47')]);return rp(_0x467e89);})[_0xd8cb('0x28')](function(_0x2d62c0){var _0x4328f0='';var _0x1b8b5d=0x0;try{fs[_0xd8cb('0x29')](_0x221a13);}catch(_0x4cc5e8){logger[_0xd8cb('0x15')](_0x4cc5e8);}if(_0x2d62c0&&_0x2d62c0[_0xd8cb('0x48')]){_0x4328f0=_0x2d62c0[_0xd8cb('0x48')][_0xd8cb('0x49')](function(_0x102c45){return _0x102c45&&_0x102c45['alternatives'][0x0]&&_0x102c45[_0xd8cb('0x4a')][0x0][_0xd8cb('0x4b')]?_0x102c45[_0xd8cb('0x4a')][0x0][_0xd8cb('0x4b')]:'';})[_0xd8cb('0x4c')]('\x0a');_0x1b8b5d=_0x2d62c0[_0xd8cb('0x48')]['map'](function(_0xf3f247){return _0xf3f247&&_0xf3f247[_0xd8cb('0x4a')][0x0]&&_0xf3f247['alternatives'][0x0]['confidence']?_0xf3f247['alternatives'][0x0][_0xd8cb('0x4d')]:0x0;})[_0xd8cb('0x4c')]('\x0a');}logger['info'](_0xd8cb('0x4e'),_0x4328f0);logger[_0xd8cb('0x19')](_0xd8cb('0x4f'),_0x1b8b5d);return{'transcript':_0x4328f0,'confidence':_0x1b8b5d};})[_0xd8cb('0x50')](function(_0x225d2a){logger[_0xd8cb('0x15')]('[%s]\x20%s:%s',_0x225d2a[_0xd8cb('0x14')],_0x225d2a['name'],_0x225d2a[_0xd8cb('0x51')]);});};exports['googleDialogflow']=function(_0x2d6074,_0x3a312c,_0x3fd0a0,_0x5cf2fb){var _0x177c11=apiai(_0x3a312c,{'language':_0x5cf2fb||'en'});return _0x177c11['textRequest'](_0x3fd0a0,{'sessionId':md5(_0x2d6074)})[_0xd8cb('0x28')](function(_0x28f4ad){logger[_0xd8cb('0x19')](JSON[_0xd8cb('0x3f')](_0x28f4ad));return{'source':_0x28f4ad[_0xd8cb('0x52')]['source'],'resolvedQuery':_0x28f4ad[_0xd8cb('0x52')][_0xd8cb('0x53')],'action':_0x28f4ad[_0xd8cb('0x52')][_0xd8cb('0x54')],'actionIncomplete':_0x28f4ad[_0xd8cb('0x52')][_0xd8cb('0x55')],'speech':_0x28f4ad[_0xd8cb('0x52')][_0xd8cb('0x56')][_0xd8cb('0x57')],'score':_0x28f4ad[_0xd8cb('0x52')][_0xd8cb('0x58')],'statusCode':_0x28f4ad['status']['code'],'endConversation':_0x28f4ad['result'][_0xd8cb('0x59')]['endConversation']||![],'isFallbackIntent':_0x28f4ad[_0xd8cb('0x52')][_0xd8cb('0x59')][_0xd8cb('0x5a')]};});};exports[_0xd8cb('0x5b')]=function(_0x285dd4,_0x1dd722,_0x2070ee,_0x356372,_0x473ba0,_0x3a5838){var _0x349c80=_0x356372[_0xd8cb('0x5c')](/\\n/g,'\x0a');var _0x526752={'credentials':{'private_key':_0x349c80,'client_email':_0x2070ee}};var _0x5d6de0=new dialogflow[(_0xd8cb('0x5d'))](_0x526752);var _0x56b612=_0x5d6de0['sessionPath'](_0x1dd722,md5(_0x285dd4));var _0x493646={'session':_0x56b612,'queryInput':{'text':{'text':_0x473ba0,'languageCode':_0x3a5838}}};return _0x5d6de0[_0xd8cb('0x5e')](_0x493646)[_0xd8cb('0x28')](function(_0x584f34){if(_0x584f34&&_0x584f34[_0xd8cb('0x43')]){logger['info'](_0xd8cb('0x5f'),JSON[_0xd8cb('0x3f')](_0x584f34));var _0x3a6c5a=_0x584f34[0x0];if(_0x3a6c5a){var _0x3a187a={'action':_0x3a6c5a[_0xd8cb('0x60')][_0xd8cb('0x54')],'allRequiredParamsPresent':_0x3a6c5a[_0xd8cb('0x60')][_0xd8cb('0x61')],'endConversation':_0x3a6c5a[_0xd8cb('0x60')][_0xd8cb('0x62')]&&_0x3a6c5a[_0xd8cb('0x60')][_0xd8cb('0x62')][_0xd8cb('0x63')]?_0x3a6c5a['queryResult']['diagnosticInfo'][_0xd8cb('0x63')]['end_conversation'][_0xd8cb('0x64')]:![],'fulfillmentText':_0x3a6c5a[_0xd8cb('0x60')][_0xd8cb('0x65')],'intentName':_0x3a6c5a[_0xd8cb('0x60')][_0xd8cb('0x66')][_0xd8cb('0x67')],'intentDisplayName':_0x3a6c5a[_0xd8cb('0x60')][_0xd8cb('0x66')][_0xd8cb('0x68')],'isFallbackIntent':_0x3a6c5a[_0xd8cb('0x60')][_0xd8cb('0x66')][_0xd8cb('0x69')],'languageCode':_0x3a6c5a[_0xd8cb('0x60')][_0xd8cb('0x6a')],'queryText':_0x3a6c5a[_0xd8cb('0x60')][_0xd8cb('0x6b')],'responseId':_0x3a6c5a[_0xd8cb('0x6c')],'score':_0x3a6c5a['queryResult'][_0xd8cb('0x6d')],'speech':_0x3a6c5a[_0xd8cb('0x60')][_0xd8cb('0x65')],'providerResponse':JSON[_0xd8cb('0x3f')](_0x584f34)};return _0x3a187a;}}});};exports['tildeASR']=function(_0x1730a7,_0x4da0c9,_0x5b521b,_0x52607b){return tilde[_0xd8cb('0x6e')](_0x1730a7,_0x4da0c9,_0x5b521b,_0x52607b)[_0xd8cb('0x28')](function(_0x29bd0e){try{fs['unlink'](_0x1730a7);}catch(_0x22e5f3){logger[_0xd8cb('0x15')](_0x22e5f3);}logger['info'](_0xd8cb('0x6f'),_0x29bd0e[_0xd8cb('0x4b')]);logger['info']('Tilde\x20ASR\x20confidence',_0x29bd0e[_0xd8cb('0x4d')]);return _0x29bd0e;});};exports['awsPolly']=function(_0x141fd1,_0x5ace1b,_0x33d461,_0x2bdb5e,_0x587012,_0x1f4e10){var _0x2236c0=path[_0xd8cb('0x39')](__dirname,'tmp',rs[_0xd8cb('0x25')](0x4)+_0xd8cb('0x36'));var _0x561e3d;return aws['polly'](_0x141fd1,_0x5ace1b,_0x33d461,_0x2bdb5e,_0x587012,_0x1f4e10,_0x2236c0)[_0xd8cb('0x28')](function(){_0x561e3d=path[_0xd8cb('0x39')](__dirname,_0xd8cb('0x24'),rs[_0xd8cb('0x25')](0x4)+_0xd8cb('0x26'));return convertFile(_0x2236c0,_0x561e3d);})[_0xd8cb('0x28')](function(){try{fs[_0xd8cb('0x29')](_0x2236c0);fs[_0xd8cb('0x2a')](_0x561e3d,_0xd8cb('0x2b'));}catch(_0x5c978f){logger[_0xd8cb('0x15')](_0x5c978f);}return _0x561e3d['split']('.')[0x0];});};exports[_0xd8cb('0x70')]=function(_0x439fd6,_0x85e4e0,_0x3aadb3,_0x5e0e01,_0x53fc82,_0x568aef){return aws[_0xd8cb('0x71')](_0x439fd6,_0x85e4e0,_0x3aadb3,_0x5e0e01,_0x53fc82,_0x568aef)[_0xd8cb('0x28')](function(_0x425095){logger[_0xd8cb('0x19')](JSON['stringify'](_0x425095));return _0x425095;});};exports['ispeechTTS']=function(_0x49da8f,_0x622920,_0x316130,_0x493082){var _0x16bfea=util['format'](_0xd8cb('0x72'),ISPEECH_API,_0x49da8f,encodeURIComponent(_0x622920),_0x316130,_0x493082);var _0x521f03=path[_0xd8cb('0x39')](__dirname,_0xd8cb('0x24'),rs[_0xd8cb('0x25')](0x4)+_0xd8cb('0x36'));var _0x129894;return downloadFile(_0x16bfea,_0x521f03)[_0xd8cb('0x28')](function(){_0x129894=path[_0xd8cb('0x39')](__dirname,'tmp',rs['generate'](0x4)+'.wav');return convertFile(_0x521f03,_0x129894);})[_0xd8cb('0x28')](function(){try{fs[_0xd8cb('0x29')](_0x521f03);fs[_0xd8cb('0x2a')](_0x129894,'777');}catch(_0x5d635c){logger[_0xd8cb('0x15')](_0x5d635c);}return _0x129894[_0xd8cb('0x2c')]('.')[0x0];});};exports[_0xd8cb('0x73')]=function(_0x5db9f8,_0x52600d,_0xb21804,_0xf60a3e){var _0x54a8a7=util[_0xd8cb('0x74')](_0xd8cb('0x75'),ISPEECH_API,_0x52600d,_0xb21804,base64Encode(_0x5db9f8),_0xf60a3e?util[_0xd8cb('0x74')](_0xd8cb('0x76'),encodeURIComponent(_0xf60a3e)):_0xd8cb('0x77'));return uploadFile(_0x54a8a7)[_0xd8cb('0x28')](function(_0x2fcad3){return querystring['parse'](_0x2fcad3);});};exports['sestekNDA']=function(_0x3e064c,_0x22cf2c){return sestek[_0xd8cb('0x78')](_0x3e064c,_0x22cf2c)['then'](function(_0x598d27){logger[_0xd8cb('0x19')](JSON[_0xd8cb('0x3f')](_0x598d27));var _0x2613dd={'speech':_0x598d27[_0xd8cb('0x79')],'action':_0x598d27['channelData']?_0x598d27[_0xd8cb('0x7a')][_0xd8cb('0x7b')]:undefined,'actiondata':_0x598d27[_0xd8cb('0x7a')]?_0x598d27[_0xd8cb('0x7a')][_0xd8cb('0x7c')]:undefined};if(_0x598d27[_0xd8cb('0x7a')]&&_0x598d27[_0xd8cb('0x7a')][_0xd8cb('0x7d')]){return base64Decode(_0x598d27[_0xd8cb('0x7a')][_0xd8cb('0x7d')]['Data'],path[_0xd8cb('0x39')](__dirname,_0xd8cb('0x24'),rs[_0xd8cb('0x25')](0x4)+_0xd8cb('0x26')))[_0xd8cb('0x28')](function(_0x401dad){_0x2613dd[_0xd8cb('0x7e')]=_0x401dad;return _0x2613dd;});}return _0x2613dd;});};exports['dirName']=function(){return __dirname;};
\ No newline at end of file