onnx2tf 1.26.4__tar.gz → 1.26.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. {onnx2tf-1.26.4/onnx2tf.egg-info → onnx2tf-1.26.6}/PKG-INFO +17 -3
  2. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/README.md +16 -2
  3. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/__init__.py +1 -1
  4. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/onnx2tf.py +21 -0
  5. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/NonMaxSuppression.py +55 -27
  6. {onnx2tf-1.26.4 → onnx2tf-1.26.6/onnx2tf.egg-info}/PKG-INFO +17 -3
  7. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/LICENSE +0 -0
  8. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/LICENSE_onnx-tensorflow +0 -0
  9. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/__main__.py +0 -0
  10. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Abs.py +0 -0
  11. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Acos.py +0 -0
  12. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Acosh.py +0 -0
  13. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Add.py +0 -0
  14. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/And.py +0 -0
  15. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ArgMax.py +0 -0
  16. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ArgMin.py +0 -0
  17. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Asin.py +0 -0
  18. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Asinh.py +0 -0
  19. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Atan.py +0 -0
  20. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Atanh.py +0 -0
  21. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/AveragePool.py +0 -0
  22. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/BatchNormalization.py +0 -0
  23. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Bernoulli.py +0 -0
  24. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/BitShift.py +0 -0
  25. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Cast.py +0 -0
  26. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Ceil.py +0 -0
  27. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Celu.py +0 -0
  28. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Clip.py +0 -0
  29. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Col2Im.py +0 -0
  30. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Compress.py +0 -0
  31. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Concat.py +0 -0
  32. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ConcatFromSequence.py +0 -0
  33. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Constant.py +0 -0
  34. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ConstantOfShape.py +0 -0
  35. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Conv.py +0 -0
  36. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ConvInteger.py +0 -0
  37. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ConvTranspose.py +0 -0
  38. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Cos.py +0 -0
  39. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Cosh.py +0 -0
  40. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/CumSum.py +0 -0
  41. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/DepthToSpace.py +0 -0
  42. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/DequantizeLinear.py +0 -0
  43. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Det.py +0 -0
  44. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Div.py +0 -0
  45. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Dropout.py +0 -0
  46. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/DynamicQuantizeLinear.py +0 -0
  47. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Einsum.py +0 -0
  48. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Elu.py +0 -0
  49. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Equal.py +0 -0
  50. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Erf.py +0 -0
  51. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Exp.py +0 -0
  52. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Expand.py +0 -0
  53. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/EyeLike.py +0 -0
  54. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Flatten.py +0 -0
  55. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Floor.py +0 -0
  56. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/FusedConv.py +0 -0
  57. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/GRU.py +0 -0
  58. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Gather.py +0 -0
  59. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/GatherElements.py +0 -0
  60. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/GatherND.py +0 -0
  61. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Gelu.py +0 -0
  62. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Gemm.py +0 -0
  63. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/GlobalAveragePool.py +0 -0
  64. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/GlobalLpPool.py +0 -0
  65. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/GlobalMaxPool.py +0 -0
  66. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Greater.py +0 -0
  67. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/GreaterOrEqual.py +0 -0
  68. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/GridSample.py +0 -0
  69. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/GroupNorm.py +0 -0
  70. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/HammingWindow.py +0 -0
  71. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/HannWindow.py +0 -0
  72. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/HardSigmoid.py +0 -0
  73. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/HardSwish.py +0 -0
  74. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Hardmax.py +0 -0
  75. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Identity.py +0 -0
  76. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/If.py +0 -0
  77. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Input.py +0 -0
  78. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/InstanceNormalization.py +0 -0
  79. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Inverse.py +0 -0
  80. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/IsInf.py +0 -0
  81. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/IsNaN.py +0 -0
  82. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/LRN.py +0 -0
  83. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/LSTM.py +0 -0
  84. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/LayerNormalization.py +0 -0
  85. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/LeakyRelu.py +0 -0
  86. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Less.py +0 -0
  87. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/LessOrEqual.py +0 -0
  88. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Log.py +0 -0
  89. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/LogSoftmax.py +0 -0
  90. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/LpNormalization.py +0 -0
  91. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/MatMul.py +0 -0
  92. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/MatMulInteger.py +0 -0
  93. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Max.py +0 -0
  94. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/MaxPool.py +0 -0
  95. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/MaxUnpool.py +0 -0
  96. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Mean.py +0 -0
  97. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/MeanVarianceNormalization.py +0 -0
  98. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/MelWeightMatrix.py +0 -0
  99. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Min.py +0 -0
  100. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Mish.py +0 -0
  101. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Mod.py +0 -0
  102. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Mul.py +0 -0
  103. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Multinomial.py +0 -0
  104. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Neg.py +0 -0
  105. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/NonZero.py +0 -0
  106. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Not.py +0 -0
  107. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/OneHot.py +0 -0
  108. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/OptionalGetElement.py +0 -0
  109. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/OptionalHasElement.py +0 -0
  110. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Or.py +0 -0
  111. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/PRelu.py +0 -0
  112. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Pad.py +0 -0
  113. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Pow.py +0 -0
  114. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/QLinearAdd.py +0 -0
  115. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/QLinearConcat.py +0 -0
  116. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/QLinearConv.py +0 -0
  117. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/QLinearLeakyRelu.py +0 -0
  118. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/QLinearMatMul.py +0 -0
  119. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/QLinearMul.py +0 -0
  120. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/QLinearSigmoid.py +0 -0
  121. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/QLinearSoftmax.py +0 -0
  122. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/QuantizeLinear.py +0 -0
  123. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/RNN.py +0 -0
  124. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/RandomNormal.py +0 -0
  125. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/RandomNormalLike.py +0 -0
  126. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/RandomUniform.py +0 -0
  127. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/RandomUniformLike.py +0 -0
  128. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Range.py +0 -0
  129. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Reciprocal.py +0 -0
  130. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ReduceL1.py +0 -0
  131. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ReduceL2.py +0 -0
  132. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ReduceLogSum.py +0 -0
  133. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ReduceLogSumExp.py +0 -0
  134. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ReduceMax.py +0 -0
  135. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ReduceMean.py +0 -0
  136. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ReduceMin.py +0 -0
  137. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ReduceProd.py +0 -0
  138. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ReduceSum.py +0 -0
  139. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ReduceSumSquare.py +0 -0
  140. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Relu.py +0 -0
  141. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Reshape.py +0 -0
  142. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Resize.py +0 -0
  143. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ReverseSequence.py +0 -0
  144. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/RoiAlign.py +0 -0
  145. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Round.py +0 -0
  146. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/STFT.py +0 -0
  147. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ScaleAndTranslate.py +0 -0
  148. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Scatter.py +0 -0
  149. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ScatterElements.py +0 -0
  150. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ScatterND.py +0 -0
  151. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Selu.py +0 -0
  152. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/SequenceAt.py +0 -0
  153. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/SequenceConstruct.py +0 -0
  154. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/SequenceEmpty.py +0 -0
  155. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/SequenceErase.py +0 -0
  156. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/SequenceInsert.py +0 -0
  157. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/SequenceLength.py +0 -0
  158. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Shape.py +0 -0
  159. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Shrink.py +0 -0
  160. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Sigmoid.py +0 -0
  161. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Sign.py +0 -0
  162. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Sin.py +0 -0
  163. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Sinh.py +0 -0
  164. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Size.py +0 -0
  165. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Slice.py +0 -0
  166. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Softmax.py +0 -0
  167. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Softplus.py +0 -0
  168. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Softsign.py +0 -0
  169. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/SpaceToDepth.py +0 -0
  170. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Split.py +0 -0
  171. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/SplitToSequence.py +0 -0
  172. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Sqrt.py +0 -0
  173. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Squeeze.py +0 -0
  174. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/StringNormalizer.py +0 -0
  175. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Sub.py +0 -0
  176. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Sum.py +0 -0
  177. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Tan.py +0 -0
  178. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Tanh.py +0 -0
  179. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/ThresholdedRelu.py +0 -0
  180. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Tile.py +0 -0
  181. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/TopK.py +0 -0
  182. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Transpose.py +0 -0
  183. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Trilu.py +0 -0
  184. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Unique.py +0 -0
  185. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Unsqueeze.py +0 -0
  186. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Upsample.py +0 -0
  187. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Where.py +0 -0
  188. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/Xor.py +0 -0
  189. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/_Loop.py +0 -0
  190. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/__Loop.py +0 -0
  191. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/ops/__init__.py +0 -0
  192. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/utils/__init__.py +0 -0
  193. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/utils/common_functions.py +0 -0
  194. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/utils/enums.py +0 -0
  195. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf/utils/logging.py +0 -0
  196. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf.egg-info/SOURCES.txt +0 -0
  197. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf.egg-info/dependency_links.txt +0 -0
  198. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf.egg-info/entry_points.txt +0 -0
  199. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/onnx2tf.egg-info/top_level.txt +0 -0
  200. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/setup.cfg +0 -0
  201. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/setup.py +0 -0
  202. {onnx2tf-1.26.4 → onnx2tf-1.26.6}/tests/test_model_convert.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: onnx2tf
3
- Version: 1.26.4
3
+ Version: 1.26.6
4
4
  Summary: Self-Created Tools to convert ONNX files (NCHW) to TensorFlow/TFLite/Keras format (NHWC). The purpose of this tool is to solve the massive Transpose extrapolation problem in onnx-tensorflow (onnx-tf).
5
5
  Home-page: https://github.com/PINTO0309/onnx2tf
6
6
  Author: Katsuya Hyodo
@@ -323,7 +323,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
323
323
  docker run --rm -it \
324
324
  -v `pwd`:/workdir \
325
325
  -w /workdir \
326
- ghcr.io/pinto0309/onnx2tf:1.26.4
326
+ ghcr.io/pinto0309/onnx2tf:1.26.6
327
327
 
328
328
  or
329
329
 
@@ -331,7 +331,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
331
331
  docker run --rm -it \
332
332
  -v `pwd`:/workdir \
333
333
  -w /workdir \
334
- docker.io/pinto0309/onnx2tf:1.26.4
334
+ docker.io/pinto0309/onnx2tf:1.26.6
335
335
 
336
336
  or
337
337
 
@@ -1550,6 +1550,7 @@ usage: onnx2tf
1550
1550
  [-ois OVERWRITE_INPUT_SHAPE [OVERWRITE_INPUT_SHAPE ...]]
1551
1551
  [-nlt]
1552
1552
  [-onwdt]
1553
+ [-snms {v4,v5}]
1553
1554
  [-k KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES [KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES ...]]
1554
1555
  [-kt KEEP_NWC_OR_NHWC_OR_NDHWC_INPUT_NAMES [KEEP_NWC_OR_NHWC_OR_NDHWC_INPUT_NAMES ...]]
1555
1556
  [-kat KEEP_SHAPE_ABSOLUTELY_INPUT_NAMES [KEEP_SHAPE_ABSOLUTELY_INPUT_NAMES ...]]
@@ -1749,6 +1750,12 @@ optional arguments:
1749
1750
  enable --output_nms_with_dynamic_tensor:
1750
1751
  output_tensor_shape: [N, 7]
1751
1752
 
1753
+ -snms {v4,v5}, --switch_nms_version {v4,v5}
1754
+ Switch the NMS version to V4 or V5 to convert.
1755
+ e.g.
1756
+ NonMaxSuppressionV4(default): --switch_nms_version v4
1757
+ NonMaxSuppressionV5: --switch_nms_version v5
1758
+
1752
1759
  -k KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES [KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES ...], \
1753
1760
  --keep_ncw_or_nchw_or_ncdhw_input_names KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES \
1754
1761
  [KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES ...]
@@ -2034,6 +2041,7 @@ convert(
2034
2041
  overwrite_input_shape: Union[List[str], NoneType] = None,
2035
2042
  no_large_tensor: Optional[bool] = False,
2036
2043
  output_nms_with_dynamic_tensor: Optional[bool] = False,
2044
+ switch_nms_version: Optional[str] = 'v4',
2037
2045
  keep_ncw_or_nchw_or_ncdhw_input_names: Union[List[str], NoneType] = None,
2038
2046
  keep_nwc_or_nhwc_or_ndhwc_input_names: Union[List[str], NoneType] = None,
2039
2047
  keep_shape_absolutely_input_names: Optional[List[str]] = None,
@@ -2239,6 +2247,12 @@ convert(
2239
2247
  enable --output_nms_with_dynamic_tensor:
2240
2248
  output_tensor_shape: [N, 7]
2241
2249
 
2250
+ switch_nms_version {v4,v5}
2251
+ Switch the NMS version to V4 or V5 to convert.
2252
+ e.g.
2253
+ NonMaxSuppressionV4(default): switch_nms_version="v4"
2254
+ NonMaxSuppressionV5: switch_nms_version="v5"
2255
+
2242
2256
  keep_ncw_or_nchw_or_ncdhw_input_names: Optional[List[str]]
2243
2257
  Holds the NCW or NCHW or NCDHW of the input shape for the specified INPUT OP names.
2244
2258
  If a nonexistent INPUT OP name is specified, it is ignored.
@@ -299,7 +299,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
299
299
  docker run --rm -it \
300
300
  -v `pwd`:/workdir \
301
301
  -w /workdir \
302
- ghcr.io/pinto0309/onnx2tf:1.26.4
302
+ ghcr.io/pinto0309/onnx2tf:1.26.6
303
303
 
304
304
  or
305
305
 
@@ -307,7 +307,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
307
307
  docker run --rm -it \
308
308
  -v `pwd`:/workdir \
309
309
  -w /workdir \
310
- docker.io/pinto0309/onnx2tf:1.26.4
310
+ docker.io/pinto0309/onnx2tf:1.26.6
311
311
 
312
312
  or
313
313
 
@@ -1526,6 +1526,7 @@ usage: onnx2tf
1526
1526
  [-ois OVERWRITE_INPUT_SHAPE [OVERWRITE_INPUT_SHAPE ...]]
1527
1527
  [-nlt]
1528
1528
  [-onwdt]
1529
+ [-snms {v4,v5}]
1529
1530
  [-k KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES [KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES ...]]
1530
1531
  [-kt KEEP_NWC_OR_NHWC_OR_NDHWC_INPUT_NAMES [KEEP_NWC_OR_NHWC_OR_NDHWC_INPUT_NAMES ...]]
1531
1532
  [-kat KEEP_SHAPE_ABSOLUTELY_INPUT_NAMES [KEEP_SHAPE_ABSOLUTELY_INPUT_NAMES ...]]
@@ -1725,6 +1726,12 @@ optional arguments:
1725
1726
  enable --output_nms_with_dynamic_tensor:
1726
1727
  output_tensor_shape: [N, 7]
1727
1728
 
1729
+ -snms {v4,v5}, --switch_nms_version {v4,v5}
1730
+ Switch the NMS version to V4 or V5 to convert.
1731
+ e.g.
1732
+ NonMaxSuppressionV4(default): --switch_nms_version v4
1733
+ NonMaxSuppressionV5: --switch_nms_version v5
1734
+
1728
1735
  -k KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES [KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES ...], \
1729
1736
  --keep_ncw_or_nchw_or_ncdhw_input_names KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES \
1730
1737
  [KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES ...]
@@ -2010,6 +2017,7 @@ convert(
2010
2017
  overwrite_input_shape: Union[List[str], NoneType] = None,
2011
2018
  no_large_tensor: Optional[bool] = False,
2012
2019
  output_nms_with_dynamic_tensor: Optional[bool] = False,
2020
+ switch_nms_version: Optional[str] = 'v4',
2013
2021
  keep_ncw_or_nchw_or_ncdhw_input_names: Union[List[str], NoneType] = None,
2014
2022
  keep_nwc_or_nhwc_or_ndhwc_input_names: Union[List[str], NoneType] = None,
2015
2023
  keep_shape_absolutely_input_names: Optional[List[str]] = None,
@@ -2215,6 +2223,12 @@ convert(
2215
2223
  enable --output_nms_with_dynamic_tensor:
2216
2224
  output_tensor_shape: [N, 7]
2217
2225
 
2226
+ switch_nms_version {v4,v5}
2227
+ Switch the NMS version to V4 or V5 to convert.
2228
+ e.g.
2229
+ NonMaxSuppressionV4(default): switch_nms_version="v4"
2230
+ NonMaxSuppressionV5: switch_nms_version="v5"
2231
+
2218
2232
  keep_ncw_or_nchw_or_ncdhw_input_names: Optional[List[str]]
2219
2233
  Holds the NCW or NCHW or NCDHW of the input shape for the specified INPUT OP names.
2220
2234
  If a nonexistent INPUT OP name is specified, it is ignored.
@@ -1,3 +1,3 @@
1
1
  from onnx2tf.onnx2tf import convert, main
2
2
 
3
- __version__ = '1.26.4'
3
+ __version__ = '1.26.6'
@@ -80,6 +80,7 @@ def convert(
80
80
  overwrite_input_shape: Optional[List[str]] = None,
81
81
  no_large_tensor: Optional[bool] = False,
82
82
  output_nms_with_dynamic_tensor: Optional[bool] = False,
83
+ switch_nms_version: Optional[str] = 'v4',
83
84
  keep_ncw_or_nchw_or_ncdhw_input_names: Optional[List[str]] = None,
84
85
  keep_nwc_or_nhwc_or_ndhwc_input_names: Optional[List[str]] = None,
85
86
  keep_shape_absolutely_input_names: Optional[List[str]] = None,
@@ -270,6 +271,12 @@ def convert(
270
271
  enable --output_nms_with_dynamic_tensor:\n
271
272
  output_tensor_shape: [N, 7]
272
273
 
274
+ switch_nms_version: Optional[str]
275
+ Switch the NMS version to V4 or V5 to convert.\n\n
276
+ e.g.\n
277
+ NonMaxSuppressionV4(default): --switch_nms_version v4\n
278
+ NonMaxSuppressionV5: --switch_nms_version v5
279
+
273
280
  keep_ncw_or_nchw_or_ncdhw_input_names: Optional[List[str]]
274
281
  Holds the NCW or NCHW or NCDHW of the input shape for the specified INPUT OP names.\n
275
282
  If a nonexistent INPUT OP name is specified, it is ignored.\n
@@ -921,6 +928,7 @@ def convert(
921
928
  'mvn_epsilon': mvn_epsilon,
922
929
  'output_signaturedefs': output_signaturedefs,
923
930
  'output_nms_with_dynamic_tensor': output_nms_with_dynamic_tensor,
931
+ 'switch_nms_version': switch_nms_version,
924
932
  'output_integer_quantized_tflite': output_integer_quantized_tflite,
925
933
  'gelu_replace_op_names': {},
926
934
  'space_to_depth_replace_op_names': {},
@@ -2233,6 +2241,18 @@ def main():
2233
2241
  'enable --output_nms_with_dynamic_tensor: \n' +
2234
2242
  ' output_tensor_shape: [N, 7]'
2235
2243
  )
2244
+ parser.add_argument(
2245
+ '-snms',
2246
+ '--switch_nms_version',
2247
+ type=str,
2248
+ choices=['v4', 'v5'],
2249
+ default='v4',
2250
+ help=\
2251
+ 'Switch the NMS version to V4 or V5 to convert. \n' +
2252
+ 'e.g. \n' +
2253
+ 'NonMaxSuppressionV4(default): --switch_nms_version v4 \n' +
2254
+ 'NonMaxSuppressionV5: --switch_nms_version v5'
2255
+ )
2236
2256
  parser.add_argument(
2237
2257
  '-k',
2238
2258
  '--keep_ncw_or_nchw_or_ncdhw_input_names',
@@ -2623,6 +2643,7 @@ def main():
2623
2643
  overwrite_input_shape=args.overwrite_input_shape,
2624
2644
  no_large_tensor=args.no_large_tensor,
2625
2645
  output_nms_with_dynamic_tensor=args.output_nms_with_dynamic_tensor,
2646
+ switch_nms_version=args.switch_nms_version,
2626
2647
  keep_ncw_or_nchw_or_ncdhw_input_names=args.keep_ncw_or_nchw_or_ncdhw_input_names,
2627
2648
  keep_nwc_or_nhwc_or_ndhwc_input_names=args.keep_nwc_or_nhwc_or_ndhwc_input_names,
2628
2649
  keep_shape_absolutely_input_names=args.keep_shape_absolutely_input_names,
@@ -25,8 +25,9 @@ from tensorflow.python.util import dispatch
25
25
 
26
26
 
27
27
  class NMSLayer(tf_keras.layers.Layer):
28
- def __init__(self):
28
+ def __init__(self, switch_nms_version='v4'):
29
29
  super(NMSLayer, self).__init__()
30
+ self.switch_nms_version = switch_nms_version
30
31
 
31
32
  @dispatch.add_dispatch_support
32
33
  def non_max_suppression(
@@ -40,29 +41,56 @@ class NMSLayer(tf_keras.layers.Layer):
40
41
  name=None,
41
42
  ):
42
43
  with ops.name_scope(name, 'non_max_suppression'):
43
- selected_indices, num_valid = gen_image_ops.non_max_suppression_v4(
44
- boxes=boxes,
45
- scores=scores,
46
- max_output_size=max_output_size \
47
- if not isinstance(max_output_size, np.ndarray) \
48
- else tf.convert_to_tensor(
49
- value=max_output_size,
50
- name='max_output_size'
51
- ),
52
- iou_threshold=iou_threshold \
53
- if not isinstance(iou_threshold, np.ndarray) \
54
- else tf.convert_to_tensor(
55
- value=iou_threshold,
56
- name='iou_threshold',
57
- ),
58
- score_threshold=score_threshold \
59
- if not isinstance(score_threshold, np.ndarray) \
60
- else tf.convert_to_tensor(
61
- value=score_threshold,
62
- name='score_threshold',
63
- ),
64
- pad_to_max_output_size=pad_to_max_output_size,
65
- )
44
+ if self.switch_nms_version == 'v4':
45
+ selected_indices, num_valid = gen_image_ops.non_max_suppression_v4(
46
+ boxes=boxes,
47
+ scores=scores,
48
+ max_output_size=max_output_size \
49
+ if not isinstance(max_output_size, np.ndarray) \
50
+ else tf.convert_to_tensor(
51
+ value=max_output_size,
52
+ name='max_output_size'
53
+ ),
54
+ iou_threshold=iou_threshold \
55
+ if not isinstance(iou_threshold, np.ndarray) \
56
+ else tf.convert_to_tensor(
57
+ value=iou_threshold,
58
+ name='iou_threshold',
59
+ ),
60
+ score_threshold=score_threshold \
61
+ if not isinstance(score_threshold, np.ndarray) \
62
+ else tf.convert_to_tensor(
63
+ value=score_threshold,
64
+ name='score_threshold',
65
+ ),
66
+ pad_to_max_output_size=pad_to_max_output_size,
67
+ )
68
+
69
+ elif self.switch_nms_version == 'v5':
70
+ selected_indices, selected_scores, num_valid = gen_image_ops.non_max_suppression_v5(
71
+ boxes=boxes,
72
+ scores=scores,
73
+ max_output_size=max_output_size \
74
+ if not isinstance(max_output_size, np.ndarray) \
75
+ else tf.convert_to_tensor(
76
+ value=max_output_size,
77
+ name='max_output_size'
78
+ ),
79
+ iou_threshold=iou_threshold \
80
+ if not isinstance(iou_threshold, np.ndarray) \
81
+ else tf.convert_to_tensor(
82
+ value=iou_threshold,
83
+ name='iou_threshold',
84
+ ),
85
+ score_threshold=score_threshold \
86
+ if not isinstance(score_threshold, np.ndarray) \
87
+ else tf.convert_to_tensor(
88
+ value=score_threshold,
89
+ name='score_threshold',
90
+ ),
91
+ soft_nms_sigma=0.0,
92
+ pad_to_max_output_size=pad_to_max_output_size,
93
+ )
66
94
  if pad_to_max_output_size:
67
95
  return selected_indices
68
96
 
@@ -130,8 +158,8 @@ def make_node(
130
158
  scores = tf_layers_dict[graph_node_input_2.name]['tf_node'] \
131
159
  if isinstance(graph_node_input_2, gs.Variable) else graph_node_input_2
132
160
 
133
- output_nms_with_dynamic_tensor: bool = \
134
- kwargs['output_nms_with_dynamic_tensor']
161
+ output_nms_with_dynamic_tensor: bool = kwargs['output_nms_with_dynamic_tensor']
162
+ switch_nms_version: str = kwargs['switch_nms_version']
135
163
 
136
164
  # Pre-process transpose
137
165
  boxes = pre_process_transpose(
@@ -339,7 +367,7 @@ def make_node(
339
367
  axis=0,
340
368
  )
341
369
  # get the selected boxes indices
342
- nms = NMSLayer()
370
+ nms = NMSLayer(switch_nms_version=switch_nms_version)
343
371
  selected_indices = nms(
344
372
  boxes=tf_boxes,
345
373
  scores=tf_scores,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: onnx2tf
3
- Version: 1.26.4
3
+ Version: 1.26.6
4
4
  Summary: Self-Created Tools to convert ONNX files (NCHW) to TensorFlow/TFLite/Keras format (NHWC). The purpose of this tool is to solve the massive Transpose extrapolation problem in onnx-tensorflow (onnx-tf).
5
5
  Home-page: https://github.com/PINTO0309/onnx2tf
6
6
  Author: Katsuya Hyodo
@@ -323,7 +323,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
323
323
  docker run --rm -it \
324
324
  -v `pwd`:/workdir \
325
325
  -w /workdir \
326
- ghcr.io/pinto0309/onnx2tf:1.26.4
326
+ ghcr.io/pinto0309/onnx2tf:1.26.6
327
327
 
328
328
  or
329
329
 
@@ -331,7 +331,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
331
331
  docker run --rm -it \
332
332
  -v `pwd`:/workdir \
333
333
  -w /workdir \
334
- docker.io/pinto0309/onnx2tf:1.26.4
334
+ docker.io/pinto0309/onnx2tf:1.26.6
335
335
 
336
336
  or
337
337
 
@@ -1550,6 +1550,7 @@ usage: onnx2tf
1550
1550
  [-ois OVERWRITE_INPUT_SHAPE [OVERWRITE_INPUT_SHAPE ...]]
1551
1551
  [-nlt]
1552
1552
  [-onwdt]
1553
+ [-snms {v4,v5}]
1553
1554
  [-k KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES [KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES ...]]
1554
1555
  [-kt KEEP_NWC_OR_NHWC_OR_NDHWC_INPUT_NAMES [KEEP_NWC_OR_NHWC_OR_NDHWC_INPUT_NAMES ...]]
1555
1556
  [-kat KEEP_SHAPE_ABSOLUTELY_INPUT_NAMES [KEEP_SHAPE_ABSOLUTELY_INPUT_NAMES ...]]
@@ -1749,6 +1750,12 @@ optional arguments:
1749
1750
  enable --output_nms_with_dynamic_tensor:
1750
1751
  output_tensor_shape: [N, 7]
1751
1752
 
1753
+ -snms {v4,v5}, --switch_nms_version {v4,v5}
1754
+ Switch the NMS version to V4 or V5 to convert.
1755
+ e.g.
1756
+ NonMaxSuppressionV4(default): --switch_nms_version v4
1757
+ NonMaxSuppressionV5: --switch_nms_version v5
1758
+
1752
1759
  -k KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES [KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES ...], \
1753
1760
  --keep_ncw_or_nchw_or_ncdhw_input_names KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES \
1754
1761
  [KEEP_NCW_OR_NCHW_OR_NCDHW_INPUT_NAMES ...]
@@ -2034,6 +2041,7 @@ convert(
2034
2041
  overwrite_input_shape: Union[List[str], NoneType] = None,
2035
2042
  no_large_tensor: Optional[bool] = False,
2036
2043
  output_nms_with_dynamic_tensor: Optional[bool] = False,
2044
+ switch_nms_version: Optional[str] = 'v4',
2037
2045
  keep_ncw_or_nchw_or_ncdhw_input_names: Union[List[str], NoneType] = None,
2038
2046
  keep_nwc_or_nhwc_or_ndhwc_input_names: Union[List[str], NoneType] = None,
2039
2047
  keep_shape_absolutely_input_names: Optional[List[str]] = None,
@@ -2239,6 +2247,12 @@ convert(
2239
2247
  enable --output_nms_with_dynamic_tensor:
2240
2248
  output_tensor_shape: [N, 7]
2241
2249
 
2250
+ switch_nms_version {v4,v5}
2251
+ Switch the NMS version to V4 or V5 to convert.
2252
+ e.g.
2253
+ NonMaxSuppressionV4(default): switch_nms_version="v4"
2254
+ NonMaxSuppressionV5: switch_nms_version="v5"
2255
+
2242
2256
  keep_ncw_or_nchw_or_ncdhw_input_names: Optional[List[str]]
2243
2257
  Holds the NCW or NCHW or NCDHW of the input shape for the specified INPUT OP names.
2244
2258
  If a nonexistent INPUT OP name is specified, it is ignored.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes