GSoC 2015
Version 28 (Gary Bradski, 2015-11-24 07:05 pm)
1 | 1 | h1. *Ideas Page for OpenCV Google Summer of Code 2015 (GSoC 2015)* |
|
---|---|---|---|
2 | 1 | ||
3 | 27 | Gary Bradski | "We are an accepted organization in GSoC 2015!":http://www.google-melange.com/gsoc/org2/google/gsoc2015/opencv |
4 | 1 | ||
5 | 1 | ||
6 | 3 | Gary Bradski | *OpenCV 3D recognition and pose from last year.* |
7 | 11 | Gary Bradski | !3D_recog.jpg! |
8 | 1 | ||
9 | 1 | ---- |
|
10 | 1 | ||
11 | 1 | h2. General Information: |
|
12 | 1 | ||
13 | 3 | Gary Bradski | * "GSoC 2015 site: http://www.google-melange.com/gsoc/homepage/google/gsoc2015":http://www.google-melange.com/gsoc/homepage/google/gsoc2015 |
14 | 3 | Gary Bradski | * Mailing list for OpenCV GSOC 2015: [email protected] |
15 | 3 | Gary Bradski | ** Group site https://groups.google.com/forum/#!forum/opencv-gsoc-2015 |
16 | 3 | Gary Bradski | * "Timeline for GSoC 2015":http://www.google-melange.com/gsoc/events/google/gsoc2015 |
17 | 3 | Gary Bradski | |
18 | 1 | ** *Next important dates:* |
|
19 | 7 | Gary Bradski | *** -Feb 20 19:00 UTC: Organization Application Deadline.- *DONE!* |
20 | 26 | Gary Bradski | *** -Mar 02 19:00 UTC: List of accepted Organizations.- *We're in!* |
21 | 3 | Gary Bradski | *** Mar 16 16:00 UTC: Student Application period begins! |
22 | 3 | Gary Bradski | *** Mar 27 19:00 UTC: Student Application period ends! |
23 | 3 | Gary Bradski | *** Apr 13 Deadline for OpenCV to request # of slots. |
24 | 3 | Gary Bradski | *** Apr 15 Google publishes how many slots we get. |
25 | 3 | Gary Bradski | *** Apr 21 Try to eliminate duplication of students. |
26 | 3 | Gary Bradski | *** Apr 24 IRC for OpenCV to resolve all duplications. |
27 | 3 | Gary Bradski | *** Apr 27 19:00 UTC: Accepted students announced. |
28 | 3 | Gary Bradski | *** May 25 Let Coding begin! |
29 | 3 | Gary Bradski | *** Jun 26 19:00 UTC: Mid term evaluation begins. |
30 | 3 | Gary Bradski | *** Jul 03 19:00 UTC: Mid term end. |
31 | 3 | Gary Bradski | *** Aug 21 19:00 UTC: Coding stop; Pull requests must be in; Mentors: final evaluation begins... |
32 | 3 | Gary Bradski | *** Aug 28 19:00 UTC: Final evaluation deadline; Students begin submitting code. |
33 | 3 | Gary Bradski | *** Sept 25 19:00 UTC: Deadline for Google Code submission |
34 | 3 | Gary Bradski | *** Oct 24-25: Mentor Summit! |
35 | 1 | ||
36 | 3 | Gary Bradski | * we'll create a video just like we did 2013 year http://www.youtube.com/watch?v=_TTtN4frMEA |
37 | 3 | Gary Bradski | * 2014 *Vincent?!* |
38 | 1 | ||
39 | 1 | *Times:* |
|
40 | 25 | Gary Bradski | * UTC to PDT (California uses PST in the winter (from Nov 1st) and PDT in the summer (from March 8)). |
41 | 25 | Gary Bradski | ** "utc time converter":http://www.timebie.com/std/gmt.php |
42 | 1 | ||
43 | 1 | *Resources:* |
|
44 | 1 | ||
45 | 1 | * "OpenCV Developers Site":http://code.opencv.org/projects/opencv/wiki |
|
46 | 1 | * "OpenCV User's Site":http://opencv.org |
|
47 | 1 | * [[How_to_contribute|How to Contribute Code]] |
|
48 | 1 | * Source Code can be found at "GitHub":https://github.com/Itseez/opencv. |
|
49 | 1 | ** To get the source code, point your git client to @git://github.com/Itseez/opencv.git@. Here are [[Working_with_OpenCV_git_repository|instructions]]. |
|
50 | 1 | <pre> |
|
51 | 1 | git clone git://github.com/Itseez/opencv.git |
|
52 | 1 | </pre> |
|
53 | 1 | ** The rest of the history plus matches between git commits and SVN revisions are stored at a separate "OpenCV Attic" repository: git://code.opencv.org/opencv_attic.git. |
|
54 | 1 | ** Also OpenCV Extra was put to a separate repository: git://code.opencv.org/opencv_extra.git. |
|
55 | 1 | * [[OpenCV Development Process]] |
|
56 | 1 | ** [[Meeting_notes|Developer meeting notes]] |
|
57 | 1 | ||
58 | 27 | Gary Bradski | h2. How you will be evaluated if you are an accepted student |
59 | 27 | Gary Bradski | |
60 | 27 | Gary Bradski | * Student projects to be paid only if: |
61 | 27 | Gary Bradski | ** *Midterm:* |
62 | 28 | Gary Bradski | *** You must generate a pull request |
63 | 27 | Gary Bradski | **** That builds |
64 | 27 | Gary Bradski | **** Has at least stubbed out functionality |
65 | 27 | Gary Bradski | **** With appropriate Doxygen documentation |
66 | 27 | Gary Bradski | **** Has at least stubbed out unit test |
67 | 27 | Gary Bradski | **** Has a stubbed out example of use that builds |
68 | 27 | Gary Bradski | ** *End of summer:* |
69 | 27 | Gary Bradski | *** A full pull request |
70 | 27 | Gary Bradski | **** Full Doxygen documentation |
71 | 27 | Gary Bradski | **** A good unit test |
72 | 27 | Gary Bradski | **** Example of use code |
73 | 27 | Gary Bradski | *** Create a (short!) Movie (preferably on Youtube, but any movie) that demonstrates your code |
74 | 27 | Gary Bradski | **** We use this to create an overall summary. Past years: |
75 | 27 | Gary Bradski | ***** "The 2014 Movie":https://www.youtube.com/watch?v=7WUZA_KIIRA&feature=youtu.be |
76 | 27 | Gary Bradski | ***** "The 2013 Movie":https://www.youtube.com/watch?v=_TTtN4frMEA |
77 | 27 | Gary Bradski | |
78 | 1 | h2. For students or mentors interested in applying |
|
79 | 1 | ||
80 | 1 | * You *must* already know how to program well in C++ |
|
81 | 1 | ** Some projects may require Python or Matlab skills |
|
82 | 4 | Gary Bradski | * Discuss projects below or other ideas with us https://groups.google.com/forum/?fromgroups#!forum/opencv-gsoc-2015 |
83 | 1 | ||
84 | 1 | <pre> |
|
85 | 12 | Gary Bradski | \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ |
86 | 9 | Gary Bradski | </pre> |
87 | 9 | Gary Bradski | |
88 | 8 | Gary Bradski | h1. 2015 Project Ideas: |
89 | 1 | ||
90 | 1 | *Students may propose their own projects (give us a clear summary and why you can do this project). However, below are some of our priorities for this year* Contact us and/or discuss ideas at https://groups.google.com/forum/?fromgroups#!forum/opencv-gsoc-2015 |
|
91 | 1 | ||
92 | 19 | Gary Bradski | _These are not in order of priority_ |
93 | 19 | Gary Bradski | |
94 | 9 | Gary Bradski | *1 Google Cardboard* |
95 | 9 | Gary Bradski | * Do visual odometry, SLAM etc for Google Cardboard |
96 | 1 | ||
97 | 9 | Gary Bradski | *2 Projection mapping (Projected Augmented Reality)* |
98 | 9 | Gary Bradski | * Calibrate a camera to a projector |
99 | 9 | Gary Bradski | * Put out structured light to learn the 3D map of what's in front of the camera |
100 | 9 | Gary Bradski | * Project the camera image, suitably rotated and shifted onto the scene |
101 | 1 | * Unity or some other program to start transforming the scene for projection mapping |
|
102 | 1 | ** See http://www.creativebloq.com/video/projection-mapping-912849 to get ideas of what you can do with this |
|
103 | 1 | ||
104 | 1 | *3 Update OpenCV file storage so that it's readable by Python in OpenCV (move to YAML 1.2 Edition 3)* |
|
105 | 1 | * Mentor Prasanna |
|
106 | 1 | * OpenCV C++ writes out its own YAML tags which makes it incompatible with it's own Python and with external python readers |
|
107 | 18 | Gary Bradski | * Speedup fs reading/writing, add JSON support, add base64 (+RLE) support for large amounts of numerical data |
108 | 1 | * References |
|
109 | 1 | ** YAML http://www.yaml.org |
|
110 | 14 | Gary Bradski | ** Problem statement: http://stackoverflow.com/questions/11141336/filestorage-for-opencv-python-api |
111 | 14 | Gary Bradski | |
112 | 14 | Gary Bradski | *4 Stereo correspondence improvements* |
113 | 14 | Gary Bradski | * More accurate and faster stereo correspondence (StereoBM/StereoSGBM) by using LBP/BRIEF/DAISY etc. per-pixel descriptors instead of sum-of-absolute-differences. |
114 | 14 | Gary Bradski | |
115 | 14 | Gary Bradski | *5 Self-contained video codec(s)* |
116 | 14 | Gary Bradski | * There is draft version of self-contained motion jpeg encoder to be integrated to OpenCV. |
117 | 14 | Gary Bradski | * We will also need decoder, 12-bit jpeg support, multi-threaded encoder and decoder. |
118 | 14 | Gary Bradski | * There are some other codecs, like libvpx, which we can support and link right into highgui, without dependency from ffmpeg/libav. |
119 | 14 | Gary Bradski | |
120 | 1 | *6 Deep learning* |
|
121 | 19 | Gary Bradski | * It would be cool if OpenCV could load and run deep networks trained with popular DNN packages like Caffe, Theano or Torch. |
122 | 14 | Gary Bradski | * GPU/OpenCL optimization and/or other optimizations (that can partly be contributed back to the upstream projects) are also encouraged. |
123 | 14 | Gary Bradski | |
124 | 14 | Gary Bradski | *7 Better interactive camera calibration* |
125 | 14 | Gary Bradski | * Modern algorithms would allow us to recompute camera parameters after almost each frame, compute reprojection error, compute confidence intervals for the parameters. |
126 | 14 | Gary Bradski | * the partially occluded calibration patterns could be handled somehow to, especially if we want to estimate intrinsic parameters only. |
127 | 14 | Gary Bradski | * the application may show us the areas where the corner borders have been shown so that user can see how good are the data |
128 | 1 | ||
129 | 20 | Gary Bradski | *8 Create a much better calibration target, we will call it "Charuco* |
130 | 19 | Gary Bradski | * We know how to combine Aruco targets with checker boards to create a "super calibration" object |
131 | 19 | Gary Bradski | * It also can express ~1 billion distinct codes |
132 | 19 | Gary Bradski | * Implement this for OpenCV |
133 | 22 | Gary Bradski | ** "Aruco target finding description":http://www.uco.es/investiga/grupos/ava/node/26 |
134 | 22 | Gary Bradski | ** Great overview |
135 | 23 | Gary Bradski | *** "Automatic generation and detection of highly reliable fiducial markers under occlusion":http://www.uco.es/investiga/grupos/ava/sites/default/files/GarridoJurado2014.pdf |
136 | 22 | Gary Bradski | ** A similar system to Arcuo: "AprilTag: A robust an dflexible visual fiducial system":http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=5979561&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D5979561 |
137 | 19 | Gary Bradski | |
138 | 20 | Gary Bradski | *9 Color Calibration and white balance* |
139 | 19 | Gary Bradski | * With McBeth chart and with gray world algorithm (improve exisiting color constancy algorithms) |
140 | 19 | Gary Bradski | * Possibly collect deep learning way of doing this (needs large training set) |
141 | 19 | Gary Bradski | |
142 | 21 | Gary Bradski | *10 Realtime image preprocessing algorithms (real time on mobile)* |
143 | 21 | Gary Bradski | * We and many other OpenCV users would definitely enjoy very fast denoising, color improvements, white balance etc. algorithms. |
144 | 21 | Gary Bradski | |
145 | 21 | Gary Bradski | *11 Tracking improvements* |
146 | 14 | Gary Bradski | * TLD algorithm is implemented in OpenCV, but it needs improvements and optimizations. |
147 | 20 | Gary Bradski | * ASM/AAM can also be implemented, as well as the particle filter. |
148 | 15 | Gary Bradski | |
149 | 14 | Gary Bradski | |
150 | 20 | Gary Bradski | *12 PBM (part-based models) improvements* |
151 | 15 | Gary Bradski | * There is latentsvm package in opencv_contrib that needs to be improved (quality-wise and speed-wise). |
152 | 15 | Gary Bradski | * Adding training, even if it involves execution of external svmperf or other tool, is definitely appreciated too. |
153 | 14 | Gary Bradski | |
154 | 20 | Gary Bradski | *13 Improving ICF/ACF + <some>Boost training and detection* |
155 | 14 | Gary Bradski | * In opencv_contrib there is initial version of the training application and detector based on integral channel features and boosting. Further improvements of this part would be really useful. |
156 | 14 | Gary Bradski | |
157 | 20 | Gary Bradski | *14 numl+OpenCV, lua+OpenCV* |
158 | 14 | Gary Bradski | * there is emerging numl language, suitable for implementation of complex computationally-intensive algorithms. OpenCV bindings for this language would be really useful. |
159 | 1 | * the other language that is now used more often for ML and CV (thanks to Torch) is Lua; there are old bindings for a tiny part of OpenCV; could be useful to extend our autogenerated bindings to Lua. |
|
160 | 1 | ||
161 | 20 | Gary Bradski | *15 human interaction* |
162 | 17 | Gary Bradski | * gesture recognition |
163 | 21 | Gary Bradski | * human skeleton based on 2d or 3d |
164 | 1 | ||
165 | 1 | *16 SfM* |
|
166 | 1 | * update libmv to OpenMVG and get the 3d viz from OpenCV |
|
167 | 21 | Gary Bradski | * Make the Structure from Motion Module coherent |
168 | 21 | Gary Bradski | |
169 | 21 | Gary Bradski | *17 Quad Rotor Contrib* |
170 | 21 | Gary Bradski | * Apply much of the above into a quad rotor drone automatic tracking, mapping navigation etc module |
171 | 19 | Gary Bradski | |
172 | 19 | Gary Bradski | |
173 | 17 | Gary Bradski | |
174 | 1 | <pre> |
|
175 | 1 | /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ |
|
176 | 1 | </pre> |
|
177 | 13 | Gary Bradski | |
178 | 13 | Gary Bradski | |
179 | 13 | Gary Bradski | h1. Accepted Projects for OpenCV GSoC 2015: |
180 | 13 | Gary Bradski | |
181 | 13 | Gary Bradski | OpenCV GSoC 2015 students, projects, mentors are below. *WHEN THEY ARE KNOWN* |
182 | 13 | Gary Bradski | |
183 | 13 | Gary Bradski | |
184 | 13 | Gary Bradski | <pre> |
185 | 13 | Gary Bradski | Student Project Mentor(s) |
186 | 13 | Gary Bradski | ======= ======= ======== |
187 | 13 | Gary Bradski | |
188 | 13 | Gary Bradski | </pre> |
189 | 13 | Gary Bradski | |
190 | 13 | Gary Bradski | Project notes will be compiled "here":https://sites.google.com/a/opencv.org/opencv/gsoc-2015-project-notes . |
191 | 13 | Gary Bradski | |
192 | 13 | Gary Bradski | |
193 | 1 | ||
194 | 1 | h2. Mentors |
|
195 | 1 | ||
196 | 1 | *Actual signed up mentors* |
|
197 | 1 | ||
198 | 1 | * Alexander Mordvintsev zzznah(+)gmail.com |
|
199 | 1 | * Sid Bao ybao(+)magicleap.com |
|
200 | 1 | * Vincent Rabaud vincent.rabaud(+)gmail.com |
|
201 | 1 | * Vadim Pisarevsky vadim.pisarevsky(+)gmail.com |
|
202 | 1 | * Adrian Kaehler therealadrian(+)gmail.com |
|
203 | 1 | * Terry Boult tboult(+)vast.uccs.edu |
|
204 | 1 | * spmallick spmallick(+)taaz.com |
|
205 | 1 | * Serge Belongie sjb344(+)cornell.edu |
|
206 | 1 | * Stefano s.fabri10(+)gmail.com |
|
207 | 1 | * Prasanna pras.bits(+)gmail.com |
|
208 | 1 | * Pablo Alcantarilla pablofdezalc(+)gmail.com |
|
209 | 1 | * Bence Magyar mw.mzperx(+)gmail.com |
|
210 | 1 | * Manuele manuele.tamburrano(+)gmail.com |
|
211 | 1 | * Grace Vesom grace.vesom(+)gmail.com |
|
212 | 1 | * Open Source Computer Vision Library (OpenCV) garybradski(+)gmail.com |
|
213 | 1 | * Douglas Lee dougabug(+)gmail.com |
|
214 | 1 | * Claudia Rapuano c.rapuano(+)gmail.com |
|
215 | 1 | * Antonella Cascitelli antonellacascitelli(+)gmail.com |
|
216 | 1 | * Anatoly Baksheev anatoly.baksheev(+)itseez.com |
|
217 | 1 | * Alexander alexander.shishkov(+)itseez.com |
|
218 | 16 | Gary Bradski | * Alexander Smorkalov alexander.smorkalov(+)itseez.com |
219 | 1 | * Alexander Bovyrin alexander.bovyrin(+)itseez.com |
|
220 | 1 | ||
221 | 1 | ||
222 | 1 | ||
223 | 1 | In the below, get rid of the ''-delete-'' to make the emails work. |
|
224 | 1 | ||
225 | 1 | Anatoly Baksheev |
|
226 | 1 | Researcher, Vision Algorithms on GPU |
|
227 | 1 | Argus/Itseez |
|
228 | 1 | [email protected] |
|
229 | 1 | ||
230 | 1 | Alexander Bovyrin |
|
231 | 1 | PhD, Senior Researcher |
|
232 | 1 | Argus/Itseez founder |
|
233 | 1 | NNU Lecturer |
|
234 | 1 | [email protected] |
|
235 | 1 | ||
236 | 1 | Gary Bradski |
|
237 | 1 | Founder, Industrial Perception Inc. |
|
238 | 1 | Consulting Prof. Stanford U. |
|
239 | 1 | OpenCV Founder, Technical Content Owner, GSoC Admin |
|
240 | 1 | Co-author of Learning OpenCV Book |
|
241 | 1 | http://www.willowgarage.com/pages/people/gary-bradski-senior-researcher |
|
242 | 1 | [email protected] |
|
243 | 1 | ||
244 | 1 | Antonella Cascitelli |
|
245 | 1 | Grad student, University of Rome |
|
246 | 1 | [email protected] |
|
247 | 1 | ||
248 | 1 | Eric Christiansen |
|
249 | 1 | PhD, UCSD |
|
250 | 1 | [email protected] |
|
251 | 1 | ||
252 | 1 | Stefano Fabri |
|
253 | 1 | CRR Team leader, University of Rome |
|
254 | 1 | [email protected] |
|
255 | 1 | ||
256 | 1 | Victor Eruhimov |
|
257 | 1 | OpenCV founding team/Senior Researcher |
|
258 | 1 | Argus/Itseez founder |
|
259 | 1 | NNU Lecturer |
|
260 | 1 | [email protected] |
|
261 | 1 | ||
262 | 1 | Adrian Kaehler |
|
263 | 1 | Principle Engineer, Applied Minds |
|
264 | 1 | Co-author of Learning OpenCV Book. |
|
265 | 1 | [email protected] |
|
266 | 1 | ||
267 | 1 | Peter Karasev |
|
268 | 1 | PhD Student, MINERVA Research Group |
|
269 | 1 | Georgia Tech |
|
270 | 1 | [email protected] |
|
271 | 1 | ||
272 | 1 | Vadim Pisarevsky |
|
273 | 1 | OpenCV founding team/Czar |
|
274 | 1 | [email protected] |
|
275 | 1 | ||
276 | 1 | Manuele Tamburrano |
|
277 | 1 | Grad Student, University of Rome |
|
278 | 1 | [email protected] |
|
279 | 1 | ||
280 | 1 | Vincent Rabaud |
|
281 | 1 | Principle Engineer, Aldebaran Robotics |
|
282 | 1 | [email protected] |
|
283 | 1 | ||
284 | 1 | Claudia Rapuano |
|
285 | 1 | Grad student, University of Rome |
|
286 | 1 | [email protected] |
|
287 | 1 | ||
288 | 1 | Grace Vesom |
|
289 | 24 | Gary Bradski | Senior Software Engineer, Magic Leap |
290 | 1 | -delete-grace.vesom@-delete_gmail.com |
|
291 | 1 | ||
292 | 1 | Bence Magyar |
|
293 | 1 | Pal Robotics |
|
294 | 1 | [email protected] |
|
295 | 1 | ||
296 | 1 | Pablo Alcantarilla |
|
297 | 1 | Toshiba Research Europe Ltd. |
|
298 | 1 | [email protected] |
|
299 | 1 | ||
300 | 1 | h3. Back up Mentors |
|
301 | 1 | ||
302 | 1 | Mark Asbach |
|
303 | 1 | Fraunhofer IAIS |
|
304 | 1 | Schloss Birlinghoven |
|
305 | 1 | Sankt Augustin, Germany |
|
306 | 1 | http://mmprec.iais.fraunhofer.de/asbach.html |
|
307 | 1 | [email protected] |
|
308 | 1 | ||
309 | 1 | ||
310 | 1 | Nicolas Saunier, Ph.D. |
|
311 | 1 | Assistant Professor |
|
312 | 1 | Civil, Geological and Mining Department (CGM) |
|
313 | 1 | Ãcole Polytechnique de Montréal |
|
314 | 1 | http://nicolas.saunier.confins.net |
|
315 | 1 | [email protected] |
|
316 | 1 | ||
317 | 1 | ||
318 | 1 | Alexander Mordvintsev |
|
319 | 1 | Software Engineer |
|
320 | 1 | http://znah.net |
|
321 | 1 | [email protected] |
|
322 | 1 | ||
323 | 1 | Andrey Morozov |
|
324 | 1 | Software Engineer |
|
325 | 1 | Argus/Itseez |
|
326 | 3 | Gary Bradski | [email protected] |
327 | 1 | ||
328 | 1 | h2. OpenCV Org. Application to GSoC 2015 |
|
329 | 1 | ||
330 | 1 | "OpenCV GSoC Application":http://code.opencv.org/projects/gsoc2013/wiki/GSoC2013OpenCVApplication |
|
331 | 1 | ||
332 | 3 | Gary Bradski | h2. Previous Years |
333 | 3 | Gary Bradski | |
334 | 1 | * 2014 "GSoC 2014 Ideas Page":http://code.opencv.org/projects/opencv/wiki/GSoC_2014 |
|
335 | 27 | Gary Bradski | ** "The 2014 Movie":https://www.youtube.com/watch?v=7WUZA_KIIRA&feature=youtu.be |
336 | 1 | * 2013 "GSoC 2013 Ideas Page":http://code.opencv.org/projects/gsoc2013/wiki |
|
337 | 27 | Gary Bradski | ** "The 2013 Movie":https://www.youtube.com/watch?v=_TTtN4frMEA |
338 | 1 | * 2012 Ideas site http://code.opencv.org/projects/gsoc2012/wiki/Wiki/ |
|
339 | 1 | * 2011 Ideas site http://opencv.willowgarage.com/wiki/GSOC_OpenCV2011 |
|
340 | 1 | ** 2011 Application GSoC page is http://opencv.willowgarage.com/wiki/GSoC2011OpenCVApplication |
|
341 | 1 | * 2010 Ideas site http://opencv.willowgarage.com/wiki/GSOC_OpenCV2010 |
|
342 | 1 | ** 2010 Application page http://opencv.willowgarage.com/wiki/ApplicationGSOC2010 |
|
343 | 1 | ||
344 | 1 | ---- |