zz_generated.defaults.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460
  1. // +build !ignore_autogenerated
  2. /*
  3. Copyright The Kubernetes Authors.
  4. Licensed under the Apache License, Version 2.0 (the "License");
  5. you may not use this file except in compliance with the License.
  6. You may obtain a copy of the License at
  7. http://www.apache.org/licenses/LICENSE-2.0
  8. Unless required by applicable law or agreed to in writing, software
  9. distributed under the License is distributed on an "AS IS" BASIS,
  10. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  11. See the License for the specific language governing permissions and
  12. limitations under the License.
  13. */
  14. // Code generated by defaulter-gen. DO NOT EDIT.
  15. package v1beta1
  16. import (
  17. v1beta1 "k8s.io/api/apps/v1beta1"
  18. runtime "k8s.io/apimachinery/pkg/runtime"
  19. v1 "k8s.io/kubernetes/pkg/apis/core/v1"
  20. )
  21. // RegisterDefaults adds defaulters functions to the given scheme.
  22. // Public to allow building arbitrary schemes.
  23. // All generated defaulters are covering - they call all nested defaulters.
  24. func RegisterDefaults(scheme *runtime.Scheme) error {
  25. scheme.AddTypeDefaultingFunc(&v1beta1.Deployment{}, func(obj interface{}) { SetObjectDefaults_Deployment(obj.(*v1beta1.Deployment)) })
  26. scheme.AddTypeDefaultingFunc(&v1beta1.DeploymentList{}, func(obj interface{}) { SetObjectDefaults_DeploymentList(obj.(*v1beta1.DeploymentList)) })
  27. scheme.AddTypeDefaultingFunc(&v1beta1.StatefulSet{}, func(obj interface{}) { SetObjectDefaults_StatefulSet(obj.(*v1beta1.StatefulSet)) })
  28. scheme.AddTypeDefaultingFunc(&v1beta1.StatefulSetList{}, func(obj interface{}) { SetObjectDefaults_StatefulSetList(obj.(*v1beta1.StatefulSetList)) })
  29. return nil
  30. }
  31. func SetObjectDefaults_Deployment(in *v1beta1.Deployment) {
  32. SetDefaults_Deployment(in)
  33. v1.SetDefaults_PodSpec(&in.Spec.Template.Spec)
  34. for i := range in.Spec.Template.Spec.Volumes {
  35. a := &in.Spec.Template.Spec.Volumes[i]
  36. v1.SetDefaults_Volume(a)
  37. if a.VolumeSource.HostPath != nil {
  38. v1.SetDefaults_HostPathVolumeSource(a.VolumeSource.HostPath)
  39. }
  40. if a.VolumeSource.Secret != nil {
  41. v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret)
  42. }
  43. if a.VolumeSource.ISCSI != nil {
  44. v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI)
  45. }
  46. if a.VolumeSource.RBD != nil {
  47. v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD)
  48. }
  49. if a.VolumeSource.DownwardAPI != nil {
  50. v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI)
  51. for j := range a.VolumeSource.DownwardAPI.Items {
  52. b := &a.VolumeSource.DownwardAPI.Items[j]
  53. if b.FieldRef != nil {
  54. v1.SetDefaults_ObjectFieldSelector(b.FieldRef)
  55. }
  56. }
  57. }
  58. if a.VolumeSource.ConfigMap != nil {
  59. v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap)
  60. }
  61. if a.VolumeSource.AzureDisk != nil {
  62. v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk)
  63. }
  64. if a.VolumeSource.Projected != nil {
  65. v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected)
  66. for j := range a.VolumeSource.Projected.Sources {
  67. b := &a.VolumeSource.Projected.Sources[j]
  68. if b.DownwardAPI != nil {
  69. for k := range b.DownwardAPI.Items {
  70. c := &b.DownwardAPI.Items[k]
  71. if c.FieldRef != nil {
  72. v1.SetDefaults_ObjectFieldSelector(c.FieldRef)
  73. }
  74. }
  75. }
  76. if b.ServiceAccountToken != nil {
  77. v1.SetDefaults_ServiceAccountTokenProjection(b.ServiceAccountToken)
  78. }
  79. }
  80. }
  81. if a.VolumeSource.ScaleIO != nil {
  82. v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO)
  83. }
  84. }
  85. for i := range in.Spec.Template.Spec.InitContainers {
  86. a := &in.Spec.Template.Spec.InitContainers[i]
  87. v1.SetDefaults_Container(a)
  88. for j := range a.Ports {
  89. b := &a.Ports[j]
  90. v1.SetDefaults_ContainerPort(b)
  91. }
  92. for j := range a.Env {
  93. b := &a.Env[j]
  94. if b.ValueFrom != nil {
  95. if b.ValueFrom.FieldRef != nil {
  96. v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef)
  97. }
  98. }
  99. }
  100. v1.SetDefaults_ResourceList(&a.Resources.Limits)
  101. v1.SetDefaults_ResourceList(&a.Resources.Requests)
  102. if a.LivenessProbe != nil {
  103. v1.SetDefaults_Probe(a.LivenessProbe)
  104. if a.LivenessProbe.Handler.HTTPGet != nil {
  105. v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet)
  106. }
  107. }
  108. if a.ReadinessProbe != nil {
  109. v1.SetDefaults_Probe(a.ReadinessProbe)
  110. if a.ReadinessProbe.Handler.HTTPGet != nil {
  111. v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet)
  112. }
  113. }
  114. if a.StartupProbe != nil {
  115. v1.SetDefaults_Probe(a.StartupProbe)
  116. if a.StartupProbe.Handler.HTTPGet != nil {
  117. v1.SetDefaults_HTTPGetAction(a.StartupProbe.Handler.HTTPGet)
  118. }
  119. }
  120. if a.Lifecycle != nil {
  121. if a.Lifecycle.PostStart != nil {
  122. if a.Lifecycle.PostStart.HTTPGet != nil {
  123. v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet)
  124. }
  125. }
  126. if a.Lifecycle.PreStop != nil {
  127. if a.Lifecycle.PreStop.HTTPGet != nil {
  128. v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet)
  129. }
  130. }
  131. }
  132. }
  133. for i := range in.Spec.Template.Spec.Containers {
  134. a := &in.Spec.Template.Spec.Containers[i]
  135. v1.SetDefaults_Container(a)
  136. for j := range a.Ports {
  137. b := &a.Ports[j]
  138. v1.SetDefaults_ContainerPort(b)
  139. }
  140. for j := range a.Env {
  141. b := &a.Env[j]
  142. if b.ValueFrom != nil {
  143. if b.ValueFrom.FieldRef != nil {
  144. v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef)
  145. }
  146. }
  147. }
  148. v1.SetDefaults_ResourceList(&a.Resources.Limits)
  149. v1.SetDefaults_ResourceList(&a.Resources.Requests)
  150. if a.LivenessProbe != nil {
  151. v1.SetDefaults_Probe(a.LivenessProbe)
  152. if a.LivenessProbe.Handler.HTTPGet != nil {
  153. v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet)
  154. }
  155. }
  156. if a.ReadinessProbe != nil {
  157. v1.SetDefaults_Probe(a.ReadinessProbe)
  158. if a.ReadinessProbe.Handler.HTTPGet != nil {
  159. v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet)
  160. }
  161. }
  162. if a.StartupProbe != nil {
  163. v1.SetDefaults_Probe(a.StartupProbe)
  164. if a.StartupProbe.Handler.HTTPGet != nil {
  165. v1.SetDefaults_HTTPGetAction(a.StartupProbe.Handler.HTTPGet)
  166. }
  167. }
  168. if a.Lifecycle != nil {
  169. if a.Lifecycle.PostStart != nil {
  170. if a.Lifecycle.PostStart.HTTPGet != nil {
  171. v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet)
  172. }
  173. }
  174. if a.Lifecycle.PreStop != nil {
  175. if a.Lifecycle.PreStop.HTTPGet != nil {
  176. v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet)
  177. }
  178. }
  179. }
  180. }
  181. for i := range in.Spec.Template.Spec.EphemeralContainers {
  182. a := &in.Spec.Template.Spec.EphemeralContainers[i]
  183. for j := range a.EphemeralContainerCommon.Ports {
  184. b := &a.EphemeralContainerCommon.Ports[j]
  185. v1.SetDefaults_ContainerPort(b)
  186. }
  187. for j := range a.EphemeralContainerCommon.Env {
  188. b := &a.EphemeralContainerCommon.Env[j]
  189. if b.ValueFrom != nil {
  190. if b.ValueFrom.FieldRef != nil {
  191. v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef)
  192. }
  193. }
  194. }
  195. v1.SetDefaults_ResourceList(&a.EphemeralContainerCommon.Resources.Limits)
  196. v1.SetDefaults_ResourceList(&a.EphemeralContainerCommon.Resources.Requests)
  197. if a.EphemeralContainerCommon.LivenessProbe != nil {
  198. v1.SetDefaults_Probe(a.EphemeralContainerCommon.LivenessProbe)
  199. if a.EphemeralContainerCommon.LivenessProbe.Handler.HTTPGet != nil {
  200. v1.SetDefaults_HTTPGetAction(a.EphemeralContainerCommon.LivenessProbe.Handler.HTTPGet)
  201. }
  202. }
  203. if a.EphemeralContainerCommon.ReadinessProbe != nil {
  204. v1.SetDefaults_Probe(a.EphemeralContainerCommon.ReadinessProbe)
  205. if a.EphemeralContainerCommon.ReadinessProbe.Handler.HTTPGet != nil {
  206. v1.SetDefaults_HTTPGetAction(a.EphemeralContainerCommon.ReadinessProbe.Handler.HTTPGet)
  207. }
  208. }
  209. if a.EphemeralContainerCommon.StartupProbe != nil {
  210. v1.SetDefaults_Probe(a.EphemeralContainerCommon.StartupProbe)
  211. if a.EphemeralContainerCommon.StartupProbe.Handler.HTTPGet != nil {
  212. v1.SetDefaults_HTTPGetAction(a.EphemeralContainerCommon.StartupProbe.Handler.HTTPGet)
  213. }
  214. }
  215. if a.EphemeralContainerCommon.Lifecycle != nil {
  216. if a.EphemeralContainerCommon.Lifecycle.PostStart != nil {
  217. if a.EphemeralContainerCommon.Lifecycle.PostStart.HTTPGet != nil {
  218. v1.SetDefaults_HTTPGetAction(a.EphemeralContainerCommon.Lifecycle.PostStart.HTTPGet)
  219. }
  220. }
  221. if a.EphemeralContainerCommon.Lifecycle.PreStop != nil {
  222. if a.EphemeralContainerCommon.Lifecycle.PreStop.HTTPGet != nil {
  223. v1.SetDefaults_HTTPGetAction(a.EphemeralContainerCommon.Lifecycle.PreStop.HTTPGet)
  224. }
  225. }
  226. }
  227. }
  228. v1.SetDefaults_ResourceList(&in.Spec.Template.Spec.Overhead)
  229. }
  230. func SetObjectDefaults_DeploymentList(in *v1beta1.DeploymentList) {
  231. for i := range in.Items {
  232. a := &in.Items[i]
  233. SetObjectDefaults_Deployment(a)
  234. }
  235. }
  236. func SetObjectDefaults_StatefulSet(in *v1beta1.StatefulSet) {
  237. SetDefaults_StatefulSet(in)
  238. v1.SetDefaults_PodSpec(&in.Spec.Template.Spec)
  239. for i := range in.Spec.Template.Spec.Volumes {
  240. a := &in.Spec.Template.Spec.Volumes[i]
  241. v1.SetDefaults_Volume(a)
  242. if a.VolumeSource.HostPath != nil {
  243. v1.SetDefaults_HostPathVolumeSource(a.VolumeSource.HostPath)
  244. }
  245. if a.VolumeSource.Secret != nil {
  246. v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret)
  247. }
  248. if a.VolumeSource.ISCSI != nil {
  249. v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI)
  250. }
  251. if a.VolumeSource.RBD != nil {
  252. v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD)
  253. }
  254. if a.VolumeSource.DownwardAPI != nil {
  255. v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI)
  256. for j := range a.VolumeSource.DownwardAPI.Items {
  257. b := &a.VolumeSource.DownwardAPI.Items[j]
  258. if b.FieldRef != nil {
  259. v1.SetDefaults_ObjectFieldSelector(b.FieldRef)
  260. }
  261. }
  262. }
  263. if a.VolumeSource.ConfigMap != nil {
  264. v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap)
  265. }
  266. if a.VolumeSource.AzureDisk != nil {
  267. v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk)
  268. }
  269. if a.VolumeSource.Projected != nil {
  270. v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected)
  271. for j := range a.VolumeSource.Projected.Sources {
  272. b := &a.VolumeSource.Projected.Sources[j]
  273. if b.DownwardAPI != nil {
  274. for k := range b.DownwardAPI.Items {
  275. c := &b.DownwardAPI.Items[k]
  276. if c.FieldRef != nil {
  277. v1.SetDefaults_ObjectFieldSelector(c.FieldRef)
  278. }
  279. }
  280. }
  281. if b.ServiceAccountToken != nil {
  282. v1.SetDefaults_ServiceAccountTokenProjection(b.ServiceAccountToken)
  283. }
  284. }
  285. }
  286. if a.VolumeSource.ScaleIO != nil {
  287. v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO)
  288. }
  289. }
  290. for i := range in.Spec.Template.Spec.InitContainers {
  291. a := &in.Spec.Template.Spec.InitContainers[i]
  292. v1.SetDefaults_Container(a)
  293. for j := range a.Ports {
  294. b := &a.Ports[j]
  295. v1.SetDefaults_ContainerPort(b)
  296. }
  297. for j := range a.Env {
  298. b := &a.Env[j]
  299. if b.ValueFrom != nil {
  300. if b.ValueFrom.FieldRef != nil {
  301. v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef)
  302. }
  303. }
  304. }
  305. v1.SetDefaults_ResourceList(&a.Resources.Limits)
  306. v1.SetDefaults_ResourceList(&a.Resources.Requests)
  307. if a.LivenessProbe != nil {
  308. v1.SetDefaults_Probe(a.LivenessProbe)
  309. if a.LivenessProbe.Handler.HTTPGet != nil {
  310. v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet)
  311. }
  312. }
  313. if a.ReadinessProbe != nil {
  314. v1.SetDefaults_Probe(a.ReadinessProbe)
  315. if a.ReadinessProbe.Handler.HTTPGet != nil {
  316. v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet)
  317. }
  318. }
  319. if a.StartupProbe != nil {
  320. v1.SetDefaults_Probe(a.StartupProbe)
  321. if a.StartupProbe.Handler.HTTPGet != nil {
  322. v1.SetDefaults_HTTPGetAction(a.StartupProbe.Handler.HTTPGet)
  323. }
  324. }
  325. if a.Lifecycle != nil {
  326. if a.Lifecycle.PostStart != nil {
  327. if a.Lifecycle.PostStart.HTTPGet != nil {
  328. v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet)
  329. }
  330. }
  331. if a.Lifecycle.PreStop != nil {
  332. if a.Lifecycle.PreStop.HTTPGet != nil {
  333. v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet)
  334. }
  335. }
  336. }
  337. }
  338. for i := range in.Spec.Template.Spec.Containers {
  339. a := &in.Spec.Template.Spec.Containers[i]
  340. v1.SetDefaults_Container(a)
  341. for j := range a.Ports {
  342. b := &a.Ports[j]
  343. v1.SetDefaults_ContainerPort(b)
  344. }
  345. for j := range a.Env {
  346. b := &a.Env[j]
  347. if b.ValueFrom != nil {
  348. if b.ValueFrom.FieldRef != nil {
  349. v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef)
  350. }
  351. }
  352. }
  353. v1.SetDefaults_ResourceList(&a.Resources.Limits)
  354. v1.SetDefaults_ResourceList(&a.Resources.Requests)
  355. if a.LivenessProbe != nil {
  356. v1.SetDefaults_Probe(a.LivenessProbe)
  357. if a.LivenessProbe.Handler.HTTPGet != nil {
  358. v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet)
  359. }
  360. }
  361. if a.ReadinessProbe != nil {
  362. v1.SetDefaults_Probe(a.ReadinessProbe)
  363. if a.ReadinessProbe.Handler.HTTPGet != nil {
  364. v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet)
  365. }
  366. }
  367. if a.StartupProbe != nil {
  368. v1.SetDefaults_Probe(a.StartupProbe)
  369. if a.StartupProbe.Handler.HTTPGet != nil {
  370. v1.SetDefaults_HTTPGetAction(a.StartupProbe.Handler.HTTPGet)
  371. }
  372. }
  373. if a.Lifecycle != nil {
  374. if a.Lifecycle.PostStart != nil {
  375. if a.Lifecycle.PostStart.HTTPGet != nil {
  376. v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet)
  377. }
  378. }
  379. if a.Lifecycle.PreStop != nil {
  380. if a.Lifecycle.PreStop.HTTPGet != nil {
  381. v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet)
  382. }
  383. }
  384. }
  385. }
  386. for i := range in.Spec.Template.Spec.EphemeralContainers {
  387. a := &in.Spec.Template.Spec.EphemeralContainers[i]
  388. for j := range a.EphemeralContainerCommon.Ports {
  389. b := &a.EphemeralContainerCommon.Ports[j]
  390. v1.SetDefaults_ContainerPort(b)
  391. }
  392. for j := range a.EphemeralContainerCommon.Env {
  393. b := &a.EphemeralContainerCommon.Env[j]
  394. if b.ValueFrom != nil {
  395. if b.ValueFrom.FieldRef != nil {
  396. v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef)
  397. }
  398. }
  399. }
  400. v1.SetDefaults_ResourceList(&a.EphemeralContainerCommon.Resources.Limits)
  401. v1.SetDefaults_ResourceList(&a.EphemeralContainerCommon.Resources.Requests)
  402. if a.EphemeralContainerCommon.LivenessProbe != nil {
  403. v1.SetDefaults_Probe(a.EphemeralContainerCommon.LivenessProbe)
  404. if a.EphemeralContainerCommon.LivenessProbe.Handler.HTTPGet != nil {
  405. v1.SetDefaults_HTTPGetAction(a.EphemeralContainerCommon.LivenessProbe.Handler.HTTPGet)
  406. }
  407. }
  408. if a.EphemeralContainerCommon.ReadinessProbe != nil {
  409. v1.SetDefaults_Probe(a.EphemeralContainerCommon.ReadinessProbe)
  410. if a.EphemeralContainerCommon.ReadinessProbe.Handler.HTTPGet != nil {
  411. v1.SetDefaults_HTTPGetAction(a.EphemeralContainerCommon.ReadinessProbe.Handler.HTTPGet)
  412. }
  413. }
  414. if a.EphemeralContainerCommon.StartupProbe != nil {
  415. v1.SetDefaults_Probe(a.EphemeralContainerCommon.StartupProbe)
  416. if a.EphemeralContainerCommon.StartupProbe.Handler.HTTPGet != nil {
  417. v1.SetDefaults_HTTPGetAction(a.EphemeralContainerCommon.StartupProbe.Handler.HTTPGet)
  418. }
  419. }
  420. if a.EphemeralContainerCommon.Lifecycle != nil {
  421. if a.EphemeralContainerCommon.Lifecycle.PostStart != nil {
  422. if a.EphemeralContainerCommon.Lifecycle.PostStart.HTTPGet != nil {
  423. v1.SetDefaults_HTTPGetAction(a.EphemeralContainerCommon.Lifecycle.PostStart.HTTPGet)
  424. }
  425. }
  426. if a.EphemeralContainerCommon.Lifecycle.PreStop != nil {
  427. if a.EphemeralContainerCommon.Lifecycle.PreStop.HTTPGet != nil {
  428. v1.SetDefaults_HTTPGetAction(a.EphemeralContainerCommon.Lifecycle.PreStop.HTTPGet)
  429. }
  430. }
  431. }
  432. }
  433. v1.SetDefaults_ResourceList(&in.Spec.Template.Spec.Overhead)
  434. for i := range in.Spec.VolumeClaimTemplates {
  435. a := &in.Spec.VolumeClaimTemplates[i]
  436. v1.SetDefaults_PersistentVolumeClaim(a)
  437. v1.SetDefaults_ResourceList(&a.Spec.Resources.Limits)
  438. v1.SetDefaults_ResourceList(&a.Spec.Resources.Requests)
  439. v1.SetDefaults_ResourceList(&a.Status.Capacity)
  440. }
  441. }
  442. func SetObjectDefaults_StatefulSetList(in *v1beta1.StatefulSetList) {
  443. for i := range in.Items {
  444. a := &in.Items[i]
  445. SetObjectDefaults_StatefulSet(a)
  446. }
  447. }