redhat_access 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/insights/app.module.js +1 -0
  3. data/app/helpers/redhat_access/analytics_dashboard_helper.rb +19 -1
  4. data/app/services/redhat_access/telemetry/helper.rb +7 -0
  5. data/app/services/redhat_access/telemetry/look_ups.rb +2 -1
  6. data/app/services/redhat_access/telemetry/messaging_service.rb +57 -2
  7. data/app/views/dashboard/_insights_issues_widget.html.erb +51 -0
  8. data/app/views/dashboard/_insights_risk_widget.html.erb +80 -0
  9. data/app/views/redhat_access/analytics_dashboard/index.html.erb +2 -2
  10. data/lib/redhat_access/engine.rb +2 -0
  11. data/lib/redhat_access/version.rb +1 -1
  12. data/redhat_access.gemspec +1 -10
  13. data/vendor/assets/fonts/fonts/fontawesome-webfont.woff2 +0 -0
  14. data/vendor/assets/images/images/bg1.jpg +0 -0
  15. data/vendor/assets/images/images/bg_ansible.jpg +0 -0
  16. data/vendor/assets/images/images/bg_body.jpg +0 -0
  17. data/vendor/assets/images/images/bg_glow.jpg +0 -0
  18. data/vendor/assets/images/images/bg_landing-hero.jpg +0 -0
  19. data/vendor/assets/images/images/bg_product-select.png +0 -0
  20. data/vendor/assets/images/images/bg_product-select2.jpg +0 -0
  21. data/vendor/assets/images/images/bg_whispy.jpg +0 -0
  22. data/vendor/assets/images/images/email_bg.jpg +0 -0
  23. data/vendor/assets/images/images/email_logo.png +0 -0
  24. data/vendor/assets/images/images/email_rhi.png +0 -0
  25. data/vendor/assets/images/images/g_ansible-venn.png +0 -0
  26. data/vendor/assets/images/images/g_heartbleed.png +0 -0
  27. data/vendor/assets/images/images/heartbleed.svg +19 -0
  28. data/vendor/assets/images/images/i_box.svg +16 -0
  29. data/vendor/assets/images/images/i_playbook.svg +5 -0
  30. data/vendor/assets/images/images/i_severity-critical.svg +61 -0
  31. data/vendor/assets/images/images/i_severity-high.svg +61 -0
  32. data/vendor/assets/images/images/i_severity-low.svg +62 -0
  33. data/vendor/assets/images/images/i_severity-med.svg +62 -0
  34. data/vendor/assets/images/images/i_unknown.svg +33 -0
  35. data/vendor/assets/images/images/i_user-fallback.png +0 -0
  36. data/vendor/assets/images/images/i_user.jpg +0 -0
  37. data/vendor/assets/images/images/img-cfme-appliance-register.jpg +0 -0
  38. data/vendor/assets/images/images/img-cfme-insights-features.png +0 -0
  39. data/vendor/assets/images/images/img-cfme-insights-overview.png +0 -0
  40. data/vendor/assets/images/images/img-cfme-insights-rules.png +0 -0
  41. data/vendor/assets/images/images/img-cfme-insights-systems.png +0 -0
  42. data/vendor/assets/images/images/img-cfme-smartstate-config.png +0 -0
  43. data/vendor/assets/images/images/img-sat6-step2-manage.jpg +0 -0
  44. data/vendor/assets/images/images/img-sat6-step4.jpg +0 -0
  45. data/vendor/assets/images/images/img-sat6-step5-manage.jpg +0 -0
  46. data/vendor/assets/images/images/img-sat6-step5-overview.jpg +0 -0
  47. data/vendor/assets/images/images/img-sat6-step5-rules.jpg +0 -0
  48. data/vendor/assets/images/images/img-sat6-step5-systems.jpg +0 -0
  49. data/vendor/assets/images/images/img_video.png +0 -0
  50. data/vendor/assets/images/images/l_ansible-black.svg +14 -0
  51. data/vendor/assets/images/images/l_ansible-blue.svg +12 -0
  52. data/vendor/assets/images/images/l_ansible-unsupported.svg +16 -0
  53. data/vendor/assets/images/images/l_ansible-white.svg +13 -0
  54. data/vendor/assets/images/images/l_docker.svg +48 -0
  55. data/vendor/assets/images/images/l_osp.svg +95 -0
  56. data/vendor/assets/images/images/l_rhel.svg +74 -0
  57. data/vendor/assets/images/images/l_rhev.svg +86 -0
  58. data/vendor/assets/javascripts/telemetry/insights.js +63 -39
  59. data/vendor/assets/stylesheets/telemetry/sat6.css +8 -8
  60. metadata +46 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 47d065b4e0e037360599bb40ce34305ced86765b
4
- data.tar.gz: 4723e3f4898c2dd722591f66d6f5d52312fd9e6d
3
+ metadata.gz: 4de697c1c4c7439692e44c26f10f4aa8dde8718a
4
+ data.tar.gz: 2797621bb4965a46bc6c23d49e46eab5db035cab
5
5
  SHA512:
6
- metadata.gz: 1af2a3ab5854b3ca38fb76c1f5a543d2d9060684c63d289ba9ba0983bfc9f9011fce82fddc7cffb0c6884255df9d0aa81c12cdb12749c49310da715b4f8e4cea
7
- data.tar.gz: fc5133fb5d6a4ae75ebdfc4dabfd9571a62f777071c795d49b3590a9a7a70d45db1febe99fc6af75f48eb65948793607748a21953ec016c08b2bf45899d77e1a
6
+ metadata.gz: d46e13f22eb5c71839087d89b0fa9876befa42d83b2e8788dcf0c962134698af5028970c87e613a1833d73e4cd26de1e7366e925bfae8cd37be9d0d5bd89493d
7
+ data.tar.gz: c3b3b069c3c60364435b22c36fa555b18b2b7a4d4d4f1e6cd0f76c70211bffdc1537adb95502308871af6356b854564677ca41e1768c26712b33484c30cd4538
@@ -53,6 +53,7 @@
53
53
  InsightsConfigProvider.setGettingStartedLink('https://access.redhat.com/insights/getting-started/satellite/6/');
54
54
  InsightsConfigProvider.setAllowExport(true);
55
55
  InsightsConfigProvider.setOverviewKey('overview-satellite6');
56
+ InsightsConfigProvider.setPlannerEnabled(false);
56
57
 
57
58
  }
58
59
  ]).value('SAT_CONFIG', {
@@ -3,11 +3,29 @@ module RedhatAccess
3
3
  include RedhatAccess::Telemetry::LookUps
4
4
 
5
5
  def help_path?
6
- request.path == '/redhat_access/insights/help'
6
+ Rails.logger.info("PATH is #{request.path == '/redhat_access/insights/help'}")
7
+ request.path == '/redhat_access/insights/help'
7
8
  end
8
9
 
9
10
  def manage_path?
10
11
  request.path == '/redhat_access/insights/manage'
11
12
  end
13
+
14
+ def view_preconditions_met?
15
+ if (help_path?)
16
+ return true
17
+
18
+ elsif (!is_org_selected?)
19
+ return false
20
+ elsif !telemetry_enabled?(Organization.current)
21
+ return false
22
+ elsif !is_susbcribed_to_redhat?(Organization.current)
23
+ return false
24
+ elsif disconnected_org?(Organization.current)
25
+ return false
26
+ else
27
+ return true
28
+ end
29
+ end
12
30
  end
13
31
  end
@@ -0,0 +1,7 @@
1
+ module RedhatAccess
2
+ module Telemetry
3
+ class Helper
4
+ include LookUps
5
+ end
6
+ end
7
+ end
@@ -33,6 +33,7 @@ module RedhatAccess
33
33
  end
34
34
 
35
35
  def is_org_selected?
36
+ Rails.logger.debug("Org selected ? #{Organization.current.nil?}")
36
37
  Organization.current.nil? ? false : true
37
38
  end
38
39
 
@@ -67,7 +68,7 @@ module RedhatAccess
67
68
  def get_leaf_id(uuid)
68
69
  system = get_content_host(uuid)
69
70
  if system.nil?
70
- ldebug('Host not found or invalid')
71
+ Rails.logger.debug('Host not found or invalid')
71
72
  raise(RecordNotFound, 'Host not found or invalid')
72
73
  end
73
74
  uuid
@@ -8,16 +8,49 @@ module RedhatAccess
8
8
  include RedhatAccess::Telemetry::LookUps
9
9
 
10
10
  WEEKLY_SUMMARY_PATH = 'v1/messaging/data/weeklyinfo'
11
+ RULE_STATS_PATH = 'v3/stats/rules'
12
+ SYSTEM_STATS_PATH = 'v3/stats/systems'
11
13
 
12
14
  def initialize(org)
13
15
  @org = org
14
- @user_map = current_user_map
15
16
  @branch_id = get_branch_id_for_org(org)
16
17
  end
17
18
 
19
+ def risk_summary
20
+ begin
21
+ rule_counts = rules_stat_summary
22
+ critical_counts = http_get_from_json(SYSTEM_STATS_PATH, {:minSeverity => :CRITICAL}, true)
23
+ return OpenStruct.new({:critical_count => critical_counts.affected,
24
+ :system_count => critical_counts.total,
25
+ :low_percent => percent(rule_counts.info,rule_counts.total),
26
+ :medium_percent => percent(rule_counts.warn,rule_counts.total),
27
+ :high_percent => percent(rule_counts.error,rule_counts.total),
28
+ :critical_percent => percent(rule_counts.critical,rule_counts.total)
29
+ })
30
+ rescue
31
+ return error_response("Unable to get risk summary.")
32
+ end
33
+ # return {:critical_count => 10,
34
+ # :system_count => 100,
35
+ # :low_percent => 1.2,
36
+ # :medium_percent => 38.4,
37
+ # :high_percent => 17.5,
38
+ # :critical_percent => 24.2
39
+ # }
40
+ end
41
+
42
+ def rules_stat_summary
43
+ begin
44
+ http_get_from_json(RULE_STATS_PATH, {}, true)
45
+ rescue
46
+ return error_response("Unable to get rule summary.")
47
+ end
48
+ end
49
+
18
50
 
19
51
  def all_weekly_mail_data
20
52
  data = []
53
+ @user_map = current_user_map
21
54
  current_user_map.each do |key,user|
22
55
  begin
23
56
  user_data = weekly_summary_data(user.login)
@@ -82,9 +115,31 @@ module RedhatAccess
82
115
  end
83
116
 
84
117
 
85
-
86
118
  private
87
119
 
120
+ def percent(fraction, total)
121
+ if (total== 0)
122
+ return 0
123
+ end
124
+ ((fraction.to_f/total)*100).round(1)
125
+ end
126
+
127
+ def error_response(message)
128
+ resp = OpenStruct.new
129
+ resp.query_error = message
130
+ end
131
+
132
+ def http_get_from_json(resource,params,use_subsets=true)
133
+ options = {:method => :GET,
134
+ :resource => resource,
135
+ :params => params,
136
+ :payload => nil,
137
+ :use_subsets => use_subsets
138
+ }
139
+ json_data = http_request(options, true);
140
+ JSON.parse(json_data, object_class: OpenStruct)
141
+ end
142
+
88
143
  def current_user_map
89
144
  map = {}
90
145
  users = ::User.select do |user|
@@ -0,0 +1,51 @@
1
+ <h4 class="header">
2
+ <%= _("Red Hat Insights Actions") %>
3
+ </h4>
4
+ <% helper = RedhatAccess::Telemetry::Helper.new %>
5
+ <% if !Organization.current.present? %>
6
+ <p class="ca"><%= _("Please select an organization to view Red Hat Insights action summary.") %></p>
7
+ <% elsif !helper.telemetry_enabled?(Organization.current) %>
8
+ <p class="ca"><%= _("Insights functionality is disabled.") %></p>
9
+ <% elsif !helper.is_susbcribed_to_redhat?(Organization.current) %>
10
+ <p class="ca"><%= _("Insights data not available.") %></p>
11
+ <% elsif helper.disconnected_org?(Organization.current) %>
12
+ <p class="ca"><%= _("Insights data is not available for disconnected environments.") %></p>
13
+ <% else %>
14
+
15
+ <% api = RedhatAccess::Telemetry::MessagingService.new(Organization.current) %>
16
+ <% data = api.rules_stat_summary %>
17
+ <% if data.query_error %>
18
+ <p class="ca"><%= _("There was an error retrieving Insights data.") %></p>
19
+ <% else %>
20
+ <table class="table table-fixed table-striped table-bordered">
21
+ <thead>
22
+ <tr>
23
+ <th><%= _("Category") %></th>
24
+ <th><%= _("Number of Actions") %></th>
25
+ </tr>
26
+ </thead>
27
+ <tbody>
28
+ <tr>
29
+ <td><%= link_to("#{ _("Availability")}", '/redhat_access/insights/actions/availability')%> </td>
30
+ <td style="text-align:right;"><%= link_to("#{data.availability}", '/redhat_access/insights/actions/availability')%> </td>
31
+ </tr>
32
+ <tr>
33
+ <td><%= link_to("#{ _("Stability")}", '/redhat_access/insights/actions/stability')%> </td>
34
+ <td style="text-align:right;"><%= link_to("#{data.stability}", '/redhat_access/insights/actions/stability')%> </td>
35
+ </tr>
36
+ <tr>
37
+ <td><%= link_to("#{ _("Performance")}", '/redhat_access/insights/actions/performance')%> </td>
38
+ <td style="text-align:right;"><%= link_to("#{data.performance}", '/redhat_access/insights/actions/performance')%> </td>
39
+ </tr>
40
+ <tr>
41
+ <td><%= link_to("#{ _("Security")}", '/redhat_access/insights/actions/security')%> </td>
42
+ <td style="text-align:right;"><%= link_to("#{data.security}", '/redhat_access/insights/actions/security')%> </td>
43
+ </tr>
44
+ <tr>
45
+ <td><h4><%= _("Total") %></h4></td>
46
+ <td style="text-align:right;"><%= data.total %></td>
47
+ </tr>
48
+ </tbody>
49
+ </table>
50
+ <% end %>
51
+ <% end %>
@@ -0,0 +1,80 @@
1
+ <h4 class="header">
2
+ <%= _("Red Hat Insights Risk Summary") %>
3
+ </h4>
4
+
5
+ <% helper = RedhatAccess::Telemetry::Helper.new %>
6
+ <% if !Organization.current.present? %>
7
+ <p class="ca"><%= _("Please select an organization to view Red Hat Insights risk summary.") %></p>
8
+ <% elsif !helper.telemetry_enabled?(Organization.current) %>
9
+ <p class="ca"><%= _("Insights functionality is disabled.") %></p>
10
+ <% elsif !helper.is_susbcribed_to_redhat?(Organization.current) %>
11
+ <p class="ca"><%= _("Insights data not available.") %></p>
12
+ <% elsif helper.disconnected_org?(Organization.current) %>
13
+ <p class="ca"><%= _("Insights is data not available for disconnected environments.") %></p>
14
+ <% else %>
15
+ <% api = RedhatAccess::Telemetry::MessagingService.new(Organization.current) %>
16
+ <% risk_data = api.risk_summary %>
17
+ <% if risk_data.query_error %>
18
+ <p class="ca"><%= _("There was an error retrieving Insights data.") %></p>
19
+ <% else %>
20
+ <table class="table table-fixed table-striped table-bordered">
21
+ <thead>
22
+ <tr>
23
+ <th><%= _("Risk Level") %></th>
24
+ <th><%= _("Percentage") %></th>
25
+ </tr>
26
+ </thead>
27
+ <tbody>
28
+ <tr>
29
+ <h4>
30
+ <%= link_to('/redhat_access/insights/actions/critical-risk') do %>
31
+ <i class="label " style="margin-right: 6px">&nbsp;</i> <%= risk_data.critical_count %> <%= _('system(s) have critical issues.') %>
32
+ <% end %>
33
+
34
+ </h4>
35
+ </tr>
36
+ <tr>
37
+ <td>
38
+ <%= link_to('/redhat_access/insights/actions/low-risk') do %>
39
+ <i class="label label-info" style="margin-right: 6px">&nbsp;</i><%= _("Low") %>
40
+ <% end %>
41
+ </td>
42
+ <td style="text-align:right">
43
+ <%= link_to("#{risk_data.low_percent}%", '/redhat_access/insights/actions/low-risk') %>
44
+ </td>
45
+ </tr>
46
+ <tr>
47
+ <td>
48
+ <%= link_to('/redhat_access/insights/actions/medium-risk') do %>
49
+ <i class="label label-success" style="margin-right: 6px">&nbsp;</i><%= _("Medium") %>
50
+ <% end %>
51
+ </td>
52
+ <td style="text-align:right">
53
+ <%= link_to("#{risk_data[:medium_percent]}%", '/redhat_access/insights/actions/medium-risk') %>
54
+ </td>
55
+ </tr>
56
+ <tr>
57
+ <td>
58
+ <%= link_to('/redhat_access/insights/actions/high-risk') do %>
59
+ <i class="label label-warning" style="margin-right: 6px">&nbsp;</i><%= _("High") %>
60
+ <% end %>
61
+ </td>
62
+ <td style="text-align:right">
63
+ <%= link_to("#{risk_data.high_percent}%", '/redhat_access/insights/actions/high-risk') %>
64
+ </td>
65
+ </tr>
66
+ <tr>
67
+ <td>
68
+ <%= link_to('/redhat_access/insights/actions/critical-risk') do %>
69
+ <i class="label label-danger" style="margin-right: 6px">&nbsp;</i><%= _("Critical") %>
70
+ <% end %>
71
+ </td>
72
+ <td style="text-align:right">
73
+ <%= link_to("#{risk_data.critical_percent}%", '/redhat_access/insights/actions/critical-risk') %>
74
+ </td>
75
+ </tr>
76
+ </tbody>
77
+ </table>
78
+ <% end %>
79
+
80
+ <% end %>
@@ -1,6 +1,6 @@
1
- <% if ((!help_path? && !manage_path?) || (manage_path? && !is_org_selected?)) && (!is_org_selected? || !telemetry_enabled?(Organization.current) || !is_susbcribed_to_redhat?(Organization.current) || disconnected_org?(Organization.current)) %>
1
+ <% if (not view_preconditions_met?) %>
2
2
  <article id='content'>
3
- <%if !is_org_selected? && !help_path %>
3
+ <%if !is_org_selected? %>
4
4
  <section>
5
5
  <h1>
6
6
  <%= _("Organization Selection Required") %>
@@ -213,6 +213,8 @@ module RedhatAccess
213
213
  :engine => RedhatAccess::Engine,
214
214
  :turbolinks => false
215
215
  end
216
+ widget 'insights_issues_widget', :name => 'Red Hat Insights Actions', :sizey => 1, :sizex => 6
217
+ widget 'insights_risk_widget', :name => 'Red Hat Insights Risk Summary', :sizey => 1, :sizex => 6
216
218
  end
217
219
  end
218
220
  end
@@ -1,3 +1,3 @@
1
1
  module RedhatAccess
2
- VERSION = "2.0.2"
2
+ VERSION = "2.0.3"
3
3
  end
@@ -15,16 +15,7 @@ Gem::Specification.new do |s|
15
15
 
16
16
  s.files = Dir["{app,config,db,lib,vendor,public,script,ca,locale}/**/*"] + ["LICENSE.txt", "Rakefile", "README.rdoc", "redhat_access.gemspec", "Gemfile"]
17
17
  s.test_files = Dir["test/**/*"]
18
-
19
- #s.add_dependency "rails", "~> 3.2"
20
18
  s.add_dependency "redhat_access_lib" , ">=1.0.1"
21
-
22
- #s.add_dependency "haml-rails"
23
- #s.add_dependency "requirejs-rails"
24
- #-------------s.add_dependency "bootstrap-sass", "~> 3.0.3.0"
25
- # s.add_dependency "jquery-rails"
26
19
  s.add_dependency "angular-rails-templates", ">=0.0.4"
27
- #s.add_development_dependency "sqlite3"
28
- #s.add_development_dependency "sprockets", "~>2.2.2"
29
- #s.add_development_dependency "redhat_access_lib"
20
+
30
21
  end
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#CB2027;}
7
+ </style>
8
+ <g>
9
+ <g>
10
+ <path class="st0" d="M185.8,56.7c0-14.4-5.6-27.9-15.7-38c-19.1-19-49.1-20.8-70.1-5.1C78.9-2.1,48.9-0.4,29.9,18.7
11
+ c-10.1,10.1-15.7,23.6-15.7,38c0,14.4,5.6,27.9,15.7,38l18.5,18.5v33.5c0,2.3,1.9,4.2,4.2,4.2c2.3,0,4.2-1.9,4.2-4.2v-25.2l3.1,3
12
+ v56c0,1.3,1.1,2.4,2.4,2.4c1.3,0,2.4-1.1,2.4-2.4v-51.2l4.4,4.4v24.9c0,1.5,1.2,2.6,2.6,2.6s2.6-1.2,2.6-2.6v-19.6l25.8,25.7
13
+ l20.1-20.1v46.7c0,1.3,1.1,2.4,2.4,2.4c1.3,0,2.4-1.1,2.4-2.4v-51.5l6.3-6.3v20.7c0,2.3,1.9,4.2,4.2,4.2s4.2-1.9,4.2-4.2v-29
14
+ l30.6-30.5C180.3,84.5,185.8,71.1,185.8,56.7z M158.3,82.9L100,141.1L41.7,82.9c-7-7-10.8-16.3-10.8-26.2
15
+ c0-9.9,3.8-19.2,10.8-26.2c7.2-7.2,16.7-10.8,26.2-10.8c9.5,0,19,3.6,26.2,10.8l5.9,5.9l5.9-5.9c14.5-14.4,38-14.4,52.5,0
16
+ c7,7,10.8,16.3,10.8,26.2C169.2,66.6,165.3,75.9,158.3,82.9z"/>
17
+ </g>
18
+ </g>
19
+ </svg>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 1600 1600" style="enable-background:new 0 0 1600 1600;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#FFFFFF;}
7
+ </style>
8
+ <path class="st0" d="M1173.9,584.8c-0.2-1.8-0.6-3.6-1.3-5.4l-1.9-4.4l-0.6-0.6c-1.2-1.8-2.6-3.4-4.2-4.8l-1.7-1.3
9
+ c-0.7-0.5-2-1.5-3.7-2.3L811.5,395.9c-6.9-3.3-15.1-3.3-22,0l-349,170c-1.8,0.9-3,1.8-3.2,2l-2.1,1.5c-1.7,1.5-3.2,3.2-4.4,5
10
+ l-2.5,5.1c-0.6,1.5-0.9,3.1-1.1,4.5l-0.4,428.4c0,9.1,5.4,17.5,13.7,21.5l348.3,169.7l2.7,1.5l1.1,0.1c1.8,0.6,3.6,1,5.5,1.2
11
+ l2.4,0.2l2.3-0.1c2.1-0.2,4.1-0.6,5.7-1.2l351.9-171.2c8.3-4,13.7-12.5,13.7-21.5L1173.9,584.8z M1094.3,587.5L800.5,730.6
12
+ l-119.3-58.1L975,529.4L1094.3,587.5z M775.8,937.8c-2.9-1.7-6.2-2.7-9.8-2.7c-10.6,0-19.2,8.4-19.2,18.7v155.1
13
+ c0,10.3,8.6,18.7,19.2,18.7c3.6,0,6.9-1,9.8-2.7v18.7L476.2,997.6V626.4l299.6,145.9V937.8z M506.7,587.5l293.8-143.1l131.6,64.1
14
+ L638.3,651.6L506.7,587.5z M1124.8,894.7c-2-0.7-4-1.1-6.2-1.1c-10.6,0-19.2,8.4-19.2,18.7v68l-110.5,53.8
15
+ c-9.5,4.6-13.3,15.8-8.5,25.2c1.3,2.5,3.2,4.4,5.3,6.1l-160.4,78.1V772.4l299.6-145.9V894.7z"/>
16
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg width="86.697pt" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 86.697382 92.46" height="92.46pt">
3
+ <path d="m27.016 42.32a1.249 1.249 0 0 0 1.765 0l4.414-4.414 4.41 4.414a1.249 1.249 0 0 0 1.77 0 1.252 1.252 0 0 0 0 -1.77l-4.41-4.41 4.41-4.413a1.247 1.247 0 0 0 0 -1.766 1.252 1.252 0 0 0 -1.77 0l-4.41 4.41-4.414-4.41a1.247 1.247 0 0 0 -1.765 0 1.247 1.247 0 0 0 0 1.766l4.41 4.414-4.41 4.41a1.252 1.252 0 0 0 0 1.77zm51.047-2.976c-2.352-11.965-10.172-21.2-21.024-24.989l0.328-1.296a0.232 0.232 0 0 0 -0.058 -0.223 0.227 0.227 0 0 0 -0.215 -0.074l-4.672 0.843a0.239 0.239 0 0 0 -0.192 0.176c-0.02 0.09 0.008 0.188 0.083 0.246l3.703 3c0.062 0.051 0.148 0.067 0.226 0.043a0.24 0.24 0 0 0 0.156 -0.172l0.27-1.066c10.27 3.64 17.672 12.434 19.91 23.805 2.457 12.484-2.691 26.433-12.816 35.066a5.887 5.887 0 0 0 -4.461 -2.05 5.912 5.912 0 0 0 -5.906 5.906 5.91 5.91 0 0 0 5.905 5.901 5.91 5.91 0 0 0 5.902 -5.902c0-0.926-0.223-1.801-0.601-2.579 10.625-8.972 16.03-23.57 13.46-36.636zm-18.766 42.616a3.408 3.408 0 0 1 -3.402 -3.402 3.403 3.403 0 1 1 3.402 3.402z"/>
4
+ <path d="m54.117 51.566a1.248 1.248 0 0 0 1.77 0l4.41-4.41 4.414 4.41c0.242 0.246 0.562 0.368 0.883 0.368 0.32 0 0.64-0.121 0.883-0.368a1.247 1.247 0 0 0 0 -1.765l-4.41-4.414 4.41-4.414a1.247 1.247 0 0 0 0 -1.766 1.247 1.247 0 0 0 -1.766 0l-4.414 4.41-4.41-4.41a1.247 1.247 0 0 0 -1.766 0 1.247 1.247 0 0 0 0 1.766l4.41 4.414-4.414 4.414a1.247 1.247 0 0 0 0 1.765zm-14.515 19.512a1.254 1.254 0 0 0 -1.766 0l-4.414 4.414-4.414-4.414a1.247 1.247 0 0 0 -1.766 0 1.252 1.252 0 0 0 0 1.77l4.41 4.414-4.41 4.41a1.252 1.252 0 0 0 0 1.77c0.242 0.242 0.563 0.363 0.883 0.363s0.64-0.121 0.883-0.364l4.414-4.414 4.41 4.414a1.26 1.26 0 0 0 1.77 0 1.252 1.252 0 0 0 0 -1.77l-4.414-4.41 4.414-4.413a1.252 1.252 0 0 0 0 -1.77zm9.132-10.949c-0.816 0-1.593 0.168-2.3 0.465l-7.118-13.024 3.618-1.98-0.72-1.317-8.554 4.676 0.719 1.317 3.621-1.98 7.14 13.07a5.896 5.896 0 0 0 -2.308 4.675 5.907 5.907 0 0 0 5.902 5.903 5.91 5.91 0 0 0 5.903 -5.903 5.907 5.907 0 0 0 -5.903 -5.902zm0 9.309a3.405 3.405 0 0 1 0 -6.809 3.408 3.408 0 0 1 3.403 3.402 3.408 3.408 0 0 1 -3.403 3.406zm-25.355-7.536a0.231 0.231 0 0 0 -0.23 0.008l-1.04 0.621-12.511-18.113c-0.618-6.41 2.039-13.375 7.285-19.117 4.972-5.442 11.691-9.184 18.566-10.371 0.489 2.765 2.903 4.875 5.809 4.875a5.91 5.91 0 0 0 5.902 -5.903 5.91 5.91 0 0 0 -5.902 -5.902 5.907 5.907 0 0 0 -5.88 5.406c-7.32 1.223-14.468 5.2-19.722 11.016-5.511 6.101-8.261 13.52-7.543 20.348l0.016 0.16 12.68 18.383-1.063 0.632a0.245 0.245 0 0 0 -0.117 0.196c0 0.086 0.035 0.16 0.101 0.207l3.903 2.707c0.074 0.05 0.176 0.058 0.258 0.007a0.239 0.239 0 0 0 0.117 -0.23l-0.496-4.738a0.238 0.238 0 0 0 -0.133 -0.192zm17.879-51.402a3.408 3.408 0 0 1 3.402 3.402 3.405 3.405 0 0 1 -3.402 3.403 3.403 3.403 0 0 1 0 -6.805z"/>
5
+ </svg>
@@ -0,0 +1,61 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ version="1.1"
13
+ id="Layer_1"
14
+ x="0px"
15
+ y="0px"
16
+ viewBox="0 0 146 166"
17
+ style="enable-background:new 0 0 146 166;"
18
+ xml:space="preserve"
19
+ sodipodi:docname="i_critical.svg"
20
+ inkscape:version="0.92.1 r"><metadata
21
+ id="metadata4612"><rdf:RDF><cc:Work
22
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
23
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
24
+ id="defs4610" /><sodipodi:namedview
25
+ pagecolor="#ffffff"
26
+ bordercolor="#666666"
27
+ borderopacity="1"
28
+ objecttolerance="10"
29
+ gridtolerance="10"
30
+ guidetolerance="10"
31
+ inkscape:pageopacity="0"
32
+ inkscape:pageshadow="2"
33
+ inkscape:window-width="1920"
34
+ inkscape:window-height="1055"
35
+ id="namedview4608"
36
+ showgrid="false"
37
+ inkscape:zoom="1.4216867"
38
+ inkscape:cx="73"
39
+ inkscape:cy="83"
40
+ inkscape:window-x="0"
41
+ inkscape:window-y="1050"
42
+ inkscape:window-maximized="1"
43
+ inkscape:current-layer="Layer_1" /><style
44
+ type="text/css"
45
+ id="style4593">
46
+ .st0{fill:#808080;}
47
+ .st1{fill:#CC0000;}
48
+ </style><g
49
+ id="g4605"><path
50
+ class="st1"
51
+ d="M114.6,143.3H31c-7.2,0-13-4.8-13-10.6l0,0c0-5.9,5.9-10.6,13-10.6h83.6c7.2,0,13,4.8,13,10.6l0,0 C127.7,138.5,121.8,143.3,114.6,143.3z"
52
+ id="path4597" /><path
53
+ class="st1"
54
+ d="M114.6,110.2H31c-7.2,0-13-4.8-13-10.6l0,0C18,93.7,23.9,89,31,89h83.6c7.2,0,13,4.8,13,10.6l0,0 C127.7,105.4,121.8,110.2,114.6,110.2z"
55
+ id="path4599" /><path
56
+ class="st1"
57
+ d="M115,77.1H31.4c-7.2,0-13-4.8-13-10.6l0,0c0-5.9,5.9-10.6,13-10.6H115c7.2,0,13,4.8,13,10.6l0,0 C128,72.3,122.1,77.1,115,77.1z"
58
+ id="path4601" /><path
59
+ class="st1"
60
+ d="M114.6,44H31c-7.2,0-13-4.8-13-10.6l0,0c0-5.9,5.9-10.7,13-10.7h83.6c7.2,0,13,4.8,13,10.6l0,0 C127.7,39.2,121.8,44,114.6,44z"
61
+ id="path4603" /></g></svg>