arcadia 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. data/README +9 -5
  2. data/bin/arcadia +13 -13
  3. data/bin/arcadia.bat +1 -0
  4. data/conf/arcadia.conf +6 -5
  5. data/conf/arcadia.init.rb +34 -34
  6. data/conf/arcadia.res.rb +6 -0
  7. data/ext/ae-breakpoints/ae-breakpoints.conf +10 -0
  8. data/ext/ae-breakpoints/ae-breakpoints.rb +349 -0
  9. data/ext/ae-complete-code/ae-complete-code.conf +0 -0
  10. data/ext/ae-complete-code/ae-complete-code.rb +74 -76
  11. data/ext/ae-doc-code/ae-doc-code.conf +15 -15
  12. data/ext/ae-doc-code/ae-doc-code.rb +300 -295
  13. data/ext/ae-editor/ae-editor.conf +4 -4
  14. data/ext/ae-editor/ae-editor.rb +450 -140
  15. data/ext/ae-editor/langs/conf.lang +0 -0
  16. data/ext/ae-editor/langs/lang.lang.bind +0 -0
  17. data/ext/ae-editor/langs/rb.lang +0 -0
  18. data/ext/ae-editor/langs/rbw.lang.bind +0 -0
  19. data/ext/ae-event-log/ae-event-log.conf +0 -0
  20. data/ext/ae-event-log/ae-event-log.rb +0 -0
  21. data/ext/ae-file-history/ae-file-history.conf +0 -0
  22. data/ext/ae-file-history/ae-file-history.rb +437 -373
  23. data/ext/ae-flag/ae-flag.conf +0 -0
  24. data/ext/ae-flag/ae-flag.rb +0 -0
  25. data/ext/ae-output-event/ae-output-event.conf +0 -0
  26. data/ext/ae-output/ae-output.conf +0 -0
  27. data/ext/ae-output/ae-output.rb +0 -0
  28. data/ext/ae-rad/ae-rad-inspector.rb +0 -0
  29. data/ext/ae-rad/ae-rad-libs.rb +0 -0
  30. data/ext/ae-rad/ae-rad-palette.rb +0 -0
  31. data/ext/ae-rad/ae-rad.conf +0 -0
  32. data/ext/ae-rad/ae-rad.rb +0 -0
  33. data/ext/ae-rad/lib/tk/al-tk.rb +4 -4
  34. data/ext/ae-rad/lib/tk/al-tk.res.rb +0 -0
  35. data/ext/ae-rad/lib/tk/al-tkarcadia.rb +25 -26
  36. data/ext/ae-rad/lib/tk/al-tkcustom.rb +0 -0
  37. data/ext/ae-rad/lib/tkext/al-bwidget.rb +0 -0
  38. data/ext/ae-rad/lib/tkext/al-iwidgets.rb +0 -0
  39. data/ext/ae-rad/lib/tkext/al-tile.rb +0 -0
  40. data/ext/ae-rad/lib/tkext/al-tktable.rb +0 -0
  41. data/ext/ae-ruby-debug/ae-ruby-debug.conf +0 -0
  42. data/ext/ae-ruby-debug/ae-ruby-debug.rb +1589 -1566
  43. data/ext/ae-search-in-files/ae-search-in-files.conf +0 -0
  44. data/ext/ae-search-in-files/ae-search-in-files.rb +0 -0
  45. data/ext/ae-shell/ae-shell.conf +0 -0
  46. data/ext/ae-shell/ae-shell.rb +0 -0
  47. data/ext/ae-shell/sh.rb +0 -0
  48. data/lib/a-commons.rb +27 -8
  49. data/lib/a-contracts.rb +3 -1
  50. data/lib/a-core.rb +33 -12
  51. data/lib/a-tkcommons.rb +17 -1
  52. data/tcl/BWidget-1.8.0/BWman/ArrowButton.html +0 -0
  53. data/tcl/BWidget-1.8.0/BWman/BWidget.html +0 -0
  54. data/tcl/BWidget-1.8.0/BWman/Button.html +0 -0
  55. data/tcl/BWidget-1.8.0/BWman/ButtonBox.html +0 -0
  56. data/tcl/BWidget-1.8.0/BWman/ComboBox.html +0 -0
  57. data/tcl/BWidget-1.8.0/BWman/Dialog.html +0 -0
  58. data/tcl/BWidget-1.8.0/BWman/DragSite.html +0 -0
  59. data/tcl/BWidget-1.8.0/BWman/DropSite.html +0 -0
  60. data/tcl/BWidget-1.8.0/BWman/DynamicHelp.html +0 -0
  61. data/tcl/BWidget-1.8.0/BWman/Entry.html +0 -0
  62. data/tcl/BWidget-1.8.0/BWman/Label.html +0 -0
  63. data/tcl/BWidget-1.8.0/BWman/LabelEntry.html +0 -0
  64. data/tcl/BWidget-1.8.0/BWman/LabelFrame.html +0 -0
  65. data/tcl/BWidget-1.8.0/BWman/ListBox.html +0 -0
  66. data/tcl/BWidget-1.8.0/BWman/MainFrame.html +0 -0
  67. data/tcl/BWidget-1.8.0/BWman/MessageDlg.html +0 -0
  68. data/tcl/BWidget-1.8.0/BWman/NoteBook.html +0 -0
  69. data/tcl/BWidget-1.8.0/BWman/PagesManager.html +0 -0
  70. data/tcl/BWidget-1.8.0/BWman/PanedWindow.html +0 -0
  71. data/tcl/BWidget-1.8.0/BWman/PanelFrame.html +0 -0
  72. data/tcl/BWidget-1.8.0/BWman/PasswdDlg.html +0 -0
  73. data/tcl/BWidget-1.8.0/BWman/ProgressBar.html +0 -0
  74. data/tcl/BWidget-1.8.0/BWman/ProgressDlg.html +0 -0
  75. data/tcl/BWidget-1.8.0/BWman/ScrollView.html +0 -0
  76. data/tcl/BWidget-1.8.0/BWman/ScrollableFrame.html +0 -0
  77. data/tcl/BWidget-1.8.0/BWman/ScrolledWindow.html +0 -0
  78. data/tcl/BWidget-1.8.0/BWman/SelectColor.html +0 -0
  79. data/tcl/BWidget-1.8.0/BWman/SelectFont.html +0 -0
  80. data/tcl/BWidget-1.8.0/BWman/Separator.html +0 -0
  81. data/tcl/BWidget-1.8.0/BWman/SpinBox.html +0 -0
  82. data/tcl/BWidget-1.8.0/BWman/StatusBar.html +0 -0
  83. data/tcl/BWidget-1.8.0/BWman/TitleFrame.html +0 -0
  84. data/tcl/BWidget-1.8.0/BWman/Tree.html +0 -0
  85. data/tcl/BWidget-1.8.0/BWman/Widget.html +0 -0
  86. data/tcl/BWidget-1.8.0/BWman/contents.html +0 -0
  87. data/tcl/BWidget-1.8.0/BWman/index.html +0 -0
  88. data/tcl/BWidget-1.8.0/BWman/navtree.html +0 -0
  89. data/tcl/BWidget-1.8.0/BWman/options.htm +0 -0
  90. data/tcl/BWidget-1.8.0/CHANGES.txt +0 -0
  91. data/tcl/BWidget-1.8.0/ChangeLog +0 -0
  92. data/tcl/BWidget-1.8.0/LICENSE.txt +0 -0
  93. data/tcl/BWidget-1.8.0/README.txt +0 -0
  94. data/tcl/BWidget-1.8.0/arrow.tcl +0 -0
  95. data/tcl/BWidget-1.8.0/bitmap.tcl +0 -0
  96. data/tcl/BWidget-1.8.0/button.tcl +0 -0
  97. data/tcl/BWidget-1.8.0/buttonbox.tcl +0 -0
  98. data/tcl/BWidget-1.8.0/color.tcl +0 -0
  99. data/tcl/BWidget-1.8.0/combobox.tcl +0 -0
  100. data/tcl/BWidget-1.8.0/demo/basic.tcl +0 -0
  101. data/tcl/BWidget-1.8.0/demo/bwidget.xbm +0 -0
  102. data/tcl/BWidget-1.8.0/demo/demo.tcl +0 -0
  103. data/tcl/BWidget-1.8.0/demo/dnd.tcl +0 -0
  104. data/tcl/BWidget-1.8.0/demo/manager.tcl +0 -0
  105. data/tcl/BWidget-1.8.0/demo/select.tcl +0 -0
  106. data/tcl/BWidget-1.8.0/demo/tmpldlg.tcl +0 -0
  107. data/tcl/BWidget-1.8.0/demo/tree.tcl +0 -0
  108. data/tcl/BWidget-1.8.0/demo/x1.xbm +0 -0
  109. data/tcl/BWidget-1.8.0/dialog.tcl +0 -0
  110. data/tcl/BWidget-1.8.0/dragsite.tcl +0 -0
  111. data/tcl/BWidget-1.8.0/dropsite.tcl +0 -0
  112. data/tcl/BWidget-1.8.0/dynhelp.tcl +0 -0
  113. data/tcl/BWidget-1.8.0/entry.tcl +0 -0
  114. data/tcl/BWidget-1.8.0/font.tcl +0 -0
  115. data/tcl/BWidget-1.8.0/images/bold.gif +0 -0
  116. data/tcl/BWidget-1.8.0/images/copy.gif +0 -0
  117. data/tcl/BWidget-1.8.0/images/cut.gif +0 -0
  118. data/tcl/BWidget-1.8.0/images/dragfile.gif +0 -0
  119. data/tcl/BWidget-1.8.0/images/dragicon.gif +0 -0
  120. data/tcl/BWidget-1.8.0/images/error.gif +0 -0
  121. data/tcl/BWidget-1.8.0/images/file.gif +0 -0
  122. data/tcl/BWidget-1.8.0/images/folder.gif +0 -0
  123. data/tcl/BWidget-1.8.0/images/hourglass.gif +0 -0
  124. data/tcl/BWidget-1.8.0/images/info.gif +0 -0
  125. data/tcl/BWidget-1.8.0/images/italic.gif +0 -0
  126. data/tcl/BWidget-1.8.0/images/minus.xbm +0 -0
  127. data/tcl/BWidget-1.8.0/images/new.gif +0 -0
  128. data/tcl/BWidget-1.8.0/images/opcopy.xbm +0 -0
  129. data/tcl/BWidget-1.8.0/images/open.gif +0 -0
  130. data/tcl/BWidget-1.8.0/images/openfold.gif +0 -0
  131. data/tcl/BWidget-1.8.0/images/oplink.xbm +0 -0
  132. data/tcl/BWidget-1.8.0/images/opmove.xbm +0 -0
  133. data/tcl/BWidget-1.8.0/images/overstrike.gif +0 -0
  134. data/tcl/BWidget-1.8.0/images/palette.gif +0 -0
  135. data/tcl/BWidget-1.8.0/images/passwd.gif +0 -0
  136. data/tcl/BWidget-1.8.0/images/paste.gif +0 -0
  137. data/tcl/BWidget-1.8.0/images/plus.xbm +0 -0
  138. data/tcl/BWidget-1.8.0/images/print.gif +0 -0
  139. data/tcl/BWidget-1.8.0/images/question.gif +0 -0
  140. data/tcl/BWidget-1.8.0/images/redo.gif +0 -0
  141. data/tcl/BWidget-1.8.0/images/save.gif +0 -0
  142. data/tcl/BWidget-1.8.0/images/target.xbm +0 -0
  143. data/tcl/BWidget-1.8.0/images/underline.gif +0 -0
  144. data/tcl/BWidget-1.8.0/images/undo.gif +0 -0
  145. data/tcl/BWidget-1.8.0/images/warning.gif +0 -0
  146. data/tcl/BWidget-1.8.0/init.tcl +0 -0
  147. data/tcl/BWidget-1.8.0/label.tcl +0 -0
  148. data/tcl/BWidget-1.8.0/labelentry.tcl +0 -0
  149. data/tcl/BWidget-1.8.0/labelframe.tcl +0 -0
  150. data/tcl/BWidget-1.8.0/lang/da.rc +0 -0
  151. data/tcl/BWidget-1.8.0/lang/de.rc +0 -0
  152. data/tcl/BWidget-1.8.0/lang/en.rc +0 -0
  153. data/tcl/BWidget-1.8.0/lang/es.rc +0 -0
  154. data/tcl/BWidget-1.8.0/lang/fr.rc +0 -0
  155. data/tcl/BWidget-1.8.0/listbox.tcl +0 -0
  156. data/tcl/BWidget-1.8.0/mainframe.tcl +0 -0
  157. data/tcl/BWidget-1.8.0/messagedlg.tcl +0 -0
  158. data/tcl/BWidget-1.8.0/notebook.tcl +0 -0
  159. data/tcl/BWidget-1.8.0/pagesmgr.tcl +0 -0
  160. data/tcl/BWidget-1.8.0/panedw.tcl +0 -0
  161. data/tcl/BWidget-1.8.0/panelframe.tcl +0 -0
  162. data/tcl/BWidget-1.8.0/passwddlg.tcl +0 -0
  163. data/tcl/BWidget-1.8.0/pkgIndex.tcl +0 -0
  164. data/tcl/BWidget-1.8.0/progressbar.tcl +0 -0
  165. data/tcl/BWidget-1.8.0/progressdlg.tcl +0 -0
  166. data/tcl/BWidget-1.8.0/scrollframe.tcl +0 -0
  167. data/tcl/BWidget-1.8.0/scrollview.tcl +0 -0
  168. data/tcl/BWidget-1.8.0/scrollw.tcl +0 -0
  169. data/tcl/BWidget-1.8.0/separator.tcl +0 -0
  170. data/tcl/BWidget-1.8.0/spinbox.tcl +0 -0
  171. data/tcl/BWidget-1.8.0/statusbar.tcl +0 -0
  172. data/tcl/BWidget-1.8.0/tests/entry.test +0 -0
  173. data/tcl/BWidget-1.8.0/titleframe.tcl +0 -0
  174. data/tcl/BWidget-1.8.0/tree.tcl +0 -0
  175. data/tcl/BWidget-1.8.0/utils.tcl +0 -0
  176. data/tcl/BWidget-1.8.0/widget.tcl +0 -0
  177. data/tcl/BWidget-1.8.0/wizard.tcl +0 -0
  178. data/tcl/BWidget-1.8.0/xpm2image.tcl +0 -0
  179. metadata +158 -154
File without changes
File without changes
File without changes
@@ -375,7 +375,7 @@ module EventBus #(or SourceEvent)
375
375
  if _listener.respond_to?(sub_method_name)
376
376
  Thread.new{_listener.send(sub_method_name, _event)}
377
377
  elsif _listener.respond_to?(method_name)
378
- Thread.new{_listener.send(method_name, _event)}
378
+ Thread.new{_listener.send(method_name, _event)}
379
379
  end
380
380
  end
381
381
  else
@@ -521,14 +521,13 @@ module Configurable
521
521
  end
522
522
 
523
523
  module Persistable
524
- def write_persist(_persist_file)
524
+ def override_persistent(_persist_file, _persistent_hash)
525
525
  if FileTest::exist?(_persist_file)
526
526
  f = File.new(_persist_file, "w")
527
527
  begin
528
528
  if f
529
- p = self['pers']
530
- if p
531
- p.each{|key,value|
529
+ if _persistent_hash
530
+ _persistent_hash.each{|key,value|
532
531
  f.syswrite(key+'='+value+"\n")
533
532
  }
534
533
  end
@@ -538,6 +537,22 @@ module Persistable
538
537
  end
539
538
  end
540
539
  end
540
+
541
+ def append_persistent_property(_persist_file, _persistent_key, _persistent_value)
542
+ if FileTest::exist?(_persist_file)
543
+ f = File.new(_persist_file, "w+")
544
+ begin
545
+ if f
546
+ if _persistent_property
547
+ f.syswrite(_persistent_key+'='+_persistent_value+"\n")
548
+ end
549
+ end
550
+ ensure
551
+ f.close unless f.nil?
552
+ end
553
+ end
554
+ end
555
+
541
556
  end
542
557
 
543
558
  class Application
@@ -570,10 +585,14 @@ class Application
570
585
  @@instance
571
586
  end
572
587
 
573
- def Application.conf(_property)
588
+ def Application.conf(_property)
574
589
  @@instance['conf'][_property] if @@instance
575
- end
576
-
590
+ end
591
+
592
+ def sys_info
593
+ "[Platform = #{RUBY_PLATFORM}] [Ruby version = #{RUBY_VERSION}]"
594
+ end
595
+
577
596
  def Application.conf_group(_group)
578
597
  @@conf_groups = Hash.new if !defined?(@@conf_groups)
579
598
  if @@conf_groups[_group].nil?
@@ -90,13 +90,15 @@ end
90
90
  # +---------------------------------------------+
91
91
 
92
92
  class DebugEvent < ArcadiaEvent
93
- attr_accessor :file, :row
93
+ attr_accessor :file, :row, :active
94
94
  end
95
95
 
96
96
  class SetBreakpointEvent < DebugEvent
97
+ attr_accessor :active
97
98
  end
98
99
 
99
100
  class UnsetBreakpointEvent < DebugEvent
101
+ attr_accessor :delete
100
102
  end
101
103
 
102
104
  class EvalExpressionEvent < DebugEvent
@@ -8,27 +8,27 @@ require 'tkextlib/bwidget'
8
8
  require "lib/a-tkcommons"
9
9
  require "lib/a-contracts"
10
10
  require "observer"
11
-
12
11
  class Arcadia < TkApplication
13
12
  include Observable
14
13
  attr_reader :layout
15
- attr_reader :main_menu
16
14
  def initialize
17
15
  super(
18
16
  ApplicationParams.new(
19
17
  'arcadia',
20
- '0.3.1',
18
+ '0.4.0',
21
19
  'conf/arcadia.conf',
22
20
  'conf/arcadia.pers'
23
21
  )
24
22
  )
25
23
  load_config
24
+ set_sysdefaultproperty
26
25
  ArcadiaDialogManager.new(self)
27
- ActionDispatcher.new(self)
26
+ ArcadiaActionDispatcher.new(self)
28
27
  #self.load_local_config(false)
29
28
  ObjectSpace.define_finalizer($arcadia, self.class.method(:finalize).to_proc)
30
29
  publish('action.on_exit', proc{do_exit})
31
- _title = "Arcadia Ruby ide :: [Platform = "+RUBY_PLATFORM+'] [Ruby version = ' + RUBY_VERSION+']'
30
+ #_title = "Arcadia Ruby ide :: [Platform = #{RUBY_PLATFORM}] [Ruby version = #{RUBY_VERSION}] [TclTk version = #{tcltk_info.level}]"
31
+ _title = "Arcadia Ruby ide :: #{sys_info}"
32
32
  @root = TkRoot.new(
33
33
  'background'=> self['conf']['background']
34
34
  ){
@@ -55,7 +55,7 @@ class Arcadia < TkApplication
55
55
  @is_toolbar_show=self['conf']['user_toolbar_show']=='yes'
56
56
  @mf_root.show_toolbar(0,@is_toolbar_show)
57
57
  @use_splash = self['conf']['splash.show']=='yes'
58
- @splash = ArcadiaAboutSplash.new('... initialize') if @use_splash
58
+ @splash = ArcadiaAboutSplash.new if @use_splash
59
59
  @splash.set_progress(50) if @splash
60
60
  @splash.deiconify if @splash
61
61
  Tk.update
@@ -154,7 +154,8 @@ class Arcadia < TkApplication
154
154
  class_name = self['conf'][_extension+'.class']
155
155
  if source.strip.length > 0
156
156
  #p source
157
- eval('require ' + "'" + source + "'")
157
+ eval("require '#{source}'")
158
+ #eval('require ' + "'" + source + "'")
158
159
  end
159
160
  if class_name.strip.length > 0
160
161
  publish(_extension, eval(class_name).new(self, _extension))
@@ -254,6 +255,14 @@ class Arcadia < TkApplication
254
255
  self.resolve_properties_link(self['conf'],self['conf'])
255
256
  end
256
257
 
258
+ def set_sysdefaultproperty
259
+ Tk.tk_call "eval","option add *background #{self['conf']['background']}"
260
+ Tk.tk_call "eval","option add *foreground #{self['conf']['foreground']}"
261
+ #Tk.tk_call "eval","option add *font #{self['conf']['font']}"
262
+ Tk.tk_call "eval","option add *activebackground #{self['conf']['activebackground']}"
263
+ Tk.tk_call "eval","option add *activeforeground #{self['conf']['activeforeground']}"
264
+ end
265
+
257
266
  def prepare
258
267
  super
259
268
  @splash.next_step('...initialize') if @splash
@@ -398,7 +407,7 @@ class Arcadia < TkApplication
398
407
 
399
408
  def do_finalize
400
409
  _event = Arcadia.process_event(FinalizeEvent.new(self))
401
- self.write_persist(self['applicationParams'].persistent_file)
410
+ self.override_persistent(self['applicationParams'].persistent_file, self['pers'])
402
411
  end
403
412
 
404
413
  def Arcadia.console(_sender, _args=Hash.new)
@@ -414,6 +423,18 @@ class Arcadia < TkApplication
414
423
  Configurable.properties_group(_class, Arcadia.instance['conf'])
415
424
  end
416
425
 
426
+ def Arcadia.persistent(_property, _value=nil, _immediate=false)
427
+ if @@instance
428
+ if _value.nil?
429
+ return @@instance['pers'][_property]
430
+ else
431
+ @@instance['pers'][_property] = _value
432
+ end
433
+ if _immediate
434
+ @@instance.append_persistent_property(@@instance['applicationParams'].persistent_file,_property, _value )
435
+ end
436
+ end
437
+ end
417
438
 
418
439
 
419
440
  # def Arcadia.res(_res)
@@ -779,7 +800,7 @@ end
779
800
 
780
801
  class ArcadiaAboutSplash < TkToplevel
781
802
  attr :progress
782
- def initialize(_txt=nil)
803
+ def initialize
783
804
  #_bgcolor = '#B83333'
784
805
  _bgcolor = '#000000'
785
806
  super()
@@ -824,10 +845,10 @@ class ArcadiaAboutSplash < TkToplevel
824
845
  foreground '#ffffff'
825
846
  font Arcadia.instance['conf']['splash.version.font']
826
847
  justify 'left'
827
- place('width' => '100','x' => 150,'y' => 65,'height' => 19)
848
+ place('width' => '120','x' => 150,'y' => 65,'height' => 19)
828
849
  }
829
850
  @tkLabelStep = TkLabel.new(self){
830
- text _txt
851
+ text ''
831
852
  background _bgcolor
832
853
  foreground 'yellow'
833
854
  font Arcadia.instance['conf']['splash.banner.font']
@@ -887,7 +908,7 @@ class ArcadiaAboutSplash < TkToplevel
887
908
 
888
909
  end
889
910
 
890
- class ActionDispatcher
911
+ class ArcadiaActionDispatcher
891
912
 
892
913
  def initialize(_arcadia)
893
914
  @arcadia = _arcadia
@@ -6,6 +6,16 @@
6
6
  require "lib/a-commons"
7
7
 
8
8
  class TkApplication < Application
9
+ attr_reader :tcltk_info
10
+ def initialize(_application_params)
11
+ super(_application_params)
12
+ @tcltk_info = TclTkInfo.new
13
+ end
14
+
15
+ def sys_info
16
+ "#{super} [TclTk version = #{tcltk_info.level}]"
17
+ end
18
+
9
19
  def run
10
20
  Tk.appname(self['applicationParams'].name)
11
21
  Tk.mainloop
@@ -81,7 +91,7 @@ class AGTkObjPlace
81
91
 
82
92
  def initialize(_obj=nil , _side='both' , _cursor=nil, _bind = true )
83
93
  if !_obj
84
- break
94
+ return
85
95
  end
86
96
  @obj = _obj
87
97
  if !_cursor
@@ -949,3 +959,9 @@ class TkBuffersChoise < TkBuffersChoiseView
949
959
 
950
960
  end
951
961
 
962
+ class TclTkInfo
963
+ attr_reader :level
964
+ def initialize
965
+ @level = TclTkIp.new._eval "info patchlevel"
966
+ end
967
+ end
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
File without changes