PicoCamera 0.2.0
Camera library for RP2040 with an esp32-camera compatible API
GitHub
载入中...
搜索中...
未找到
ov7725_regs.h
浏览该文件的文档.
1/*
2 * This file is part of the PicoCamera project.
3 * https://github.com/umeiko/PicoCamera
4 *
5 * Author: umeko <umeko@stu.xmu.edu.cn>
6 * License: MIT
7 */
8
15#pragma once
16
17#define GAIN 0x00 /* AGC – Gain control gain setting */
18#define BLUE 0x01 /* AWB – Blue channel gain setting */
19#define RED 0x02 /* AWB – Red channel gain setting */
20#define GREEN 0x03 /* AWB – Green channel gain setting */
21#define BAVG 0x05 /* U/B Average Level */
22#define GAVG 0x06 /* Y/Gb Average Level */
23#define RAVG 0x07 /* V/R Average Level */
24#define AECH 0x08 /* Exposure Value – AEC MSBs */
25
26#define COM2 0x09 /* Common Control 2 */
27#define COM2_SOFT_SLEEP 0x10 /* Soft sleep mode */
28#define COM2_OUT_DRIVE_1x 0x00 /* Output drive capability 1x */
29#define COM2_OUT_DRIVE_2x 0x01 /* Output drive capability 2x */
30#define COM2_OUT_DRIVE_3x 0x02 /* Output drive capability 3x */
31#define COM2_OUT_DRIVE_4x 0x03 /* Output drive capability 4x */
32
33#define REG_PID 0x0A /* Product ID Number MSB */
34#define REG_VER 0x0B /* Product ID Number LSB */
35
36#define COM3 0x0C /* Common Control 3 */
37#define COM3_VFLIP 0x80 /* Vertical flip image ON/OFF selection */
38#define COM3_MIRROR 0x40 /* Horizontal mirror image ON/OFF selection */
39#define COM3_SWAP_BR 0x20 /* Swap B/R output sequence in RGB output mode */
40#define COM3_SWAP_YUV 0x10 /* Swap Y/UV output sequence in YUV output mode */
41#define COM3_SWAP_MSB 0x08 /* Swap output MSB/LSB */
42#define COM3_TRI_CLOCK 0x04 /* Tri-state option for output clock at power-down period */
43#define COM3_TRI_DATA 0x02 /* Tri-state option for output data at power-down period */
44#define COM3_COLOR_BAR 0x01 /* Sensor color bar test pattern output enable */
45#define COM3_SET_CBAR(r, x) ((r&0xFE)|((x&1)<<0))
46#define COM3_SET_MIRROR(r, x) ((r&0xBF)|((x&1)<<6))
47#define COM3_SET_FLIP(r, x) ((r&0x7F)|((x&1)<<7))
48
49#define COM4 0x0D /* Common Control 4 */
50#define COM4_PLL_BYPASS 0x00 /* Bypass PLL */
51#define COM4_PLL_4x 0x40 /* PLL frequency 4x */
52#define COM4_PLL_6x 0x80 /* PLL frequency 6x */
53#define COM4_PLL_8x 0xc0 /* PLL frequency 8x */
54#define COM4_AEC_FULL 0x00 /* AEC evaluate full window */
55#define COM4_AEC_1_2 0x10 /* AEC evaluate 1/2 window */
56#define COM4_AEC_1_4 0x20 /* AEC evaluate 1/4 window */
57#define COM4_AEC_2_3 0x30 /* AEC evaluate 2/3 window */
58
59#define COM5 0x0E /* Common Control 5 */
60#define COM5_AFR 0x80 /* Auto frame rate control ON/OFF selection (night mode) */
61#define COM5_AFR_SPEED 0x40 /* Auto frame rate control speed selection */
62#define COM5_AFR_0 0x00 /* No reduction of frame rate */
63#define COM5_AFR_1_2 0x10 /* Max reduction to 1/2 frame rate */
64#define COM5_AFR_1_4 0x20 /* Max reduction to 1/4 frame rate */
65#define COM5_AFR_1_8 0x30 /* Max reduction to 1/8 frame rate */
66#define COM5_AFR_4x 0x04 /* Add frame when AGC reaches 4x gain */
67#define COM5_AFR_8x 0x08 /* Add frame when AGC reaches 8x gain */
68#define COM5_AFR_16x 0x0c /* Add frame when AGC reaches 16x gain */
69#define COM5_AEC_NO_LIMIT 0x01 /* No limit to AEC increase step */
70
71#define COM6 0x0F /* Common Control 6 */
72#define COM6_AUTO_WINDOW 0x01 /* Auto window setting ON/OFF selection when format changes */
73
74#define AEC 0x10 /* AEC[7:0] (see register AECH for AEC[15:8]) */
75#define CLKRC 0x11 /* Internal Clock */
76
77#define COM7 0x12 /* Common Control 7 */
78#define COM7_RESET 0x80 /* SCCB Register Reset */
79#define COM7_RES_VGA 0x00 /* Resolution VGA */
80#define COM7_RES_QVGA 0x40 /* Resolution QVGA */
81#define COM7_BT656 0x20 /* BT.656 protocol ON/OFF */
82#define COM7_SENSOR_RAW 0x10 /* Sensor RAW */
83#define COM7_FMT_GBR422 0x00 /* RGB output format GBR422 */
84#define COM7_FMT_RGB565 0x04 /* RGB output format RGB565 */
85#define COM7_FMT_RGB555 0x08 /* RGB output format RGB555 */
86#define COM7_FMT_RGB444 0x0C /* RGB output format RGB444 */
87#define COM7_FMT_YUV 0x00 /* Output format YUV */
88#define COM7_FMT_P_BAYER 0x01 /* Output format Processed Bayer RAW */
89#define COM7_FMT_RGB 0x02 /* Output format RGB */
90#define COM7_FMT_R_BAYER 0x03 /* Output format Bayer RAW */
91#define COM7_SET_FMT(r, x) ((r&0xFC)|((x&0x3)<<0))
92#define COM7_SET_RGB(r, x) ((r&0xF0)|(x&0x0C)|COM7_FMT_RGB)
93
94#define COM8 0x13 /* Common Control 8 */
95#define COM8_FAST_AUTO 0x80 /* Enable fast AGC/AEC algorithm */
96#define COM8_STEP_VSYNC 0x00 /* AEC - Step size limited to vertical blank */
97#define COM8_STEP_UNLIMIT 0x40 /* AEC - Step size unlimited step size */
98#define COM8_BANDF_EN 0x20 /* Banding filter ON/OFF */
99#define COM8_AEC_BANDF 0x10 /* Enable AEC below banding value */
100#define COM8_AEC_FINE_EN 0x08 /* Fine AEC ON/OFF control */
101#define COM8_AGC_EN 0x04 /* AGC Enable */
102#define COM8_AWB_EN 0x02 /* AWB Enable */
103#define COM8_AEC_EN 0x01 /* AEC Enable */
104#define COM8_SET_AGC(r, x) ((r&0xFB)|((x&0x1)<<2))
105#define COM8_SET_AWB(r, x) ((r&0xFD)|((x&0x1)<<1))
106#define COM8_SET_AEC(r, x) ((r&0xFE)|((x&0x1)<<0))
107
108#define COM9 0x14 /* Common Control 9 */
109#define COM9_HISTO_AVG 0x80 /* Histogram or average based AEC/AGC selection */
110#define COM9_AGC_GAIN_2x 0x00 /* Automatic Gain Ceiling 2x */
111#define COM9_AGC_GAIN_4x 0x10 /* Automatic Gain Ceiling 4x */
112#define COM9_AGC_GAIN_8x 0x20 /* Automatic Gain Ceiling 8x */
113#define COM9_AGC_GAIN_16x 0x30 /* Automatic Gain Ceiling 16x */
114#define COM9_AGC_GAIN_32x 0x40 /* Automatic Gain Ceiling 32x */
115#define COM9_DROP_VSYNC 0x04 /* Drop VSYNC output of corrupt frame */
116#define COM9_DROP_HREF 0x02 /* Drop HREF output of corrupt frame */
117#define COM9_SET_AGC(r, x) ((r&0x8F)|((x&0x07)<<4))
118
119#define COM10 0x15 /* Common Control 10 */
120#define COM10_NEGATIVE 0x80 /* Output negative data */
121#define COM10_HSYNC_EN 0x40 /* HREF changes to HSYNC */
122#define COM10_PCLK_FREE 0x00 /* PCLK output option: free running PCLK */
123#define COM10_PCLK_MASK 0x20 /* PCLK output option: masked during horizontal blank */
124#define COM10_PCLK_REV 0x10 /* PCLK reverse */
125#define COM10_HREF_REV 0x08 /* HREF reverse */
126#define COM10_VSYNC_FALLING 0x00 /* VSYNC changes on falling edge of PCLK */
127#define COM10_VSYNC_RISING 0x04 /* VSYNC changes on rising edge of PCLK */
128#define COM10_VSYNC_NEG 0x02 /* VSYNC negative */
129#define COM10_OUT_RANGE_8 0x01 /* Output data range: Full range */
130#define COM10_OUT_RANGE_10 0x00 /* Output data range: Data from [10] to [F0] (8 MSBs) */
131
132#define REG16 0x16 /* Register 16 */
133#define REG16_BIT_SHIFT 0x80 /* Bit shift test pattern options */
134#define HSTART 0x17 /* Horizontal Frame (HREF column) Start 8 MSBs (2 LSBs are at HREF[5:4]) */
135#define HSIZE 0x18 /* Horizontal Sensor Size (2 LSBs are at HREF[1:0]) */
136#define VSTART 0x19 /* Vertical Frame (row) Start 8 MSBs (1 LSB is at HREF[6]) */
137#define VSIZE 0x1A /* Vertical Sensor Size (1 LSB is at HREF[2]) */
138#define PSHFT 0x1B /* Data Format - Pixel Delay Select */
139#define REG_MIDH 0x1C /* Manufacturer ID Byte – High */
140#define REG_MIDL 0x1D /* Manufacturer ID Byte – Low */
141#define LAEC 0x1F /* Fine AEC Value - defines exposure value less than one row period */
142
143#define COM11 0x20 /* Common Control 11 */
144#define COM11_SNGL_FRAME_EN 0x02 /* Single frame ON/OFF selection */
145#define COM11_SNGL_XFR_TRIG 0x01 /* Single frame transfer trigger */
146
147#define BDBASE 0x22 /* Banding Filter Minimum AEC Value */
148#define DBSTEP 0x23 /* Banding Filter Maximum Step */
149#define AEW 0x24 /* AGC/AEC - Stable Operating Region (Upper Limit) */
150#define AEB 0x25 /* AGC/AEC - Stable Operating Region (Lower Limit) */
151#define VPT 0x26 /* AGC/AEC Fast Mode Operating Region */
152#define REG28 0x28 /* Selection on the number of dummy rows, N */
153#define HOUTSIZE 0x29 /* Horizontal Data Output Size MSBs (2 LSBs at register EXHCH[1:0]) */
154#define EXHCH 0x2A /* Dummy Pixel Insert MSB */
155#define EXHCL 0x2B /* Dummy Pixel Insert LSB */
156#define VOUTSIZE 0x2C /* Vertical Data Output Size MSBs (LSB at register EXHCH[2]) */
157#define ADVFL 0x2D /* LSB of Insert Dummy Rows in Vertical Sync (1 bit equals 1 row) */
158#define ADVFH 0x2E /* MSB of Insert Dummy Rows in Vertical Sync */
159#define YAVE 0x2F /* Y/G Channel Average Value */
160#define LUMHTH 0x30 /* Histogram AEC/AGC Luminance High Level Threshold */
161#define LUMLTH 0x31 /* Histogram AEC/AGC Luminance Low Level Threshold */
162#define HREF 0x32 /* Image Start and Size Control */
163#define DM_LNL 0x33 /* Dummy Row Low 8 Bits */
164#define DM_LNH 0x34 /* Dummy Row High 8 Bits */
165#define ADOFF_B 0x35 /* AD Offset Compensation Value for B Channel */
166#define ADOFF_R 0x36 /* AD Offset Compensation Value for R Channel */
167#define ADOFF_GB 0x37 /* AD Offset Compensation Value for GB Channel */
168#define ADOFF_GR 0x38 /* AD Offset Compensation Value for GR Channel */
169#define OFF_B 0x39 /* AD Offset Compensation Value for B Channel */
170#define OFF_R 0x3A /* AD Offset Compensation Value for R Channel */
171#define OFF_GB 0x3B /* AD Offset Compensation Value for GB Channel */
172#define OFF_GR 0x3C /* AD Offset Compensation Value for GR Channel */
173#define COM12 0x3D /* DC offset compensation for analog process */
174
175#define COM13 0x3E /* Common Control 13 */
176#define COM13_BLC_EN 0x80 /* BLC enable */
177#define COM13_ADC_EN 0x40 /* ADC channel BLC ON/OFF control */
178#define COM13_ANALOG_BLC 0x20 /* Analog processing channel BLC ON/OFF control */
179#define COM13_ABLC_GAIN_EN 0x04 /* ABLC gain trigger enable */
180
181#define COM14 0x3F /* Common Control 14 */
182#define COM15 0x40 /* Common Control 15 */
183#define COM16 0x41 /* Common Control 16 */
184#define TGT_B 0x42 /* BLC Blue Channel Target Value */
185#define TGT_R 0x43 /* BLC Red Channel Target Value */
186#define TGT_GB 0x44 /* BLC Gb Channel Target Value */
187#define TGT_GR 0x45 /* BLC Gr Channel Target Value */
188
189#define LC_CTR 0x46 /* Lens Correction Control */
190#define LC_CTR_RGB_COMP_1 0x00 /* R, G, and B channel compensation coefficient is set by LC_COEF (0x49) */
191#define LC_CTR_RGB_COMP_3 0x04 /* R, G, and B channel compensation coefficient is set by registers
192 LC_COEFB (0x4B), LC_COEF (0x49), and LC_COEFR (0x4C), respectively */
193#define LC_CTR_EN 0x01 /* Lens correction enable */
194#define LC_XC 0x47 /* X Coordinate of Lens Correction Center Relative to Array Center */
195#define LC_YC 0x48 /* Y Coordinate of Lens Correction Center Relative to Array Center */
196#define LC_COEF 0x49 /* Lens Correction Coefficient */
197#define LC_RADI 0x4A /* Lens Correction Radius */
198#define LC_COEFB 0x4B /* Lens Correction B Channel Compensation Coefficient */
199#define LC_COEFR 0x4C /* Lens Correction R Channel Compensation Coefficient */
200
201#define FIXGAIN 0x4D /* Analog Fix Gain Amplifier */
202#define AREF0 0x4E /* Sensor Reference Control */
203#define AREF1 0x4F /* Sensor Reference Current Control */
204#define AREF2 0x50 /* Analog Reference Control */
205#define AREF3 0x51 /* ADC Reference Control */
206#define AREF4 0x52 /* ADC Reference Control */
207#define AREF5 0x53 /* ADC Reference Control */
208#define AREF6 0x54 /* Analog Reference Control */
209#define AREF7 0x55 /* ADC Reference Control */
210#define UFIX 0x60 /* U Channel Fixed Value Output */
211#define VFIX 0x61 /* V Channel Fixed Value Output */
212#define AWBB_BLK 0x62 /* AWB Option for Advanced AWB */
213
214#define AWB_CTRL0 0x63 /* AWB Control Byte 0 */
215#define AWB_CTRL0_GAIN_EN 0x80 /* AWB gain enable */
216#define AWB_CTRL0_CALC_EN 0x40 /* AWB calculate enable */
217#define AWB_CTRL0_WBC_MASK 0x0F /* WBC threshold 2 */
218
219#define DSP_CTRL1 0x64 /* DSP Control Byte 1 */
220#define DSP_CTRL1_FIFO_EN 0x80 /* FIFO enable/disable selection */
221#define DSP_CTRL1_UV_EN 0x40 /* UV adjust function ON/OFF selection */
222#define DSP_CTRL1_SDE_EN 0x20 /* SDE enable */
223#define DSP_CTRL1_MTRX_EN 0x10 /* Color matrix ON/OFF selection */
224#define DSP_CTRL1_INTRP_EN 0x08 /* Interpolation ON/OFF selection */
225#define DSP_CTRL1_GAMMA_EN 0x04 /* Gamma function ON/OFF selection */
226#define DSP_CTRL1_BLACK_EN 0x02 /* Black defect auto correction ON/OFF */
227#define DSP_CTRL1_WHITE_EN 0x01 /* White defect auto correction ON/OFF */
228
229#define DSP_CTRL2 0x65 /* DSP Control Byte 2 */
230#define DSP_CTRL2_VDCW_EN 0x08 /* Vertical DCW enable */
231#define DSP_CTRL2_HDCW_EN 0x04 /* Horizontal DCW enable */
232#define DSP_CTRL2_VZOOM_EN 0x02 /* Vertical zoom out enable */
233#define DSP_CTRL2_HZOOM_EN 0x01 /* Horizontal zoom out enable */
234
235#define DSP_CTRL3 0x66 /* DSP Control Byte 3 */
236#define DSP_CTRL3_UV_EN 0x80 /* UV output sequence option */
237#define DSP_CTRL3_CBAR_EN 0x20 /* DSP color bar ON/OFF selection */
238#define DSP_CTRL3_FIFO_EN 0x08 /* FIFO power down ON/OFF selection */
239#define DSP_CTRL3_SCAL1_PWDN 0x04 /* Scaling module power down control 1 */
240#define DSP_CTRL3_SCAL2_PWDN 0x02 /* Scaling module power down control 2 */
241#define DSP_CTRL3_INTRP_PWDN 0x01 /* Interpolation module power down control */
242#define DSP_CTRL3_SET_CBAR(r, x) ((r&0xDF)|((x&1)<<5))
243
244#define DSP_CTRL4 0x67 /* DSP Control Byte 4 */
245#define DSP_CTRL4_YUV_RGB 0x00 /* Output selection YUV or RGB */
246#define DSP_CTRL4_RAW8 0x02 /* Output selection RAW8 */
247#define DSP_CTRL4_RAW10 0x03 /* Output selection RAW10 */
248
249#define AWB_BIAS 0x68 /* AWB BLC Level Clip */
250#define AWB_CTRL1 0x69 /* AWB Control 1 */
251#define AWB_CTRL2 0x6A /* AWB Control 2 */
252
253#define AWB_CTRL3 0x6B /* AWB Control 3 */
254#define AWB_CTRL3_ADVANCED 0x80 /* AWB mode select - Advanced AWB */
255#define AWB_CTRL3_SIMPLE 0x00 /* AWB mode select - Simple AWB */
256
257#define AWB_CTRL4 0x6C /* AWB Control 4 */
258#define AWB_CTRL5 0x6D /* AWB Control 5 */
259#define AWB_CTRL6 0x6E /* AWB Control 6 */
260#define AWB_CTRL7 0x6F /* AWB Control 7 */
261#define AWB_CTRL8 0x70 /* AWB Control 8 */
262#define AWB_CTRL9 0x71 /* AWB Control 9 */
263#define AWB_CTRL10 0x72 /* AWB Control 10 */
264#define AWB_CTRL11 0x73 /* AWB Control 11 */
265#define AWB_CTRL12 0x74 /* AWB Control 12 */
266#define AWB_CTRL13 0x75 /* AWB Control 13 */
267#define AWB_CTRL14 0x76 /* AWB Control 14 */
268#define AWB_CTRL15 0x77 /* AWB Control 15 */
269#define AWB_CTRL16 0x78 /* AWB Control 16 */
270#define AWB_CTRL17 0x79 /* AWB Control 17 */
271#define AWB_CTRL18 0x7A /* AWB Control 18 */
272#define AWB_CTRL19 0x7B /* AWB Control 19 */
273#define AWB_CTRL20 0x7C /* AWB Control 20 */
274#define AWB_CTRL21 0x7D /* AWB Control 21 */
275#define GAM1 0x7E /* Gamma Curve 1st Segment Input End Point 0x04 Output Value */
276#define GAM2 0x7F /* Gamma Curve 2nd Segment Input End Point 0x08 Output Value */
277#define GAM3 0x80 /* Gamma Curve 3rd Segment Input End Point 0x10 Output Value */
278#define GAM4 0x81 /* Gamma Curve 4th Segment Input End Point 0x20 Output Value */
279#define GAM5 0x82 /* Gamma Curve 5th Segment Input End Point 0x28 Output Value */
280#define GAM6 0x83 /* Gamma Curve 6th Segment Input End Point 0x30 Output Value */
281#define GAM7 0x84 /* Gamma Curve 7th Segment Input End Point 0x38 Output Value */
282#define GAM8 0x85 /* Gamma Curve 8th Segment Input End Point 0x40 Output Value */
283#define GAM9 0x86 /* Gamma Curve 9th Segment Input End Point 0x48 Output Value */
284#define GAM10 0x87 /* Gamma Curve 10th Segment Input End Point 0x50 Output Value */
285#define GAM11 0x88 /* Gamma Curve 11th Segment Input End Point 0x60 Output Value */
286#define GAM12 0x89 /* Gamma Curve 12th Segment Input End Point 0x70 Output Value */
287#define GAM13 0x8A /* Gamma Curve 13th Segment Input End Point 0x90 Output Value */
288#define GAM14 0x8B /* Gamma Curve 14th Segment Input End Point 0xB0 Output Value */
289#define GAM15 0x8C /* Gamma Curve 15th Segment Input End Point 0xD0 Output Value */
290#define SLOP 0x8D /* Gamma Curve Highest Segment Slope */
291#define DNSTH 0x8E /* De-noise Threshold */
292#define EDGE0 0x8F /* Edge Enhancement Strength Control */
293#define EDGE1 0x90 /* Edge Enhancement Threshold Control */
294#define DNSOFF 0x91 /* Auto De-noise Threshold Control */
295#define EDGE2 0x92 /* Edge Enhancement Strength Upper Limit */
296#define EDGE3 0x93 /* Edge Enhancement Strength Upper Limit */
297#define MTX1 0x94 /* Matrix Coefficient 1 */
298#define MTX2 0x95 /* Matrix Coefficient 2 */
299#define MTX3 0x96 /* Matrix Coefficient 3 */
300#define MTX4 0x97 /* Matrix Coefficient 4 */
301#define MTX5 0x98 /* Matrix Coefficient 5 */
302#define MTX6 0x99 /* Matrix Coefficient 6 */
303
304#define MTX_CTRL 0x9A /* Matrix Control */
305#define MTX_CTRL_DBL_EN 0x80 /* Matrix double ON/OFF selection */
306
307#define BRIGHTNESS 0x9B /* Brightness Control */
308#define CONTRAST 0x9C /* Contrast Gain */
309#define UVADJ0 0x9E /* Auto UV Adjust Control 0 */
310#define UVADJ1 0x9F /* Auto UV Adjust Control 1 */
311#define SCAL0 0xA0 /* DCW Ratio Control */
312#define SCAL1 0xA1 /* Horizontal Zoom Out Control */
313#define SCAL2 0xA2 /* Vertical Zoom Out Control */
314#define FIFODLYM 0xA3 /* FIFO Manual Mode Delay Control */
315#define FIFODLYA 0xA4 /* FIFO Auto Mode Delay Control */
316
317#define SDE 0xA6 /* Special Digital Effect Control */
318#define SDE_NEGATIVE_EN 0x40 /* Negative image enable */
319#define SDE_GRAYSCALE_EN 0x20 /* Gray scale image enable */
320#define SDE_V_FIXED_EN 0x10 /* V fixed value enable */
321#define SDE_U_FIXED_EN 0x08 /* U fixed value enable */
322#define SDE_CONT_BRIGHT_EN 0x04 /* Contrast/Brightness enable */
323#define SDE_SATURATION_EN 0x02 /* Saturation enable */
324#define SDE_HUE_EN 0x01 /* Hue enable */
325
326#define USAT 0xA7 /* U Component Saturation Gain */
327#define VSAT 0xA8 /* V Component Saturation Gain */
328#define HUECOS 0xA9 /* Cosine value × 0x80 */
329#define HUESIN 0xAA /* Sine value × 0x80 */
330#define SIGN_BIT 0xAB /* Sign Bit for Hue and Brightness */
331
332#define DSPAUTO 0xAC /* DSP Auto Function ON/OFF Control */
333#define DSPAUTO_AWB_EN 0x80 /* AWB auto threshold control */
334#define DSPAUTO_DENOISE_EN 0x40 /* De-noise auto threshold control */
335#define DSPAUTO_EDGE_EN 0x20 /* Sharpness (edge enhancement) auto strength control */
336#define DSPAUTO_UV_EN 0x10 /* UV adjust auto slope control */
337#define DSPAUTO_SCAL0_EN 0x08 /* Auto scaling factor control (register SCAL0 (0xA0)) */
338#define DSPAUTO_SCAL1_EN 0x04 /* Auto scaling factor control (registers SCAL1 (0xA1 and SCAL2 (0xA2))*/
English version