Built motion from commit (unavailable).|2.5.10
[motion2.git] / server / api / cmHopper / cmHopper.rpc.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xbf15=['message','request\x20sent','options','raw','where','attributes','include','model','map','then','info','GetCmHopper','debug','catch','ShowCmHopper','CmHopper','find','CreateCmHopper','create','body','update','UpdateCmHopper','DestroyCmHopper','destroy','GetContactDialer','CmContact','transaction','limit','order','LOCK','UPDATE','Contact','User','Agent','name','voicePause','length','includes','push','UserId','sequelize','CmHopperFinal','MoveContactManagedDialer','CountReScheduled','COUNT','`scheduledat`\x20>=\x20','format','\x22%s\x22','YYYY-MM-DD\x20HH:mm:ss','\x20,\x201,\x20null','findAll','all','GetContactRecallMe','GetCmHopperPreview','keys','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','request','CmHopper,\x20%s,\x20%s,\x20%s','stringify','error','CmHopper,\x20%s,\x20%s'];(function(_0x38c632,_0x14e8e6){var _0x12737e=function(_0x3e0fe4){while(--_0x3e0fe4){_0x38c632['push'](_0x38c632['shift']());}};_0x12737e(++_0x14e8e6);}(_0xbf15,0x10c));var _0x5bf1=function(_0xb46c7,_0x28f33c){_0xb46c7=_0xb46c7-0x0;var _0x10797b=_0xbf15[_0xb46c7];return _0x10797b;};'use strict';var _=require(_0x5bf1('0x0'));var util=require('util');var moment=require(_0x5bf1('0x1'));var BPromise=require(_0x5bf1('0x2'));var rs=require(_0x5bf1('0x3'));var fs=require('fs');var Redis=require(_0x5bf1('0x4'));var db=require(_0x5bf1('0x5'))['db'];var utils=require(_0x5bf1('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x5bf1('0x7'));var jayson=require(_0x5bf1('0x8'));var client=jayson[_0x5bf1('0x9')][_0x5bf1('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3919af,_0x562d5e,_0x35d567){return new BPromise(function(_0x10dfb7,_0x4f3c1a){return client[_0x5bf1('0xb')](_0x3919af,_0x35d567)['then'](function(_0x2a3618){logger['info']('CmHopper,\x20%s,\x20%s',_0x562d5e,'request\x20sent');logger['debug'](_0x5bf1('0xc'),_0x562d5e,'request\x20sent',JSON[_0x5bf1('0xd')](_0x2a3618));if(_0x2a3618[_0x5bf1('0xe')]){if(_0x2a3618[_0x5bf1('0xe')]['code']===0x1f4){logger[_0x5bf1('0xe')](_0x5bf1('0xf'),_0x562d5e,_0x2a3618[_0x5bf1('0xe')]['message']);return _0x4f3c1a(_0x2a3618[_0x5bf1('0xe')]['message']);}logger[_0x5bf1('0xe')](_0x5bf1('0xf'),_0x562d5e,_0x2a3618[_0x5bf1('0xe')]['message']);return _0x10dfb7(_0x2a3618[_0x5bf1('0xe')][_0x5bf1('0x10')]);}else{logger['info'](_0x5bf1('0xf'),_0x562d5e,_0x5bf1('0x11'));_0x10dfb7(_0x2a3618['result'][_0x5bf1('0x10')]);}})['catch'](function(_0x328462){logger[_0x5bf1('0xe')](_0x5bf1('0xf'),_0x562d5e,_0x328462);_0x4f3c1a(_0x328462);});});}exports['GetCmHopper']=function(_0x1c07a5){var _0x5a38ca=this;return new Promise(function(_0x27bb93,_0x2f5ea9){return db['CmHopper']['findAll']({'raw':_0x1c07a5[_0x5bf1('0x12')]?_0x1c07a5[_0x5bf1('0x12')][_0x5bf1('0x13')]===undefined?!![]:![]:!![],'where':_0x1c07a5['options']?_0x1c07a5[_0x5bf1('0x12')][_0x5bf1('0x14')]||null:null,'attributes':_0x1c07a5[_0x5bf1('0x12')]?_0x1c07a5[_0x5bf1('0x12')][_0x5bf1('0x15')]||null:null,'limit':_0x1c07a5[_0x5bf1('0x12')]?_0x1c07a5[_0x5bf1('0x12')]['limit']||null:null,'include':_0x1c07a5[_0x5bf1('0x12')]?_0x1c07a5['options']['include']?_['map'](_0x1c07a5['options'][_0x5bf1('0x16')],function(_0x369e71){return{'model':db[_0x369e71[_0x5bf1('0x17')]],'as':_0x369e71['as'],'attributes':_0x369e71[_0x5bf1('0x15')],'include':_0x369e71[_0x5bf1('0x16')]?_[_0x5bf1('0x18')](_0x369e71[_0x5bf1('0x16')],function(_0x4d6014){return{'model':db[_0x4d6014[_0x5bf1('0x17')]],'as':_0x4d6014['as'],'attributes':_0x4d6014[_0x5bf1('0x15')],'include':_0x4d6014['include']?_[_0x5bf1('0x18')](_0x4d6014[_0x5bf1('0x16')],function(_0x1c2e2b){return{'model':db[_0x1c2e2b[_0x5bf1('0x17')]],'as':_0x1c2e2b['as'],'attributes':_0x1c2e2b[_0x5bf1('0x15')]};}):[]};}):[]};}):[]:[]})[_0x5bf1('0x19')](function(_0x1fe475){logger[_0x5bf1('0x1a')](_0x5bf1('0x1b'),_0x1c07a5);logger[_0x5bf1('0x1c')]('GetCmHopper',_0x1c07a5,JSON[_0x5bf1('0xd')](_0x1fe475));_0x27bb93(_0x1fe475);})[_0x5bf1('0x1d')](function(_0x277439){logger[_0x5bf1('0xe')](_0x5bf1('0x1b'),_0x277439[_0x5bf1('0x10')],_0x1c07a5);_0x2f5ea9(_0x5a38ca[_0x5bf1('0xe')](0x1f4,_0x277439[_0x5bf1('0x10')]));});});};exports[_0x5bf1('0x1e')]=function(_0x4f5a6b){var _0x3d0887=this;return new Promise(function(_0x5abd40,_0x35c135){return db[_0x5bf1('0x1f')][_0x5bf1('0x20')]({'raw':_0x4f5a6b[_0x5bf1('0x12')]?_0x4f5a6b[_0x5bf1('0x12')][_0x5bf1('0x13')]===undefined?!![]:![]:!![],'where':_0x4f5a6b[_0x5bf1('0x12')]?_0x4f5a6b['options'][_0x5bf1('0x14')]||null:null,'attributes':_0x4f5a6b[_0x5bf1('0x12')]?_0x4f5a6b[_0x5bf1('0x12')]['attributes']||null:null,'include':_0x4f5a6b[_0x5bf1('0x12')]?_0x4f5a6b[_0x5bf1('0x12')]['include']?_[_0x5bf1('0x18')](_0x4f5a6b['options'][_0x5bf1('0x16')],function(_0x986504){return{'model':db[_0x986504['model']],'as':_0x986504['as'],'attributes':_0x986504[_0x5bf1('0x15')],'include':_0x986504[_0x5bf1('0x16')]?_['map'](_0x986504[_0x5bf1('0x16')],function(_0x5f337d){return{'model':db[_0x5f337d[_0x5bf1('0x17')]],'as':_0x5f337d['as'],'attributes':_0x5f337d[_0x5bf1('0x15')],'include':_0x5f337d[_0x5bf1('0x16')]?_[_0x5bf1('0x18')](_0x5f337d['include'],function(_0x2d71c6){return{'model':db[_0x2d71c6['model']],'as':_0x2d71c6['as'],'attributes':_0x2d71c6['attributes']};}):[]};}):[]};}):[]:[]})[_0x5bf1('0x19')](function(_0x5e049a){logger[_0x5bf1('0x1a')](_0x5bf1('0x1e'),_0x4f5a6b);logger[_0x5bf1('0x1c')](_0x5bf1('0x1e'),_0x4f5a6b,JSON[_0x5bf1('0xd')](_0x5e049a));_0x5abd40(_0x5e049a);})[_0x5bf1('0x1d')](function(_0x53528a){logger[_0x5bf1('0xe')](_0x5bf1('0x1e'),_0x53528a['message'],_0x4f5a6b);_0x35c135(_0x3d0887[_0x5bf1('0xe')](0x1f4,_0x53528a['message']));});});};exports[_0x5bf1('0x21')]=function(_0x58b9d8){var _0x3cb9b6=this;return new Promise(function(_0x4b868e,_0x5eaf4a){return db[_0x5bf1('0x1f')][_0x5bf1('0x22')](_0x58b9d8[_0x5bf1('0x23')],{'raw':_0x58b9d8[_0x5bf1('0x12')]?_0x58b9d8['options']['raw']===undefined?!![]:![]:!![]})['then'](function(_0x3f23eb){logger['info'](_0x5bf1('0x21'),_0x58b9d8);logger[_0x5bf1('0x1c')](_0x5bf1('0x21'),_0x58b9d8,JSON[_0x5bf1('0xd')](_0x3f23eb));_0x4b868e(_0x3f23eb);})[_0x5bf1('0x1d')](function(_0x12618e){logger[_0x5bf1('0xe')](_0x5bf1('0x21'),_0x12618e[_0x5bf1('0x10')],_0x58b9d8);_0x5eaf4a(_0x3cb9b6[_0x5bf1('0xe')](0x1f4,_0x12618e[_0x5bf1('0x10')]));});});};exports['UpdateCmHopper']=function(_0xb5b591){var _0x38498b=this;return new Promise(function(_0x43b6b3,_0x2f5b78){return db[_0x5bf1('0x1f')][_0x5bf1('0x24')](_0xb5b591[_0x5bf1('0x23')],{'raw':_0xb5b591[_0x5bf1('0x12')]?_0xb5b591[_0x5bf1('0x12')][_0x5bf1('0x13')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xb5b591['options']?_0xb5b591['options']['where']||null:null,'attributes':_0xb5b591[_0x5bf1('0x12')]?_0xb5b591[_0x5bf1('0x12')][_0x5bf1('0x15')]||null:null,'limit':_0xb5b591['options']?_0xb5b591[_0x5bf1('0x12')]['limit']||null:null})[_0x5bf1('0x19')](function(_0x510f35){logger['info'](_0x5bf1('0x25'),_0xb5b591);logger[_0x5bf1('0x1c')](_0x5bf1('0x25'),_0xb5b591,JSON['stringify'](_0x510f35));_0x43b6b3(_0x510f35);})[_0x5bf1('0x1d')](function(_0x584295){logger[_0x5bf1('0xe')](_0x5bf1('0x25'),_0x584295[_0x5bf1('0x10')],_0xb5b591);_0x2f5b78(_0x38498b['error'](0x1f4,_0x584295[_0x5bf1('0x10')]));});});};exports[_0x5bf1('0x26')]=function(_0x11900d){var _0xd613eb=this;return new Promise(function(_0x16ef8c,_0x503ea0){return db['CmHopper'][_0x5bf1('0x27')]({'where':_0x11900d[_0x5bf1('0x12')]?_0x11900d[_0x5bf1('0x12')][_0x5bf1('0x14')]||null:null})[_0x5bf1('0x19')](function(_0x50c3cd){logger[_0x5bf1('0x1a')](_0x5bf1('0x26'),_0x11900d);logger[_0x5bf1('0x1c')](_0x5bf1('0x26'),_0x11900d,JSON[_0x5bf1('0xd')](_0x50c3cd));_0x16ef8c(_0x50c3cd);})[_0x5bf1('0x1d')](function(_0x17cea8){logger[_0x5bf1('0xe')]('DestroyCmHopper',_0x17cea8[_0x5bf1('0x10')],_0x11900d);_0x503ea0(_0xd613eb[_0x5bf1('0xe')](0x1f4,_0x17cea8['message']));});});};exports[_0x5bf1('0x28')]=function(_0x244dae){var _0x4ca93a=this;return new Promise(function(_0x463f2c,_0x1704ca){return db[_0x5bf1('0x29')]['describe']()[_0x5bf1('0x19')](function(_0x44535f){return db['sequelize'][_0x5bf1('0x2a')](function(_0x8dab46){return db[_0x5bf1('0x1f')]['findAll']({'where':_0x244dae[_0x5bf1('0x12')]?_0x244dae[_0x5bf1('0x12')][_0x5bf1('0x14')]||null:null,'attributes':_0x244dae[_0x5bf1('0x12')]?_0x244dae[_0x5bf1('0x12')][_0x5bf1('0x15')]||null:null,'limit':_0x244dae[_0x5bf1('0x12')]?_0x244dae[_0x5bf1('0x12')][_0x5bf1('0x2b')]||null:null,'order':_0x244dae['options']?_0x244dae[_0x5bf1('0x12')][_0x5bf1('0x2c')]||null:null,'transaction':_0x8dab46,'lock':_0x8dab46[_0x5bf1('0x2d')][_0x5bf1('0x2e')],'include':[{'model':db[_0x5bf1('0x29')],'as':_0x5bf1('0x2f'),'attributes':_['keys'](_0x44535f)},{'model':db[_0x5bf1('0x30')],'as':_0x5bf1('0x31'),'attributes':['id',_0x5bf1('0x32'),_0x5bf1('0x33')]}]})[_0x5bf1('0x19')](function(_0x11b53d){var _0x33f9fe=[];var _0x5a0f2b=[];for(var _0x9fbc22=0x0;_0x9fbc22<_0x11b53d[_0x5bf1('0x34')];_0x9fbc22+=0x1){if(!_0x5a0f2b[_0x5bf1('0x35')](_0x11b53d[_0x9fbc22]['UserId'])){_0x5a0f2b[_0x5bf1('0x36')](_0x11b53d[_0x9fbc22][_0x5bf1('0x37')]);_0x33f9fe[_0x5bf1('0x36')](_0x11b53d[_0x9fbc22][_0x5bf1('0x24')](_0x244dae['body'],{'transaction':_0x8dab46}));}}return BPromise['all'](_0x33f9fe);});})[_0x5bf1('0x19')](function(_0x52b4c4){logger[_0x5bf1('0x1a')](_0x5bf1('0x28'),_0x244dae);logger['debug']('GetContactDialer',_0x244dae,JSON[_0x5bf1('0xd')](_0x52b4c4));_0x463f2c(_0x52b4c4);})['catch'](function(_0x189284){logger[_0x5bf1('0xe')](_0x5bf1('0x28'),_0x189284['message'],_0x244dae);_0x1704ca(_0x4ca93a['error'](0x1f4,_0x189284['message']));});});});};exports['MoveContactManagedDialer']=function(_0x2e0ba6){var _0x513179=this;return new Promise(function(_0x479ae0,_0x232f0d){return db[_0x5bf1('0x38')][_0x5bf1('0x2a')](function(_0x26f496){return db[_0x5bf1('0x39')][_0x5bf1('0x22')](_0x2e0ba6['body'],{'raw':_0x2e0ba6[_0x5bf1('0x12')]?_0x2e0ba6[_0x5bf1('0x12')][_0x5bf1('0x13')]===undefined?!![]:![]:!![],'transaction':_0x26f496})[_0x5bf1('0x19')](function(){return db[_0x5bf1('0x1f')][_0x5bf1('0x27')]({'where':_0x2e0ba6[_0x5bf1('0x12')]?_0x2e0ba6['options'][_0x5bf1('0x14')]||null:null,'transaction':_0x26f496});});})[_0x5bf1('0x19')](function(_0x482934){logger['info'](_0x5bf1('0x3a'),_0x2e0ba6);logger[_0x5bf1('0x1c')](_0x5bf1('0x3a'),_0x2e0ba6,JSON[_0x5bf1('0xd')](_0x482934));_0x479ae0(_0x482934);})[_0x5bf1('0x1d')](function(_0x24d114){logger['error'](_0x5bf1('0x3a'),_0x24d114[_0x5bf1('0x10')],_0x2e0ba6);_0x232f0d(_0x513179[_0x5bf1('0xe')](0x1f4,_0x24d114['message']));});});};exports[_0x5bf1('0x3b')]=function(_0x37ecd8){var _0x4f07d3=this;return new Promise(function(_0x4d772c,_0x2c764a){return db[_0x5bf1('0x1f')]['findAll']({'raw':_0x37ecd8['options']?_0x37ecd8['options'][_0x5bf1('0x13')]===undefined?!![]:![]:!![],'where':_0x37ecd8[_0x5bf1('0x12')]?_0x37ecd8[_0x5bf1('0x12')][_0x5bf1('0x14')]||null:null,'attributes':[[db['sequelize']['fn'](_0x5bf1('0x3c'),db[_0x5bf1('0x38')]['fn']('IF',db[_0x5bf1('0x38')]['literal'](_0x5bf1('0x3d')+util[_0x5bf1('0x3e')](_0x5bf1('0x3f'),moment()[_0x5bf1('0x3e')](_0x5bf1('0x40')))+_0x5bf1('0x41')))),'contactsRescheduled']]})[_0x5bf1('0x19')](function(_0x7c994d){logger[_0x5bf1('0x1a')](_0x5bf1('0x3b'),_0x37ecd8);logger[_0x5bf1('0x1c')](_0x5bf1('0x3b'),_0x37ecd8,JSON[_0x5bf1('0xd')](_0x7c994d));_0x4d772c(_0x7c994d);})['catch'](function(_0x48da97){logger[_0x5bf1('0xe')](_0x5bf1('0x3b'),_0x48da97['message'],_0x37ecd8);_0x2c764a(_0x4f07d3[_0x5bf1('0xe')](0x1f4,_0x48da97[_0x5bf1('0x10')]));});});};exports['GetContactRecallMe']=function(_0x94e42a){var _0xbcd8d3=this;return new Promise(function(_0x5ab0ca,_0x15fbfe){return db['CmContact']['describe']()[_0x5bf1('0x19')](function(_0x5d0d16){return db[_0x5bf1('0x38')]['transaction'](function(_0x3d76cd){return db[_0x5bf1('0x1f')][_0x5bf1('0x42')]({'where':_0x94e42a[_0x5bf1('0x12')]?_0x94e42a[_0x5bf1('0x12')]['where']||null:null,'attributes':_0x94e42a[_0x5bf1('0x12')]?_0x94e42a[_0x5bf1('0x12')][_0x5bf1('0x15')]||null:null,'limit':0x1,'order':_0x94e42a[_0x5bf1('0x12')]?_0x94e42a[_0x5bf1('0x12')][_0x5bf1('0x2c')]||null:null,'group':db[_0x5bf1('0x1f')][_0x5bf1('0x37')],'transaction':_0x3d76cd,'lock':_0x3d76cd[_0x5bf1('0x2d')][_0x5bf1('0x2e')],'include':_0x94e42a['options']?_0x94e42a['options'][_0x5bf1('0x16')]?_[_0x5bf1('0x18')](_0x94e42a[_0x5bf1('0x12')]['include'],function(_0x1755e8){return{'model':db[_0x1755e8[_0x5bf1('0x17')]],'as':_0x1755e8['as'],'attributes':_0x1755e8[_0x5bf1('0x15')],'include':_0x1755e8[_0x5bf1('0x16')]?_[_0x5bf1('0x18')](_0x1755e8[_0x5bf1('0x16')],function(_0x177fa6){return{'model':db[_0x177fa6['model']],'as':_0x177fa6['as'],'attributes':_0x177fa6[_0x5bf1('0x15')],'include':_0x177fa6[_0x5bf1('0x16')]?_[_0x5bf1('0x18')](_0x177fa6[_0x5bf1('0x16')],function(_0x123b85){return{'model':db[_0x123b85[_0x5bf1('0x17')]],'as':_0x123b85['as'],'attributes':_0x123b85[_0x5bf1('0x15')]};}):[]};}):[]};}):[]:[]})[_0x5bf1('0x19')](function(_0x12632e){var _0x5354bb=[];for(var _0x34f507=0x0;_0x34f507<_0x12632e[_0x5bf1('0x34')];_0x34f507+=0x1){_0x5354bb[_0x5bf1('0x36')](_0x12632e[_0x34f507][_0x5bf1('0x24')](_0x94e42a[_0x5bf1('0x23')],{'transaction':_0x3d76cd}));}return BPromise[_0x5bf1('0x43')](_0x5354bb);});})['then'](function(_0x314a6d){logger[_0x5bf1('0x1a')](_0x5bf1('0x44'),_0x94e42a);logger[_0x5bf1('0x1c')]('GetContactRecallMe',_0x94e42a,JSON[_0x5bf1('0xd')](_0x314a6d));_0x5ab0ca(_0x314a6d);})['catch'](function(_0x5ca6bd){logger[_0x5bf1('0xe')]('GetContactRecallMe',_0x5ca6bd[_0x5bf1('0x10')],_0x94e42a);_0x15fbfe(_0xbcd8d3[_0x5bf1('0xe')](0x1f4,_0x5ca6bd[_0x5bf1('0x10')]));});});});};exports[_0x5bf1('0x45')]=function(_0x4daab2){var _0x469d26=this;return new Promise(function(_0x433733,_0x15a3fc){db[_0x5bf1('0x29')]['describe']()[_0x5bf1('0x19')](function(_0x31be07){return db[_0x5bf1('0x1f')]['findAll']({'raw':_0x4daab2[_0x5bf1('0x12')]?_0x4daab2[_0x5bf1('0x12')][_0x5bf1('0x13')]===undefined?!![]:![]:!![],'where':_0x4daab2[_0x5bf1('0x12')]?_0x4daab2['options'][_0x5bf1('0x14')]||null:null,'attributes':_0x4daab2['options']?_0x4daab2[_0x5bf1('0x12')][_0x5bf1('0x15')]||null:null,'limit':_0x4daab2[_0x5bf1('0x12')]?_0x4daab2['options'][_0x5bf1('0x2b')]||null:null,'include':_0x4daab2[_0x5bf1('0x12')]?_0x4daab2[_0x5bf1('0x12')][_0x5bf1('0x16')]?_[_0x5bf1('0x18')](_0x4daab2[_0x5bf1('0x12')][_0x5bf1('0x16')],function(_0xcc5933){return{'model':db[_0xcc5933[_0x5bf1('0x17')]],'as':_0xcc5933['as'],'attributes':_0xcc5933['as']===_0x5bf1('0x2f')?_[_0x5bf1('0x46')](_0x31be07):_0xcc5933['attributes'],'include':_0xcc5933[_0x5bf1('0x16')]?_[_0x5bf1('0x18')](_0xcc5933[_0x5bf1('0x16')],function(_0x1d83ec){return{'model':db[_0x1d83ec[_0x5bf1('0x17')]],'as':_0x1d83ec['as'],'attributes':_0x1d83ec[_0x5bf1('0x15')],'include':_0x1d83ec[_0x5bf1('0x16')]?_['map'](_0x1d83ec[_0x5bf1('0x16')],function(_0x5df86a){return{'model':db[_0x5df86a[_0x5bf1('0x17')]],'as':_0x5df86a['as'],'attributes':_0x5df86a[_0x5bf1('0x15')]};}):[]};}):[]};}):[]:[]})[_0x5bf1('0x19')](function(_0x1cf2e5){logger[_0x5bf1('0x1a')](_0x5bf1('0x1b'),_0x4daab2);logger[_0x5bf1('0x1c')](_0x5bf1('0x1b'),_0x4daab2,JSON['stringify'](_0x1cf2e5));_0x433733(_0x1cf2e5);})[_0x5bf1('0x1d')](function(_0x4acc6c){logger[_0x5bf1('0xe')]('GetCmHopper',_0x4acc6c[_0x5bf1('0x10')],_0x4daab2);_0x15a3fc(_0x469d26[_0x5bf1('0xe')](0x1f4,_0x4acc6c[_0x5bf1('0x10')]));});});});};