Built motion from commit da24aabd.|2.6.20
[motion2.git] / server / api / intZohoAccount / intZohoAccount.controller.js
index 5d3503b..e1536e0 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xb6e9=['mustache','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','apply','reject','update','then','destroy','error','stack','name','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','map','VIRTUAL','options','include','rows','catch','params','ZohoAccount','includeAll','find','body','ZohoConfiguration','order','getConfigurations','addConfiguration','AccountId','Subjects','channel','Descriptions','getDescriptions','create','ZohoField','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','refreshToken','clientId','clientSecret','access_token','Unable\x20to\x20retrieve\x20the\x20access\x20token','getFields','host','serverUrl','code','zoho.eu','com','lastIndexOf','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','format','https://www.zohoapis.%s/crm/v2/settings/fields','Calls','response','message','Owner','Description','WhoId','Call_Duration','Call_Result','Call_Start_Time','Call_Type','includes','api_name','system_mandatory','display_label','custom_field','data_type','picklist','pick_list_values','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird'];(function(_0x50edb7,_0x44caf8){var _0x15548a=function(_0xa87065){while(--_0xa87065){_0x50edb7['push'](_0x50edb7['shift']());}};_0x15548a(++_0x44caf8);}(_0xb6e9,0x189));var _0x9b6e=function(_0x38e130,_0x1cf0c0){_0x38e130=_0x38e130-0x0;var _0x284977=_0xb6e9[_0x38e130];return _0x284977;};'use strict';var emlformat=require(_0x9b6e('0x0'));var rimraf=require(_0x9b6e('0x1'));var zipdir=require(_0x9b6e('0x2'));var jsonpatch=require(_0x9b6e('0x3'));var rp=require('request-promise');var moment=require(_0x9b6e('0x4'));var BPromise=require(_0x9b6e('0x5'));var Mustache=require(_0x9b6e('0x6'));var util=require('util');var path=require(_0x9b6e('0x7'));var sox=require(_0x9b6e('0x8'));var csv=require('to-csv');var ejs=require(_0x9b6e('0x9'));var fs=require('fs');var fs_extra=require(_0x9b6e('0xa'));var _=require('lodash');var squel=require(_0x9b6e('0xb'));var crypto=require(_0x9b6e('0xc'));var jsforce=require(_0x9b6e('0xd'));var deskjs=require(_0x9b6e('0xe'));var toCsv=require(_0x9b6e('0xf'));var querystring=require(_0x9b6e('0x10'));var Papa=require(_0x9b6e('0x11'));var Redis=require(_0x9b6e('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x9b6e('0x13'));var as=require(_0x9b6e('0x14'));var hardwareService=require(_0x9b6e('0x15'));var logger=require(_0x9b6e('0x16'))(_0x9b6e('0x17'));var utils=require(_0x9b6e('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x9b6e('0x19'));var db=require('../../mysqldb')['db'];var integrations=require(_0x9b6e('0x1a'));function respondWithStatusCode(_0x1e4de4,_0x6a8b8c){_0x6a8b8c=_0x6a8b8c||0xcc;return function(_0x2e1479){if(_0x2e1479){return _0x1e4de4[_0x9b6e('0x1b')](_0x6a8b8c);}return _0x1e4de4[_0x9b6e('0x1c')](_0x6a8b8c)[_0x9b6e('0x1d')]();};}function respondWithResult(_0x38b40b,_0x37a562){_0x37a562=_0x37a562||0xc8;return function(_0x364af4){if(_0x364af4){return _0x38b40b['status'](_0x37a562)['json'](_0x364af4);}};}function respondWithFilteredResult(_0x5b7d2,_0x3f922d){return function(_0x4701c8){if(_0x4701c8){var _0x503b7e=typeof _0x3f922d['offset']===_0x9b6e('0x1e')&&typeof _0x3f922d[_0x9b6e('0x1f')]===_0x9b6e('0x1e');var _0x551211=_0x4701c8[_0x9b6e('0x20')];var _0x23d3fd=_0x503b7e?0x0:_0x3f922d[_0x9b6e('0x21')];var _0x9f2fb7=_0x503b7e?_0x4701c8[_0x9b6e('0x20')]:_0x3f922d[_0x9b6e('0x21')]+_0x3f922d[_0x9b6e('0x1f')];var _0x5b2ceb;if(_0x9f2fb7>=_0x551211){_0x9f2fb7=_0x551211;_0x5b2ceb=0xc8;}else{_0x5b2ceb=0xce;}_0x5b7d2['status'](_0x5b2ceb);return _0x5b7d2[_0x9b6e('0x22')](_0x9b6e('0x23'),_0x23d3fd+'-'+_0x9f2fb7+'/'+_0x551211)[_0x9b6e('0x24')](_0x4701c8);}return null;};}function patchUpdates(_0x5a2799){return function(_0x489750){try{jsonpatch[_0x9b6e('0x25')](_0x489750,_0x5a2799,!![]);}catch(_0xff5ef3){return BPromise[_0x9b6e('0x26')](_0xff5ef3);}return _0x489750['save']();};}function saveUpdates(_0x5a4498,_0x363dfc){return function(_0x32bf5d){if(_0x32bf5d){return _0x32bf5d[_0x9b6e('0x27')](_0x5a4498)[_0x9b6e('0x28')](function(_0x59bf0c){return _0x59bf0c;});}return null;};}function removeEntity(_0x8343c9,_0x1a4540){return function(_0x4ce94a){if(_0x4ce94a){return _0x4ce94a[_0x9b6e('0x29')]()['then'](function(){_0x8343c9[_0x9b6e('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x450756,_0x21d767){return function(_0x4b4ad1){if(!_0x4b4ad1){_0x450756[_0x9b6e('0x1b')](0x194);}return _0x4b4ad1;};}function handleError(_0x918abd,_0x29db6f){_0x29db6f=_0x29db6f||0x1f4;return function(_0x587a95){logger[_0x9b6e('0x2a')](_0x587a95[_0x9b6e('0x2b')]);if(_0x587a95[_0x9b6e('0x2c')]){delete _0x587a95[_0x9b6e('0x2c')];}_0x918abd[_0x9b6e('0x1c')](_0x29db6f)['send'](_0x587a95);};}exports['index']=function(_0x102f73,_0x1bb4b6){var _0x1bb536={},_0x4b8c41={},_0x5be197={'count':0x0,'rows':[]};var _0x2d8d5f=_['map'](db['ZohoAccount'][_0x9b6e('0x2d')],function(_0x251682){return{'name':_0x251682[_0x9b6e('0x2e')],'type':_0x251682[_0x9b6e('0x2f')][_0x9b6e('0x30')]};});_0x4b8c41[_0x9b6e('0x31')]=_['map'](_0x2d8d5f,_0x9b6e('0x2c'));_0x4b8c41[_0x9b6e('0x32')]=_[_0x9b6e('0x33')](_0x102f73['query']);_0x4b8c41[_0x9b6e('0x34')]=_[_0x9b6e('0x35')](_0x4b8c41[_0x9b6e('0x31')],_0x4b8c41[_0x9b6e('0x32')]);_0x1bb536[_0x9b6e('0x36')]=_['intersection'](_0x4b8c41[_0x9b6e('0x31')],qs[_0x9b6e('0x37')](_0x102f73[_0x9b6e('0x32')]['fields']));_0x1bb536[_0x9b6e('0x36')]=_0x1bb536[_0x9b6e('0x36')][_0x9b6e('0x38')]?_0x1bb536[_0x9b6e('0x36')]:_0x4b8c41[_0x9b6e('0x31')];if(!_0x102f73[_0x9b6e('0x32')][_0x9b6e('0x39')](_0x9b6e('0x3a'))){_0x1bb536[_0x9b6e('0x1f')]=qs[_0x9b6e('0x1f')](_0x102f73['query']['limit']);_0x1bb536[_0x9b6e('0x21')]=qs[_0x9b6e('0x21')](_0x102f73[_0x9b6e('0x32')]['offset']);}_0x1bb536['order']=qs[_0x9b6e('0x3b')](_0x102f73['query'][_0x9b6e('0x3b')]);_0x1bb536[_0x9b6e('0x3c')]=qs[_0x9b6e('0x34')](_[_0x9b6e('0x3d')](_0x102f73[_0x9b6e('0x32')],_0x4b8c41[_0x9b6e('0x34')]),_0x2d8d5f);if(_0x102f73[_0x9b6e('0x32')][_0x9b6e('0x3e')]){_0x1bb536['where']=_[_0x9b6e('0x3f')](_0x1bb536['where'],{'$or':_[_0x9b6e('0x40')](_0x2d8d5f,function(_0xa369d7){if(_0xa369d7[_0x9b6e('0x2f')]!==_0x9b6e('0x41')){var _0x193684={};_0x193684[_0xa369d7[_0x9b6e('0x2c')]]={'$like':'%'+_0x102f73['query'][_0x9b6e('0x3e')]+'%'};return _0x193684;}})});}_0x1bb536=_['merge']({},_0x1bb536,_0x102f73[_0x9b6e('0x42')]);var _0x41f0fd={'where':_0x1bb536['where']};return db['ZohoAccount'][_0x9b6e('0x20')](_0x41f0fd)[_0x9b6e('0x28')](function(_0x8c1046){_0x5be197[_0x9b6e('0x20')]=_0x8c1046;if(_0x102f73[_0x9b6e('0x32')]['includeAll']){_0x1bb536[_0x9b6e('0x43')]=[{'all':!![]}];}return db['ZohoAccount']['findAll'](_0x1bb536);})[_0x9b6e('0x28')](function(_0x4dc640){_0x5be197[_0x9b6e('0x44')]=_0x4dc640;return _0x5be197;})['then'](respondWithFilteredResult(_0x1bb4b6,_0x1bb536))[_0x9b6e('0x45')](handleError(_0x1bb4b6,null));};exports['show']=function(_0x322c8c,_0x3bec41){var _0x7b8ade={'raw':![],'where':{'id':_0x322c8c[_0x9b6e('0x46')]['id']}},_0x590389={};_0x590389['model']=_[_0x9b6e('0x33')](db[_0x9b6e('0x47')][_0x9b6e('0x2d')]);_0x590389['query']=_[_0x9b6e('0x33')](_0x322c8c[_0x9b6e('0x32')]);_0x590389[_0x9b6e('0x34')]=_[_0x9b6e('0x35')](_0x590389[_0x9b6e('0x31')],_0x590389[_0x9b6e('0x32')]);_0x7b8ade['attributes']=_[_0x9b6e('0x35')](_0x590389[_0x9b6e('0x31')],qs['fields'](_0x322c8c[_0x9b6e('0x32')][_0x9b6e('0x37')]));_0x7b8ade['attributes']=_0x7b8ade['attributes'][_0x9b6e('0x38')]?_0x7b8ade['attributes']:_0x590389[_0x9b6e('0x31')];if(_0x322c8c[_0x9b6e('0x32')][_0x9b6e('0x48')]){_0x7b8ade[_0x9b6e('0x43')]=[{'all':!![]}];}_0x7b8ade=_['merge']({},_0x7b8ade,_0x322c8c[_0x9b6e('0x42')]);return db['ZohoAccount'][_0x9b6e('0x49')](_0x7b8ade)[_0x9b6e('0x28')](handleEntityNotFound(_0x3bec41,null))[_0x9b6e('0x28')](respondWithResult(_0x3bec41,null))[_0x9b6e('0x45')](handleError(_0x3bec41,null));};exports['create']=function(_0x3eaa1,_0xd0bf31){return db[_0x9b6e('0x47')]['create'](_0x3eaa1['body'],{})['then'](respondWithResult(_0xd0bf31,0xc9))[_0x9b6e('0x45')](handleError(_0xd0bf31,null));};exports[_0x9b6e('0x27')]=function(_0x212f60,_0xae4aec){if(_0x212f60[_0x9b6e('0x4a')]['id']){delete _0x212f60[_0x9b6e('0x4a')]['id'];}return db['ZohoAccount'][_0x9b6e('0x49')]({'where':{'id':_0x212f60[_0x9b6e('0x46')]['id']}})[_0x9b6e('0x28')](handleEntityNotFound(_0xae4aec,null))[_0x9b6e('0x28')](saveUpdates(_0x212f60[_0x9b6e('0x4a')],null))[_0x9b6e('0x28')](respondWithResult(_0xae4aec,null))[_0x9b6e('0x45')](handleError(_0xae4aec,null));};exports[_0x9b6e('0x29')]=function(_0x213129,_0x2f6b6f){return db[_0x9b6e('0x47')]['find']({'where':{'id':_0x213129[_0x9b6e('0x46')]['id']}})[_0x9b6e('0x28')](handleEntityNotFound(_0x2f6b6f,null))[_0x9b6e('0x28')](removeEntity(_0x2f6b6f,null))['catch'](handleError(_0x2f6b6f,null));};exports['getConfigurations']=function(_0x7005e8,_0xfe6c55,_0x49ce1b){var _0x48a799={};var _0x5c3612={};var _0x2279cf;var _0x11f8a9;return db[_0x9b6e('0x47')]['findOne']({'where':{'id':_0x7005e8[_0x9b6e('0x46')]['id']}})[_0x9b6e('0x28')](handleEntityNotFound(_0xfe6c55,null))[_0x9b6e('0x28')](function(_0x385128){if(_0x385128){_0x2279cf=_0x385128;_0x5c3612[_0x9b6e('0x31')]=_['keys'](db[_0x9b6e('0x4b')][_0x9b6e('0x2d')]);_0x5c3612[_0x9b6e('0x32')]=_[_0x9b6e('0x33')](_0x7005e8[_0x9b6e('0x32')]);_0x5c3612[_0x9b6e('0x34')]=_[_0x9b6e('0x35')](_0x5c3612[_0x9b6e('0x31')],_0x5c3612[_0x9b6e('0x32')]);_0x48a799[_0x9b6e('0x36')]=_[_0x9b6e('0x35')](_0x5c3612['model'],qs['fields'](_0x7005e8[_0x9b6e('0x32')][_0x9b6e('0x37')]));_0x48a799['attributes']=_0x48a799['attributes'][_0x9b6e('0x38')]?_0x48a799[_0x9b6e('0x36')]:_0x5c3612[_0x9b6e('0x31')];_0x48a799[_0x9b6e('0x4c')]=qs['sort'](_0x7005e8[_0x9b6e('0x32')][_0x9b6e('0x3b')]);_0x48a799[_0x9b6e('0x3c')]=qs['filters'](_[_0x9b6e('0x3d')](_0x7005e8[_0x9b6e('0x32')],_0x5c3612[_0x9b6e('0x34')]));if(_0x7005e8[_0x9b6e('0x32')][_0x9b6e('0x3e')]){_0x48a799[_0x9b6e('0x3c')]=_[_0x9b6e('0x3f')](_0x48a799[_0x9b6e('0x3c')],{'$or':_['map'](_0x48a799['attributes'],function(_0x324c79){var _0x42efb8={};_0x42efb8[_0x324c79]={'$like':'%'+_0x7005e8[_0x9b6e('0x32')][_0x9b6e('0x3e')]+'%'};return _0x42efb8;})});}_0x48a799=_[_0x9b6e('0x3f')]({},_0x48a799,_0x7005e8['options']);return _0x2279cf[_0x9b6e('0x4d')](_0x48a799);}})[_0x9b6e('0x28')](function(_0x37c077){if(_0x37c077){_0x11f8a9=_0x37c077[_0x9b6e('0x38')];if(!_0x7005e8[_0x9b6e('0x32')][_0x9b6e('0x39')]('nolimit')){_0x48a799['limit']=qs[_0x9b6e('0x1f')](_0x7005e8[_0x9b6e('0x32')][_0x9b6e('0x1f')]);_0x48a799[_0x9b6e('0x21')]=qs['offset'](_0x7005e8[_0x9b6e('0x32')][_0x9b6e('0x21')]);}return _0x2279cf[_0x9b6e('0x4d')](_0x48a799);}})[_0x9b6e('0x28')](function(_0x406aea){if(_0x406aea){return _0x406aea?{'count':_0x11f8a9,'rows':_0x406aea}:null;}})['then'](respondWithResult(_0xfe6c55,null))[_0x9b6e('0x45')](handleError(_0xfe6c55,null));};exports[_0x9b6e('0x4e')]=function(_0x1e83a4,_0x183e3f,_0x1dd9e6){if(_0x1e83a4['body']['id']){delete _0x1e83a4['body']['id'];}return db[_0x9b6e('0x47')]['findOne']({'where':{'id':_0x1e83a4[_0x9b6e('0x46')]['id']}})['then'](handleEntityNotFound(_0x183e3f,null))['then'](function(_0x4e314a){if(_0x4e314a){_0x1e83a4['body'][_0x9b6e('0x4f')]=_0x4e314a['id'];_0x1e83a4['body'][_0x9b6e('0x50')]=integrations['getSubjects'](_0x1e83a4['body'][_0x9b6e('0x51')],_0x1e83a4[_0x9b6e('0x4a')]['type']);_0x1e83a4[_0x9b6e('0x4a')][_0x9b6e('0x52')]=integrations[_0x9b6e('0x53')](_0x1e83a4[_0x9b6e('0x4a')]['channel'],_0x1e83a4[_0x9b6e('0x4a')][_0x9b6e('0x2f')]);return db[_0x9b6e('0x4b')][_0x9b6e('0x54')](_0x1e83a4[_0x9b6e('0x4a')],{'include':[{'model':db['ZohoField'],'as':_0x9b6e('0x50')},{'model':db[_0x9b6e('0x55')],'as':_0x9b6e('0x52')}]});}return null;})['then'](respondWithResult(_0x183e3f,null))[_0x9b6e('0x45')](handleError(_0x183e3f,null));};function getAccessToken(_0x9c6948){return new Promise(function(_0x248f18,_0x31e360){var _0x5f2dbf;switch(_0x9c6948[_0x9b6e('0x56')]){case'US':_0x5f2dbf=_0x9b6e('0x57');break;case'AU':_0x5f2dbf=_0x9b6e('0x58');break;case'EU':_0x5f2dbf='https://accounts.zoho.eu';break;case'IN':_0x5f2dbf=_0x9b6e('0x59');break;case'CN':_0x5f2dbf=_0x9b6e('0x5a');break;default:_0x5f2dbf=_0x9b6e('0x5b');break;}var _0x325f8c={'method':_0x9b6e('0x5c'),'uri':_0x5f2dbf+_0x9b6e('0x5d'),'qs':{'refresh_token':_0x9c6948[_0x9b6e('0x5e')],'client_id':_0x9c6948[_0x9b6e('0x5f')],'client_secret':_0x9c6948[_0x9b6e('0x60')],'grant_type':'refresh_token'},'json':!![]};return rp(_0x325f8c)[_0x9b6e('0x28')](function(_0x661ff6){if(_0x661ff6[_0x9b6e('0x61')]){_0x248f18(_0x661ff6[_0x9b6e('0x61')]);}else{_0x31e360(_0x9b6e('0x62'));}})[_0x9b6e('0x45')](function(_0x5466ea){_0x31e360(_0x5466ea);});});}exports[_0x9b6e('0x63')]=function(_0x32f60a,_0x1e1e9b,_0x2c7d57){var _0x4c9e24,_0x402db6,_0x2fc3cc,_0x57e7ec,_0x14b242;return db[_0x9b6e('0x47')]['findOne']({'where':{'id':_0x32f60a[_0x9b6e('0x46')]['id']},'attributes':['id',_0x9b6e('0x64'),_0x9b6e('0x56'),_0x9b6e('0x5f'),_0x9b6e('0x60'),_0x9b6e('0x65'),_0x9b6e('0x66'),_0x9b6e('0x5e')]})['then'](handleEntityNotFound(_0x1e1e9b,null))[_0x9b6e('0x28')](function(_0xa7a33f){_0x14b242=_0xa7a33f;_0x4c9e24=_0x14b242[_0x9b6e('0x64')];_0x402db6=_0x4c9e24===_0x9b6e('0x67')?'eu':_0x9b6e('0x68');_0x2fc3cc=_0x14b242[_0x9b6e('0x65')];var _0x1976b4=_0x2fc3cc['slice'](-0x1);if(_0x1976b4==='/'||_0x1976b4==='\x5c'||_0x1976b4===':'){_0x2fc3cc=_0x2fc3cc['substring'](0x0,_0x2fc3cc[_0x9b6e('0x69')](_0x1976b4));}if(!_0x14b242[_0x9b6e('0x5e')]){throw new Error(_0x9b6e('0x6a'));}return getAccessToken(_0x14b242);})['then'](function(_0x3aa288){if(_0x3aa288){return rp({'method':'GET','uri':util[_0x9b6e('0x6b')](_0x9b6e('0x6c'),_0x402db6),'qs':{'module':_0x9b6e('0x6d')},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x3aa288},'json':!![]});}})[_0x9b6e('0x28')](function(_0x55ef0c){if(_0x55ef0c){if(_0x55ef0c[_0x9b6e('0x6e')]&&_0x55ef0c[_0x9b6e('0x6e')][_0x9b6e('0x2a')]){throw new Error(_0x55ef0c['response'][_0x9b6e('0x2a')][_0x9b6e('0x6f')]);}var _0x55c0be=[];var _0x5be7bd=[];var _0x3961b6=[_0x9b6e('0x70'),'Subject',_0x9b6e('0x71'),_0x9b6e('0x72'),_0x9b6e('0x73'),_0x9b6e('0x74'),_0x9b6e('0x75'),_0x9b6e('0x76')];_0x5be7bd=_['remove'](_0x55ef0c[_0x9b6e('0x37')],function(_0x126748){return _0x3961b6[_0x9b6e('0x77')](_0x126748[_0x9b6e('0x78')]);});for(var _0x1c40aa=0x0;_0x1c40aa<_0x5be7bd[_0x9b6e('0x38')];_0x1c40aa++){if(_0x5be7bd[_0x1c40aa][_0x9b6e('0x79')]===![]){_0x55c0be['push']({'id':_0x5be7bd[_0x1c40aa]['id'],'name':_0x5be7bd[_0x1c40aa][_0x9b6e('0x7a')],'custom':_0x5be7bd[_0x1c40aa][_0x9b6e('0x7b')],'options':_0x5be7bd[_0x1c40aa][_0x9b6e('0x7c')]===_0x9b6e('0x7d')&&_0x5be7bd[_0x1c40aa]['pick_list_values']['length']>-0x1?_[_0x9b6e('0x40')](_0x5be7bd[_0x1c40aa][_0x9b6e('0x7e')],function(_0x126d9b){return{'name':_0x126d9b,'value':_0x126d9b};}):[]});}}return{'count':_0x55c0be[_0x9b6e('0x38')],'rows':_0x55c0be};}else{return{'count':0x0,'rows':[]};}})[_0x9b6e('0x28')](respondWithResult(_0x1e1e9b,null))['catch'](function(_0x4430b9){var _0x2b3feb=_0x32f60a[_0x9b6e('0x32')][_0x9b6e('0x7f')]?0x1f4:_0x4430b9[_0x9b6e('0x80')]||0x1f4;logger[_0x9b6e('0x2a')](_0x9b6e('0x81'),'getFields',_0x2b3feb,JSON[_0x9b6e('0x82')](_0x4430b9));delete _0x4430b9[_0x9b6e('0x2c')];if(_0x2b3feb===0x191){_0x2b3feb=0x190;}_0x1e1e9b[_0x9b6e('0x1c')](_0x2b3feb)[_0x9b6e('0x83')](_0x32f60a['query'][_0x9b6e('0x7f')]?{'message':_0x9b6e('0x84'),'statusCode':_0x4430b9[_0x9b6e('0x80')]}:_0x4430b9);});};
\ No newline at end of file
+var _0xffd2=['attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','getConfigurations','findOne','ZohoConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','ZohoField','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','clientId','clientSecret','access_token','Unable\x20to\x20retrieve\x20the\x20access\x20token','getFields','serverUrl','code','host','zoho.eu','substring','lastIndexOf','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','GET','https://www.zohoapis.%s/crm/v2/settings/fields','Calls','response','Subject','Description','WhoId','Call_Result','Call_Start_Time','Call_Type','remove','push','data_type','picklist','pick_list_values','test','statusCode','eml-format','rimraf','fast-json-patch','request-promise','bluebird','util','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','destroy','then','error','stack','send','index','ZohoAccount','rawAttributes','fieldName','type','key','model','map','name','query','filters','intersection'];(function(_0x4ec520,_0x15fee2){var _0xed49d7=function(_0x3031f2){while(--_0x3031f2){_0x4ec520['push'](_0x4ec520['shift']());}};_0xed49d7(++_0x15fee2);}(_0xffd2,0x146));var _0x2ffd=function(_0x29d94e,_0xf386d6){_0x29d94e=_0x29d94e-0x0;var _0x106237=_0xffd2[_0x29d94e];return _0x106237;};'use strict';var emlformat=require(_0x2ffd('0x0'));var rimraf=require(_0x2ffd('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2ffd('0x2'));var rp=require(_0x2ffd('0x3'));var moment=require('moment');var BPromise=require(_0x2ffd('0x4'));var Mustache=require('mustache');var util=require(_0x2ffd('0x5'));var path=require('path');var sox=require(_0x2ffd('0x6'));var csv=require('to-csv');var ejs=require(_0x2ffd('0x7'));var fs=require('fs');var fs_extra=require(_0x2ffd('0x8'));var _=require(_0x2ffd('0x9'));var squel=require(_0x2ffd('0xa'));var crypto=require(_0x2ffd('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x2ffd('0xc'));var toCsv=require(_0x2ffd('0xd'));var querystring=require(_0x2ffd('0xe'));var Papa=require(_0x2ffd('0xf'));var Redis=require('ioredis');var authService=require(_0x2ffd('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x2ffd('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2ffd('0x12'))(_0x2ffd('0x13'));var utils=require(_0x2ffd('0x14'));var config=require(_0x2ffd('0x15'));var licenseUtil=require(_0x2ffd('0x16'));var db=require(_0x2ffd('0x17'))['db'];var integrations=require(_0x2ffd('0x18'));function respondWithStatusCode(_0x8589e,_0x1d0b99){_0x1d0b99=_0x1d0b99||0xcc;return function(_0x447d14){if(_0x447d14){return _0x8589e[_0x2ffd('0x19')](_0x1d0b99);}return _0x8589e[_0x2ffd('0x1a')](_0x1d0b99)[_0x2ffd('0x1b')]();};}function respondWithResult(_0x30120f,_0x899735){_0x899735=_0x899735||0xc8;return function(_0x31266e){if(_0x31266e){return _0x30120f[_0x2ffd('0x1a')](_0x899735)[_0x2ffd('0x1c')](_0x31266e);}};}function respondWithFilteredResult(_0x44b8c5,_0x54b08c){return function(_0x58e2a1){if(_0x58e2a1){var _0x175aba=typeof _0x54b08c[_0x2ffd('0x1d')]==='undefined'&&typeof _0x54b08c['limit']===_0x2ffd('0x1e');var _0x1cae5a=_0x58e2a1[_0x2ffd('0x1f')];var _0x89119a=_0x175aba?0x0:_0x54b08c[_0x2ffd('0x1d')];var _0x39c443=_0x175aba?_0x58e2a1[_0x2ffd('0x1f')]:_0x54b08c[_0x2ffd('0x1d')]+_0x54b08c[_0x2ffd('0x20')];var _0xc1f50;if(_0x39c443>=_0x1cae5a){_0x39c443=_0x1cae5a;_0xc1f50=0xc8;}else{_0xc1f50=0xce;}_0x44b8c5[_0x2ffd('0x1a')](_0xc1f50);return _0x44b8c5[_0x2ffd('0x21')](_0x2ffd('0x22'),_0x89119a+'-'+_0x39c443+'/'+_0x1cae5a)[_0x2ffd('0x1c')](_0x58e2a1);}return null;};}function patchUpdates(_0x4885d7){return function(_0x4c0844){try{jsonpatch[_0x2ffd('0x23')](_0x4c0844,_0x4885d7,!![]);}catch(_0x1acf17){return BPromise[_0x2ffd('0x24')](_0x1acf17);}return _0x4c0844[_0x2ffd('0x25')]();};}function saveUpdates(_0x47272a,_0x255d1b){return function(_0x215f55){if(_0x215f55){return _0x215f55['update'](_0x47272a)['then'](function(_0x50f770){return _0x50f770;});}return null;};}function removeEntity(_0x4b66aa,_0x172c70){return function(_0x51a276){if(_0x51a276){return _0x51a276[_0x2ffd('0x26')]()[_0x2ffd('0x27')](function(){_0x4b66aa[_0x2ffd('0x1a')](0xcc)[_0x2ffd('0x1b')]();});}};}function handleEntityNotFound(_0x2d2fe0,_0x4dbc86){return function(_0x33fb8f){if(!_0x33fb8f){_0x2d2fe0[_0x2ffd('0x19')](0x194);}return _0x33fb8f;};}function handleError(_0x115e70,_0x1cc73c){_0x1cc73c=_0x1cc73c||0x1f4;return function(_0x2485a7){logger[_0x2ffd('0x28')](_0x2485a7[_0x2ffd('0x29')]);if(_0x2485a7['name']){delete _0x2485a7['name'];}_0x115e70['status'](_0x1cc73c)[_0x2ffd('0x2a')](_0x2485a7);};}exports[_0x2ffd('0x2b')]=function(_0x153736,_0x2787c7){var _0x4ba775={},_0xa5d90c={},_0x47ed55={'count':0x0,'rows':[]};var _0x23073e=_['map'](db[_0x2ffd('0x2c')][_0x2ffd('0x2d')],function(_0x43958e){return{'name':_0x43958e[_0x2ffd('0x2e')],'type':_0x43958e[_0x2ffd('0x2f')][_0x2ffd('0x30')]};});_0xa5d90c[_0x2ffd('0x31')]=_[_0x2ffd('0x32')](_0x23073e,_0x2ffd('0x33'));_0xa5d90c[_0x2ffd('0x34')]=_['keys'](_0x153736[_0x2ffd('0x34')]);_0xa5d90c[_0x2ffd('0x35')]=_[_0x2ffd('0x36')](_0xa5d90c[_0x2ffd('0x31')],_0xa5d90c[_0x2ffd('0x34')]);_0x4ba775[_0x2ffd('0x37')]=_[_0x2ffd('0x36')](_0xa5d90c['model'],qs[_0x2ffd('0x38')](_0x153736[_0x2ffd('0x34')][_0x2ffd('0x38')]));_0x4ba775[_0x2ffd('0x37')]=_0x4ba775[_0x2ffd('0x37')][_0x2ffd('0x39')]?_0x4ba775['attributes']:_0xa5d90c[_0x2ffd('0x31')];if(!_0x153736[_0x2ffd('0x34')][_0x2ffd('0x3a')](_0x2ffd('0x3b'))){_0x4ba775[_0x2ffd('0x20')]=qs['limit'](_0x153736[_0x2ffd('0x34')][_0x2ffd('0x20')]);_0x4ba775[_0x2ffd('0x1d')]=qs['offset'](_0x153736[_0x2ffd('0x34')][_0x2ffd('0x1d')]);}_0x4ba775[_0x2ffd('0x3c')]=qs[_0x2ffd('0x3d')](_0x153736[_0x2ffd('0x34')]['sort']);_0x4ba775[_0x2ffd('0x3e')]=qs[_0x2ffd('0x35')](_[_0x2ffd('0x3f')](_0x153736['query'],_0xa5d90c[_0x2ffd('0x35')]),_0x23073e);if(_0x153736[_0x2ffd('0x34')][_0x2ffd('0x40')]){_0x4ba775[_0x2ffd('0x3e')]=_[_0x2ffd('0x41')](_0x4ba775[_0x2ffd('0x3e')],{'$or':_[_0x2ffd('0x32')](_0x23073e,function(_0x230c8b){if(_0x230c8b['type']!==_0x2ffd('0x42')){var _0x415c8b={};_0x415c8b[_0x230c8b[_0x2ffd('0x33')]]={'$like':'%'+_0x153736[_0x2ffd('0x34')][_0x2ffd('0x40')]+'%'};return _0x415c8b;}})});}_0x4ba775=_[_0x2ffd('0x41')]({},_0x4ba775,_0x153736[_0x2ffd('0x43')]);var _0x4e5e84={'where':_0x4ba775[_0x2ffd('0x3e')]};return db[_0x2ffd('0x2c')][_0x2ffd('0x1f')](_0x4e5e84)[_0x2ffd('0x27')](function(_0x574dba){_0x47ed55[_0x2ffd('0x1f')]=_0x574dba;if(_0x153736[_0x2ffd('0x34')][_0x2ffd('0x44')]){_0x4ba775[_0x2ffd('0x45')]=[{'all':!![]}];}return db[_0x2ffd('0x2c')][_0x2ffd('0x46')](_0x4ba775);})['then'](function(_0x4f23a9){_0x47ed55[_0x2ffd('0x47')]=_0x4f23a9;return _0x47ed55;})[_0x2ffd('0x27')](respondWithFilteredResult(_0x2787c7,_0x4ba775))[_0x2ffd('0x48')](handleError(_0x2787c7,null));};exports[_0x2ffd('0x49')]=function(_0x541613,_0x449f6a){var _0x3083f3={'raw':![],'where':{'id':_0x541613[_0x2ffd('0x4a')]['id']}},_0x1a1a02={};_0x1a1a02['model']=_[_0x2ffd('0x4b')](db['ZohoAccount']['rawAttributes']);_0x1a1a02[_0x2ffd('0x34')]=_[_0x2ffd('0x4b')](_0x541613[_0x2ffd('0x34')]);_0x1a1a02['filters']=_[_0x2ffd('0x36')](_0x1a1a02[_0x2ffd('0x31')],_0x1a1a02[_0x2ffd('0x34')]);_0x3083f3[_0x2ffd('0x37')]=_['intersection'](_0x1a1a02[_0x2ffd('0x31')],qs[_0x2ffd('0x38')](_0x541613[_0x2ffd('0x34')]['fields']));_0x3083f3[_0x2ffd('0x37')]=_0x3083f3[_0x2ffd('0x37')][_0x2ffd('0x39')]?_0x3083f3[_0x2ffd('0x37')]:_0x1a1a02[_0x2ffd('0x31')];if(_0x541613[_0x2ffd('0x34')]['includeAll']){_0x3083f3[_0x2ffd('0x45')]=[{'all':!![]}];}_0x3083f3=_['merge']({},_0x3083f3,_0x541613[_0x2ffd('0x43')]);return db[_0x2ffd('0x2c')][_0x2ffd('0x4c')](_0x3083f3)['then'](handleEntityNotFound(_0x449f6a,null))[_0x2ffd('0x27')](respondWithResult(_0x449f6a,null))['catch'](handleError(_0x449f6a,null));};exports[_0x2ffd('0x4d')]=function(_0x6abb9f,_0x538e6f){return db[_0x2ffd('0x2c')][_0x2ffd('0x4d')](_0x6abb9f[_0x2ffd('0x4e')],{})['then'](respondWithResult(_0x538e6f,0xc9))['catch'](handleError(_0x538e6f,null));};exports['update']=function(_0x30f252,_0x103292){if(_0x30f252[_0x2ffd('0x4e')]['id']){delete _0x30f252['body']['id'];}return db[_0x2ffd('0x2c')][_0x2ffd('0x4c')]({'where':{'id':_0x30f252[_0x2ffd('0x4a')]['id']}})[_0x2ffd('0x27')](handleEntityNotFound(_0x103292,null))[_0x2ffd('0x27')](saveUpdates(_0x30f252[_0x2ffd('0x4e')],null))[_0x2ffd('0x27')](respondWithResult(_0x103292,null))[_0x2ffd('0x48')](handleError(_0x103292,null));};exports[_0x2ffd('0x26')]=function(_0x2469f9,_0x57b54f){return db[_0x2ffd('0x2c')]['find']({'where':{'id':_0x2469f9[_0x2ffd('0x4a')]['id']}})[_0x2ffd('0x27')](handleEntityNotFound(_0x57b54f,null))[_0x2ffd('0x27')](removeEntity(_0x57b54f,null))[_0x2ffd('0x48')](handleError(_0x57b54f,null));};exports[_0x2ffd('0x4f')]=function(_0x3211ae,_0x2d602b,_0x19ea19){var _0x54a354={};var _0x3860a0={};var _0x252cfb;var _0x5e6ba4;return db[_0x2ffd('0x2c')][_0x2ffd('0x50')]({'where':{'id':_0x3211ae[_0x2ffd('0x4a')]['id']}})[_0x2ffd('0x27')](handleEntityNotFound(_0x2d602b,null))['then'](function(_0x93b956){if(_0x93b956){_0x252cfb=_0x93b956;_0x3860a0[_0x2ffd('0x31')]=_[_0x2ffd('0x4b')](db[_0x2ffd('0x51')][_0x2ffd('0x2d')]);_0x3860a0[_0x2ffd('0x34')]=_[_0x2ffd('0x4b')](_0x3211ae[_0x2ffd('0x34')]);_0x3860a0[_0x2ffd('0x35')]=_[_0x2ffd('0x36')](_0x3860a0[_0x2ffd('0x31')],_0x3860a0[_0x2ffd('0x34')]);_0x54a354[_0x2ffd('0x37')]=_[_0x2ffd('0x36')](_0x3860a0[_0x2ffd('0x31')],qs['fields'](_0x3211ae[_0x2ffd('0x34')][_0x2ffd('0x38')]));_0x54a354[_0x2ffd('0x37')]=_0x54a354[_0x2ffd('0x37')][_0x2ffd('0x39')]?_0x54a354[_0x2ffd('0x37')]:_0x3860a0[_0x2ffd('0x31')];_0x54a354[_0x2ffd('0x3c')]=qs[_0x2ffd('0x3d')](_0x3211ae[_0x2ffd('0x34')]['sort']);_0x54a354['where']=qs[_0x2ffd('0x35')](_[_0x2ffd('0x3f')](_0x3211ae['query'],_0x3860a0[_0x2ffd('0x35')]));if(_0x3211ae[_0x2ffd('0x34')][_0x2ffd('0x40')]){_0x54a354[_0x2ffd('0x3e')]=_[_0x2ffd('0x41')](_0x54a354['where'],{'$or':_['map'](_0x54a354[_0x2ffd('0x37')],function(_0x2a0c3b){var _0x187e84={};_0x187e84[_0x2a0c3b]={'$like':'%'+_0x3211ae[_0x2ffd('0x34')][_0x2ffd('0x40')]+'%'};return _0x187e84;})});}_0x54a354=_[_0x2ffd('0x41')]({},_0x54a354,_0x3211ae[_0x2ffd('0x43')]);return _0x252cfb[_0x2ffd('0x4f')](_0x54a354);}})[_0x2ffd('0x27')](function(_0x18db5a){if(_0x18db5a){_0x5e6ba4=_0x18db5a[_0x2ffd('0x39')];if(!_0x3211ae[_0x2ffd('0x34')]['hasOwnProperty'](_0x2ffd('0x3b'))){_0x54a354['limit']=qs[_0x2ffd('0x20')](_0x3211ae[_0x2ffd('0x34')][_0x2ffd('0x20')]);_0x54a354[_0x2ffd('0x1d')]=qs['offset'](_0x3211ae[_0x2ffd('0x34')]['offset']);}return _0x252cfb[_0x2ffd('0x4f')](_0x54a354);}})[_0x2ffd('0x27')](function(_0x5403be){if(_0x5403be){return _0x5403be?{'count':_0x5e6ba4,'rows':_0x5403be}:null;}})[_0x2ffd('0x27')](respondWithResult(_0x2d602b,null))[_0x2ffd('0x48')](handleError(_0x2d602b,null));};exports[_0x2ffd('0x52')]=function(_0x43cd12,_0x4c3ca3,_0x5d22a4){if(_0x43cd12['body']['id']){delete _0x43cd12['body']['id'];}return db[_0x2ffd('0x2c')][_0x2ffd('0x50')]({'where':{'id':_0x43cd12['params']['id']}})[_0x2ffd('0x27')](handleEntityNotFound(_0x4c3ca3,null))[_0x2ffd('0x27')](function(_0x14e8bc){if(_0x14e8bc){_0x43cd12[_0x2ffd('0x4e')][_0x2ffd('0x53')]=_0x14e8bc['id'];_0x43cd12[_0x2ffd('0x4e')][_0x2ffd('0x54')]=integrations[_0x2ffd('0x55')](_0x43cd12[_0x2ffd('0x4e')][_0x2ffd('0x56')],_0x43cd12[_0x2ffd('0x4e')][_0x2ffd('0x2f')]);_0x43cd12[_0x2ffd('0x4e')][_0x2ffd('0x57')]=integrations[_0x2ffd('0x58')](_0x43cd12[_0x2ffd('0x4e')]['channel'],_0x43cd12['body'][_0x2ffd('0x2f')]);return db[_0x2ffd('0x51')]['create'](_0x43cd12['body'],{'include':[{'model':db['ZohoField'],'as':_0x2ffd('0x54')},{'model':db[_0x2ffd('0x59')],'as':_0x2ffd('0x57')}]});}return null;})[_0x2ffd('0x27')](respondWithResult(_0x4c3ca3,null))[_0x2ffd('0x48')](handleError(_0x4c3ca3,null));};function getAccessToken(_0x4922ce){return new Promise(function(_0x4cce12,_0x2f3b9a){var _0x5a4b36;switch(_0x4922ce[_0x2ffd('0x5a')]){case'US':_0x5a4b36=_0x2ffd('0x5b');break;case'AU':_0x5a4b36=_0x2ffd('0x5c');break;case'EU':_0x5a4b36=_0x2ffd('0x5d');break;case'IN':_0x5a4b36=_0x2ffd('0x5e');break;case'CN':_0x5a4b36=_0x2ffd('0x5f');break;default:_0x5a4b36=_0x2ffd('0x5d');break;}var _0x4fa171={'method':_0x2ffd('0x60'),'uri':_0x5a4b36+_0x2ffd('0x61'),'qs':{'refresh_token':_0x4922ce['refreshToken'],'client_id':_0x4922ce[_0x2ffd('0x62')],'client_secret':_0x4922ce[_0x2ffd('0x63')],'grant_type':'refresh_token'},'json':!![]};return rp(_0x4fa171)[_0x2ffd('0x27')](function(_0x5138ea){if(_0x5138ea['access_token']){_0x4cce12(_0x5138ea[_0x2ffd('0x64')]);}else{_0x2f3b9a(_0x2ffd('0x65'));}})[_0x2ffd('0x48')](function(_0x2595c7){_0x2f3b9a(_0x2595c7);});});}exports[_0x2ffd('0x66')]=function(_0x76422f,_0x39fd2b,_0x2c39d2){var _0x6b9ccf,_0x1fd6ba,_0x35264a,_0x5a3446,_0x5d9ad0;return db['ZohoAccount'][_0x2ffd('0x50')]({'where':{'id':_0x76422f['params']['id']},'attributes':['id','host',_0x2ffd('0x5a'),'clientId',_0x2ffd('0x63'),_0x2ffd('0x67'),_0x2ffd('0x68'),'refreshToken']})[_0x2ffd('0x27')](handleEntityNotFound(_0x39fd2b,null))[_0x2ffd('0x27')](function(_0xd74f66){_0x5d9ad0=_0xd74f66;_0x6b9ccf=_0x5d9ad0[_0x2ffd('0x69')];_0x1fd6ba=_0x6b9ccf===_0x2ffd('0x6a')?'eu':'com';_0x35264a=_0x5d9ad0[_0x2ffd('0x67')];var _0x55b0bd=_0x35264a['slice'](-0x1);if(_0x55b0bd==='/'||_0x55b0bd==='\x5c'||_0x55b0bd===':'){_0x35264a=_0x35264a[_0x2ffd('0x6b')](0x0,_0x35264a[_0x2ffd('0x6c')](_0x55b0bd));}if(!_0x5d9ad0['refreshToken']){throw new Error(_0x2ffd('0x6d'));}return getAccessToken(_0x5d9ad0);})[_0x2ffd('0x27')](function(_0x30aa91){if(_0x30aa91){return rp({'method':_0x2ffd('0x6e'),'uri':util['format'](_0x2ffd('0x6f'),_0x1fd6ba),'qs':{'module':_0x2ffd('0x70')},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x30aa91},'json':!![]});}})[_0x2ffd('0x27')](function(_0x1c82de){if(_0x1c82de){if(_0x1c82de['response']&&_0x1c82de[_0x2ffd('0x71')][_0x2ffd('0x28')]){throw new Error(_0x1c82de[_0x2ffd('0x71')][_0x2ffd('0x28')]['message']);}var _0xd40f1b=[];var _0x404b22=[];var _0x1e26c4=['Owner',_0x2ffd('0x72'),_0x2ffd('0x73'),_0x2ffd('0x74'),'Call_Duration',_0x2ffd('0x75'),_0x2ffd('0x76'),_0x2ffd('0x77')];_0x404b22=_[_0x2ffd('0x78')](_0x1c82de[_0x2ffd('0x38')],function(_0x177d57){return _0x1e26c4['includes'](_0x177d57['api_name']);});for(var _0x43bd07=0x0;_0x43bd07<_0x404b22[_0x2ffd('0x39')];_0x43bd07++){if(_0x404b22[_0x43bd07]['system_mandatory']===![]){_0xd40f1b[_0x2ffd('0x79')]({'id':_0x404b22[_0x43bd07]['id'],'name':_0x404b22[_0x43bd07]['display_label'],'custom':_0x404b22[_0x43bd07]['custom_field'],'options':_0x404b22[_0x43bd07][_0x2ffd('0x7a')]===_0x2ffd('0x7b')&&_0x404b22[_0x43bd07][_0x2ffd('0x7c')]['length']>-0x1?_[_0x2ffd('0x32')](_0x404b22[_0x43bd07]['pick_list_values'],function(_0xcbb983){return{'name':_0xcbb983,'value':_0xcbb983};}):[]});}}return{'count':_0xd40f1b['length'],'rows':_0xd40f1b};}else{return{'count':0x0,'rows':[]};}})[_0x2ffd('0x27')](respondWithResult(_0x39fd2b,null))[_0x2ffd('0x48')](function(_0x14f1c4){var _0x32cd57=_0x76422f[_0x2ffd('0x34')]['test']?0x1f4:_0x14f1c4['statusCode']||0x1f4;logger[_0x2ffd('0x28')]('getFields,\x20%s,\x20%s,\x20%s',_0x2ffd('0x66'),_0x32cd57,JSON['stringify'](_0x14f1c4));delete _0x14f1c4['name'];if(_0x32cd57===0x191){_0x32cd57=0x190;}_0x39fd2b[_0x2ffd('0x1a')](_0x32cd57)[_0x2ffd('0x2a')](_0x76422f[_0x2ffd('0x34')][_0x2ffd('0x7d')]?{'message':'Wrong\x20credentials','statusCode':_0x14f1c4[_0x2ffd('0x7e')]}:_0x14f1c4);});};
\ No newline at end of file