10b966c5eSopenharmony_ciroot {
20b966c5eSopenharmony_ci    module = "usbfn";
30b966c5eSopenharmony_ci    acm_device_config {
40b966c5eSopenharmony_ci        match_attr = "usbfn_cdcacm_driver";
50b966c5eSopenharmony_ci        udc_name = "fcc00000.dwc3";
60b966c5eSopenharmony_ci    }
70b966c5eSopenharmony_ci    ecm_device_config {
80b966c5eSopenharmony_ci        match_attr = "usbfn_cdcecm_driver";
90b966c5eSopenharmony_ci        udc_name = "fcc00000.dwc3";
100b966c5eSopenharmony_ci    }
110b966c5eSopenharmony_ci    mtp_device_config {
120b966c5eSopenharmony_ci        match_attr = "usbfn_mtp_interface_driver";
130b966c5eSopenharmony_ci        udc_name = "fcc00000.dwc3";
140b966c5eSopenharmony_ci    }
150b966c5eSopenharmony_ci    usb_device_config {
160b966c5eSopenharmony_ci        match_attr = "usb_device_interface_driver";
170b966c5eSopenharmony_ci        port_file_path = "/data/service/el1/public/usb/mode";
180b966c5eSopenharmony_ci    }
190b966c5eSopenharmony_ci    usbfn_config {
200b966c5eSopenharmony_ci        match_attr = "usbfn_driver";
210b966c5eSopenharmony_ci        use_hcs = 1;
220b966c5eSopenharmony_ci        udc_name = "fcc00000.dwc3";
230b966c5eSopenharmony_ci        usb_dev_desc = "UsbDeviceDescriptor";
240b966c5eSopenharmony_ci        usb_dev_string = "UsbDeviceStrings";
250b966c5eSopenharmony_ci        usb_configuration = "UsbConfigs";
260b966c5eSopenharmony_ci        UsbDeviceDescriptor {
270b966c5eSopenharmony_ci            bLength = 18;
280b966c5eSopenharmony_ci            bDescriptorType = 0x01;
290b966c5eSopenharmony_ci            bcdUSB = 0x0200;
300b966c5eSopenharmony_ci            bDeviceClass = 0;
310b966c5eSopenharmony_ci            bDeviceSubClass = 0;
320b966c5eSopenharmony_ci            bDeviceProtocol = 0;
330b966c5eSopenharmony_ci            bMaxPacketSize0 = 0x40;
340b966c5eSopenharmony_ci            idVendor = 0x2207;
350b966c5eSopenharmony_ci            idProduct = 0x0018;
360b966c5eSopenharmony_ci            bcdDevice = 0x0223;
370b966c5eSopenharmony_ci            manufacturer = 0;
380b966c5eSopenharmony_ci            product = 1;
390b966c5eSopenharmony_ci            serialnumber = 2;
400b966c5eSopenharmony_ci            numConfigurations = 1;
410b966c5eSopenharmony_ci        }
420b966c5eSopenharmony_ci        UsbDeviceStrings {
430b966c5eSopenharmony_ci            stringTabList = ["string_1"];
440b966c5eSopenharmony_ci            string_1 {
450b966c5eSopenharmony_ci                language = 0x0409;
460b966c5eSopenharmony_ci                stringList = ["str_1", "str_2","str_3", "str_4"];
470b966c5eSopenharmony_ci                str_1 {
480b966c5eSopenharmony_ci                    id = 0;
490b966c5eSopenharmony_ci                    str =  "HISILICON";
500b966c5eSopenharmony_ci                }
510b966c5eSopenharmony_ci                str_2 {
520b966c5eSopenharmony_ci                    id = 1;
530b966c5eSopenharmony_ci                    str = "HDC Device";
540b966c5eSopenharmony_ci                }
550b966c5eSopenharmony_ci                str_3 {
560b966c5eSopenharmony_ci                    id = 2;
570b966c5eSopenharmony_ci                    str =  "0123456789POPLAR";
580b966c5eSopenharmony_ci                }
590b966c5eSopenharmony_ci                str_4 {
600b966c5eSopenharmony_ci                    id = 3;
610b966c5eSopenharmony_ci                    str = "hdc";
620b966c5eSopenharmony_ci                }
630b966c5eSopenharmony_ci            }
640b966c5eSopenharmony_ci        }
650b966c5eSopenharmony_ci        UsbConfigs {
660b966c5eSopenharmony_ci            configList = ["config_1"];
670b966c5eSopenharmony_ci            config_1  {
680b966c5eSopenharmony_ci                configurationValue = 1;
690b966c5eSopenharmony_ci                iConfiguration = 3;
700b966c5eSopenharmony_ci                attributes = 0xC0;
710b966c5eSopenharmony_ci                maxPower = 500;
720b966c5eSopenharmony_ci                functionList = ["func_ecm", "func_acm", "func_mtp", "func_ptp"];
730b966c5eSopenharmony_ci                func_ecm {
740b966c5eSopenharmony_ci                    funcName = "f_generic.e";
750b966c5eSopenharmony_ci                    stringTabList = ["fnString_1"];
760b966c5eSopenharmony_ci                    fnString_1 {
770b966c5eSopenharmony_ci                        language  = 0x0409;
780b966c5eSopenharmony_ci                        stringList = ["str_1", "str_2", "str_3", "str_4"];
790b966c5eSopenharmony_ci                        str_1 {
800b966c5eSopenharmony_ci                            id = 0;
810b966c5eSopenharmony_ci                            str = "CDC Ethernet Control Model (ECM)";
820b966c5eSopenharmony_ci                        }
830b966c5eSopenharmony_ci                        str_2 {
840b966c5eSopenharmony_ci                            id = 1;
850b966c5eSopenharmony_ci                            str = "0ac75ae91c79";
860b966c5eSopenharmony_ci                        }
870b966c5eSopenharmony_ci                        str_3 {
880b966c5eSopenharmony_ci                            id = 2;
890b966c5eSopenharmony_ci                            str = "CDC Ethernet Data";
900b966c5eSopenharmony_ci                        }
910b966c5eSopenharmony_ci                        str_4 {
920b966c5eSopenharmony_ci                            id = 3;
930b966c5eSopenharmony_ci                            str = "CDC ECM";
940b966c5eSopenharmony_ci                        }
950b966c5eSopenharmony_ci                    }
960b966c5eSopenharmony_ci                    fsDescList = ["assoc_interface", "ControlInterface", "cdc_header",
970b966c5eSopenharmony_ci                        "cdc_union", "cdc_ether", "FsNotify_endpoint", "DataNopInterface",
980b966c5eSopenharmony_ci                        "DataInterface", "FsIn_endpoint", "FsOut_endpoint"];
990b966c5eSopenharmony_ci                    assoc_interface {
1000b966c5eSopenharmony_ci                        bLength = 0x08;
1010b966c5eSopenharmony_ci                        bDescriptorType = 0x0B;
1020b966c5eSopenharmony_ci                        bFirstInterface = 0x00;
1030b966c5eSopenharmony_ci                        bInterfaceCount = 0x02;
1040b966c5eSopenharmony_ci                        bFunctionClass = 0x02;
1050b966c5eSopenharmony_ci                        bFunctionSubClass = 0x06;
1060b966c5eSopenharmony_ci                        bFunctionProtocol = 0x00;
1070b966c5eSopenharmony_ci                        iFunction = 0x04;
1080b966c5eSopenharmony_ci                    }
1090b966c5eSopenharmony_ci                    ControlInterface {
1100b966c5eSopenharmony_ci                        bLength = 0x09;
1110b966c5eSopenharmony_ci                        bDescriptorType = 0x04;
1120b966c5eSopenharmony_ci                        bInterfaceNumber = 0x00;
1130b966c5eSopenharmony_ci                        bAlternateSetting = 0x00;
1140b966c5eSopenharmony_ci                        bNumEndpoints = 0x01;
1150b966c5eSopenharmony_ci                        bInterfaceClass = 0x02;
1160b966c5eSopenharmony_ci                        bInterfaceSubClass = 0x06;
1170b966c5eSopenharmony_ci                        bInterfaceProtocol = 0x00;
1180b966c5eSopenharmony_ci                        iInterface = 0x1;
1190b966c5eSopenharmony_ci                    }
1200b966c5eSopenharmony_ci                    cdc_header {
1210b966c5eSopenharmony_ci                        bLength = 0x05;
1220b966c5eSopenharmony_ci                        bDescriptorType = 0x24;
1230b966c5eSopenharmony_ci                        desc_data = [0x05, 0x24, 0x00, 0x10, 0x01];
1240b966c5eSopenharmony_ci                    }
1250b966c5eSopenharmony_ci                    cdc_union {
1260b966c5eSopenharmony_ci                        bLength = 0x05;
1270b966c5eSopenharmony_ci                        bDescriptorType = 0x24;
1280b966c5eSopenharmony_ci                        desc_data = [0x05, 0x24, 0x06, 0x00, 0x01];
1290b966c5eSopenharmony_ci                    }
1300b966c5eSopenharmony_ci                    cdc_ether {
1310b966c5eSopenharmony_ci                        bLength = 0x0D;
1320b966c5eSopenharmony_ci                        bDescriptorType = 0x24;
1330b966c5eSopenharmony_ci                        desc_data = [0x0D, 0x24, 0x0F, 0x06, 0x00, 0x00, 0x00, 0x00,
1340b966c5eSopenharmony_ci                                     0xEA, 0x05, 0x00, 0x00, 0x00];
1350b966c5eSopenharmony_ci                    }
1360b966c5eSopenharmony_ci                    DataNopInterface {
1370b966c5eSopenharmony_ci                        bLength = 0x09;
1380b966c5eSopenharmony_ci                        bDescriptorType = 0x04;
1390b966c5eSopenharmony_ci                        bInterfaceNumber = 0x01;
1400b966c5eSopenharmony_ci                        bAlternateSetting = 0x00;
1410b966c5eSopenharmony_ci                        bNumEndpoints = 0x00;
1420b966c5eSopenharmony_ci                        bInterfaceClass = 0x0A;
1430b966c5eSopenharmony_ci                        bInterfaceSubClass = 0x00;
1440b966c5eSopenharmony_ci                        bInterfaceProtocol = 0x06;
1450b966c5eSopenharmony_ci                        iInterface = 0x00;
1460b966c5eSopenharmony_ci                    }
1470b966c5eSopenharmony_ci                    DataInterface {
1480b966c5eSopenharmony_ci                        bLength = 0x09;
1490b966c5eSopenharmony_ci                        bDescriptorType = 0x04;
1500b966c5eSopenharmony_ci                        bInterfaceNumber = 0x01;
1510b966c5eSopenharmony_ci                        bAlternateSetting = 0x01;
1520b966c5eSopenharmony_ci                        bNumEndpoints = 0x02;
1530b966c5eSopenharmony_ci                        bInterfaceClass = 0x0A;
1540b966c5eSopenharmony_ci                        bInterfaceSubClass = 0x00;
1550b966c5eSopenharmony_ci                        bInterfaceProtocol = 0x06;
1560b966c5eSopenharmony_ci                        iInterface = 0x03;
1570b966c5eSopenharmony_ci                    }
1580b966c5eSopenharmony_ci                    FsNotify_endpoint {
1590b966c5eSopenharmony_ci                        bLength = 0x07;
1600b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
1610b966c5eSopenharmony_ci                        bEndpointAddress = 0x81;
1620b966c5eSopenharmony_ci                        bmAttributes = 0x03;
1630b966c5eSopenharmony_ci                        wMaxPacketSize = 16;
1640b966c5eSopenharmony_ci                        bInterval = 32;
1650b966c5eSopenharmony_ci                    }
1660b966c5eSopenharmony_ci                    FsIn_endpoint {
1670b966c5eSopenharmony_ci                        bLength = 0x07;
1680b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
1690b966c5eSopenharmony_ci                        bEndpointAddress = 0x82;
1700b966c5eSopenharmony_ci                        bmAttributes = 0x02;
1710b966c5eSopenharmony_ci                        wMaxPacketSize = 0;
1720b966c5eSopenharmony_ci                        bInterval = 0;
1730b966c5eSopenharmony_ci                    }
1740b966c5eSopenharmony_ci                    FsOut_endpoint {
1750b966c5eSopenharmony_ci                        bLength = 0x07;
1760b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
1770b966c5eSopenharmony_ci                        bEndpointAddress = 0x3;
1780b966c5eSopenharmony_ci                        bmAttributes = 0x02;
1790b966c5eSopenharmony_ci                        wMaxPacketSize = 0;
1800b966c5eSopenharmony_ci                        bInterval = 0;
1810b966c5eSopenharmony_ci                    }
1820b966c5eSopenharmony_ci                    hsDescList = ["assoc_interface", "ControlInterface", "cdc_header",
1830b966c5eSopenharmony_ci                        "cdc_union", "cdc_ether", "HsNotify_endpoint", "DataNopInterface",
1840b966c5eSopenharmony_ci                        "DataInterface", "HsIn_endpoint", "HsOut_endpoint"];
1850b966c5eSopenharmony_ci                    HsNotify_endpoint {
1860b966c5eSopenharmony_ci                        bLength = 0x07;
1870b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
1880b966c5eSopenharmony_ci                        bEndpointAddress = 0x81;
1890b966c5eSopenharmony_ci                        bmAttributes = 0x03;
1900b966c5eSopenharmony_ci                        wMaxPacketSize = 16;
1910b966c5eSopenharmony_ci                        bInterval = 9;
1920b966c5eSopenharmony_ci                    }
1930b966c5eSopenharmony_ci                    HsIn_endpoint {
1940b966c5eSopenharmony_ci                        bLength = 0x07;
1950b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
1960b966c5eSopenharmony_ci                        bEndpointAddress = 0x82;
1970b966c5eSopenharmony_ci                        bmAttributes = 0x02;
1980b966c5eSopenharmony_ci                        wMaxPacketSize = 512;
1990b966c5eSopenharmony_ci                        bInterval = 0;
2000b966c5eSopenharmony_ci                    }
2010b966c5eSopenharmony_ci                    HsOut_endpoint {
2020b966c5eSopenharmony_ci                        bLength = 0x07;
2030b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
2040b966c5eSopenharmony_ci                        bEndpointAddress = 0x3;
2050b966c5eSopenharmony_ci                        bmAttributes = 0x02;
2060b966c5eSopenharmony_ci                        wMaxPacketSize = 512;
2070b966c5eSopenharmony_ci                        bInterval = 0;
2080b966c5eSopenharmony_ci                    }
2090b966c5eSopenharmony_ci                    ssDescList = ["assoc_interface", "ControlInterface", "cdc_header",
2100b966c5eSopenharmony_ci                        "cdc_union", "cdc_ether", "SsNotify_endpoint", "ss_ep_comp_0",
2110b966c5eSopenharmony_ci                        "DataNopInterface", "DataInterface", "SsIn_endpoint",
2120b966c5eSopenharmony_ci                        "ss_ep_comp", "SsOut_endpoint", "ss_ep_comp"];
2130b966c5eSopenharmony_ci                    SsNotify_endpoint {
2140b966c5eSopenharmony_ci                        bLength = 0x07;
2150b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
2160b966c5eSopenharmony_ci                        bEndpointAddress = 0x81;
2170b966c5eSopenharmony_ci                        bmAttributes = 0x03;
2180b966c5eSopenharmony_ci                        wMaxPacketSize = 16;
2190b966c5eSopenharmony_ci                        bInterval = 9;
2200b966c5eSopenharmony_ci                    }
2210b966c5eSopenharmony_ci                    ss_ep_comp_0 {
2220b966c5eSopenharmony_ci                        bLength = 0x06;
2230b966c5eSopenharmony_ci                        bDescriptorType = 0x30;
2240b966c5eSopenharmony_ci                        bMaxBurst = 0x00;
2250b966c5eSopenharmony_ci                        bmAttributes = 0x00;
2260b966c5eSopenharmony_ci                        wBytesPerInterval = 16;
2270b966c5eSopenharmony_ci                    }
2280b966c5eSopenharmony_ci                    ss_ep_comp {
2290b966c5eSopenharmony_ci                        bLength = 0x06;
2300b966c5eSopenharmony_ci                        bDescriptorType = 0x30;
2310b966c5eSopenharmony_ci                        bMaxBurst = 0x00;
2320b966c5eSopenharmony_ci                        bmAttributes = 0x00;
2330b966c5eSopenharmony_ci                        wBytesPerInterval = 0x00;
2340b966c5eSopenharmony_ci                    }
2350b966c5eSopenharmony_ci                    SsIn_endpoint {
2360b966c5eSopenharmony_ci                        bLength = 0x07;
2370b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
2380b966c5eSopenharmony_ci                        bEndpointAddress = 0x82;
2390b966c5eSopenharmony_ci                        bmAttributes = 0x02;
2400b966c5eSopenharmony_ci                        wMaxPacketSize = 1024;
2410b966c5eSopenharmony_ci                        bInterval = 0;
2420b966c5eSopenharmony_ci                    }
2430b966c5eSopenharmony_ci                    SsOut_endpoint {
2440b966c5eSopenharmony_ci                        bLength = 0x07;
2450b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
2460b966c5eSopenharmony_ci                        bEndpointAddress = 0x3;
2470b966c5eSopenharmony_ci                        bmAttributes = 0x02;
2480b966c5eSopenharmony_ci                        wMaxPacketSize = 1024;
2490b966c5eSopenharmony_ci                        bInterval = 0;
2500b966c5eSopenharmony_ci                    }
2510b966c5eSopenharmony_ci                }
2520b966c5eSopenharmony_ci                func_acm {
2530b966c5eSopenharmony_ci                    funcName = "f_generic.a";
2540b966c5eSopenharmony_ci                    stringTabList = ["fnString_1"];
2550b966c5eSopenharmony_ci                    fnString_1 {
2560b966c5eSopenharmony_ci                        language  = 0x0409;
2570b966c5eSopenharmony_ci                        stringList = ["str_1", "str_2", "str_3"];
2580b966c5eSopenharmony_ci                        str_1 {
2590b966c5eSopenharmony_ci                            id = 0;
2600b966c5eSopenharmony_ci                            str =  "CDC Abstract Control Model (ACM)";
2610b966c5eSopenharmony_ci                        }
2620b966c5eSopenharmony_ci                        str_2 {
2630b966c5eSopenharmony_ci                            id = 1;
2640b966c5eSopenharmony_ci                            str = "CDC ACM Data";
2650b966c5eSopenharmony_ci                        }
2660b966c5eSopenharmony_ci                        str_3 {
2670b966c5eSopenharmony_ci                            id = 2;
2680b966c5eSopenharmony_ci                            str = "CDC Serial";
2690b966c5eSopenharmony_ci                        }
2700b966c5eSopenharmony_ci                    }
2710b966c5eSopenharmony_ci                    fsDescList = ["assoc_interface", "ControlInterface", "cdc_header",
2720b966c5eSopenharmony_ci                        "cdc_call_mgmt", "cdc_acm", "cdc_union", "FsNotify_endpoint",
2730b966c5eSopenharmony_ci                        "DataInterface", "FsIn_endpoint", "FsOut_endpoint"];
2740b966c5eSopenharmony_ci                    assoc_interface {
2750b966c5eSopenharmony_ci                        bLength = 0x08;
2760b966c5eSopenharmony_ci                        bDescriptorType = 0x0B;
2770b966c5eSopenharmony_ci                        bFirstInterface = 0x02;
2780b966c5eSopenharmony_ci                        bInterfaceCount = 0x02;
2790b966c5eSopenharmony_ci                        bFunctionClass = 0x02;
2800b966c5eSopenharmony_ci                        bFunctionSubClass = 0x02;
2810b966c5eSopenharmony_ci                        bFunctionProtocol = 0x01;
2820b966c5eSopenharmony_ci                        iFunction = 0x03;
2830b966c5eSopenharmony_ci                    }
2840b966c5eSopenharmony_ci                    ControlInterface {
2850b966c5eSopenharmony_ci                        bLength = 0x09;
2860b966c5eSopenharmony_ci                        bDescriptorType = 0x04;
2870b966c5eSopenharmony_ci                        bInterfaceNumber = 0x02;
2880b966c5eSopenharmony_ci                        bAlternateSetting = 0x00;
2890b966c5eSopenharmony_ci                        bNumEndpoints = 0x01;
2900b966c5eSopenharmony_ci                        bInterfaceClass = 0x02;
2910b966c5eSopenharmony_ci                        bInterfaceSubClass = 0x02;
2920b966c5eSopenharmony_ci                        bInterfaceProtocol = 0x01;
2930b966c5eSopenharmony_ci                        iInterface = 0x01;
2940b966c5eSopenharmony_ci                    }
2950b966c5eSopenharmony_ci                    cdc_header {
2960b966c5eSopenharmony_ci                        bLength = 0x05;
2970b966c5eSopenharmony_ci                        bDescriptorType = 0x24;
2980b966c5eSopenharmony_ci                        desc_data = [0x05, 0x24, 0x00, 0x10, 0x01];
2990b966c5eSopenharmony_ci                    }
3000b966c5eSopenharmony_ci                    cdc_call_mgmt {
3010b966c5eSopenharmony_ci                        bLength = 0x05;
3020b966c5eSopenharmony_ci                        bDescriptorType = 0x24;
3030b966c5eSopenharmony_ci                        desc_data = [0x05, 0x24, 0x01, 0x00, 0x01];
3040b966c5eSopenharmony_ci                    }
3050b966c5eSopenharmony_ci                    cdc_acm {
3060b966c5eSopenharmony_ci                        bLength = 0x04;
3070b966c5eSopenharmony_ci                        bDescriptorType = 0x24;
3080b966c5eSopenharmony_ci                        desc_data = [0x04, 0x24, 0x02, 0x02];
3090b966c5eSopenharmony_ci                    }
3100b966c5eSopenharmony_ci                    cdc_union {
3110b966c5eSopenharmony_ci                        bLength = 0x05;
3120b966c5eSopenharmony_ci                        bDescriptorType = 0x24;
3130b966c5eSopenharmony_ci                        desc_data = [0x05, 0x24, 0x06, 0x02, 0x03];
3140b966c5eSopenharmony_ci                    }
3150b966c5eSopenharmony_ci                    FsNotify_endpoint {
3160b966c5eSopenharmony_ci                        bLength = 0x07;
3170b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
3180b966c5eSopenharmony_ci                        bEndpointAddress = 0x81;
3190b966c5eSopenharmony_ci                        bmAttributes = 0x03;
3200b966c5eSopenharmony_ci                        wMaxPacketSize = 10;
3210b966c5eSopenharmony_ci                        bInterval = 32;
3220b966c5eSopenharmony_ci                    }
3230b966c5eSopenharmony_ci                    DataInterface {
3240b966c5eSopenharmony_ci                        bLength = 0x09;
3250b966c5eSopenharmony_ci                        bDescriptorType = 0x04;
3260b966c5eSopenharmony_ci                        bInterfaceNumber = 0x03;
3270b966c5eSopenharmony_ci                        bAlternateSetting = 0x00;
3280b966c5eSopenharmony_ci                        bNumEndpoints = 0x02;
3290b966c5eSopenharmony_ci                        bInterfaceClass = 0x0A;
3300b966c5eSopenharmony_ci                        bInterfaceSubClass = 0x00;
3310b966c5eSopenharmony_ci                        bInterfaceProtocol = 0x02;
3320b966c5eSopenharmony_ci                        iInterface = 0x02;
3330b966c5eSopenharmony_ci                    }
3340b966c5eSopenharmony_ci                    FsIn_endpoint {
3350b966c5eSopenharmony_ci                        bLength = 0x07;
3360b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
3370b966c5eSopenharmony_ci                        bEndpointAddress = 0x82;
3380b966c5eSopenharmony_ci                        bmAttributes = 0x02;
3390b966c5eSopenharmony_ci                        wMaxPacketSize = 0;
3400b966c5eSopenharmony_ci                        bInterval = 0;
3410b966c5eSopenharmony_ci                    }
3420b966c5eSopenharmony_ci                    FsOut_endpoint {
3430b966c5eSopenharmony_ci                        bLength = 0x07;
3440b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
3450b966c5eSopenharmony_ci                        bEndpointAddress = 0x3;
3460b966c5eSopenharmony_ci                        bmAttributes = 0x02;
3470b966c5eSopenharmony_ci                        wMaxPacketSize = 0;
3480b966c5eSopenharmony_ci                        bInterval = 0;
3490b966c5eSopenharmony_ci                    }
3500b966c5eSopenharmony_ci                    hsDescList = ["assoc_interface", "ControlInterface", "cdc_header",
3510b966c5eSopenharmony_ci                        "cdc_call_mgmt", "cdc_acm", "cdc_union", "HsNotify_endpoint",
3520b966c5eSopenharmony_ci                        "DataInterface", "HsIn_endpoint", "HsOut_endpoint"];
3530b966c5eSopenharmony_ci                    HsNotify_endpoint {
3540b966c5eSopenharmony_ci                        bLength = 0x07;
3550b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
3560b966c5eSopenharmony_ci                        bEndpointAddress = 0x81;
3570b966c5eSopenharmony_ci                        bmAttributes = 0x03;
3580b966c5eSopenharmony_ci                        wMaxPacketSize = 10;
3590b966c5eSopenharmony_ci                        bInterval = 9;
3600b966c5eSopenharmony_ci                    }
3610b966c5eSopenharmony_ci                    HsIn_endpoint {
3620b966c5eSopenharmony_ci                        bLength = 0x07;
3630b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
3640b966c5eSopenharmony_ci                        bEndpointAddress = 0x82;
3650b966c5eSopenharmony_ci                        bmAttributes = 0x02;
3660b966c5eSopenharmony_ci                        wMaxPacketSize = 512;
3670b966c5eSopenharmony_ci                        bInterval = 0;
3680b966c5eSopenharmony_ci                    }
3690b966c5eSopenharmony_ci                    HsOut_endpoint {
3700b966c5eSopenharmony_ci                        bLength = 0x07;
3710b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
3720b966c5eSopenharmony_ci                        bEndpointAddress = 0x3;
3730b966c5eSopenharmony_ci                        bmAttributes = 0x02;
3740b966c5eSopenharmony_ci                        wMaxPacketSize = 512;
3750b966c5eSopenharmony_ci                        bInterval = 0;
3760b966c5eSopenharmony_ci                    }
3770b966c5eSopenharmony_ci                    ssDescList = ["assoc_interface", "ControlInterface", "cdc_header",
3780b966c5eSopenharmony_ci                        "cdc_call_mgmt", "cdc_acm", "cdc_union", "HsNotify_endpoint",
3790b966c5eSopenharmony_ci                        "ss_ep_comp", "DataInterface", "SsIn_endpoint",
3800b966c5eSopenharmony_ci                        "ss_ep_comp","SsOut_endpoint","ss_ep_comp"];
3810b966c5eSopenharmony_ci                    ss_ep_comp {
3820b966c5eSopenharmony_ci                        bLength = 0x06;
3830b966c5eSopenharmony_ci                        bDescriptorType = 0x30;
3840b966c5eSopenharmony_ci                        bMaxBurst = 0x00;
3850b966c5eSopenharmony_ci                        bmAttributes = 0x00;
3860b966c5eSopenharmony_ci                        wBytesPerInterval = 0x00;
3870b966c5eSopenharmony_ci                    }
3880b966c5eSopenharmony_ci                    SsIn_endpoint {
3890b966c5eSopenharmony_ci                        bLength = 0x07;
3900b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
3910b966c5eSopenharmony_ci                        bEndpointAddress = 0x82;
3920b966c5eSopenharmony_ci                        bmAttributes = 0x02;
3930b966c5eSopenharmony_ci                        wMaxPacketSize = 1024;
3940b966c5eSopenharmony_ci                        bInterval = 0;
3950b966c5eSopenharmony_ci                    }
3960b966c5eSopenharmony_ci                    SsOut_endpoint {
3970b966c5eSopenharmony_ci                        bLength = 0x07;
3980b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
3990b966c5eSopenharmony_ci                        bEndpointAddress = 0x3;
4000b966c5eSopenharmony_ci                        bmAttributes = 0x02;
4010b966c5eSopenharmony_ci                        wMaxPacketSize = 1024;
4020b966c5eSopenharmony_ci                        bInterval = 0;
4030b966c5eSopenharmony_ci                    }
4040b966c5eSopenharmony_ci                }
4050b966c5eSopenharmony_ci                func_mtp {
4060b966c5eSopenharmony_ci                    funcName = "f_generic.mtp";
4070b966c5eSopenharmony_ci                    stringTabList = ["fnString_1"];
4080b966c5eSopenharmony_ci                    fnString_1 {
4090b966c5eSopenharmony_ci                        language  = 0x0409;
4100b966c5eSopenharmony_ci                        stringList = ["str_1", "str_2", "str_3"];
4110b966c5eSopenharmony_ci                        str_1 {
4120b966c5eSopenharmony_ci                            id = 0;
4130b966c5eSopenharmony_ci                            str =  "Media Transfer Protocol(MTP)";
4140b966c5eSopenharmony_ci                        }
4150b966c5eSopenharmony_ci                        str_2 {
4160b966c5eSopenharmony_ci                            id = 1;
4170b966c5eSopenharmony_ci                            str = "USB MTP Device";
4180b966c5eSopenharmony_ci                        }
4190b966c5eSopenharmony_ci                        str_3 {
4200b966c5eSopenharmony_ci                            id = 2;
4210b966c5eSopenharmony_ci                            str = "MTP";
4220b966c5eSopenharmony_ci                        }
4230b966c5eSopenharmony_ci                    }
4240b966c5eSopenharmony_ci                    fsDescList = ["DataInterface", 
4250b966c5eSopenharmony_ci                        "FsNotify_endpoint",
4260b966c5eSopenharmony_ci                        "FsIn_endpoint",
4270b966c5eSopenharmony_ci                        "FsOut_endpoint"];
4280b966c5eSopenharmony_ci                    DataInterface {
4290b966c5eSopenharmony_ci                        bLength = 0x09;
4300b966c5eSopenharmony_ci                        bDescriptorType = 0x04;
4310b966c5eSopenharmony_ci                        bInterfaceNumber = 0x00;
4320b966c5eSopenharmony_ci                        bAlternateSetting = 0x00;
4330b966c5eSopenharmony_ci                        bNumEndpoints = 0x03;
4340b966c5eSopenharmony_ci                        bInterfaceClass = 0xFF;
4350b966c5eSopenharmony_ci                        bInterfaceSubClass = 0xFF;
4360b966c5eSopenharmony_ci                        bInterfaceProtocol = 0x00;
4370b966c5eSopenharmony_ci                        iInterface = 0x03;
4380b966c5eSopenharmony_ci                    }
4390b966c5eSopenharmony_ci                    FsNotify_endpoint {
4400b966c5eSopenharmony_ci                        bLength = 0x07;
4410b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
4420b966c5eSopenharmony_ci                        bEndpointAddress = 0x81;
4430b966c5eSopenharmony_ci                        bmAttributes = 0x03;
4440b966c5eSopenharmony_ci                        wMaxPacketSize = 0x1C;
4450b966c5eSopenharmony_ci                        bInterval = 6;
4460b966c5eSopenharmony_ci                    }
4470b966c5eSopenharmony_ci                    FsIn_endpoint {
4480b966c5eSopenharmony_ci                        bLength = 0x07;
4490b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
4500b966c5eSopenharmony_ci                        bEndpointAddress = 0x82;
4510b966c5eSopenharmony_ci                        bmAttributes = 0x02;
4520b966c5eSopenharmony_ci                        wMaxPacketSize = 0;
4530b966c5eSopenharmony_ci                        bInterval = 0;
4540b966c5eSopenharmony_ci                    }
4550b966c5eSopenharmony_ci                    FsOut_endpoint {
4560b966c5eSopenharmony_ci                        bLength = 0x07;
4570b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
4580b966c5eSopenharmony_ci                        bEndpointAddress = 0x03;
4590b966c5eSopenharmony_ci                        bmAttributes = 0x02;
4600b966c5eSopenharmony_ci                        wMaxPacketSize = 0;
4610b966c5eSopenharmony_ci                        bInterval = 0;
4620b966c5eSopenharmony_ci                    }
4630b966c5eSopenharmony_ci                    hsDescList = ["DataInterface", 
4640b966c5eSopenharmony_ci                        "HsNotify_endpoint",
4650b966c5eSopenharmony_ci                        "HsIn_endpoint",
4660b966c5eSopenharmony_ci                        "HsOut_endpoint"];
4670b966c5eSopenharmony_ci                    HsNotify_endpoint {
4680b966c5eSopenharmony_ci                        bLength = 0x07;
4690b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
4700b966c5eSopenharmony_ci                        bEndpointAddress = 0x81;
4710b966c5eSopenharmony_ci                        bmAttributes = 0x03;
4720b966c5eSopenharmony_ci                        wMaxPacketSize = 0x1C;
4730b966c5eSopenharmony_ci                        bInterval = 6;
4740b966c5eSopenharmony_ci                    }
4750b966c5eSopenharmony_ci                    HsIn_endpoint {
4760b966c5eSopenharmony_ci                        bLength = 0x07;
4770b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
4780b966c5eSopenharmony_ci                        bEndpointAddress = 0x82;
4790b966c5eSopenharmony_ci                        bmAttributes = 0x02;
4800b966c5eSopenharmony_ci                        wMaxPacketSize = 512;
4810b966c5eSopenharmony_ci                        bInterval = 0;
4820b966c5eSopenharmony_ci                    }
4830b966c5eSopenharmony_ci                    HsOut_endpoint {
4840b966c5eSopenharmony_ci                        bLength = 0x07;
4850b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
4860b966c5eSopenharmony_ci                        bEndpointAddress = 0x03;
4870b966c5eSopenharmony_ci                        bmAttributes = 0x02;
4880b966c5eSopenharmony_ci                        wMaxPacketSize = 512;
4890b966c5eSopenharmony_ci                        bInterval = 0;
4900b966c5eSopenharmony_ci                    }
4910b966c5eSopenharmony_ci                    ssDescList = ["DataInterface",
4920b966c5eSopenharmony_ci                        "SsNotify_endpoint", "ss_ep_comp_notify",
4930b966c5eSopenharmony_ci                        "SsIn_endpoint", "ss_ep_comp",
4940b966c5eSopenharmony_ci                        "SsOut_endpoint", "ss_ep_comp"];
4950b966c5eSopenharmony_ci                    SsNotify_endpoint {
4960b966c5eSopenharmony_ci                        bLength = 0x07;
4970b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
4980b966c5eSopenharmony_ci                        bEndpointAddress = 0x81;
4990b966c5eSopenharmony_ci                        bmAttributes = 0x03;
5000b966c5eSopenharmony_ci                        wMaxPacketSize = 0x1C;
5010b966c5eSopenharmony_ci                        bInterval = 0;
5020b966c5eSopenharmony_ci                    }
5030b966c5eSopenharmony_ci                    ss_ep_comp_notify {
5040b966c5eSopenharmony_ci                        bLength = 0x06;
5050b966c5eSopenharmony_ci                        bDescriptorType = 0x30;
5060b966c5eSopenharmony_ci                        bMaxBurst = 0x00;
5070b966c5eSopenharmony_ci                        bmAttributes = 0x00;
5080b966c5eSopenharmony_ci                        wBytesPerInterval = 0;
5090b966c5eSopenharmony_ci                    }
5100b966c5eSopenharmony_ci                    ss_ep_comp {
5110b966c5eSopenharmony_ci                        bLength = 0x06;
5120b966c5eSopenharmony_ci                        bDescriptorType = 0x30;
5130b966c5eSopenharmony_ci                        bMaxBurst = 0x00;
5140b966c5eSopenharmony_ci                        bmAttributes = 0x00;
5150b966c5eSopenharmony_ci                        wBytesPerInterval = 0x00;
5160b966c5eSopenharmony_ci                    }
5170b966c5eSopenharmony_ci                    SsIn_endpoint {
5180b966c5eSopenharmony_ci                        bLength = 0x07;
5190b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
5200b966c5eSopenharmony_ci                        bEndpointAddress = 0x82;
5210b966c5eSopenharmony_ci                        bmAttributes = 0x02;
5220b966c5eSopenharmony_ci                        wMaxPacketSize = 1024;
5230b966c5eSopenharmony_ci                        bInterval = 0;
5240b966c5eSopenharmony_ci                    }
5250b966c5eSopenharmony_ci                    SsOut_endpoint {
5260b966c5eSopenharmony_ci                        bLength = 0x07;
5270b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
5280b966c5eSopenharmony_ci                        bEndpointAddress = 0x3;
5290b966c5eSopenharmony_ci                        bmAttributes = 0x02;
5300b966c5eSopenharmony_ci                        wMaxPacketSize = 1024;
5310b966c5eSopenharmony_ci                        bInterval = 0;
5320b966c5eSopenharmony_ci                    }
5330b966c5eSopenharmony_ci                }
5340b966c5eSopenharmony_ci                func_ptp {
5350b966c5eSopenharmony_ci                    funcName = "f_generic.ptp";
5360b966c5eSopenharmony_ci                    stringTabList = ["fnString_1"];
5370b966c5eSopenharmony_ci                    fnString_1 {
5380b966c5eSopenharmony_ci                        language  = 0x0409;
5390b966c5eSopenharmony_ci                        stringList = ["str_1", "str_2", "str_3", "str_4"];
5400b966c5eSopenharmony_ci                        str_1 {
5410b966c5eSopenharmony_ci                            id = 0;
5420b966c5eSopenharmony_ci                            str =  "Picture Transfer Protocol(PTP)";
5430b966c5eSopenharmony_ci                        }
5440b966c5eSopenharmony_ci                        str_2 {
5450b966c5eSopenharmony_ci                            id = 1;
5460b966c5eSopenharmony_ci                            str = "USB PTP Device";
5470b966c5eSopenharmony_ci                        }
5480b966c5eSopenharmony_ci                        str_3 {
5490b966c5eSopenharmony_ci                            id = 2;
5500b966c5eSopenharmony_ci                            str = "PTP";
5510b966c5eSopenharmony_ci                        }
5520b966c5eSopenharmony_ci                        str_4 {
5530b966c5eSopenharmony_ci                            id = 2;
5540b966c5eSopenharmony_ci                            str = "";
5550b966c5eSopenharmony_ci                        }
5560b966c5eSopenharmony_ci                    }
5570b966c5eSopenharmony_ci                    fsDescList = ["DataInterface", 
5580b966c5eSopenharmony_ci                        "FsNotify_endpoint",
5590b966c5eSopenharmony_ci                        "FsIn_endpoint",
5600b966c5eSopenharmony_ci                        "FsOut_endpoint"];
5610b966c5eSopenharmony_ci                    DataInterface {
5620b966c5eSopenharmony_ci                        bLength = 0x09;
5630b966c5eSopenharmony_ci                        bDescriptorType = 0x04;
5640b966c5eSopenharmony_ci                        bInterfaceNumber = 0x00;
5650b966c5eSopenharmony_ci                        bAlternateSetting = 0x00;
5660b966c5eSopenharmony_ci                        bNumEndpoints = 0x03;
5670b966c5eSopenharmony_ci                        bInterfaceClass = 0x06;
5680b966c5eSopenharmony_ci                        bInterfaceSubClass = 0x01;
5690b966c5eSopenharmony_ci                        bInterfaceProtocol = 0x01;
5700b966c5eSopenharmony_ci                        iInterface = 0x04;
5710b966c5eSopenharmony_ci                    }
5720b966c5eSopenharmony_ci                    FsNotify_endpoint {
5730b966c5eSopenharmony_ci                        bLength = 0x07;
5740b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
5750b966c5eSopenharmony_ci                        bEndpointAddress = 0x81;
5760b966c5eSopenharmony_ci                        bmAttributes = 0x03;
5770b966c5eSopenharmony_ci                        wMaxPacketSize = 0x1C;
5780b966c5eSopenharmony_ci                        bInterval = 6;
5790b966c5eSopenharmony_ci                    }
5800b966c5eSopenharmony_ci                    FsIn_endpoint {
5810b966c5eSopenharmony_ci                        bLength = 0x07;
5820b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
5830b966c5eSopenharmony_ci                        bEndpointAddress = 0x82;
5840b966c5eSopenharmony_ci                        bmAttributes = 0x02;
5850b966c5eSopenharmony_ci                        wMaxPacketSize = 0;
5860b966c5eSopenharmony_ci                        bInterval = 0;
5870b966c5eSopenharmony_ci                    }
5880b966c5eSopenharmony_ci                    FsOut_endpoint {
5890b966c5eSopenharmony_ci                        bLength = 0x07;
5900b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
5910b966c5eSopenharmony_ci                        bEndpointAddress = 0x03;
5920b966c5eSopenharmony_ci                        bmAttributes = 0x02;
5930b966c5eSopenharmony_ci                        wMaxPacketSize = 0;
5940b966c5eSopenharmony_ci                        bInterval = 0;
5950b966c5eSopenharmony_ci                    }
5960b966c5eSopenharmony_ci                    hsDescList = ["DataInterface", 
5970b966c5eSopenharmony_ci                        "HsNotify_endpoint",
5980b966c5eSopenharmony_ci                        "HsIn_endpoint",
5990b966c5eSopenharmony_ci                        "HsOut_endpoint"];
6000b966c5eSopenharmony_ci                    HsNotify_endpoint {
6010b966c5eSopenharmony_ci                        bLength = 0x07;
6020b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
6030b966c5eSopenharmony_ci                        bEndpointAddress = 0x81;
6040b966c5eSopenharmony_ci                        bmAttributes = 0x03;
6050b966c5eSopenharmony_ci                        wMaxPacketSize = 0x1C;
6060b966c5eSopenharmony_ci                        bInterval = 6;
6070b966c5eSopenharmony_ci                    }
6080b966c5eSopenharmony_ci                    HsIn_endpoint {
6090b966c5eSopenharmony_ci                        bLength = 0x07;
6100b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
6110b966c5eSopenharmony_ci                        bEndpointAddress = 0x82;
6120b966c5eSopenharmony_ci                        bmAttributes = 0x02;
6130b966c5eSopenharmony_ci                        wMaxPacketSize = 512;
6140b966c5eSopenharmony_ci                        bInterval = 0;
6150b966c5eSopenharmony_ci                    }
6160b966c5eSopenharmony_ci                    HsOut_endpoint {
6170b966c5eSopenharmony_ci                        bLength = 0x07;
6180b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
6190b966c5eSopenharmony_ci                        bEndpointAddress = 0x03;
6200b966c5eSopenharmony_ci                        bmAttributes = 0x02;
6210b966c5eSopenharmony_ci                        wMaxPacketSize = 512;
6220b966c5eSopenharmony_ci                        bInterval = 0;
6230b966c5eSopenharmony_ci                    }
6240b966c5eSopenharmony_ci                    ssDescList = ["DataInterface",
6250b966c5eSopenharmony_ci                        "SsNotify_endpoint", "ss_ep_comp_notify",
6260b966c5eSopenharmony_ci                        "SsIn_endpoint", "ss_ep_comp",
6270b966c5eSopenharmony_ci                        "SsOut_endpoint", "ss_ep_comp"];
6280b966c5eSopenharmony_ci                    SsNotify_endpoint {
6290b966c5eSopenharmony_ci                        bLength = 0x07;
6300b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
6310b966c5eSopenharmony_ci                        bEndpointAddress = 0x81;
6320b966c5eSopenharmony_ci                        bmAttributes = 0x03;
6330b966c5eSopenharmony_ci                        wMaxPacketSize = 0x1C;
6340b966c5eSopenharmony_ci                        bInterval = 0;
6350b966c5eSopenharmony_ci                    }
6360b966c5eSopenharmony_ci                    ss_ep_comp_notify {
6370b966c5eSopenharmony_ci                        bLength = 0x06;
6380b966c5eSopenharmony_ci                        bDescriptorType = 0x30;
6390b966c5eSopenharmony_ci                        bMaxBurst = 0x00;
6400b966c5eSopenharmony_ci                        bmAttributes = 0x00;
6410b966c5eSopenharmony_ci                        wBytesPerInterval = 0;
6420b966c5eSopenharmony_ci                    }
6430b966c5eSopenharmony_ci                    ss_ep_comp {
6440b966c5eSopenharmony_ci                        bLength = 0x06;
6450b966c5eSopenharmony_ci                        bDescriptorType = 0x30;
6460b966c5eSopenharmony_ci                        bMaxBurst = 0x00;
6470b966c5eSopenharmony_ci                        bmAttributes = 0x00;
6480b966c5eSopenharmony_ci                        wBytesPerInterval = 0x00;
6490b966c5eSopenharmony_ci                    }
6500b966c5eSopenharmony_ci                    SsIn_endpoint {
6510b966c5eSopenharmony_ci                        bLength = 0x07;
6520b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
6530b966c5eSopenharmony_ci                        bEndpointAddress = 0x82;
6540b966c5eSopenharmony_ci                        bmAttributes = 0x02;
6550b966c5eSopenharmony_ci                        wMaxPacketSize = 1024;
6560b966c5eSopenharmony_ci                        bInterval = 0;
6570b966c5eSopenharmony_ci                    }
6580b966c5eSopenharmony_ci                    SsOut_endpoint {
6590b966c5eSopenharmony_ci                        bLength = 0x07;
6600b966c5eSopenharmony_ci                        bDescriptorType = 0x05;
6610b966c5eSopenharmony_ci                        bEndpointAddress = 0x3;
6620b966c5eSopenharmony_ci                        bmAttributes = 0x02;
6630b966c5eSopenharmony_ci                        wMaxPacketSize = 1024;
6640b966c5eSopenharmony_ci                        bInterval = 0;
6650b966c5eSopenharmony_ci                    }
6660b966c5eSopenharmony_ci                }
6670b966c5eSopenharmony_ci            }
6680b966c5eSopenharmony_ci        }
6690b966c5eSopenharmony_ci        custom_prop {
6700b966c5eSopenharmony_ci            propTable = ["propList_1", "propList_2"];
6710b966c5eSopenharmony_ci            propList_1 {
6720b966c5eSopenharmony_ci                configNum = 1;
6730b966c5eSopenharmony_ci                interfaceNum = 2;
6740b966c5eSopenharmony_ci                propList = ["prop_1", "prop_2"];
6750b966c5eSopenharmony_ci                prop_1 {
6760b966c5eSopenharmony_ci                    name = "testx";
6770b966c5eSopenharmony_ci                    value = "xxxxxx";
6780b966c5eSopenharmony_ci                }
6790b966c5eSopenharmony_ci                prop_2 {
6800b966c5eSopenharmony_ci                    name = "testy";
6810b966c5eSopenharmony_ci                    value = "yyyyyy";
6820b966c5eSopenharmony_ci                }
6830b966c5eSopenharmony_ci            }
6840b966c5eSopenharmony_ci            propList_2 {
6850b966c5eSopenharmony_ci                configNum = 1;
6860b966c5eSopenharmony_ci                interfaceNum = 3;
6870b966c5eSopenharmony_ci                propList = ["prop_1", "prop_2"];
6880b966c5eSopenharmony_ci                prop_1 {
6890b966c5eSopenharmony_ci                    name = "testm";
6900b966c5eSopenharmony_ci                    value = "mmmmm";
6910b966c5eSopenharmony_ci                }
6920b966c5eSopenharmony_ci                prop_2 {
6930b966c5eSopenharmony_ci                    name = "testn";
6940b966c5eSopenharmony_ci                    value = "nnnnn";
6950b966c5eSopenharmony_ci                }
6960b966c5eSopenharmony_ci            }
6970b966c5eSopenharmony_ci        }
6980b966c5eSopenharmony_ci    }
6990b966c5eSopenharmony_ci}
700