---
sourceDocument: Xanadu API Reference
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# NotifyJsTelephonyDriver - Global

# NotifyJsTelephonyDriver - Global {#ariaid-title1}

* Release version: Xanadu
* 
* Updated August 1, 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 8 minutes to read

The NotifyJsTelephonyDriver API provides methods that you can use to
obtain information about the capabilities of the associated telephony driver.

It is a scripted extension point that can only be used when its object is returned by another
method, such as NotifyUtil - getTelephonyDriverFromNotifyNumber(). You
cannot call this API directly. The calling method associates a specific driver to the
interface, abstracting the details of determining the driver. Each of the available drivers
implement the same interface, which is defined by the
NotifyJsTelephonyDriver API.  
In the following code example, the getTelephonyDriverFromNotifyNumber() method returns an implementation of this API, with the driver interface being determined by the passed in telephone number, such as TwilioNotifyJsTelephonyDriver.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
          return {
            driverName: driver.getName(),
            supportsCall: driver.supportsCall(),
            supportsSMS: driver.supportsSms()
          } 
        }
    } 

To see which drivers are associated with the NotifyJsTelephonyDriver extension point,
navigate to System Extension Points\>global.NotifyJsTelephonyDriver. All associated
driver implementations appear in the Implementations tab.

For additional information on scripted extension points, see [Using extension points to extend application functionality
point](https://servicenow-prod.fluidtopics.net/agUCalbZ4ypHMncaJXRaoQ "Use extension points to extend the functionality of an application without altering the original application code. You can use pre-existing extension points available in selected ServiceNow AI Platform applications, or you can add extension points when you develop custom applications in your own instance.").

To use this API you must activate the Notify (com.snc.notify) plugin. To activate specific
driver implementations, such as Twillo, you must activate their specific plugin.

## NotifyJsTelephonyDriver - call(Object notifyPhoneNumber, String phoneNumber) {#ariaid-title2}

Calls a specified telephone number.
{#NJTD-call_O_S__table_xcn_24y_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| notifyPhoneNumber | [NotifyPhoneNumber - Global](https://servicenow-prod.fluidtopics.net/8OAvLBmgiHQMm0hLGq3tCg#c_NotifyPhoneNumberAPI "The NotifyPhoneNumber API allows you to query information about a Notify phone number.") | NotifyPhoneNumber record that contains the Notify phone number from which to make the call. Located in the Notify Phone Number \[notify_number\] table. |
| toPhoneNumber | String | Telephone number to call. Format: E.164 |
[Table 1. Parameters]

{#NJTD-call_O_S__table_xcn_24y_qmb} {#NJTD-call_O_S__table_ycn_24y_qmb__entry__2}

| Type | Description |
|-|-|
| None |   |
[Table 2. Returns]

{#NJTD-call_O_S__table_ycn_24y_qmb}  
<br />

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {

        }
    } 

## NotifyJsTelephonyDriver - getCapabilities() {#ariaid-title3}

Returns a list of the capabilities of the telephony driver.
{#NJTD-getCapabilities__table_ihy_xcz_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 3. Parameters]

{#NJTD-getCapabilities__table_ihy_xcz_qmb} {#NJTD-getCapabilities__table_jhy_xcz_qmb__entry__2}

| Type | Description |
|-|-|
| None |   |
[Table 4. Returns]

{#NJTD-getCapabilities__table_jhy_xcz_qmb}  
This example returns the capabilities of the associated telephony driver.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
          return {
           capabilities: driver.getCapabilities()
          } 
        }
    } 

## NotifyJsTelephonyDriver - getMaxSizeForBulkSms(String phoneNumber) {#ariaid-title4}

Returns the maximum number of telephone numbers to which the telephony driver
associated with the passed in Notify telephone number can send an SMS message to at one
time.
{#NJTD-getMaxSizeForBulkSMS_S__table_mg3_q1r_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| phoneNumber | String | Notify telephone number to check for the maximum number of telephone numbers that the associated driver is able to send to in one bulk SMS message. |
[Table 5. Parameters]

{#NJTD-getMaxSizeForBulkSMS_S__table_mg3_q1r_qmb} {#NJTD-getMaxSizeForBulkSMS_S__table_ng3_q1r_qmb__entry__2}

| Type | Description |
|-|-|
| Number | Maximum number of telephone numbers that an SMS message can be sent to in a single bulk SMS delivery. |
[Table 6. Returns]

{#NJTD-getMaxSizeForBulkSMS_S__table_ng3_q1r_qmb}  
This example returns the maximum number of telephone numbers that can be sent to in a
single bulk SMS message for the associated telephony driver.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
           return {
           maxSmsNumbers: driver.getMaxSizeForBulkSMS(notifyNumber)
          }       
        }
    } 

## NotifyJsTelephonyDriver - getPhoneNumber(String phoneNumber) {#ariaid-title5}

Returns the Notify phone number record for the specified phone number.
Returns null if the specified phone number is not found in the Notify Phone Number
\[notify_number\] table.
{#NJTD-getPhoneNumber_S__table_pmm_t4q_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 7. Parameters]

{#NJTD-getPhoneNumber_S__table_pmm_t4q_qmb} {#NJTD-getPhoneNumber_S__table_qmm_t4q_qmb__entry__2}

| Type | Description |
|-|-|
| NotifyPhoneNumberAPI | Notify phone number record associated with the specified telephone number. |
[Table 8. Returns]

{#NJTD-getPhoneNumber_S__table_qmm_t4q_qmb}  
This example obtains the telephony driver and returns the associated Notify phone number
record for a specified phone number.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
          return {
           phoneNumberRecord: driver.getPhoneNumber(notifyNumber)
          } 
        }
    } 

## NotifyJsTelephonyDriver - getPhoneNumbers() {#ariaid-title6}

Returns a list of all Notify telephone numbers associated with the current telephony
driver.
{#NJTD-getPhoneNumbers__table_xmz_bsq_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 9. Parameters]

{#NJTD-getPhoneNumbers__table_xmz_bsq_qmb} {#NJTD-getPhoneNumbers__table_ymz_bsq_qmb__entry__2}

| Type | Description |
|-|-|
| String | Comma-separated list of all Notify telephone numbers associated with the current driver. |
[Table 10. Returns]

{#NJTD-getPhoneNumbers__table_ymz_bsq_qmb}  
This example obtains the telephony driver and returns the list of Notify phone numbers
associated with the current telephony driver.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
          return {
           phoneNumbers: driver.getPhoneNumbers()
          } 
        }
    } 

## NotifyJsTelephonyDriver - isActive() {#ariaid-title7}

Checks whether the current telephony driver is active.
{#NJTD-isActive__table_hry_t5p_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 11. Parameters]

{#NJTD-isActive__table_hry_t5p_qmb} {#NJTD-isActive__table_iry_t5p_qmb__entry__2}

| Type | Description |
|-|-|
| Boolean | Flag that indicates whether the current telephony driver is active. Valid values: * true: Driver is active. * false: Driver is inactive. {#NJTD-isActive__ul_wf3_rjq_qmb} |
[Table 12. Returns]

{#NJTD-isActive__table_iry_t5p_qmb}  
This example obtains the telephony driver and returns whether the current telephony driver
is active.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
          return {
            active: driver.isActive()
          } 
        }
    } 

## NotifyJsTelephonyDriver - kick(GlideRecord participantRecord) {#ariaid-title8}

Removes the specified caller from the current Notify conference call.
{#NJTD-kick_O__table_w31_wty_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| participantRecord | [GlideRecord - Global](https://servicenow-prod.fluidtopics.net/nRmUiaC7a08cr2N5iZGqoQ#c_GlideRecordAPI "The GlideRecord API is used for database operations.") | GlideRecord object containing the Notify Participant \[notify_participant\] record of the caller to remove from the conference call. |
[Table 13. Parameters]

{#NJTD-kick_O__table_w31_wty_qmb} {#NJTD-kick_O__table_x31_wty_qmb__entry__2}

| Type | Description |
|-|-|
| String | Only returned if error. Error message that describes why the caller was not removed from the call. |
[Table 14. Returns]

{#NJTD-kick_O__table_x31_wty_qmb}  
This example mutes the associated caller in the current conference call.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
          var notifyParticipantGr = new GlideRecord('notify_participant');
          notifyParticipantGr.get('active participant sys id');
        
          if (notifyParticipantGr.isValid) {
            driver.kick(notifyParticipantGr)
        }
    } 

## NotifyJsTelephonyDriver - mute(GlideRecord participantRecord) {#ariaid-title9}

Mutes the specified caller in the current Notify conference call.
{#NJTD-mute_O__table_eh1_4xy_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| participantRecord | [GlideRecord - Global](https://servicenow-prod.fluidtopics.net/nRmUiaC7a08cr2N5iZGqoQ#c_GlideRecordAPI "The GlideRecord API is used for database operations.") | GlideRecord object containing the Notify Participant \[notify_participant\] record of the caller to mute in the conference call. |
[Table 15. Parameters]

{#NJTD-mute_O__table_eh1_4xy_qmb} {#NJTD-mute_O__table_fh1_4xy_qmb__entry__2}

| Type | Description |
|-|-|
| String | Only returned if error. Error message that describes why the caller was not muted. |
[Table 16. Returns]

{#NJTD-mute_O__table_fh1_4xy_qmb}  
This example mutes the associated caller in the current conference call.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
          var notifyParticipantGr = new GlideRecord('notify_participant');
          notifyParticipantGr.get('active participant sys id');
        
          if (notifyParticipantGr.isValid) {
            driver.mute(notifyParticipantGr)
        }
    } 

## NotifyJsTelephonyDriver - sendAutonomousBulkSms(Object notifyPhoneNumber, Array
toPhoneNumber, String message, GlideRecord source) {#ariaid-title10}

Sends the specified Short Message Service (SMS) message to the specified list of
telephone numbers.
In addition, you can optionally associate the Incident record that caused the SMS message
to be generated with the SMS message.
{#NJTD-sendAutoBulkSMS_O_O_S_O__table_rwk_xvx_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| message | String | Message to send. |
| notifyPhoneNumber | [NotifyPhoneNumber - Global](https://servicenow-prod.fluidtopics.net/8OAvLBmgiHQMm0hLGq3tCg#c_NotifyPhoneNumberAPI "The NotifyPhoneNumber API allows you to query information about a Notify phone number.") | Record that contains the phone number that is sending the bulk SMS message. |
| source | [GlideRecord - Global](https://servicenow-prod.fluidtopics.net/nRmUiaC7a08cr2N5iZGqoQ#c_GlideRecordAPI "The GlideRecord API is used for database operations.") | Optional. Incident GlideRecord to store in the Source field of the associated SMS message record in the Notify Message \[notify message\] table. This links the Incident record that caused the SMS message to be generated to that SMS message. Default: None. If this parameter is not passed in, this information is not tracked. |
| toPhoneNumbers | Array | List of telephone numbers of the devices to receive the SMS message. |
[Table 17. Parameters]

{#NJTD-sendAutoBulkSMS_O_O_S_O__table_rwk_xvx_qmb} {#NJTD-sendAutoBulkSMS_O_O_S_O__table_swk_xvx_qmb__entry__2}

| Type | Description |
|-|-|
| None |   |
[Table 18. Returns]

{#NJTD-sendAutoBulkSMS_O_O_S_O__table_swk_xvx_qmb}  
This example shows how to send an autonomous bulk SMS.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {

        }
    } 

## NotifyJsTelephonyDriver - sendSMS(NotifyPhoneNumber notifyPhoneNumber, String
toPhoneNumber, String messageBody) {#ariaid-title11}

Sends a specified Short Message Service (SMS) message to a specified telephone
number.
{#NJTD-sendSMS_O_S_S__table_ohm_jdr_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| notifyPhoneNumber | [NotifyPhoneNumber - Global](https://servicenow-prod.fluidtopics.net/8OAvLBmgiHQMm0hLGq3tCg#c_NotifyPhoneNumberAPI "The NotifyPhoneNumber API allows you to query information about a Notify phone number.") | Notify phone number record that contains the telephone number that is sending the SMS message. Located in the Notify Phone Number \[notify_number\] table. |
| toPhoneNumber | String | Phone number to send the SMS message to. Format: E.164 compliant |
| message | String | Text to send in the SMS message. |
[Table 19. Parameters]

{#NJTD-sendSMS_O_S_S__table_ohm_jdr_qmb} {#NJTD-sendSMS_O_S_S__table_phm_jdr_qmb__entry__2}

| Type | Description |
|-|-|
| None |   |
[Table 20. Returns]

{#NJTD-sendSMS_O_S_S__table_phm_jdr_qmb}  
This example sends an SMS message to a specified telephone number.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
            
        }
    } 

## NotifyJsTelephonyDriver - supportsAutonomousBulkSms(String phoneNumber) {#ariaid-title12}

Checks whether the specified Notify telephone number is capable of handling autonomous
bulk Short Message Service (SMS) messages.
{#NJTD-supportsAutonomousBulkSms_S__table_ulw_3nq_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 21. Parameters]

{#NJTD-supportsAutonomousBulkSms_S__table_ulw_3nq_qmb} {#NJTD-supportsAutonomousBulkSms_S__table_vlw_3nq_qmb__entry__2}

| Type | Description |
|-|-|
| Boolean | Flag that indicates whether the specified Notify telephone number supports autonomous bulk SMS. Valid values: * true: Supports autonomous bulk SMS. * false: Does not support autonomous bulk SMS. {#NJTD-supportsAutonomousBulkSms_S__ul_wf3_rjq_qmb} |
[Table 22. Returns]

{#NJTD-supportsAutonomousBulkSms_S__table_vlw_3nq_qmb}  
This example obtains the telephony driver and returns whether the driver supports
autonomous bulk SMS.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
          return {
            supportsBulkSMS: driver.supportsAutonomousBulkSms(notifyNumber)
          } 
        }
    } 

## NotifyJsTelephonyDriver - supportsCall() {#ariaid-title13}

Checks whether the current telephony driver is capable of handling telephone
calls.
{#NJTD-supportsCall__table_zbf_3lq_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 23. Parameters]

{#NJTD-supportsCall__table_zbf_3lq_qmb} {#NJTD-supportsCall__table_acf_3lq_qmb__entry__2}

| Type | Description |
|-|-|
| Boolean | Flag that indicates whether the current telephony driver supports telephone calls. Valid values: * true: Driver supports telephone calls. * false: Driver does not support telephone calls. {#NJTD-supportsCall__ul_wf3_rjq_qmb} |
[Table 24. Returns]

{#NJTD-supportsCall__table_acf_3lq_qmb}  
This example obtains the telephony driver and returns whether the driver supports telephone
calls.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
          return {
            supportsCall: driver.supportsCall()
          } 
        }
    } 

## NotifyJsTelephonyDriver - supportsCallOverWebRtc() {#ariaid-title14}

Checks whether the specified Notify telephone number is capable of calls to a browser
using WebRTC (Real-Time Communications.)
{#NJTD-supportsCallOverWebRtc__table_vgy_kcs_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 25. Parameters]

{#NJTD-supportsCallOverWebRtc__table_vgy_kcs_qmb} {#NJTD-supportsCallOverWebRtc__table_wgy_kcs_qmb__entry__2}

| Type | Description |
|-|-|
| Boolean | Flag that indicates whether the specified Notify telephone number supports browser calls using WebRTC. Valid values: * true: Supports WebRTC. * false: Does not support WebRTC. {#NJTD-supportsCallOverWebRtc__ul_wf3_rjq_qmb} |
[Table 26. Returns]

{#NJTD-supportsCallOverWebRtc__table_wgy_kcs_qmb}  
This example obtains the telephony driver and returns whether the driver supports browser
calls using WebRTC.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
          return {
            supportsWebRTC: driver.supportsCallOverWebRtc(notifyNumber)
          } 
        }
    } 

## NotifyJsTelephonyDriver - supportsSMS() {#ariaid-title15}

Checks whether the current telephony driver is capable of handling Short Message
Service (SMS) messages.
{#NJTD-supportsSMS__table_vnl_cmq_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 27. Parameters]

{#NJTD-supportsSMS__table_vnl_cmq_qmb} {#NJTD-supportsSMS__table_wnl_cmq_qmb__entry__2}

| Type | Description |
|-|-|
| Boolean | Flag that indicates whether the current telephony driver supports SMS. Valid values: * true: Driver supports SMS. * false: Driver does not support SMS. {#NJTD-supportsSMS__ul_wf3_rjq_qmb} |
[Table 28. Returns]

{#NJTD-supportsSMS__table_wnl_cmq_qmb}  
This example obtains the telephony driver and returns whether the driver supports SMS.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
          return {
            supportsSMS: driver.supportsSMS()
          } 
        }
    } 

## NotifyJsTelephonyDriver - unmute(GlideRecord participantRecord) {#ariaid-title16}

Unmutes the specified caller in the current Notify conference call.
{#NJTD-unmute_O__table_aj1_31z_qmb__entry__3}

| Name | Type | Description |
|-|-|-|
| participantRecord | [GlideRecord - Global](https://servicenow-prod.fluidtopics.net/nRmUiaC7a08cr2N5iZGqoQ#c_GlideRecordAPI "The GlideRecord API is used for database operations.") | GlideRecord object containing the Notify Participant \[notify_participant\] record of the caller to mute in the conference call. |
[Table 29. Parameters]

{#NJTD-unmute_O__table_aj1_31z_qmb} {#NJTD-unmute_O__table_bj1_31z_qmb__entry__2}

| Type | Description |
|-|-|
| String | Only returned if error. Error message that describes why the caller was not muted. |
[Table 30. Returns]

{#NJTD-unmute_O__table_bj1_31z_qmb}  
This example mutes the associated caller in the current conference call.

    getDriverDetails('<notify_number>'); 

    function getDriverDetails(notifyNumber) {
      var nUtil = new NotifyUtil();
      if (!notifyNumber || !nUtil.validateOutboundNotifyNumber(notifyNumber))
        return;
      var driver = nUtil.getTelephonyDriverFromNotifyNumber(notifyNumber);
        if (driver) {
          var notifyParticipantGr = new GlideRecord('notify_participant');
          notifyParticipantGr.get('active participant sys id');
        
          if (notifyParticipantGr.isValid) {
            driver.unmute(notifyParticipantGr)
        }
    } 


