mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 189:f392fc9709a3 1 /*
AnnaBridge 189:f392fc9709a3 2 * mbed Microcontroller Library
AnnaBridge 189:f392fc9709a3 3 * Copyright (c) 2017-2018 Future Electronics
AnnaBridge 189:f392fc9709a3 4 * Copyright (c) 2019 Cypress Semiconductor Corporation
AnnaBridge 189:f392fc9709a3 5 * SPDX-License-Identifier: Apache-2.0
AnnaBridge 189:f392fc9709a3 6 *
AnnaBridge 189:f392fc9709a3 7 * Licensed under the Apache License, Version 2.0 (the "License");
AnnaBridge 189:f392fc9709a3 8 * you may not use this file except in compliance with the License.
AnnaBridge 189:f392fc9709a3 9 * You may obtain a copy of the License at
AnnaBridge 189:f392fc9709a3 10 *
AnnaBridge 189:f392fc9709a3 11 * http://www.apache.org/licenses/LICENSE-2.0
AnnaBridge 189:f392fc9709a3 12 *
AnnaBridge 189:f392fc9709a3 13 * Unless required by applicable law or agreed to in writing, software
AnnaBridge 189:f392fc9709a3 14 * distributed under the License is distributed on an "AS IS" BASIS,
AnnaBridge 189:f392fc9709a3 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
AnnaBridge 189:f392fc9709a3 16 * See the License for the specific language governing permissions and
AnnaBridge 189:f392fc9709a3 17 * limitations under the License.
AnnaBridge 189:f392fc9709a3 18 */
AnnaBridge 189:f392fc9709a3 19
AnnaBridge 189:f392fc9709a3 20 #ifndef MBED_PINNAMES_H
AnnaBridge 189:f392fc9709a3 21 #define MBED_PINNAMES_H
AnnaBridge 189:f392fc9709a3 22
AnnaBridge 189:f392fc9709a3 23 #include "cmsis.h"
AnnaBridge 189:f392fc9709a3 24 #include "PinNamesTypes.h"
AnnaBridge 189:f392fc9709a3 25 #include "PortNames.h"
AnnaBridge 189:f392fc9709a3 26
AnnaBridge 189:f392fc9709a3 27 // PinName[15-0] = Port[15-8] + Pin[7-0]
AnnaBridge 189:f392fc9709a3 28 typedef enum {
AnnaBridge 189:f392fc9709a3 29 P0_0 = (Port0 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 30 P0_1 = (Port0 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 31 P0_2 = (Port0 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 32 P0_3 = (Port0 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 33 P0_4 = (Port0 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 34 P0_5 = (Port0 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 35 P0_6 = (Port0 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 36 P0_7 = (Port0 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 37
AnnaBridge 189:f392fc9709a3 38 P1_0 = (Port1 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 39 P1_1 = (Port1 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 40 P1_2 = (Port1 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 41 P1_3 = (Port1 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 42 P1_4 = (Port1 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 43 P1_5 = (Port1 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 44 P1_6 = (Port1 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 45 P1_7 = (Port1 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 46
AnnaBridge 189:f392fc9709a3 47 P2_0 = (Port2 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 48 P2_1 = (Port2 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 49 P2_2 = (Port2 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 50 P2_3 = (Port2 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 51 P2_4 = (Port2 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 52 P2_5 = (Port2 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 53 P2_6 = (Port2 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 54 P2_7 = (Port2 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 55
AnnaBridge 189:f392fc9709a3 56 P3_0 = (Port3 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 57 P3_1 = (Port3 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 58 P3_2 = (Port3 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 59 P3_3 = (Port3 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 60 P3_4 = (Port3 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 61 P3_5 = (Port3 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 62 P3_6 = (Port3 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 63 P3_7 = (Port3 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 64
AnnaBridge 189:f392fc9709a3 65 P4_0 = (Port4 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 66 P4_1 = (Port4 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 67 P4_2 = (Port4 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 68 P4_3 = (Port4 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 69 P4_4 = (Port4 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 70 P4_5 = (Port4 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 71 P4_6 = (Port4 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 72 P4_7 = (Port4 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 73
AnnaBridge 189:f392fc9709a3 74 P5_0 = (Port5 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 75 P5_1 = (Port5 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 76 P5_2 = (Port5 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 77 P5_3 = (Port5 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 78 P5_4 = (Port5 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 79 P5_5 = (Port5 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 80 P5_6 = (Port5 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 81 P5_7 = (Port5 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 82
AnnaBridge 189:f392fc9709a3 83 P6_0 = (Port6 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 84 P6_1 = (Port6 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 85 P6_2 = (Port6 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 86 P6_3 = (Port6 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 87 P6_4 = (Port6 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 88 P6_5 = (Port6 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 89 P6_6 = (Port6 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 90 P6_7 = (Port6 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 91
AnnaBridge 189:f392fc9709a3 92 P7_0 = (Port7 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 93 P7_1 = (Port7 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 94 P7_2 = (Port7 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 95 P7_3 = (Port7 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 96 P7_4 = (Port7 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 97 P7_5 = (Port7 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 98 P7_6 = (Port7 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 99 P7_7 = (Port7 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 100
AnnaBridge 189:f392fc9709a3 101 P8_0 = (Port8 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 102 P8_1 = (Port8 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 103 P8_2 = (Port8 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 104 P8_3 = (Port8 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 105 P8_4 = (Port8 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 106 P8_5 = (Port8 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 107 P8_6 = (Port8 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 108 P8_7 = (Port8 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 109
AnnaBridge 189:f392fc9709a3 110 P9_0 = (Port9 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 111 P9_1 = (Port9 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 112 P9_2 = (Port9 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 113 P9_3 = (Port9 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 114 P9_4 = (Port9 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 115 P9_5 = (Port9 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 116 P9_6 = (Port9 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 117 P9_7 = (Port9 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 118
AnnaBridge 189:f392fc9709a3 119 P10_0 = (Port10 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 120 P10_1 = (Port10 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 121 P10_2 = (Port10 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 122 P10_3 = (Port10 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 123 P10_4 = (Port10 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 124 P10_5 = (Port10 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 125 P10_6 = (Port10 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 126 P10_7 = (Port10 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 127
AnnaBridge 189:f392fc9709a3 128 P11_0 = (Port11 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 129 P11_1 = (Port11 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 130 P11_2 = (Port11 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 131 P11_3 = (Port11 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 132 P11_4 = (Port11 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 133 P11_5 = (Port11 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 134 P11_6 = (Port11 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 135 P11_7 = (Port11 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 136
AnnaBridge 189:f392fc9709a3 137 P12_0 = (Port12 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 138 P12_1 = (Port12 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 139 P12_2 = (Port12 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 140 P12_3 = (Port12 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 141 P12_4 = (Port12 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 142 P12_5 = (Port12 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 143 P12_6 = (Port12 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 144 P12_7 = (Port12 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 145
AnnaBridge 189:f392fc9709a3 146 P13_0 = (Port13 << 8) + 0x00,
AnnaBridge 189:f392fc9709a3 147 P13_1 = (Port13 << 8) + 0x01,
AnnaBridge 189:f392fc9709a3 148 P13_2 = (Port13 << 8) + 0x02,
AnnaBridge 189:f392fc9709a3 149 P13_3 = (Port13 << 8) + 0x03,
AnnaBridge 189:f392fc9709a3 150 P13_4 = (Port13 << 8) + 0x04,
AnnaBridge 189:f392fc9709a3 151 P13_5 = (Port13 << 8) + 0x05,
AnnaBridge 189:f392fc9709a3 152 P13_6 = (Port13 << 8) + 0x06,
AnnaBridge 189:f392fc9709a3 153 P13_7 = (Port13 << 8) + 0x07,
AnnaBridge 189:f392fc9709a3 154
AnnaBridge 189:f392fc9709a3 155 // Not connected
AnnaBridge 189:f392fc9709a3 156 NC = (int)0xFFFFFFFF,
AnnaBridge 189:f392fc9709a3 157
AnnaBridge 189:f392fc9709a3 158 // Arduino connector namings
AnnaBridge 189:f392fc9709a3 159 A0 = P10_0,
AnnaBridge 189:f392fc9709a3 160 A1 = P10_1,
AnnaBridge 189:f392fc9709a3 161 A2 = P10_2,
AnnaBridge 189:f392fc9709a3 162 A3 = P10_3,
AnnaBridge 189:f392fc9709a3 163 A4 = P10_4,
AnnaBridge 189:f392fc9709a3 164 A5 = P10_5,
AnnaBridge 189:f392fc9709a3 165
AnnaBridge 189:f392fc9709a3 166 D0 = P5_0,
AnnaBridge 189:f392fc9709a3 167 D1 = P5_1,
AnnaBridge 189:f392fc9709a3 168 D2 = P5_2,
AnnaBridge 189:f392fc9709a3 169 D3 = P5_3,
AnnaBridge 189:f392fc9709a3 170 D4 = P5_4,
AnnaBridge 189:f392fc9709a3 171 D5 = P5_5,
AnnaBridge 189:f392fc9709a3 172 D6 = P5_6,
AnnaBridge 189:f392fc9709a3 173 D7 = P0_2,
AnnaBridge 189:f392fc9709a3 174 D8 = P13_0,
AnnaBridge 189:f392fc9709a3 175 D9 = P13_1,
AnnaBridge 189:f392fc9709a3 176 D10 = P12_3,
AnnaBridge 189:f392fc9709a3 177 D11 = P12_0,
AnnaBridge 189:f392fc9709a3 178 D12 = P12_1,
AnnaBridge 189:f392fc9709a3 179 D13 = P12_2,
AnnaBridge 189:f392fc9709a3 180 D14 = P6_1,
AnnaBridge 189:f392fc9709a3 181 D15 = P6_0,
AnnaBridge 189:f392fc9709a3 182
AnnaBridge 189:f392fc9709a3 183 // Generic signal names
AnnaBridge 189:f392fc9709a3 184
AnnaBridge 189:f392fc9709a3 185 I2C_SCL = P6_0,
AnnaBridge 189:f392fc9709a3 186 I2C_SDA = P6_1,
AnnaBridge 189:f392fc9709a3 187
AnnaBridge 189:f392fc9709a3 188 SPI_MOSI = P12_0,
AnnaBridge 189:f392fc9709a3 189 SPI_MISO = P12_1,
AnnaBridge 189:f392fc9709a3 190 SPI_CLK = P12_2,
AnnaBridge 189:f392fc9709a3 191 SPI_CS = P12_4,
AnnaBridge 189:f392fc9709a3 192
AnnaBridge 189:f392fc9709a3 193 UART_RX = P5_0,
AnnaBridge 189:f392fc9709a3 194 UART_TX = P5_1,
AnnaBridge 189:f392fc9709a3 195 UART_RTS = P5_2,
AnnaBridge 189:f392fc9709a3 196 UART_CTS = P5_3,
AnnaBridge 189:f392fc9709a3 197
AnnaBridge 189:f392fc9709a3 198 BT_UART_RX = P3_0,
AnnaBridge 189:f392fc9709a3 199 BT_UART_TX = P3_1,
AnnaBridge 189:f392fc9709a3 200 BT_UART_CTS = P3_3,
AnnaBridge 189:f392fc9709a3 201 BT_UART_RTS = P3_2,
AnnaBridge 189:f392fc9709a3 202
AnnaBridge 189:f392fc9709a3 203 BT_PIN_POWER = P3_4,
AnnaBridge 189:f392fc9709a3 204 BT_PIN_HOST_WAKE = P3_5,
AnnaBridge 189:f392fc9709a3 205 BT_PIN_DEVICE_WAKE = P4_0,
AnnaBridge 189:f392fc9709a3 206 // Reset pin unavailable
AnnaBridge 189:f392fc9709a3 207
AnnaBridge 189:f392fc9709a3 208
AnnaBridge 189:f392fc9709a3 209 SWITCH2 = P0_4,
AnnaBridge 189:f392fc9709a3 210 LED1 = P0_3,
AnnaBridge 189:f392fc9709a3 211 LED2 = P1_1,
AnnaBridge 189:f392fc9709a3 212 LED3 = P11_1,
AnnaBridge 189:f392fc9709a3 213 LED4 = P1_5,
AnnaBridge 189:f392fc9709a3 214 LED5 = P13_7,
AnnaBridge 189:f392fc9709a3 215
AnnaBridge 189:f392fc9709a3 216 LED_RED = LED1,
AnnaBridge 189:f392fc9709a3 217 LED_BLUE = LED3,
AnnaBridge 189:f392fc9709a3 218 LED_GREEN = LED2,
AnnaBridge 189:f392fc9709a3 219
AnnaBridge 189:f392fc9709a3 220 USER_BUTTON = SWITCH2,
AnnaBridge 189:f392fc9709a3 221 BUTTON1 = USER_BUTTON,
AnnaBridge 189:f392fc9709a3 222
AnnaBridge 189:f392fc9709a3 223 QSPI_CLK = P11_7,
AnnaBridge 189:f392fc9709a3 224 QSPI_IO_0 = P11_6,
AnnaBridge 189:f392fc9709a3 225 QSPI_IO_1 = P11_5,
AnnaBridge 189:f392fc9709a3 226 QSPI_IO_2 = P11_4,
AnnaBridge 189:f392fc9709a3 227 QSPI_IO_3 = P11_3,
AnnaBridge 189:f392fc9709a3 228 QSPI_SEL = P11_2,
AnnaBridge 189:f392fc9709a3 229
AnnaBridge 189:f392fc9709a3 230 // Standardized interfaces names
AnnaBridge 189:f392fc9709a3 231 STDIO_UART_TX = UART_TX,
AnnaBridge 189:f392fc9709a3 232 STDIO_UART_RX = UART_RX,
AnnaBridge 189:f392fc9709a3 233 STDIO_UART_CTS = UART_CTS,
AnnaBridge 189:f392fc9709a3 234 STDIO_UART_RTS = UART_RTS,
AnnaBridge 189:f392fc9709a3 235
AnnaBridge 189:f392fc9709a3 236 CY_STDIO_UART_RX = STDIO_UART_RX,
AnnaBridge 189:f392fc9709a3 237 CY_STDIO_UART_TX = STDIO_UART_TX,
AnnaBridge 189:f392fc9709a3 238 CY_STDIO_UART_CTS = STDIO_UART_CTS,
AnnaBridge 189:f392fc9709a3 239 CY_STDIO_UART_RTS = STDIO_UART_RTS,
AnnaBridge 189:f392fc9709a3 240
AnnaBridge 189:f392fc9709a3 241 CY_BT_UART_RX = BT_UART_RX,
AnnaBridge 189:f392fc9709a3 242 CY_BT_UART_TX = BT_UART_TX,
AnnaBridge 189:f392fc9709a3 243 CY_BT_UART_CTS = BT_UART_CTS,
AnnaBridge 189:f392fc9709a3 244 CY_BT_UART_RTS = BT_UART_RTS,
AnnaBridge 189:f392fc9709a3 245
AnnaBridge 189:f392fc9709a3 246 CY_BT_PIN_POWER = BT_PIN_POWER,
AnnaBridge 189:f392fc9709a3 247 CY_BT_PIN_HOST_WAKE = BT_PIN_HOST_WAKE,
AnnaBridge 189:f392fc9709a3 248 CY_BT_PIN_DEVICE_WAKE = BT_PIN_DEVICE_WAKE,
AnnaBridge 189:f392fc9709a3 249
AnnaBridge 189:f392fc9709a3 250
AnnaBridge 189:f392fc9709a3 251 USBTX = UART_TX,
AnnaBridge 189:f392fc9709a3 252 USBRX = UART_RX,
AnnaBridge 189:f392fc9709a3 253
AnnaBridge 189:f392fc9709a3 254 // Not connected
AnnaBridge 189:f392fc9709a3 255 AOUT = (int)0xFFFFFFFF
AnnaBridge 189:f392fc9709a3 256 } PinName;
AnnaBridge 189:f392fc9709a3 257
AnnaBridge 189:f392fc9709a3 258 // PinName[15-0] = Port[15-8] + Pin[4-0]
AnnaBridge 189:f392fc9709a3 259 static inline unsigned CY_PIN(PinName pin)
AnnaBridge 189:f392fc9709a3 260 {
AnnaBridge 189:f392fc9709a3 261 return pin & 0x07;
AnnaBridge 189:f392fc9709a3 262 }
AnnaBridge 189:f392fc9709a3 263
AnnaBridge 189:f392fc9709a3 264 static inline unsigned CY_PORT(PinName pin)
AnnaBridge 189:f392fc9709a3 265 {
AnnaBridge 189:f392fc9709a3 266 return (pin >> 8) & 0xFF;
AnnaBridge 189:f392fc9709a3 267 }
AnnaBridge 189:f392fc9709a3 268
AnnaBridge 189:f392fc9709a3 269 // Because MBED pin mapping API does not allow to map multiple instances of the PWM
AnnaBridge 189:f392fc9709a3 270 // to be mapped to the same pin, we create special pin names to force 32-bit PWM unit
AnnaBridge 189:f392fc9709a3 271 // usage instead of standard 16-bit PWM.
AnnaBridge 189:f392fc9709a3 272
AnnaBridge 189:f392fc9709a3 273 #define PWM32(pin) CY_PIN_FORCE_PWM_32(pin)
AnnaBridge 189:f392fc9709a3 274
AnnaBridge 189:f392fc9709a3 275
AnnaBridge 189:f392fc9709a3 276 #endif